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

Add a Positron bootstrap. #3114

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

freakboy3742
Copy link
Member

The Toga repository has contained a Positron demo for a while; this PR adds Briefcase bootstraps that will generate Positron apps that follow the template described by those demos.

This isn't ready to merge yet; in particular:

There's also a question as to whether this should be a package in the Toga repo, or a standalone toga-positron repo. It's presented in it's current state to validate the recent changes to Briefcase, and to start the discussion about where it should live long term.

PR Checklist:

  • All new features have been tested
  • All new features have been documented
  • I have read the CONTRIBUTING.md file
  • I will abide by the code of conduct

@freakboy3742
Copy link
Member Author

@mhsmith This doesn't need a full review; it's mostly for discussion purposes at this point.

@mhsmith
Copy link
Member

mhsmith commented Jan 23, 2025

There's also a question as to whether this should be a package in the Toga repo, or a standalone toga-positron repo.

Does it need to be a separately-installable package at all? Why not add it directly to Briefcase? The third-party bootstraps are separate because they're maintained by separate projects, but that wouldn't be the case here.

@freakboy3742
Copy link
Member Author

There's also a question as to whether this should be a package in the Toga repo, or a standalone toga-positron repo.

Does it need to be a separately-installable package at all? Why not add it directly to Briefcase? The third-party bootstraps are separate because they're maintained by separate projects, but that wouldn't be the case here.

That's a fair question; I guess it comes down to the long-term vision of Briefcase.

While Briefcase is a BeeWare project, I very much want to avoid the impression that Toga gets preferential treatment over other GUI frameworks. If Toga-Positron bootstraps are available by default, then it's a bit harder to make that claim.

From a purist perspective, I'd almost prefer that Briefcase came with no bootstraps, with Toga itself providing the Toga bootstrap. However, that approach would also means the "out of the box" experience is worse, as you would need to install Briefcase and a Toga bootstrap... and then select the Toga bootstrap to create a Toga app.

The alternative approach would be to include every possible bootstrap in the list - including bootstraps that we're not maintaining - but that could easy lead to an unwieldy list of bootstraps. That's going to get worse if Toga has 4 bootstraps (a "base app", plus 3 positron bootstraps); we could easily end up with "Pyside Positron" and so on. We could easily end up with a dozen or more options, which could get ungainly really quickly.

There's also the issue of including bootstraps that we're not responsible for maintaining. On the one hand we don't want to be responsible for maintaining bootstraps for every platform (if only because we don't have expertise of those platforms); but if we put a bootstrap on a list, it's an implicitly endorsement of that bootstrap, and if it doesn't work, Briefcase is going to have to deal with the fallout.

So - I guess the bigger issue here is to work out what our end state is for bootstraps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants