-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
adding pipenv support #14114
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
adding pipenv support #14114
Conversation
+1 to this. We can generate a matching requirements.txt from the Pipefile for folks that want to continue using that but in general, I've found that pipenv has been better at working out the constraints & dependencies. |
It's been a bit since I have installed the deps for that branch, but I should easily be able to update this PR if someone from the project wants to accept it 🙂 |
I'd say to wait after #14272 is merged |
…xt & removing pinned version of python3.9 -> python3
…atch current Pipfile
tl;dr: this has the exact same dependencies that the requirements.txt has in master currently. So, this Pipfile & Pipfile.lock should be pinning to the exact dependencies inside the current requirements.txt. I added an intermediary commit in there, so I could add $ gd HEAD..5210bf4 | cat
diff --git a/Pipfile b/Pipfile
index 3926440..8002695 100644
--- a/Pipfile
+++ b/Pipfile
@@ -4,10 +4,10 @@ verify_ssl = true
name = "pypi"
[packages]
-ansible-core = "*"
-ansible = "*"
+ansible-core = "==2.11.3"
+ansible = "==4.4.0"
netaddr = "*"
-Jinja2 = "*"
+Jinja2 = "~=3.0.1"
[dev-packages]
diff --git a/Pipfile.lock b/Pipfile.lock
index d5b4e73..bed9528 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "0c3c627d43a80cad0a384a195031ecdf469cea355e4b4e878b0a5f089e925d25"
+ "sha256": "1277a5279f6bb88863ea7a08d9bf546dca26dab2c405640d45fc5b5f958f9ec8"
},
"pipfile-spec": 6,
"requires": { Speaking of updates, the way you should be able to update dependencies with pipenv is I say should, because ( like @glennschler had an issue with here ) sometimes ansible wants a fresh install. So, in that can I have had to run Also, the way that @jauderho was mentioning about generating the requirements file you can run this: $ pipenv lock -r
#
# These requirements were autogenerated by pipenv
# To regenerate from the project's Pipfile, run:
#
# pipenv lock --requirements
#
-i https://pypi.org/simple
ansible-core==2.11.6
ansible==4.8.0
cffi==1.15.0
cryptography==35.0.0; python_version >= '3.6'
jinja2==3.0.2
markupsafe==2.0.1; python_version >= '3.6'
netaddr==0.8.0
packaging==21.2; python_version >= '3.6'
pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
pyparsing==2.4.7; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'
pyyaml==6.0; python_version >= '3.6'
resolvelib==0.5.4 |
@dguido, next time would you mind just making your own comment at the bottom of the GitHub issue instead of directly editing my original comment? That was it keeps the context for anyone else if they stumble upon the issue. I personally know I can see the old version through the edit history, but that's not obvious to everyone. Also, yes I completely understand that. I think a more modern solution would probably be like Astral's I see that the project already has a pyproject.toml, so it could just be an extension of that. I'd be happy to do a quick PoC if you'd like? The nice thing about uv as well is that it's cross platform, as it is built on rust, so that makes it work under Windows or Linux. |
Thank you for this contribution! While pipenv was a good solution when this PR was created in 2020, the Python packaging ecosystem has evolved significantly since then.
We're closing this PR as the community has largely moved beyond pipenv to more modern solutions. We'll be exploring simpler packaging options that minimize setup requirements for non-developer users.
We appreciate your effort in improving Algo's developer experience!