-
Notifications
You must be signed in to change notification settings - Fork 94
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
cylc installation: packages for Debian, Red Hat, etc... #1337
Comments
Issue numbering is deliberate! |
I'm packaging cylc (also fcm, rose) for inclusion in Debian. regards |
@amckinstry - that's exciting to hear! Please keep us posted on progress (and let us know if any quirks in the system get in the way of proper packaging, of course). Are you a user yourself? |
@hjoliver I've been experimenting with it at work (www.ichec.ie) where we do NWP and climate with Met Éireann, the Irish met. agency. I've been setting it up for satellite and radar data assimilation for some of our projects. |
That's great! There's a Vagrant VM install recipe which may help at https://github.com/metomi/metomi-vms/tree/master/ubuntu-1404. It has working installations of fcm, rose, and cylc. |
Struggled a little bit last week trying to install cylc on Ubuntu trusty because of pygraphviz. Managed to fix that after finding a issue in GitHub with some workaround. This is a Docker file that builds Ubuntu 14.04 trusty + system dependencies + Python and packages, and cylc 6.8.1. https://github.com/kinow/docker/blob/master/cylc/Dockerfile Looked for some place in the docs folder where I could submit a pull request with instructions for cylc on Ubuntu, but I didn't find a good place to put this information. Let me know if there's any documentation that could be updated specifically for Ubuntu and I'll send a pull request. |
@kinow - thanks for that. I had not run into this pygraphviz problem myself yet. Installation documentation - at present we only have the top level INSTALL file, which just refers to the cylc tarball and leaves external dependencies up to the user; and the Installation section of the User Guide ( |
Thanks for the prompt reply @hjoliver . I'll take a look at the Installation section of the User Guide to see if I can send a pull request. |
I wonder if it would it be useful to create a new directory tree (under conf/ or admin/, or perhaps etc/) to hold Docker files... |
Or a separate repository... right now we have only 1 repository under the cylc organisation... but maybe we could have one for docker. This way it could be easier to use it as link for sources in Docker Hub, and also manage contributions/issues. Some other OSS projects do that But totally doable to have a folder like |
Having played with Docker a bit, I think this is a good idea, although it's not clear to me which way is best (separate repo or not?). And @kinow we probably need to know/document how to use Cylc+Docker in a cluster environment. As discussed already, Docker seems to be a no-go in HPC at the moment, but at the least Cylc is normally used across multiple hosts (suite host + one or more job hosts). Presumably you can deploy the container on all hosts, and have jobs invoke |
As I'm not aware this has been written down anywhere: Packing CylcWith future developments in Cylc our dependency base is going to broaden. We are going to pick up dependencies which relate only to particular components of functionality, to list a few for example:
We wouldn't want build or documentation dependencies to bloat the Cylc package, similarly sites wont want to install web frameworks on job hosts. Should Cylc releases include Our package groups might look something like:
PIP & CondaPackaging systems can support this in different ways, with $ pip install cylc # default Cylc installation
$ pip install cylc[developer] # default + developer stuff Conda doesn't appear to have a universal solution to this yet, different packages are one option, outputs might be another: package:
name: cylc-split
version: "8.0.0"
requirements:
run:
- python=3.7
outputs:
- name: cylc.webserver
requirements:
run:
- tornado
- name: cylc.developer
requirements:
run:
- javascript
- sass $ # basic
$ conda create -n 'mycylcenv' python cylc
$ # installing components
$ conda create -n 'mycylcenv' python cylc cylc.developer cylc.webserver How Far Do We Want To Go?$ # too far?
$ conda create -n 'service-group-1' python cylc cylc.suite-list-service cylc.suite-run-service Do we:
|
Vote for more modular approach. |
+1 for modular approach. Something along the lines of
|
|
See also #2802. |
Anyone know about the "snap universal binary packaging format" for LInux? |
Krita has been releasing its official snap packages for a while. I used once, but later compiled with qt from source. Bit scary to have a huge binary with dependencies... a là static linked binaries. I prefer to manage my dependencies. But I understand why it is useful to some users. And might be simpler for Krita developers to support users, who are normally not tech savvy, but more concerned about just get it running and be able to draw, illustrate, etc. I know it works with Ubuntu. No idea if rhel fedora etc support too. B |
Snap format is Ubuntu invention and not widely adopted to my knowledge. Might be a dead end in the long term, as some of their other inventions (Upstart, Mir). |
Note via @arjclark on PyPI "typo squatting" cyber attacks: https://medium.com/@bertusk/detecting-cyber-attacks-in-the-python-package-index-pypi-61ab2b585c67 We might want to upload a duplicate package to "cycl", or a stub that simply prints "Did you mean to install |
I agree this is a problem, and I don't have a solution for that now... 😥 We could register Not sure if I think instead we should later discuss the possibility of instructing users to host This way we provide the safest solution, where you pick the dependencies you need and bring them within your organisation. Or you allow to connect to Anaconda/PYPI/GitHub/etc, where there is the risk of attacks like the typo squatting (NB: cycl could happen in any of these, as -- digress... For me, the best approach for NPM has now org scoped packages, e.g. It's much easier to filter the creation of these scopes in |
As cycl is such a common typo that might be a good idea. |
I think we are now pretty settled on the Conda model for packaging Cylc which opens up quick simple installation for the different Unix variants, multi-version installation, etc. Given this do we still have an interest in maintaining packages with other package managers? |
+1 to support only conda as we are doing. Users should be able to create rpm packages if they'd like/need |
Agreed, I'll close this. |
We should look into creating proper packages for cylc installation, ideally supporting
the multi-version wrapper way of working.
The text was updated successfully, but these errors were encountered: