-
Notifications
You must be signed in to change notification settings - Fork 1
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
[Feature] BrainGlobe v1 Plan #33
[Feature] BrainGlobe v1 Plan #33
Comments
Looks good @willGraham01, thanks! Two small comments:
Did we have this discussion? There's no reason for it to be in the initial release, but I think we should work towards When restructuring brainreg, I think we should also seperate the CLI for consistency. I don't think it needs to go into |
You're right sorry - I've mixed this up with
I've updated the |
For now at least, I think workflows can remain CLI only. I would think that if users are using the API, they will be creating their own workflow, not importing an existing, inflexible one. |
@adamltyson @alessandrofelder We previously said that However since then, it looks like |
Could we directly depend on brainglobe-meta already? |
Maybe - I'm not sure what that would mean when for when we merge I thought the plan is to have |
Right, sorry, makes sense. OK, so IIUC at least for our CI we should have it depend on the other brainglobe packages - so we may as well make it depend on the ones it needs, for now? |
Sounds good. We can always "hide" them as |
I think the idea was for workflows to depend on bg-meta, but not the other way round. This would make sure the workflows (which are not ideal in their structure) don't break the metapackage. |
Plus workflows can/will contain non-BG dependencies that may be incompatible. |
Good point.
? |
Sounds good to me. |
BrainGlobe v1 Release Plan (currently in writing)
Essentially a more coherent summary of this plan, however updated with the decisions taken from the 31/08/2023 developer meeting.
UPDATE: Link is now broken, but the full plan is in the task list below.
Overview
For the release of BrainGlobe version 1, we plan to restructure a number of packages, rename/move a series of tools, reduce the number of separate tools that we bundle and require install for, and update the documentation to be consistent with these changes.
At a high level, these changes are:
brainglobe-workflows
repository, and moving the CLI tools currently in thecellfinder
repository there, and renaming them.cellfinder-core
andcellfinder-napari
tocellfinder
(this is a fundamental change in the package purpose).brainreg
,brainreg-segment
, andbrainreg-napari
packages together in similar manner tocellfinder-napari
andcellfinder-core
.brainglobe-registration
,brainreg-segment
will remain standalone and becomebrainglobe-segmentation
.brainglobe-meta
package to provide a one-linepip
install with the new package structure.Renaming on GitHub and PyPI knock-on effects
We want to retain the GitHub repositories for their usage metrics and historial links provided in publications.
We also cannot retire names on PyPI and then re-upload a package with the same name and different functionality.
Therefore, our plan is to sequentially "move" functionality between repositories on GitHub (which will preserve the usage metrics), through a series of PRs and the repository merge trick.
For PyPI, we will release "final" versions for all packages that are becoming redundant with no homonymous replacement package.
These final versions will introduce no functionality changes from the previous version, but the READMEs will update to point to the replacement package.
These versions should all be tagged with a suitable version number, ideally a version less than 1.0 to signify they were never intended for release.
They can then be marked as deprecated on PyPI.
For packages whose functionality is being moved and then replaced (
cellfinder
and possiblybrainreg
), we will do a similar thing to the above for the old state of the package - push a new version to PyPI pointing to the replacement.Then when the new functionality replaces the old in the GitHub repo, we will push a new version release (v1.0 or higher) to PyPI with the new functionality.
This will have the slightly awkward affect of muddling our PyPI release history, but this is something we should comfortably be able to manage ourselves through the meta-package dependencies.
Detailed Task List
Tasks are organised into groups based on the packages they affect.
These groups are presented in a roughly chronological order, however due to the interdependencies between packages there will inevitably be blockages at certain points.
Although it's explicitly mentioned in each of the task lists below, these changes should all be done against a development branch in each repository.
Then the plan will be for us to pick a day, merge all the dev PRs into the respective mains, and then push new PyPI uploads.
This should ensure that none of our packages are left broken, but it also means that any hotfixes can be incorporated into the dev-branches via a rebase.
To track the completion of tasks, once a PR (against a dev branch or otherwise) is opened, add a link to that PR against the corresponding task in this list.
When the PR is merged, we can then tick off the sub-tasks and see where the change was introduced.
brainglobe/brainglobe-workflows
cellfinder
migration toworkflows
for BG-v1 #45brainglobe
meta-package rather than individual tools - Add hard dependency on brainglobe-meta package brainglobe-workflows#72brainglobe/cellfinder
cellfinder
migration toworkflows
for BG-v1 #45cellfinder-core
andcellfinder-napari
[Feature] BG-V1:cellfinder-core
andnapari
merge #46brainglobe/cellfinder-core
cellfinder-core
andnapari
merge #46brainglobe/cellfinder-napari
cellfinder-core
andnapari
merge #46brainglobe/brainreg-segment
brainreg-segment
#36brainglobe/brainreg-napari
brainreg-napari
#37brainglobe/brainreg
brainreg
#38brainglobe/brainglobe-meta
cellfinder
, pinned>=1.0
brainreg
, pinned>=1.0
brainreg
,cellfinder
, etc tools under brainglobe namebrainglobe/website
(and other documentation related tasks)pip
into a cleanvenv
/conda env
etc.napari
, which will require some additional instructionsbrainglobe-workflows
overview page, [Feature]cellfinder
migration toworkflows
for BG-v1 #45cellfinder
used to do, and has now been moved herecellfinder
updates, [Feature]cellfinder
migration toworkflows
for BG-v1 #45cellfinder-core
updates [Feature] BG-V1:cellfinder-core
andnapari
merge #46cellfinder-napari
updates [Feature] BG-V1:cellfinder-core
andnapari
merge #46brainreg
updates [BGV1] Updates to documentation in in light ofbrainreg
updates #39The text was updated successfully, but these errors were encountered: