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

Upstream constructor changes from fork to project #15

Closed
goanpeca opened this issue Mar 11, 2022 · 10 comments · Fixed by #103
Closed

Upstream constructor changes from fork to project #15

goanpeca opened this issue Mar 11, 2022 · 10 comments · Fixed by #103
Assignees

Comments

@goanpeca
Copy link
Collaborator

goanpeca commented Mar 11, 2022

🧰 Task

For the constructor bundle work @jaimergp used a fork and implemented a bunch if goodies.

The plan is to upstream this from the work https://github.com/jaimergp/constructor/tree/menuinst+branding

@jaimergp jaimergp transferred this issue from napari/napari Aug 3, 2022
@liu-ziyang
Copy link
Contributor

@jaimergp curious about the next steps on this issue, are these blocking our migration or?

@jaimergp
Copy link
Collaborator

jaimergp commented Sep 7, 2022

Not blocking. Most of the constructor-only stuff landed on main, but the menuinst derived features are still pending.

@larsoner
Copy link

@jaimergp don't forget to check off conda/constructor#475 :)

@jaimergp
Copy link
Collaborator

jaimergp commented Nov 3, 2022

Adding some task items here for my own sanity as I update I sync our fork to latest upstream versions to reduce the technical debt. We should have 90% parity or so!

@jaimergp
Copy link
Collaborator

jaimergp commented Feb 13, 2023

We have constructor 3.4.3 out now, which provides most of the functionality we have worked on during the last year, plus some! It's only missing the menuinst 2.x bits, so here's the plan:

Work items for menuinst

We now have a cep-devel branch on conda/menuinst! This allows us to iterate faster with smaller PRs. We no longer have to use a giga-commit PR with all the updates :D

Once these last technical requirements are implemented in the devel branch, we can kick off the upstreaming process for menuinst. Getting this accepted by the community would allow us to stop forking, maintaining and packaging conda, conda-standalone, constructor and menuinst on our own! This task needs various items that need to be completed sequentially:

Once we have all these pieces in conda-forge, we will be able to:


Nice to have, maintainability oriented, with the help of the community:

  • Package conda-standalone from the new conda/conda-standalone repo, instead of using the feedstock as a source provider.
  • Implement a better maintenance model for the conda constructor ... CLI helper on conda-standalone (not to be confused with constructor itself!). Right now this is an implementation detail on conda/conda-standalone. Probably best if done with a conda subcommand plugin. It might need its own (coupled) CEP.
  • Create a conda-menuinst plugin to handle this logic outside conda (preferred long term, but it requires a new plugin hook in conda).

@jaimergp
Copy link
Collaborator

jaimergp commented Jun 19, 2023

The above is not done yet, but we are going to update our installers to use the last features in menuinst. This is the build order:

@jaimergp
Copy link
Collaborator

jaimergp commented Jan 16, 2024

A last update on this:

  • We released menuinst v2 in November I think? We have released two patch versions since then. We have 2.0.2 right now!
  • conda 23.11.0 (released in December) ships compatibility for menuinst v2
  • constructor 3.6.0 shipped compatibility with menuinst v2 last week
  • conda-standalone 23.11.0 with, you guessed it, menuinst v2 compatibility, has just been merged! This includes manual builds for osx-arm64.
  • Use upstream constructor stack (drop napari/bundle_tools_*) #103 drops napari/label/bundle_tools_* and uses the conda-canary nightlies. I just need to adjust it so it uses conda-forge straight once all the releases land.

So, all in all, it sounds like we are basically done! This won't reach our installers till napari v0.5 is released, though. The 0.4.19 pipeline will still use the "old yet trusted" forked version in main. Once that lands, we can merge all the open PRs and upgrade to the upstream stack! We'll need some QA at some point to ensure everything is ✨.

In the meantime, I'll send a PR to update our packaging docs. An by update I mean "dramatically simplify" because now we can just omit all the hacky details of our fork.

It only took us 2.5 years 🚀

@hoechenberger
Copy link

👏👏👏

@jaimergp
Copy link
Collaborator

cc @mrclary, in case this is relevant for Spyder. No further need for napari/label/bundle_tools_*.

@jaimergp jaimergp linked a pull request Jan 18, 2024 that will close this issue
psobolewskiPhD pushed a commit to napari/docs that referenced this issue Feb 4, 2024
#319)

Comes from
napari/packaging#15 (comment).

Depends on napari/packaging#103.

# Description
This updates the Packaging docs to remove the (soon) outdated details
about our constructor stack fork. I also took the opportunity to adjust
some sentences that were a bit ambiguous.
@jaimergp jaimergp unpinned this issue Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants