-
Notifications
You must be signed in to change notification settings - Fork 13
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
meta packages #130
Comments
Makes sense to me |
Agreed 👍 |
oliver-sanders
added a commit
to oliver-sanders/cylc-doc
that referenced
this issue
Aug 5, 2021
* update installation instructions *not* to use the meta package * cylc/cylc-admin#130 * update installation instructions * document instaling the cylc-rose package
No one screamed, actioning. |
wxtim
pushed a commit
to wxtim/cylc-doc
that referenced
this issue
Sep 2, 2021
* update installation instructions *not* to use the meta package * cylc/cylc-admin#130 * update installation instructions * document instaling the cylc-rose package
Regarding the old
|
Thanks for investigating that @kinow |
oliver-sanders
added a commit
to oliver-sanders/cylc-uiserver
that referenced
this issue
Nov 9, 2021
7 tasks
oliver-sanders
added a commit
to oliver-sanders/cylc-rose
that referenced
this issue
Nov 9, 2021
oliver-sanders
added a commit
to oliver-sanders/cylc-rose
that referenced
this issue
Nov 9, 2021
This was referenced Nov 9, 2021
Progress:Version Pinning (pin to cylc-flow minor version):
Conda Forge Outputs:
Misc:
|
4 tasks
This was referenced Jun 6, 2022
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
closes: #76, #27, #75, cylc/cylc-flow#4158
Open proposal to discuss the packaging-end-game for Cylc 8.
Doesn't really need a full-blown proposal-document, there isn't any fine print to haggle over.
cylc => cylc-flow
Early in the Cylc 8 project we renamed
cylc
=>cylc-flow
, some of the motivation:cylc
namespace for the meta-package.In retrospect this might not have been the best idea:
cylc-*
projects havecylc-flow
as a dependency makingcylc-flow
the "core" component.cylc
command is provided bycylc-flow
othercylc
projects register their subcommands via entry points.The meta-package
The intention of the meta package was to provide a one-click install for a fully-functional Cylc stack.
Advantages:
The versions of each component get "pinned" in the meta-package ensuring environment consistency.
cylc-rose
has bothmetomi-rose
andcylc-flow
as dependencies.cylc-rose
your package manager (pip, conda) will ensure the two are compatible.Ease of installation.
Disadvantages:
We can't "deselect" packages to install (with conda, pypi is different).
python
output.conda install cylc
you get the whole lot whether you wanted it or not.meta
outputs e.g.cylc-meta-flow
,cylc-meta-uiserver
, etc.Differing versions between
cylc
andcylc-flow
.cylc-uiserver
we would need to bump the meta-package maintenance version?cylc version
shows the version ofcylc-flow
not the meta package which is confusing if you installed via the meta package.And so the meta-package has begun to look like a [complex] solution in need of a problem.
We would probably be better off adding a few example Conda recipes in
cylc-doc
and letting users decide how they want to install the stack.The Future
Consistency
Currently all Cylc projects have a dependency on Cylc Flow.
We can give this dependency a very narrow version range (version "pinning") in order to ensure consistency between the different components.
Packages
If the meta-package serves little function we should probably cut our losses and get rid of it.
Doing so would leave us with three problems:
cylc
Conda package.cylc-flow
,cylc-rose
,cylc-uiserver
,metomi-rose
.cylc
PyPi package.cylc-flow
project name.Options:
cylc
packages (makes us vulnerable to typo-squatting)cylc-flow
packages and use these instead.I think:
cylc-flow
back tocylc
(lots of work, no gain) then (3).Proposal
Ok, enough background, the actual proposal is quite simple:
Consistency
Make Cylc projects depend on minor releases of
cylc-flow
.Examples:
cylc-uiserver==1.1.0
might depend oncylc-flow=8.0.*
NOTcylc-flow>=8.0.0
.cylc-rose==1.1.1
might depend oncylc-flow>=8.0.1,<8.1
NOTcylc-flow>=8.0.0
.This means all [core] Cylc packages would have to be released for every minor release of
cylc-flow
.I think this is probably the sort of direction we were heading in anyway. We could potentially relax this later on (to the major version) if interfaces settle down.
Namespace
Go for option (2), we don't need a special meta-package, try to make the existing
cylc
packages "dead-ends".WIP
Close:
Thoughts @cylc/core?
The text was updated successfully, but these errors were encountered: