-
Notifications
You must be signed in to change notification settings - Fork 4
Add artifact parsing to Briefcase backend #30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Thanks for posting! I have not had a chance to look in detail yet... On the question of artefact types and what should be included: whether all the deployable things are a single type but with some "target" parameter or different types as you have them. These are conversation points it would be nice to have a number of voices on. Finally, whether you should only list artifacts that can be made on the current platform. I think you probably want to include all, since it is something the project defines, and we don't necessarily want to build any, or might move the project elsewhere. For example, we can scan a |
So what would represent an "Environment" for Briefcase?
If the environmental dependencies are part of the spec - how are they determined if they aren't included in project metadata? For example, Briefcase includes checks to make sure that the Xcode version is sufficient for a given project, but that doesn't necessary manifest in the project configuration in a form that is parseable. Does that mean the Briefcase "minimum Xcode version" needs to be duplicated in projspec? Is projspec responsible for determining if that requirement is satisfied, or just defining that the requirement exists?
I'm happy to be a voice in a room, and provide any feedback that might be helpful. FWIW, the piece of the puzzle I'm not fully understanding yet is the intended use case for projspec. I appreciate that the project is in early stages, so there's a lot of work that still needs to be done, and there are pieces that are still missing. As it stands, the documentation tells me I can run There's a bunch of tooling here to parse project files in different formats; but it's not clear how that parsed detail will be used - and that usage is going to strongly influence what structure, format, and level of detail the parsed content will need to take. I've got some theories based on what I've seen in the code - that the end game is a "unified artefact building interface" (or, at least, a metadata generator that could feed such an interface); but even in that definition, working out what is or isn't in scope leads to some interesting follow up questions.
I'm not sure I agree on that one. If I'm on a macOS machine, and I don't have Even in the |
Adds a
parse()implementation for the Briefcase ProjectSpec that adds the artefacts that can be generated natively.The artefacts are listed based on what is generated natively on each platform - so, on macOS, it will tell you the artefacts that can be generated for macOS, iOS and Android; on Linux, it will give you the native platform format (e.g., RPM or DEB), plus Flatpak and Android; and so on.
This list won't be 100% accurate, as you can use Docker to cross-build Linux packages on other distros, and on macOS.
It won't include an artefact if there's no configuration, or if there's an explicit "supported = False" declaration for the platform.
It's not clear to me that there's anything else that should be added; I don't think anything Briefcase has defined counts as "content", but I might be misunderstanding the intention here.