Skip to content
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

Provide a more extensive default bootstrap #2006

Open
freakboy3742 opened this issue Sep 25, 2024 · 0 comments
Open

Provide a more extensive default bootstrap #2006

freakboy3742 opened this issue Sep 25, 2024 · 0 comments
Labels
enhancement New features, or improvements to existing features. good first issue Is this your first time contributing? This could be a good place to start!

Comments

@freakboy3742
Copy link
Member

freakboy3742 commented Sep 25, 2024

What is the problem or limitation you are having?

If a user selects "No GUI framework", no bootstrap content is selected. As a result, the generated app configuration is really bare bones. This puts the onus on the developer to discover all the important configuration keys that they might want to use.

Describe the solution you'd like

A new "Empty" bootstrap that contains all the same configuration keys as the Toga backend, but with no values specified. This would be used in the New and Convert wizards.

For example, the content for each operating system section (e.g., macOS, Linux, ...) would be something like:

# Delete the next line to support macOS
supported = false
requires = [
    # Python requirements for macOS
]

The Debian configuration section might be:

system_requires = [
    # System packages needed to run the app on Debian
]

system_runtime_requires = [
    # System packages needed to run the app on Debian
]

There would be no app content; this is purely to ensure that there are empty stub configurations for each platform that the user can "fill in", rather than needing to read the docs (and potentially hit typos etc).

Describe alternatives you've considered

Do nothing. The status quo works, and the empty template case is an edge case.

Additional context

Bootstrap definitions are in src/briefcase/bootstraps; they're registered in pyproject.toml, and installed in NewCommand._gui_bootstrap_choices() and ConvertCommand.build_gui_context().

@freakboy3742 freakboy3742 added enhancement New features, or improvements to existing features. good first issue Is this your first time contributing? This could be a good place to start! labels Sep 25, 2024
Xzenergy added a commit to Xzenergy/briefcase that referenced this issue Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New features, or improvements to existing features. good first issue Is this your first time contributing? This could be a good place to start!
Projects
None yet
Development

No branches or pull requests

1 participant