-
-
Notifications
You must be signed in to change notification settings - Fork 270
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
Reproducible build with docker #344
Comments
I can work on that. |
Hi @frafra, let's discuss that in-depth cause I've been using poetry for three years and haven't found so many issues. I see it is widely used now, but I'm happy to see what are the benefits of pdm as compared to poetry. |
Hi @francbartoli :) There is something else we could take into account: creating wheels first, and then install them, using a multi-stage Docker image, so we do not have to keep build dependencies in the final image (I briefly mentioned that here: #1093 (comment)). |
@frafra I would start with the migration from |
@francbartoli I will then use pdm to convert |
I noticed that Poetry got better, but is still lagging behind with respect to PEPs, as it does not use PEP 621. It uses its own sections, which are Poetry-specific. I wonder if it wouldn't be better to use a standard that can be understood by setuptools as well. |
what about hatch that looks pretty much similar to poetry and supports PEP 621? |
I didn't know about hatch. Poetry is much similar to PDM than hatch. hatch doesn't do dependency pinning, nor it installs dependencies in a virtual env, like Poetry and PDM do. |
you are right, it doesn't install/add packages and lock the dependencies indeed |
I made a draft PR with pinned dependencies and an updated Dockerfile. |
@frafra Ok, see this now after my comment of #1093 I like the MultiStage with caching Dockerfile approach! Unfamiliar with PDM, Poetry used a bit, think in FastAPI projects. Will take us (at least me) some time to grasp & review :-). |
Question for group: should we proceed with #1093 or #1105 ? Or #1093 and then #1105? #1105 is quite involved. However we are quite backed by our unit tests (though many fail for unrelated reasons, like stale WFS URLs, .dockerignore etc), but others may be version-pin-related, like GDAL (for e.g. deegree WFS). |
I agree, that is a major change. |
Pff I meant @francbartoli ; GH autosuggest :-). |
As per RFC4, this Issue has been inactive for 90 days. In order to manage maintenance burden, it will be automatically closed in 7 days. |
As per RFC4, this Issue has been closed due to there being no activity for more than 90 days. |
Is your feature request related to a problem? Please describe.
Using tools like poetry or pipenv the docker build could reach the state of a deterministic artifact beyond the problem to have all requirements pinned (
<some package>==x.y.z
)at the current version. Also, this would allow us to publish and tag them only if they pass the build on travis.Describe the solution you'd like
I would go with poetry because it is also a good replacement of
setup.py
and it can manage the lifecycle of publishing the package to the pypi repository.With poetry everything happens in a
pyproject.toml
, even dependencies, so we should adopt it but this might have a high impact.With poetry:
or use tools like dephells or poetrify to convert from requirements.txt to pyproject.toml:
dephell
dephell deps convert --from=requirements.txt --to=pyproject.toml
poetrify
poetrify generate -s requirements.txt
With pipenv:
#generate Pipfiles from requirements.txt pipenv install -r requirements.txt
In the Dockerfile:
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: