Tools for managing python packages #7
Replies: 2 comments 5 replies
-
Sorry, I was planning to make this post just now! I think the only thing to note with that Copier template is that it includes the bash-config feature, as container builds are a lot faster than with alternatives. The initializeCommand will automatically create a folder in your home drive. I'm not tied to us using this particular template, but I am strongly in favour of a Copier template that we can use across our multiple Python packages. I was thinking that perhaps all core PyAML code could follow either the DLS template, a fork or a similar Copier template. We can also provide a more general-use, trimmed down version that particular facilities can adopt where e.g. dev container setup is non-trivial or the people working with it are not as familiar with programming. E.g. we don't enable strict type checking and coverage, etc. I'd be interested to hear people's opinions. If you get stuck, feel free to ask me questions. |
Beta Was this translation helpful? Give feedback.
-
I am not an expert on this at all, so probably what was done in Diamond is much better but we can share the experience we had with mbtrack2. In mbtrack2, we are using poetry (https://python-poetry.org/) for dependency management and packaging (building wheels for pip). I had a good experience with poetry and maybe it can be considered for pyAML. When the code is pure python, it's really straightforward. When it's mixed in with other languages, I don't know so much. But recently @gubaidulinvadim added some fortran code which needed compilation and he was able to build it with meson (https://mesonbuild.com/) and make it work with poetry. We are using isort (https://pycqa.github.io/isort/) and yapf (https://github.com/google/yapf) as formatters. For me this part is not so important, we just need to have some formatters and stick to it. A very important point is the CI/CD with the automatic building of docker containters to run tests and so on. Github is different from Gitlab on that point so I don't think I can help much there (but Patrick Madela from SOLEIL should be able to if needed). But from what I see, all the features listed above are included in the template from Diamond (and much more). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
The template from @MJGaughran that was shown at the maintainer's meeting is here:
https://github.com/DiamondLightSource/python-copier-template
I think perhaps the first things to discuss are:
I think mbtrack2 has a nice setup so perhaps @GamelinAl and @gubaidulinvadim can explain how you do it?
Beta Was this translation helpful? Give feedback.
All reactions