Comments (7)
FWIW, I think the regular Circle images are already getting the 2020 version of pipenv, for better or for worse:
LM-LTH-40012925~% docker run circleci/python:3.7 pipenv --version
pipenv, version 2020.6.2
so, to me, jumping backwards on the cimg ones wouldn't make a ton of sense?
For our workflows, we've seen one or two issues, but the new version also fixes a bunch of stuff
from cimg-python.
I do kind of wonder what the benefit of using pyenv in a container that's already using a single Python version is... unless it makes using the same Dockerfile for all the versions that much easier -- from a simplicity standpoint, might be easier / better to install at system level, and then there's less likely to be weird path issues.
I am seeing binaries installed from pipenv missing from the pyenv path when I tried switching to this, but maybe I need to do some additional pyenv configuration in the pipenv config...
from cimg-python.
Great question. This image uses pyenv to obtain the Python version. In theory, this shouldn't interfere with Pipenv right?
I'll do some testing and research and see if we can add this in before this image goes stable/GA, which is soon.
from cimg-python.
Right - they’re supposed to work ok together, and I think newer pipenv may even work with pyenv.
FWIW, just doing pip install pipenv
(without sudo) seems to work fine, so it may be as simple as adding it to the pip packages that get installed in the base image.
Happy to PR it but wasn’t sure exactly where that goes in the stuff that generates the Dockerfiles and whether to commit the results as well
from cimg-python.
Hey there! I've been thinking about this problem myself. There are a few things we just need to make sure are clear and we discuss before making the change. I do believe its fair to assume that pipenv should be the default packaging tool available in the base image since pypa officially recommends pipenv.
Should we hardcode a version of pipenv to install?
Pipenv has had issues with releases breaking installs. The last version released before 2020* was 2018*. Two years was quite a while and who knows what an unexpected update will cause
Along with pipenv will come a few other packages - do their versions matter / will they update ok without issue?
Currently there are no python packages in pyenv site-packages in the images (except for pip). In the 3.7 image today if I install pipenv (at version 2020.6.2), I also install these packages. Should we set their versions as well?
- appdirs-1.4.4
- certifi-2020.4.5.2
- distlib-0.3.0
- filelock-3.0.12
- importlib-metadata-1.6.1
- six-1.15.0
- virtualenv-20.0.23
- virtualenv-clone-0.5.4
- zipp-3.1.0
from cimg-python.
Definitely not proposing we go backward! Sorry for not being clear. I'm basically wondering if the change should be
pip install pipenv
or pip install pipenv==2020.6.2
or lock all the dependent pip pacakges for pipenv into a requirements file with every version hardcoded. I'm not quite sure what the planned release cadence for https://github.com/pypa/pipenv is going to be. Without hardcoding the version - unexpected new versions of pipenv or the dependent packages may be installed when the image is rebuilt. Just trying to discuss the risk to the change long term.
from cimg-python.
FWIW - if you want to make the change and feel comfortable making the change to the https://github.com/CircleCI-Public/cimg-python/blob/master/Dockerfile.template. The README should provide guidance on testing the change and submitting the PR.
from cimg-python.
Related Issues (20)
- 3.9.15-browsers is missing xvfb HOT 6
- Upgrade poetry HOT 1
- python 3.11 HOT 5
- cimg/python:3.9.15 + pipenv uses Python 3.10.6 HOT 3
- Python v3.11.0 & python-attr HOT 2
- add pipenv smoke test
- python 3.8.16, 3.9.16, 3.11.1, 3.7.16, 3.10.9 HOT 2
- BUG: linking errors with cimg/python:3.11.0 and glibc (xref) HOT 1
- Suggestion: multi-python-version images? HOT 1
- Python:3.11.1-node Pulls Old Node cimg HOT 2
- [misc] pyenv 2.3.13 is now available HOT 3
- Add pipx by default
- Pyenv shims broken HOT 1
- Support Java 17 LTS in browser images HOT 2
- Release Poetry 1.4.2 for Python 3.8 and 3.9 HOT 7
- Feature Request: Support Python 3.12 HOT 3
- Bug Report: pyenv shell integrations not enabled HOT 1
- CPython 3.12.2 and 3.11.8
- Bug Report: execution time increased by ~33% with 3.12 image HOT 1
- Node variant: NPM fails with EACCES error when installing package
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cimg-python.