mirror of
https://github.com/kennethreitz/pipenv.git
synced 2026-06-05 22:50:18 +00:00
Merge branch master
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
jobs:
|
||||
- job:
|
||||
displayName: Docs
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '3.7'
|
||||
|
||||
- template: steps/install-dependencies.yml
|
||||
|
||||
- bash: tox -e docs
|
||||
displayName: Build docs
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish Artifact: docs'
|
||||
inputs:
|
||||
pathToPublish: docs/build
|
||||
artifactName: docs
|
||||
@@ -1,14 +0,0 @@
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Use Python $(python.version)
|
||||
inputs:
|
||||
versionSpec: '$(python.version)'
|
||||
architecture: '$(python.architecture)'
|
||||
|
||||
- template: ../steps/install-dependencies.yml
|
||||
|
||||
- bash: |
|
||||
export GIT_SSL_CAINFO=$(python -m certifi)
|
||||
export LANG=C.UTF-8
|
||||
python -m pip install check-manifest
|
||||
check-manifest
|
||||
@@ -1,12 +0,0 @@
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Use Python $(python.version)
|
||||
inputs:
|
||||
versionSpec: '$(python.version)'
|
||||
architecture: '$(python.architecture)'
|
||||
|
||||
- template: ../steps/install-dependencies.yml
|
||||
|
||||
- template: ../steps/create-virtualenv.yml
|
||||
|
||||
- template: ../steps/run-tests.yml
|
||||
@@ -1,38 +0,0 @@
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Use Python $(python.version)
|
||||
inputs:
|
||||
versionSpec: '$(python.version)'
|
||||
architecture: '$(python.architecture)'
|
||||
|
||||
- template: ../steps/install-dependencies.yml
|
||||
|
||||
- bash: |
|
||||
mkdir -p "$AGENT_HOMEDIRECTORY/.virtualenvs"
|
||||
mkdir -p "$WORKON_HOME"
|
||||
pip install certifi
|
||||
export GIT_SSL_CAINFO="$(python -m certifi)"
|
||||
export LANG="C.UTF-8"
|
||||
export PIP_PROCESS_DEPENDENCY_LINKS="1"
|
||||
echo "Path $PATH"
|
||||
echo "Installing Pipenv…"
|
||||
pip install -e "$(pwd)" --upgrade
|
||||
pipenv install --deploy --dev
|
||||
echo pipenv --venv && echo pipenv --py && echo pipenv run python --version
|
||||
displayName: Make Virtualenv
|
||||
|
||||
- script: |
|
||||
# Fix Git SSL errors
|
||||
export GIT_SSL_CAINFO="$(python -m certifi)"
|
||||
export LANG="C.UTF-8"
|
||||
export PIP_PROCESS_DEPENDENCY_LINKS="1"
|
||||
git submodule sync && git submodule update --init --recursive
|
||||
pipenv run pytest --junitxml=test-results.xml
|
||||
displayName: Run integration tests
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
inputs:
|
||||
testResultsFiles: '**/test-results.xml'
|
||||
testRunTitle: 'Python $(python.version)'
|
||||
condition: succeededOrFailed()
|
||||
@@ -1,39 +0,0 @@
|
||||
parameters:
|
||||
vmImage:
|
||||
|
||||
jobs:
|
||||
- job: Vendor_Scripts
|
||||
displayName: Test Vendor Scripts
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
maxParallel: 4
|
||||
matrix:
|
||||
${{ if eq(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
# TODO remove once vs2017-win2016 has Python 3.7
|
||||
Python37:
|
||||
python.version: '>= 3.7.0-b2'
|
||||
python.architecture: x64
|
||||
${{ if ne(parameters.vmImage, 'vs2017-win2016' )}}:
|
||||
Python37:
|
||||
python.version: '>= 3.7'
|
||||
python.architecture: x64
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Use Python $(python.version)
|
||||
inputs:
|
||||
versionSpec: '$(python.version)'
|
||||
architecture: '$(python.architecture)'
|
||||
|
||||
- template: ../steps/install-dependencies.yml
|
||||
|
||||
- bash: |
|
||||
mkdir -p "$AGENT_HOMEDIRECTORY/.virtualenvs"
|
||||
mkdir -p "$WORKON_HOME"
|
||||
pip install certifi
|
||||
export GIT_SSL_CAINFO=$(python -m certifi)
|
||||
export LANG=C.UTF-8
|
||||
python -m pip install --upgrade invoke requests parver
|
||||
python -m invoke vendoring.update
|
||||
|
||||
- template: ./run-manifest-check.yml
|
||||
@@ -1,48 +0,0 @@
|
||||
parameters:
|
||||
vmImage:
|
||||
|
||||
jobs:
|
||||
- job: Test_Primary
|
||||
displayName: Test Primary
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
maxParallel: 4
|
||||
matrix:
|
||||
Python27:
|
||||
python.version: '2.7'
|
||||
python.architecture: x64
|
||||
${{ if eq(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
# TODO remove once vs2017-win2016 has Python 3.7
|
||||
Python37:
|
||||
python.version: '>= 3.7.0-b2'
|
||||
python.architecture: x64
|
||||
${{ if ne(parameters.vmImage, 'vs2017-win2016' )}}:
|
||||
Python37:
|
||||
python.version: '>= 3.7'
|
||||
python.architecture: x64
|
||||
steps:
|
||||
- ${{ if eq(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
- template: ./run-tests-windows.yml
|
||||
|
||||
- ${{ if ne(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
- template: ./run-tests.yml
|
||||
|
||||
- job: Test_Secondary
|
||||
displayName: Test python3.6
|
||||
# Run after Test_Primary so we don't devour time and jobs if tests are going to fail
|
||||
# dependsOn: Test_Primary
|
||||
pool:
|
||||
vmImage: ${{ parameters.vmImage }}
|
||||
strategy:
|
||||
maxParallel: 4
|
||||
matrix:
|
||||
Python36:
|
||||
python.version: '3.6'
|
||||
python.architecture: x64
|
||||
steps:
|
||||
- ${{ if eq(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
- template: ./run-tests-windows.yml
|
||||
|
||||
- ${{ if ne(parameters.vmImage, 'vs2017-win2016') }}:
|
||||
- template: ./run-tests.yml
|
||||
@@ -1,27 +0,0 @@
|
||||
name: Pipenv Build Rules
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
paths:
|
||||
exclude:
|
||||
- docs/*
|
||||
- news/*
|
||||
- README.md
|
||||
- pipenv/*.txt
|
||||
- CHANGELOG.rst
|
||||
- CONTRIBUTING.md
|
||||
- CODE_OF_CONDUCT.md
|
||||
- .gitignore
|
||||
- .gitattributes
|
||||
- .editorconfig
|
||||
|
||||
jobs:
|
||||
- template: jobs/test.yml
|
||||
parameters:
|
||||
vmImage: ubuntu-16.04
|
||||
|
||||
- template: jobs/run-vendor-scripts.yml
|
||||
parameters:
|
||||
vmImage: ubuntu-16.04
|
||||
@@ -0,0 +1,31 @@
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: $(python.version)
|
||||
architecture: '$(python.architecture)'
|
||||
addToPath: true
|
||||
displayName: Use Python $(python.version)
|
||||
|
||||
- template: install-dependencies.yml
|
||||
|
||||
- script: |
|
||||
echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version)
|
||||
env:
|
||||
PYTHON_VERSION: $(python.version)
|
||||
|
||||
- template: create-virtualenv.yml
|
||||
parameters:
|
||||
python_version: $(python.version)
|
||||
|
||||
- script: |
|
||||
python -m pip install --upgrade wheel pip setuptools twine readme_renderer[md]
|
||||
python setup.py sdist bdist_wheel
|
||||
twine check dist/*
|
||||
displayName: Build and check package
|
||||
env:
|
||||
PY_EXE: $(PY_EXE)
|
||||
GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)
|
||||
LANG: $(LANG)
|
||||
PIPENV_DEFAULT_PYTHON_VERSION: $(PIPENV_DEFAULT_PYTHON_VERSION)
|
||||
PYTHONWARNINGS: ignore:DEPRECATION
|
||||
PIPENV_NOSPIN: '1'
|
||||
@@ -1,6 +1,44 @@
|
||||
parameters:
|
||||
python_version: ''
|
||||
|
||||
steps:
|
||||
|
||||
- script: |
|
||||
virtualenv D:\.venv
|
||||
D:\.venv\Scripts\pip.exe install -e . && D:\.venv\Scripts\pipenv install --dev
|
||||
echo D:\.venv\Scripts\pipenv --venv && echo D:\.venv\Scripts\pipenv --py && echo D:\.venv\Scripts\pipenv run python --version
|
||||
echo "##vso[task.setvariable variable=LANG]C.UTF-8"
|
||||
echo "##vso[task.setvariable variable=PIP_PROCESS_DEPENDENCY_LINKS]1"
|
||||
displayName: Set Environment Variables
|
||||
|
||||
- ${{ if eq(parameters.vmImage, 'windows-2019') }}:
|
||||
- powershell: |
|
||||
pip install certifi
|
||||
$env:PYTHON_PATH=$(python -c "import sys; print(sys.executable)")
|
||||
$env:CERTIFI_CONTENT=$(python -m certifi)
|
||||
echo "##vso[task.setvariable variable=GIT_SSL_CAINFO]$env:CERTIFI_CONTENT"
|
||||
echo "##vso[task.setvariable variable=PY_EXE]$env:PYTHON_PATH"
|
||||
displayName: Set Python Path
|
||||
env:
|
||||
PYTHONWARNINGS: 'ignore:DEPRECATION'
|
||||
- ${{ if ne(parameters.vmImage, 'windows-2019') }}:
|
||||
- bash: |
|
||||
pip install certifi
|
||||
PYTHON_PATH=$(python -c 'import sys; print(sys.executable)')
|
||||
CERTIFI_CONTENT=$(python -m certifi)
|
||||
echo "##vso[task.setvariable variable=GIT_SSL_CAINFO]$CERTIFI_CONTENT"
|
||||
echo "##vso[task.setvariable variable=PY_EXE]$PYTHON_PATH"
|
||||
displayName: Set Python Path
|
||||
env:
|
||||
PYTHONWARNINGS: 'ignore:DEPRECATION'
|
||||
|
||||
- script: |
|
||||
echo "Python path: $(PY_EXE)"
|
||||
echo "GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)"
|
||||
echo "PIPENV PYTHON VERSION: $(python.version)"
|
||||
echo "python_version: ${{ parameters.python_version }}"
|
||||
git submodule sync
|
||||
git submodule update --init --recursive
|
||||
$(PY_EXE) -m pipenv install --deploy --dev --python="$(PY_EXE)"
|
||||
env:
|
||||
PIPENV_DEFAULT_PYTHON_VERSION: ${{ parameters.python_version }}
|
||||
PYTHONWARNINGS: 'ignore:DEPRECATION'
|
||||
PIPENV_NOSPIN: '1'
|
||||
displayName: Make Virtualenv
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
steps:
|
||||
- script: 'python -m pip install --upgrade pip && python -m pip install -e .'
|
||||
- script: 'python -m pip install --upgrade pip setuptools wheel -e .[dev,tests] --upgrade'
|
||||
displayName: Upgrade Pip & Install Pipenv
|
||||
env:
|
||||
PYTHONWARNINGS: 'ignore:DEPRECATION'
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
steps:
|
||||
- script: |
|
||||
# When you paste this, please make sure the indentation is preserved
|
||||
# Fail out if any setups fail
|
||||
set -e
|
||||
|
||||
# Delete old Pythons
|
||||
rm -rf $AGENT_TOOLSDIRECTORY/Python/2.7.16
|
||||
rm -rf $AGENT_TOOLSDIRECTORY/Python/3.5.7
|
||||
rm -rf $AGENT_TOOLSDIRECTORY/Python/3.7.3
|
||||
[ -e $AGENT_TOOLSDIRECTORY/Python/3.7.2 ] && [ -e $AGENT_TOOLSDIRECTORY/Python/3.5.5 ] && [ -e $AGENT_TOOLSDIRECTORY/Python/2.7.15 ] && exit 0
|
||||
# Download new Pythons
|
||||
azcopy --recursive \
|
||||
--source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux/Python/2.7.15 \
|
||||
--destination $AGENT_TOOLSDIRECTORY/Python/2.7.15
|
||||
|
||||
azcopy --recursive \
|
||||
--source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux/Python/3.5.5 \
|
||||
--destination $AGENT_TOOLSDIRECTORY/Python/3.5.5
|
||||
|
||||
azcopy --recursive \
|
||||
--source https://vstsagenttools.blob.core.windows.net/tools/hostedtoolcache/linux/Python/3.7.2 \
|
||||
--destination $AGENT_TOOLSDIRECTORY/Python/3.7.2
|
||||
|
||||
# Install new Pythons
|
||||
original_directory=$PWD
|
||||
setups=$(find $AGENT_TOOLSDIRECTORY/Python -name setup.sh)
|
||||
for setup in $setups; do
|
||||
chmod +x $setup;
|
||||
cd $(dirname $setup);
|
||||
./$(basename $setup);
|
||||
cd $original_directory;
|
||||
done;
|
||||
displayName: 'Workaround: roll back Python versions'
|
||||
@@ -0,0 +1,14 @@
|
||||
parameters:
|
||||
python_version: ''
|
||||
|
||||
steps:
|
||||
- script: |
|
||||
# Fix Git SSL errors
|
||||
echo "Using pipenv python version: $(PIPENV_DEFAULT_PYTHON_VERSION)"
|
||||
git submodule sync && git submodule update --init --recursive
|
||||
pipenv run pytest --junitxml=test-results.xml
|
||||
displayName: Run integration tests
|
||||
env:
|
||||
PYTHONWARNINGS: ignore:DEPRECATION
|
||||
PIPENV_NOSPIN: '1'
|
||||
PIPENV_DEFAULT_PYTHON_VERSION: ${{ parameters.python_version }}
|
||||
@@ -0,0 +1,21 @@
|
||||
parameters:
|
||||
python_version: ''
|
||||
|
||||
steps:
|
||||
- powershell: |
|
||||
subst T: "$env:TEMP"
|
||||
Write-Host "##vso[task.setvariable variable=TEMP]T:\"
|
||||
Write-Host "##vso[task.setvariable variable=TMP]T:\"
|
||||
Write-Host "##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]$env:PYTHON_VERSION"
|
||||
Write-Host "##vso[task.setvariable variable=PIPENV_NOSPIN]1"
|
||||
displayName: Fix Temp Variable
|
||||
env:
|
||||
PYTHON_VERSION: ${{ parameters.python_version }}
|
||||
|
||||
- script: |
|
||||
git submodule sync && git submodule update --init --recursive
|
||||
pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests
|
||||
displayName: Run integration tests
|
||||
env:
|
||||
PYTHONWARNINGS: 'ignore:DEPRECATION'
|
||||
PIPENV_NOSPIN: '1'
|
||||
@@ -1,21 +1,30 @@
|
||||
steps:
|
||||
- powershell: |
|
||||
# Fix Git SSL errors
|
||||
pip install certifi
|
||||
python -m certifi > cacert.txt
|
||||
Write-Host "##vso[task.setvariable variable=GIT_SSL_CAINFO]$(Get-Content cacert.txt)"
|
||||
$env:GIT_SSL_CAINFO="$(Get-Content cacert.txt)"
|
||||
# Shorten paths to get under MAX_PATH or else integration tests will fail
|
||||
# https://bugs.python.org/issue18199
|
||||
subst T: "$env:TEMP"
|
||||
Write-Host "##vso[task.setvariable variable=TEMP]T:\"
|
||||
$env:TEMP='T:\'
|
||||
Write-Host "##vso[task.setvariable variable=TMP]T:\"
|
||||
$env:TMP='T:\'
|
||||
git submodule sync
|
||||
git submodule update --init --recursive
|
||||
D:\.venv\Scripts\pipenv run pytest -ra --ignore=pipenv\patched --ignore=pipenv\vendor --junitxml=test-results.xml tests
|
||||
displayName: Run integration tests
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: $(python.version)
|
||||
architecture: '$(python.architecture)'
|
||||
addToPath: true
|
||||
displayName: Use Python $(python.version)
|
||||
|
||||
- template: install-dependencies.yml
|
||||
|
||||
- script: |
|
||||
echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version)
|
||||
env:
|
||||
PYTHON_VERSION: $(python.version)
|
||||
|
||||
- template: create-virtualenv.yml
|
||||
parameters:
|
||||
python_version: $(python.version)
|
||||
|
||||
- ${{ if eq(parameters.vmImage, 'windows-2019') }}:
|
||||
- template: run-tests-windows.yml
|
||||
parameters:
|
||||
python_version: $(python.version)
|
||||
- ${{ if ne(parameters.vmImage, 'windows-2019') }}:
|
||||
- template: run-tests-linux.yml
|
||||
parameters:
|
||||
python_version: $(python.version)
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Test Results
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
parameters:
|
||||
python_version: ''
|
||||
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: $(python.version)
|
||||
architecture: '$(python.architecture)'
|
||||
addToPath: true
|
||||
displayName: Use Python $(python.version)
|
||||
|
||||
- template: install-dependencies.yml
|
||||
|
||||
- script: |
|
||||
echo '##vso[task.setvariable variable=PIPENV_DEFAULT_PYTHON_VERSION]'$(python.version)
|
||||
env:
|
||||
PYTHON_VERSION: $(python.version)
|
||||
|
||||
- template: create-virtualenv.yml
|
||||
parameters:
|
||||
python_version: $(python.version)
|
||||
|
||||
- script: |
|
||||
python -m pip install --upgrade invoke requests parver bs4 vistir towncrier pip setuptools wheel --upgrade-strategy=eager
|
||||
python -m invoke vendoring.update
|
||||
displayName: Run Vendor Scripts
|
||||
env:
|
||||
PY_EXE: $(PY_EXE)
|
||||
GIT_SSL_CAINFO: $(GIT_SSL_CAINFO)
|
||||
LANG: $(LANG)
|
||||
PIPENV_DEFAULT_PYTHON_VERSION: '${{ parameters.python_version }}'
|
||||
PYTHONWARNINGS: ignore:DEPRECATION
|
||||
PIPENV_NOSPIN: '1'
|
||||
@@ -1,23 +0,0 @@
|
||||
name: Pipenv Build Rules
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
paths:
|
||||
exclude:
|
||||
- docs/*
|
||||
- news/*
|
||||
- README.md
|
||||
- pipenv/*.txt
|
||||
- CHANGELOG.rst
|
||||
- CONTRIBUTING.md
|
||||
- CODE_OF_CONDUCT.md
|
||||
- .gitignore
|
||||
- .gitattributes
|
||||
- .editorconfig
|
||||
|
||||
jobs:
|
||||
- template: jobs/test.yml
|
||||
parameters:
|
||||
vmImage: vs2017-win2016
|
||||
@@ -5,7 +5,7 @@ about: Create a report to help us improve
|
||||
|
||||
Be sure to check the existing issues (both open and closed!), and make sure you are running the latest version of Pipenv.
|
||||
|
||||
Check the [diagnose documentation](https://docs.pipenv.org/diagnose/) for common issues before posting! We may close your issue if it is very similar to one of them. Please be considerate, or be on your way.
|
||||
Check the [diagnose documentation](https://docs.pipenv.org/en/latest/diagnose/) for common issues before posting! We may close your issue if it is very similar to one of them. Please be considerate, or be on your way.
|
||||
|
||||
Make sure to mention your debugging experience if the documented solution failed.
|
||||
|
||||
|
||||
+14
@@ -145,6 +145,10 @@ venv.bak/
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
# Temporarily generating these with pytype locally for type safety
|
||||
typeshed/
|
||||
pytype.cfg
|
||||
|
||||
### Python Patch ###
|
||||
.venv/
|
||||
|
||||
@@ -153,3 +157,13 @@ venv.bak/
|
||||
|
||||
# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)
|
||||
.vs/slnx.sqlite
|
||||
|
||||
# mypy/typing section
|
||||
typeshed/
|
||||
.dmypy.json
|
||||
mypyhtml/
|
||||
XDG_CACHE_HOME/
|
||||
snap/
|
||||
prime/
|
||||
stage/
|
||||
pip-wheel-metadata/
|
||||
|
||||
+16
-1
@@ -6,10 +6,25 @@
|
||||
url = https://github.com/pinax/pinax.git
|
||||
[submodule "tests/test_artifacts/git/requests"]
|
||||
path = tests/test_artifacts/git/requests
|
||||
url = https://github.com/requests/requests.git
|
||||
url = https://github.com/kennethreitz/requests.git
|
||||
[submodule "tests/test_artifacts/git/six"]
|
||||
path = tests/test_artifacts/git/six
|
||||
url = https://github.com/benjaminp/six.git
|
||||
[submodule "tests/test_artifacts/git/dateutil"]
|
||||
path = tests/test_artifacts/git/dateutil
|
||||
url = https://github.com/dateutil/dateutil
|
||||
[submodule "tests/test_artifacts/git/pyinstaller"]
|
||||
path = tests/test_artifacts/git/pyinstaller
|
||||
url = https://github.com/pyinstaller/pyinstaller.git
|
||||
[submodule "tests/test_artifacts/git/jinja2"]
|
||||
path = tests/test_artifacts/git/jinja2
|
||||
url = https://github.com/pallets/jinja.git
|
||||
[submodule "tests/test_artifacts/git/flask"]
|
||||
path = tests/test_artifacts/git/flask
|
||||
url = https://github.com/pallets/flask.git
|
||||
[submodule "tests/test_artifacts/git/requests-2.18.4"]
|
||||
path = tests/test_artifacts/git/requests-2.18.4
|
||||
url = https://github.com/kennethreitz/requests
|
||||
[submodule "tests/pypi"]
|
||||
path = tests/pypi
|
||||
url = https://github.com/sarugaku/pipenv-test-artifacts.git
|
||||
|
||||
@@ -1,50 +0,0 @@
|
||||
2018.7.1.dev0 (2018-07-15)
|
||||
==========================
|
||||
|
||||
|
||||
Features & Improvements
|
||||
-----------------------
|
||||
|
||||
- Updated test-pypi addon to better support json-api access (forward compatibility).
|
||||
Improved testing process for new contributors. `#2568 <https://github.com/pypa/pipenv/issues/2568>`_
|
||||
|
||||
|
||||
Behavior Changes
|
||||
----------------
|
||||
|
||||
- Virtual environment activation for ``run`` is revised to improve interpolation
|
||||
with other Python discovery tools. `#2503 <https://github.com/pypa/pipenv/issues/2503>`_
|
||||
|
||||
- Improve terminal coloring to display better in Powershell. `#2511 <https://github.com/pypa/pipenv/issues/2511>`_
|
||||
|
||||
- Invoke ``virtualenv`` directly for virtual environment creation, instead of depending on ``pew``. `#2518 <https://github.com/pypa/pipenv/issues/2518>`_
|
||||
|
||||
- ``pipenv --help`` will now include short help descriptions. `#2542 <https://github.com/pypa/pipenv/issues/2542>`_
|
||||
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
- Fix subshell invocation on Windows for Python 2. `#2515 <https://github.com/pypa/pipenv/issues/2515>`_
|
||||
|
||||
- Fixed a bug which sometimes caused pipenv to throw a ``TypeError`` or to run into encoding issues when writing lockfiles on python 2. `#2561 <https://github.com/pypa/pipenv/issues/2561>`_
|
||||
|
||||
- Improve quoting logic for ``pipenv run`` so it works better with Windows
|
||||
built-in commands. `#2563 <https://github.com/pypa/pipenv/issues/2563>`_
|
||||
|
||||
- Fixed a bug related to parsing vcs requirements with both extras and subdirectory fragments.
|
||||
Corrected an issue in the ``requirementslib`` parser which led to some markers being discarded rather than evaluated. `#2564 <https://github.com/pypa/pipenv/issues/2564>`_
|
||||
|
||||
|
||||
Vendored Libraries
|
||||
------------------
|
||||
|
||||
- Pew is no longer vendored. Entry point ``pewtwo``, packages ``pipenv.pew`` and
|
||||
``pipenv.patched.pew`` are removed. `#2521 <https://github.com/pypa/pipenv/issues/2521>`_
|
||||
|
||||
|
||||
Improved Documentation
|
||||
----------------------
|
||||
|
||||
- Simplified the test configuration process. `#2568 <https://github.com/pypa/pipenv/issues/2568>`_
|
||||
|
||||
+136
-101
@@ -1,3 +1,39 @@
|
||||
2018.11.26 (2018-11-26)
|
||||
=======================
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
- Environment variables are expanded correctly before running scripts on POSIX. `#3178 <https://github.com/pypa/pipenv/issues/3178>`_
|
||||
- Pipenv will no longer disable user-mode installation when the ``--system`` flag is passed in. `#3222 <https://github.com/pypa/pipenv/issues/3222>`_
|
||||
- Fixed an issue with attempting to render unicode output in non-unicode locales. `#3223 <https://github.com/pypa/pipenv/issues/3223>`_
|
||||
- Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files. `#3224 <https://github.com/pypa/pipenv/issues/3224>`_
|
||||
- Fixed an issue which prevented the parsing of named extras sections from certain ``setup.py`` files. `#3230 <https://github.com/pypa/pipenv/issues/3230>`_
|
||||
- Correctly detect the virtualenv location inside an activated virtualenv. `#3231 <https://github.com/pypa/pipenv/issues/3231>`_
|
||||
- Fixed a bug which caused spinner frames to be written to stdout during locking operations which could cause redirection pipes to fail. `#3239 <https://github.com/pypa/pipenv/issues/3239>`_
|
||||
- Fixed a bug that editable pacakges can't be uninstalled correctly. `#3240 <https://github.com/pypa/pipenv/issues/3240>`_
|
||||
- Corrected an issue with installation timeouts which caused dependency resolution to fail for longer duration resolution steps. `#3244 <https://github.com/pypa/pipenv/issues/3244>`_
|
||||
- Adding normal pep 508 compatible markers is now fully functional when using VCS dependencies. `#3249 <https://github.com/pypa/pipenv/issues/3249>`_
|
||||
- Updated ``requirementslib`` and ``pythonfinder`` for multiple bugfixes. `#3254 <https://github.com/pypa/pipenv/issues/3254>`_
|
||||
- Pipenv will now ignore hashes when installing with ``--skip-lock``. `#3255 <https://github.com/pypa/pipenv/issues/3255>`_
|
||||
- Fixed an issue where pipenv could crash when multiple pipenv processes attempted to create the same directory. `#3257 <https://github.com/pypa/pipenv/issues/3257>`_
|
||||
- Fixed an issue which sometimes prevented successful creation of project pipfiles. `#3260 <https://github.com/pypa/pipenv/issues/3260>`_
|
||||
- ``pipenv install`` will now unset the ``PYTHONHOME`` environment variable when not combined with ``--system``. `#3261 <https://github.com/pypa/pipenv/issues/3261>`_
|
||||
- Pipenv will ensure that warnings do not interfere with the resolution process by suppressing warnings' usage of standard output and writing to standard error instead. `#3273 <https://github.com/pypa/pipenv/issues/3273>`_
|
||||
- Fixed an issue which prevented variables from the environment, such as ``PIPENV_DEV`` or ``PIPENV_SYSTEM``, from being parsed and implemented correctly. `#3278 <https://github.com/pypa/pipenv/issues/3278>`_
|
||||
- Clear pythonfinder cache after Python install. `#3287 <https://github.com/pypa/pipenv/issues/3287>`_
|
||||
- Fixed a race condition in hash resolution for dependencies for certain dependencies with missing cache entries or fresh Pipenv installs. `#3289 <https://github.com/pypa/pipenv/issues/3289>`_
|
||||
- Pipenv will now respect top-level pins over VCS dependency locks. `#3296 <https://github.com/pypa/pipenv/issues/3296>`_
|
||||
|
||||
Vendored Libraries
|
||||
------------------
|
||||
|
||||
- Update vendored dependencies to resolve resolution output parsing and python finding:
|
||||
- ``pythonfinder 1.1.9 -> 1.1.10``
|
||||
- ``requirementslib 1.3.1 -> 1.3.3``
|
||||
- ``vistir 0.2.3 -> 0.2.5`` `#3280 <https://github.com/pypa/pipenv/issues/3280>`_
|
||||
|
||||
|
||||
2018.11.14 (2018-11-14)
|
||||
=======================
|
||||
|
||||
@@ -91,33 +127,33 @@ Bug Fixes
|
||||
---------
|
||||
|
||||
- Fixed a bug in ``pipenv clean`` which caused global packages to sometimes be inadvertently targeted for cleanup. `#2849 <https://github.com/pypa/pipenv/issues/2849>`_
|
||||
|
||||
|
||||
- Fix broken backport imports for vendored vistir. `#2950 <https://github.com/pypa/pipenv/issues/2950>`_,
|
||||
`#2955 <https://github.com/pypa/pipenv/issues/2955>`_,
|
||||
`#2961 <https://github.com/pypa/pipenv/issues/2961>`_
|
||||
|
||||
|
||||
- Fixed a bug with importing local vendored dependencies when running ``pipenv graph``. `#2952 <https://github.com/pypa/pipenv/issues/2952>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused executable discovery to fail when running inside a virtualenv. `#2957 <https://github.com/pypa/pipenv/issues/2957>`_
|
||||
|
||||
|
||||
- Fix parsing of outline tables. `#2971 <https://github.com/pypa/pipenv/issues/2971>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused ``verify_ssl`` to fail to drop through to ``pip install`` correctly as ``trusted-host``. `#2979 <https://github.com/pypa/pipenv/issues/2979>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused canonicalized package names to fail to resolve against PyPI. `#2989 <https://github.com/pypa/pipenv/issues/2989>`_
|
||||
|
||||
|
||||
- Enhanced CI detection to detect Azure Devops builds. `#2993 <https://github.com/pypa/pipenv/issues/2993>`_
|
||||
|
||||
|
||||
- Fixed a bug which prevented installing pinned versions which used redirection symbols from the command line. `#2998 <https://github.com/pypa/pipenv/issues/2998>`_
|
||||
|
||||
|
||||
- Fixed a bug which prevented installing the local directory in non-editable mode. `#3005 <https://github.com/pypa/pipenv/issues/3005>`_
|
||||
|
||||
|
||||
|
||||
Vendored Libraries
|
||||
------------------
|
||||
|
||||
- Updated ``requirementslib`` to version ``1.1.9``. `#2989 <https://github.com/pypa/pipenv/issues/2989>`_
|
||||
|
||||
|
||||
- Upgraded ``pythonfinder => 1.1.1`` and ``vistir => 0.1.7``. `#3007 <https://github.com/pypa/pipenv/issues/3007>`_
|
||||
|
||||
|
||||
@@ -129,55 +165,55 @@ Features & Improvements
|
||||
|
||||
- Added environment variables `PIPENV_VERBOSE` and `PIPENV_QUIET` to control
|
||||
output verbosity without needing to pass options. `#2527 <https://github.com/pypa/pipenv/issues/2527>`_
|
||||
|
||||
|
||||
- Updated test-pypi addon to better support json-api access (forward compatibility).
|
||||
Improved testing process for new contributors. `#2568 <https://github.com/pypa/pipenv/issues/2568>`_
|
||||
|
||||
|
||||
- Greatly enhanced python discovery functionality:
|
||||
|
||||
- Added pep514 (windows launcher/finder) support for python discovery.
|
||||
- Introduced architecture discovery for python installations which support different architectures. `#2582 <https://github.com/pypa/pipenv/issues/2582>`_
|
||||
|
||||
|
||||
- Added support for ``pipenv shell`` on msys and cygwin/mingw/git bash for Windows. `#2641 <https://github.com/pypa/pipenv/issues/2641>`_
|
||||
|
||||
|
||||
- Enhanced resolution of editable and VCS dependencies. `#2643 <https://github.com/pypa/pipenv/issues/2643>`_
|
||||
|
||||
|
||||
- Deduplicate and refactor CLI to use stateful arguments and object passing. See `this issue <https://github.com/pallets/click/issues/108>`_ for reference. `#2814 <https://github.com/pypa/pipenv/issues/2814>`_
|
||||
|
||||
|
||||
|
||||
Behavior Changes
|
||||
----------------
|
||||
|
||||
- Virtual environment activation for ``run`` is revised to improve interpolation
|
||||
with other Python discovery tools. `#2503 <https://github.com/pypa/pipenv/issues/2503>`_
|
||||
|
||||
|
||||
- Improve terminal coloring to display better in Powershell. `#2511 <https://github.com/pypa/pipenv/issues/2511>`_
|
||||
|
||||
|
||||
- Invoke ``virtualenv`` directly for virtual environment creation, instead of depending on ``pew``. `#2518 <https://github.com/pypa/pipenv/issues/2518>`_
|
||||
|
||||
|
||||
- ``pipenv --help`` will now include short help descriptions. `#2542 <https://github.com/pypa/pipenv/issues/2542>`_
|
||||
|
||||
|
||||
- Add ``COMSPEC`` to fallback option (along with ``SHELL`` and ``PYENV_SHELL``)
|
||||
if shell detection fails, improving robustness on Windows. `#2651 <https://github.com/pypa/pipenv/issues/2651>`_
|
||||
|
||||
|
||||
- Fallback to shell mode if `run` fails with Windows error 193 to handle non-executable commands. This should improve usability on Windows, where some users run non-executable files without specifying a command, relying on Windows file association to choose the current command. `#2718 <https://github.com/pypa/pipenv/issues/2718>`_
|
||||
|
||||
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
- Fixed a bug which prevented installation of editable requirements using ``ssh://`` style urls `#1393 <https://github.com/pypa/pipenv/issues/1393>`_
|
||||
|
||||
|
||||
- VCS Refs for locked local editable dependencies will now update appropriately to the latest hash when running ``pipenv update``. `#1690 <https://github.com/pypa/pipenv/issues/1690>`_
|
||||
|
||||
|
||||
- ``.tar.gz`` and ``.zip`` artifacts will now have dependencies installed even when they are missing from the lockfile. `#2173 <https://github.com/pypa/pipenv/issues/2173>`_
|
||||
|
||||
|
||||
- The command line parser will now handle multiple ``-e/--editable`` dependencies properly via click's option parser to help mitigate future parsing issues. `#2279 <https://github.com/pypa/pipenv/issues/2279>`_
|
||||
|
||||
|
||||
- Fixed the ability of pipenv to parse ``dependency_links`` from ``setup.py`` when ``PIP_PROCESS_DEPENDENCY_LINKS`` is enabled. `#2434 <https://github.com/pypa/pipenv/issues/2434>`_
|
||||
|
||||
|
||||
- Fixed a bug which could cause ``-i/--index`` arguments to sometimes be incorrectly picked up in packages. This is now handled in the command line parser. `#2494 <https://github.com/pypa/pipenv/issues/2494>`_
|
||||
|
||||
|
||||
- Fixed non-deterministic resolution issues related to changes to the internal package finder in ``pip 10``. `#2499 <https://github.com/pypa/pipenv/issues/2499>`_,
|
||||
`#2529 <https://github.com/pypa/pipenv/issues/2529>`_,
|
||||
`#2589 <https://github.com/pypa/pipenv/issues/2589>`_,
|
||||
@@ -191,51 +227,51 @@ Bug Fixes
|
||||
`#2879 <https://github.com/pypa/pipenv/issues/2879>`_,
|
||||
`#2894 <https://github.com/pypa/pipenv/issues/2894>`_,
|
||||
`#2933 <https://github.com/pypa/pipenv/issues/2933>`_
|
||||
|
||||
|
||||
- Fix subshell invocation on Windows for Python 2. `#2515 <https://github.com/pypa/pipenv/issues/2515>`_
|
||||
|
||||
|
||||
- Fixed a bug which sometimes caused pipenv to throw a ``TypeError`` or to run into encoding issues when writing lockfiles on python 2. `#2561 <https://github.com/pypa/pipenv/issues/2561>`_
|
||||
|
||||
|
||||
- Improve quoting logic for ``pipenv run`` so it works better with Windows
|
||||
built-in commands. `#2563 <https://github.com/pypa/pipenv/issues/2563>`_
|
||||
|
||||
|
||||
- Fixed a bug related to parsing vcs requirements with both extras and subdirectory fragments.
|
||||
Corrected an issue in the ``requirementslib`` parser which led to some markers being discarded rather than evaluated. `#2564 <https://github.com/pypa/pipenv/issues/2564>`_
|
||||
|
||||
|
||||
- Fixed multiple issues with finding the correct system python locations. `#2582 <https://github.com/pypa/pipenv/issues/2582>`_
|
||||
|
||||
|
||||
- Catch JSON decoding error to prevent exception when the lock file is of
|
||||
invalid format. `#2607 <https://github.com/pypa/pipenv/issues/2607>`_
|
||||
|
||||
|
||||
- Fixed a rare bug which could sometimes cause errors when installing packages with custom sources. `#2610 <https://github.com/pypa/pipenv/issues/2610>`_
|
||||
|
||||
|
||||
- Update requirementslib to fix a bug which could raise an ``UnboundLocalError`` when parsing malformed VCS URIs. `#2617 <https://github.com/pypa/pipenv/issues/2617>`_
|
||||
|
||||
|
||||
- Fixed an issue which prevented passing multiple ``--ignore`` parameters to ``pipenv check``. `#2632 <https://github.com/pypa/pipenv/issues/2632>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused attempted hashing of ``ssh://`` style URIs which could cause failures during installation of private ssh repositories.
|
||||
- Corrected path conversion issues which caused certain editable VCS paths to be converted to ``ssh://`` URIs improperly. `#2639 <https://github.com/pypa/pipenv/issues/2639>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused paths to be formatted incorrectly when using ``pipenv shell`` in bash for windows. `#2641 <https://github.com/pypa/pipenv/issues/2641>`_
|
||||
|
||||
|
||||
- Dependency links to private repositories defined via ``ssh://`` schemes will now install correctly and skip hashing as long as ``PIP_PROCESS_DEPENDENCY_LINKS=1``. `#2643 <https://github.com/pypa/pipenv/issues/2643>`_
|
||||
|
||||
|
||||
- Fixed a bug which sometimes caused pipenv to parse the ``trusted_host`` argument to pip incorrectly when parsing source URLs which specify ``verify_ssl = false``. `#2656 <https://github.com/pypa/pipenv/issues/2656>`_
|
||||
|
||||
|
||||
- Prevent crashing when a virtual environment in ``WORKON_HOME`` is faulty. `#2676 <https://github.com/pypa/pipenv/issues/2676>`_
|
||||
|
||||
|
||||
- Fixed virtualenv creation failure when a .venv file is present in the project root. `#2680 <https://github.com/pypa/pipenv/issues/2680>`_
|
||||
|
||||
|
||||
- Fixed a bug which could cause the ``-e/--editable`` argument on a dependency to be accidentally parsed as a dependency itself. `#2714 <https://github.com/pypa/pipenv/issues/2714>`_
|
||||
|
||||
|
||||
- Correctly pass `verbose` and `debug` flags to the resolver subprocess so it generates appropriate output. This also resolves a bug introduced by the fix to #2527. `#2732 <https://github.com/pypa/pipenv/issues/2732>`_
|
||||
|
||||
|
||||
- All markers are now included in ``pipenv lock --requirements`` output. `#2748 <https://github.com/pypa/pipenv/issues/2748>`_
|
||||
|
||||
|
||||
- Fixed a bug in marker resolution which could cause duplicate and non-deterministic markers. `#2760 <https://github.com/pypa/pipenv/issues/2760>`_
|
||||
|
||||
|
||||
- Fixed a bug in the dependency resolver which caused regular issues when handling ``setup.py`` based dependency resolution. `#2766 <https://github.com/pypa/pipenv/issues/2766>`_
|
||||
|
||||
|
||||
- Updated vendored dependencies:
|
||||
- ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibilty)
|
||||
- ``pip 10.0.1 => 18.0``
|
||||
@@ -257,24 +293,24 @@ Bug Fixes
|
||||
- ``vistir 0.1.4 => 0.1.6`` `#2802 <https://github.com/pypa/pipenv/issues/2802>`_,
|
||||
`#2867 <https://github.com/pypa/pipenv/issues/2867>`_,
|
||||
`#2880 <https://github.com/pypa/pipenv/issues/2880>`_
|
||||
|
||||
|
||||
- Fixed a bug where `pipenv` crashes when the `WORKON_HOME` directory does not exist. `#2877 <https://github.com/pypa/pipenv/issues/2877>`_
|
||||
|
||||
|
||||
- Fixed pip is not loaded from pipenv's patched one but the system one `#2912 <https://github.com/pypa/pipenv/issues/2912>`_
|
||||
|
||||
|
||||
- Fixed various bugs related to ``pip 18.1`` release which prevented locking, installation, and syncing, and dumping to a ``requirements.txt`` file. `#2924 <https://github.com/pypa/pipenv/issues/2924>`_
|
||||
|
||||
|
||||
|
||||
Vendored Libraries
|
||||
------------------
|
||||
|
||||
- Pew is no longer vendored. Entry point ``pewtwo``, packages ``pipenv.pew`` and
|
||||
``pipenv.patched.pew`` are removed. `#2521 <https://github.com/pypa/pipenv/issues/2521>`_
|
||||
|
||||
|
||||
- Update ``pythonfinder`` to major release ``1.0.0`` for integration. `#2582 <https://github.com/pypa/pipenv/issues/2582>`_
|
||||
|
||||
|
||||
- Update requirementslib to fix a bug which could raise an ``UnboundLocalError`` when parsing malformed VCS URIs. `#2617 <https://github.com/pypa/pipenv/issues/2617>`_
|
||||
|
||||
|
||||
- - Vendored new libraries ``vistir`` and ``pip-shims``, ``tomlkit``, ``modutil``, and ``plette``.
|
||||
|
||||
- Update vendored libraries:
|
||||
@@ -289,7 +325,7 @@ Vendored Libraries
|
||||
- ``pythonfinder`` to ``1.0.2``
|
||||
- ``pipdeptree`` to ``0.13.0``
|
||||
- ``python-dotenv`` to ``0.9.1`` `#2639 <https://github.com/pypa/pipenv/issues/2639>`_
|
||||
|
||||
|
||||
- Updated vendored dependencies:
|
||||
- ``pip-tools`` (updated and patched to latest w/ ``pip 18.0`` compatibilty)
|
||||
- ``pip 10.0.1 => 18.0``
|
||||
@@ -310,31 +346,31 @@ Vendored Libraries
|
||||
- ``tomlkit 0.4.2 => 0.4.4``
|
||||
- ``vistir 0.1.4 => 0.1.6`` `#2902 <https://github.com/pypa/pipenv/issues/2902>`_,
|
||||
`#2935 <https://github.com/pypa/pipenv/issues/2935>`_
|
||||
|
||||
|
||||
|
||||
Improved Documentation
|
||||
----------------------
|
||||
|
||||
- Simplified the test configuration process. `#2568 <https://github.com/pypa/pipenv/issues/2568>`_
|
||||
|
||||
|
||||
- Updated documentation to use working fortune cookie addon. `#2644 <https://github.com/pypa/pipenv/issues/2644>`_
|
||||
|
||||
|
||||
- Added additional information about troubleshooting ``pipenv shell`` by using the the ``$PIPENV_SHELL`` environment variable. `#2671 <https://github.com/pypa/pipenv/issues/2671>`_
|
||||
|
||||
|
||||
- Added a link to ``PEP-440`` version specifiers in the documentation for additional detail. `#2674 <https://github.com/pypa/pipenv/issues/2674>`_
|
||||
|
||||
|
||||
- Added simple example to README.md for installing from git. `#2685 <https://github.com/pypa/pipenv/issues/2685>`_
|
||||
|
||||
|
||||
- Stopped recommending `--system` for Docker contexts. `#2762 <https://github.com/pypa/pipenv/issues/2762>`_
|
||||
|
||||
|
||||
- Fixed the example url for doing "pipenv install -e
|
||||
some-repo-url#egg=something", it was missing the "egg=" in the fragment
|
||||
identifier. `#2792 <https://github.com/pypa/pipenv/issues/2792>`_
|
||||
|
||||
|
||||
- Fixed link to the "be cordial" essay in the contribution documentation. `#2793 <https://github.com/pypa/pipenv/issues/2793>`_
|
||||
|
||||
|
||||
- Clarify `pipenv install` documentation `#2844 <https://github.com/pypa/pipenv/issues/2844>`_
|
||||
|
||||
|
||||
- Replace reference to uservoice with PEEP-000 `#2909 <https://github.com/pypa/pipenv/issues/2909>`_
|
||||
|
||||
|
||||
@@ -345,73 +381,73 @@ Features & Improvements
|
||||
-----------------------
|
||||
|
||||
- All calls to ``pipenv shell`` are now implemented from the ground up using `shellingham <https://github.com/sarugaku/shellingham>`_, a custom library which was purpose built to handle edge cases and shell detection. `#2371 <https://github.com/pypa/pipenv/issues/2371>`_
|
||||
|
||||
|
||||
- Added support for python 3.7 via a few small compatibility / bugfixes. `#2427 <https://github.com/pypa/pipenv/issues/2427>`_,
|
||||
`#2434 <https://github.com/pypa/pipenv/issues/2434>`_,
|
||||
`#2436 <https://github.com/pypa/pipenv/issues/2436>`_
|
||||
|
||||
|
||||
- Added new flag ``pipenv --support`` to replace the diagnostic command ``python -m pipenv.help``. `#2477 <https://github.com/pypa/pipenv/issues/2477>`_,
|
||||
`#2478 <https://github.com/pypa/pipenv/issues/2478>`_
|
||||
|
||||
|
||||
- Improved import times and CLI runtimes with minor tweaks. `#2485 <https://github.com/pypa/pipenv/issues/2485>`_
|
||||
|
||||
|
||||
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
- Fixed an ongoing bug which sometimes resolved incompatible versions into lockfiles. `#1901 <https://github.com/pypa/pipenv/issues/1901>`_
|
||||
|
||||
|
||||
- Fixed a bug which caused errors when creating virtualenvs which contained leading dash characters. `#2415 <https://github.com/pypa/pipenv/issues/2415>`_
|
||||
|
||||
|
||||
- Fixed a logic error which caused ``--deploy --system`` to overwrite editable vcs packages in the pipfile before installing, which caused any installation to fail by default. `#2417 <https://github.com/pypa/pipenv/issues/2417>`_
|
||||
|
||||
|
||||
- Updated requirementslib to fix an issue with properly quoting markers in VCS requirements. `#2419 <https://github.com/pypa/pipenv/issues/2419>`_
|
||||
|
||||
|
||||
- Installed new vendored jinja2 templates for ``click-completion`` which were causing template errors for users with completion enabled. `#2422 <https://github.com/pypa/pipenv/issues/2422>`_
|
||||
|
||||
|
||||
- Added support for python 3.7 via a few small compatibility / bugfixes. `#2427 <https://github.com/pypa/pipenv/issues/2427>`_
|
||||
|
||||
|
||||
- Fixed an issue reading package names from ``setup.py`` files in projects which imported utilities such as ``versioneer``. `#2433 <https://github.com/pypa/pipenv/issues/2433>`_
|
||||
|
||||
|
||||
- Pipenv will now ensure that its internal package names registry files are written with unicode strings. `#2450 <https://github.com/pypa/pipenv/issues/2450>`_
|
||||
|
||||
|
||||
- Fixed a bug causing requirements input as relative paths to be output as absolute paths or URIs.
|
||||
Fixed a bug affecting normalization of ``git+git@host`` uris. `#2453 <https://github.com/pypa/pipenv/issues/2453>`_
|
||||
|
||||
|
||||
- Pipenv will now always use ``pathlib2`` for ``Path`` based filesystem interactions by default on ``python<3.5``. `#2454 <https://github.com/pypa/pipenv/issues/2454>`_
|
||||
|
||||
|
||||
- Fixed a bug which prevented passing proxy PyPI indexes set with ``--pypi-mirror`` from being passed to pip during virtualenv creation, which could cause the creation to freeze in some cases. `#2462 <https://github.com/pypa/pipenv/issues/2462>`_
|
||||
|
||||
|
||||
- Using the ``python -m pipenv.help`` command will now use proper encoding for the host filesystem to avoid encoding issues. `#2466 <https://github.com/pypa/pipenv/issues/2466>`_
|
||||
|
||||
|
||||
- The new ``jinja2`` templates for ``click_completion`` will now be included in pipenv source distributions. `#2479 <https://github.com/pypa/pipenv/issues/2479>`_
|
||||
|
||||
|
||||
- Resolved a long-standing issue with re-using previously generated ``InstallRequirement`` objects for resolution which could cause ``PKG-INFO`` file information to be deleted, raising a ``TypeError``. `#2480 <https://github.com/pypa/pipenv/issues/2480>`_
|
||||
|
||||
|
||||
- Resolved an issue parsing usernames from private PyPI URIs in ``Pipfiles`` by updating ``requirementslib``. `#2484 <https://github.com/pypa/pipenv/issues/2484>`_
|
||||
|
||||
|
||||
|
||||
Vendored Libraries
|
||||
------------------
|
||||
|
||||
- All calls to ``pipenv shell`` are now implemented from the ground up using `shellingham <https://github.com/sarugaku/shellingham>`_, a custom library which was purpose built to handle edge cases and shell detection. `#2371 <https://github.com/pypa/pipenv/issues/2371>`_
|
||||
|
||||
|
||||
- Updated requirementslib to fix an issue with properly quoting markers in VCS requirements. `#2419 <https://github.com/pypa/pipenv/issues/2419>`_
|
||||
|
||||
|
||||
- Installed new vendored jinja2 templates for ``click-completion`` which were causing template errors for users with completion enabled. `#2422 <https://github.com/pypa/pipenv/issues/2422>`_
|
||||
|
||||
|
||||
- Add patch to ``prettytoml`` to support Python 3.7. `#2426 <https://github.com/pypa/pipenv/issues/2426>`_
|
||||
|
||||
|
||||
- Patched ``prettytoml.AbstractTable._enumerate_items`` to handle ``StopIteration`` errors in preparation of release of python 3.7. `#2427 <https://github.com/pypa/pipenv/issues/2427>`_
|
||||
|
||||
|
||||
- Fixed an issue reading package names from ``setup.py`` files in projects which imported utilities such as ``versioneer``. `#2433 <https://github.com/pypa/pipenv/issues/2433>`_
|
||||
|
||||
|
||||
- Updated ``requirementslib`` to version ``1.0.9`` `#2453 <https://github.com/pypa/pipenv/issues/2453>`_
|
||||
|
||||
|
||||
- Unraveled a lot of old, unnecessary patches to ``pip-tools`` which were causing non-deterministic resolution errors. `#2480 <https://github.com/pypa/pipenv/issues/2480>`_
|
||||
|
||||
|
||||
- Resolved an issue parsing usernames from private PyPI URIs in ``Pipfiles`` by updating ``requirementslib``. `#2484 <https://github.com/pypa/pipenv/issues/2484>`_
|
||||
|
||||
|
||||
|
||||
Improved Documentation
|
||||
----------------------
|
||||
@@ -576,11 +612,11 @@ Improved Documentation
|
||||
----------------------
|
||||
|
||||
- Update documentation wording to clarify Pipenv's overall role in the packaging ecosystem. `#2194 <https://github.com/pypa/pipenv/issues/2194>`_
|
||||
|
||||
|
||||
- Added contribution documentation and guidelines. `#2205 <https://github.com/pypa/pipenv/issues/2205>`_
|
||||
|
||||
|
||||
- Added instructions for supervisord compatibility. `#2215 <https://github.com/pypa/pipenv/issues/2215>`_
|
||||
|
||||
|
||||
- Fixed broken links to development philosophy and contribution documentation. `#2248 <https://github.com/pypa/pipenv/issues/2248>`_
|
||||
|
||||
|
||||
@@ -618,7 +654,6 @@ Vendored Libraries
|
||||
* certifi from version ``2018.1.16`` to ``2018.4.16``.
|
||||
* packaging from version ``16.8`` to ``17.1``.
|
||||
* six from version ``1.10.0`` to ``1.11.0``.
|
||||
* requirementslib from version ``0.2.0`` to ``1.0.1``.
|
||||
* requirementslib from version ``0.2.0`` to ``1.0.1``.
|
||||
|
||||
In addition, scandir was vendored and patched to avoid importing host system binaries when falling back to pathlib2. `#2368 <https://github.com/pypa/pipenv/issues/2368>`_
|
||||
|
||||
|
||||
+2
-4
@@ -2,7 +2,5 @@
|
||||
|
||||
Please see the [Contributing Guide](https://pipenv.readthedocs.io/en/latest/dev/contributing/).
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1. Read our [Contributor's Guide](https://docs.pipenv.org/en/latest/dev/contributing/).
|
||||
2. Understand our [development philosophy](https://docs.pipenv.org/en/latest/dev/philosophy/).
|
||||
|
||||
+3
-1
@@ -3,9 +3,11 @@ FROM heroku/heroku:18-build
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV LC_ALL C.UTF-8
|
||||
ENV LANG C.UTF-8
|
||||
# Python, don't write bytecode!
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
|
||||
# -- Install Pipenv:
|
||||
RUN apt update && apt upgrade -y && apt install python3.7-dev -y
|
||||
RUN apt update && apt upgrade -y && apt install python3.7-dev libffi-dev -y
|
||||
RUN curl --silent https://bootstrap.pypa.io/get-pip.py | python3.7
|
||||
|
||||
# Backwards compatility.
|
||||
|
||||
@@ -1,4 +1,50 @@
|
||||
get_venv_dir:=$(shell mktemp -d 2>/dev/null || mktemp -d -t 'tmpvenv')
|
||||
venv_dir := $(get_venv_dir)/pipenv_venv
|
||||
venv_file := $(CURDIR)/.test_venv
|
||||
get_venv_path =$(file < $(venv_file))
|
||||
|
||||
format:
|
||||
black pipenv/*.py
|
||||
test:
|
||||
docker-compose up
|
||||
|
||||
.PHONY: ramdisk
|
||||
ramdisk:
|
||||
sudo mkdir -p /mnt/ramdisk
|
||||
sudo mount -t tmpfs -o size=2g tmpfs /mnt/ramdisk
|
||||
sudo chown -R ${USER}:${USER} /mnt/ramdisk
|
||||
|
||||
.PHONY: ramdisk-virtualenv
|
||||
ramdisk-virtualenv: ramdisk
|
||||
[ ! -e "/mnt/ramdisk/.venv/bin/activate" ] && \
|
||||
python -m virtualenv /mnt/ramdisk/.venv
|
||||
@echo "/mnt/ramdisk/.venv" >> $(venv_file)
|
||||
|
||||
.PHONY: virtualenv
|
||||
virtualenv:
|
||||
[ ! -e $(venv_dir) ] && rm -rf $(venv_file) && python -m virtualenv $(venv_dir)
|
||||
@echo $(venv_dir) >> $(venv_file)
|
||||
|
||||
.PHONY: test-install
|
||||
test-install: virtualenv
|
||||
. $(get_venv_path)/bin/activate && \
|
||||
python -m pip install --upgrade pip virtualenv -e .[tests,dev] && \
|
||||
pipenv install --dev
|
||||
|
||||
.PHONY: submodules
|
||||
submodules:
|
||||
git submodule sync
|
||||
git submodule update --init --recursive
|
||||
|
||||
.PHONY: tests
|
||||
tests: virtualenv submodules test-install
|
||||
. $(get_venv_path)/bin/activate && \
|
||||
pipenv run pytest -ra -vvv --full-trace --tb=long
|
||||
|
||||
.PHONY: test-specific
|
||||
test-specific: submodules virtualenv test-install
|
||||
. $(get_venv_path)/bin/activate && pipenv run pytest -ra -k '$(tests)'
|
||||
|
||||
.PHONY: retest
|
||||
retest: virtualenv submodules test-install
|
||||
. $(get_venv_path)/bin/activate && pipenv run pytest -ra -k 'test_check_unused or test_install_editable_git_tag or test_get_vcs_refs or test_skip_requirements_when_pipfile or test_editable_vcs_install or test_basic_vcs_install or test_git_vcs_install or test_ssh_vcs_install or test_vcs_can_use_markers' -vvv --full-trace --tb=long
|
||||
|
||||
@@ -1,26 +1,13 @@
|
||||
[dev-packages]
|
||||
pipenv = {path = ".", editable = true}
|
||||
"flake8" = ">=3.3.0,<4"
|
||||
pytest = "*"
|
||||
mock = "*"
|
||||
sphinx = "<=1.5.5"
|
||||
twine = "*"
|
||||
pipenv = {path = ".", editable = true, extras = ["tests", "dev"]}
|
||||
sphinx-click = "*"
|
||||
pytest-xdist = "*"
|
||||
click = "*"
|
||||
pytest-pypy = {path = "./tests/pytest-pypi", editable = true}
|
||||
pytest-tap = "*"
|
||||
flaky = "*"
|
||||
pytest_pypi = {path = "./tests/pytest-pypi", editable = true}
|
||||
stdeb = {version="*", markers="sys_platform == 'linux'"}
|
||||
black = {version="*", markers="python_version >= '3.6'"}
|
||||
pytz = "*"
|
||||
towncrier = {git = "https://github.com/hawkowl/towncrier.git", editable = true, ref = "master"}
|
||||
parver = "*"
|
||||
invoke = "*"
|
||||
jedi = "*"
|
||||
isort = "*"
|
||||
rope = "*"
|
||||
passa = {editable = true, git = "https://github.com/sarugaku/passa.git"}
|
||||
passa = {git = "https://github.com/sarugaku/passa.git"}
|
||||
|
||||
[packages]
|
||||
|
||||
|
||||
Generated
+346
-364
File diff suppressed because it is too large
Load Diff
@@ -3,9 +3,7 @@ Pipenv: Python Development Workflow for Humans
|
||||
|
||||
[](https://python.org/pypi/pipenv)
|
||||
[](https://python.org/pypi/pipenv)
|
||||
[](https://code.kennethreitz.org/source/pipenv/)
|
||||
[?branchName=master&label=Windows)](https://dev.azure.com/pypa/pipenv/_build/latest?definitionId=9&branchName=master)
|
||||
[?branchName=master&label=Linux)](https://dev.azure.com/pypa/pipenv/_build/latest?definitionId=10&branchName=master)
|
||||
[](https://dev.azure.com/pypa/pipenv/_build/latest?definitionId=16&branchName=master)
|
||||
[](https://python.org/pypi/pipenv)
|
||||
[](https://saythanks.io/to/kennethreitz)
|
||||
|
||||
@@ -13,14 +11,14 @@ Pipenv: Python Development Workflow for Humans
|
||||
|
||||
**Pipenv** is a tool that aims to bring the best of all packaging worlds
|
||||
(bundler, composer, npm, cargo, yarn, etc.) to the Python world.
|
||||
*Windows is a first--class citizen, in our world.*
|
||||
*Windows is a first-class citizen, in our world.*
|
||||
|
||||
It automatically creates and manages a virtualenv for your projects, as
|
||||
well as adds/removes packages from your `Pipfile` as you
|
||||
install/uninstall packages. It also generates the ever--important
|
||||
install/uninstall packages. It also generates the ever-important
|
||||
`Pipfile.lock`, which is used to produce deterministic builds.
|
||||
|
||||

|
||||

|
||||
|
||||
The problems that Pipenv seeks to solve are multi-faceted:
|
||||
|
||||
@@ -46,11 +44,19 @@ If you\'re on MacOS, you can install Pipenv easily with Homebrew:
|
||||
|
||||
$ brew install pipenv
|
||||
|
||||
Or, if you\'re using Debian Buster+:
|
||||
|
||||
$ sudo apt install pipenv
|
||||
|
||||
Or, if you\'re using Fedora 28:
|
||||
|
||||
$ sudo dnf install pipenv
|
||||
|
||||
Or, if you\'re using FreeBSD:
|
||||
|
||||
Otherwise, refer to the [documentation](https://docs.pipenv.org/install/) for instructions.
|
||||
# pkg install py36-pipenv
|
||||
|
||||
Otherwise, refer to the [documentation](https://docs.pipenv.org/en/latest/install/#installing-pipenv) for instructions.
|
||||
|
||||
✨🍰✨
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
name: Pipenv Build Rules
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- master
|
||||
paths:
|
||||
exclude:
|
||||
- docs/*
|
||||
- news/*
|
||||
- peeps/*
|
||||
- examples/*
|
||||
- pytest.ini
|
||||
- README.md
|
||||
- pipenv/*.txt
|
||||
- CHANGELOG.rst
|
||||
- CONTRIBUTING.md
|
||||
- CODE_OF_CONDUCT.md
|
||||
- .gitignore
|
||||
- .gitattributes
|
||||
- .editorconfig
|
||||
|
||||
variables:
|
||||
- group: CI
|
||||
|
||||
jobs:
|
||||
- job: TestLinux
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
strategy:
|
||||
matrix:
|
||||
Python27:
|
||||
python.version: '2.7'
|
||||
python.architecture: x64
|
||||
Python36:
|
||||
python.version: '3.6'
|
||||
python.architecture: x64
|
||||
Python37:
|
||||
python.version: '3.7'
|
||||
python.architecture: x64
|
||||
maxParallel: 4
|
||||
steps:
|
||||
- template: .azure-pipelines/steps/reinstall-pythons.yml
|
||||
- template: .azure-pipelines/steps/run-tests.yml
|
||||
parameters:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
|
||||
- job: TestVendoring
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
variables:
|
||||
python.version: '3.7'
|
||||
python.architecture: x64
|
||||
steps:
|
||||
- template: .azure-pipelines/steps/reinstall-pythons.yml
|
||||
- template: .azure-pipelines/steps/run-vendor-scripts.yml
|
||||
parameters:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
|
||||
- job: TestPackaging
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
variables:
|
||||
python.version: '3.7'
|
||||
python.architecture: x64
|
||||
steps:
|
||||
- template: .azure-pipelines/steps/reinstall-pythons.yml
|
||||
- template: .azure-pipelines/steps/build-package.yml
|
||||
parameters:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
|
||||
- job: TestWindows
|
||||
pool:
|
||||
vmImage: windows-2019
|
||||
strategy:
|
||||
matrix:
|
||||
Python27:
|
||||
python.version: '2.7'
|
||||
python.architecture: x64
|
||||
Python36:
|
||||
python.version: '3.6'
|
||||
python.architecture: x64
|
||||
Python37:
|
||||
python.version: '3.7'
|
||||
python.architecture: x64
|
||||
maxParallel: 4
|
||||
steps:
|
||||
- template: .azure-pipelines/steps/run-tests.yml
|
||||
parameters:
|
||||
vmImage: windows-2019
|
||||
|
||||
- job: TestMacOS
|
||||
pool:
|
||||
vmImage: macOS-10.13
|
||||
strategy:
|
||||
matrix:
|
||||
Python27:
|
||||
python.version: '2.7'
|
||||
python.architecture: x64
|
||||
Python36:
|
||||
python.version: '3.6'
|
||||
python.architecture: x64
|
||||
Python37:
|
||||
python.version: '3.7'
|
||||
python.architecture: x64
|
||||
maxParallel: 4
|
||||
steps:
|
||||
- template: .azure-pipelines/steps/run-tests.yml
|
||||
parameters:
|
||||
vmImage: macOS-10.13
|
||||
Vendored
-1
@@ -18,7 +18,6 @@
|
||||
|
||||
/* Remain Responsive! */
|
||||
@media screen and (max-width: 1008px) {
|
||||
div.sphinxsidebar {display: none;}
|
||||
div.document {width: 100%!important;}
|
||||
|
||||
/* Have code blocks escape the document right-margin. */
|
||||
|
||||
Vendored
+21
-1
@@ -8,12 +8,32 @@
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=pypa&repo=pipenv&type=watch&count=true&size=large"
|
||||
allowtransparency="true" frameborder="0" scrolling="0" width="200px" height="35px"></iframe>
|
||||
</p>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
|
||||
<style>
|
||||
.algolia-autocomplete{
|
||||
width: 100%;
|
||||
height: 1.5em
|
||||
}
|
||||
.algolia-autocomplete a{
|
||||
border-bottom: none !important;
|
||||
}
|
||||
#doc_search{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<input id="doc_search" placeholder="Search the doc" autofocus/>
|
||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" onload="docsearch({
|
||||
apiKey: '0dbb76467f0c180a1344fc46858df17b',
|
||||
indexName: 'pipenv',
|
||||
inputSelector: '#doc_search',
|
||||
debug: false // Set debug to true if you want to inspect the dropdown
|
||||
})" async></script>
|
||||
|
||||
<p>
|
||||
<strong>Pipenv</strong> is a production-ready tool that aims to bring the best of all packaging worlds to the Python world. It harnesses Pipfile, pip, and virtualenv into one single command.
|
||||
<p>It features very pretty terminal colors.</p>
|
||||
</p>
|
||||
|
||||
<h3>Stay Informed</h3>
|
||||
<p>Receive updates on new releases and upcoming projects.</p>
|
||||
|
||||
|
||||
Vendored
+21
@@ -8,6 +8,27 @@
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=pypa&repo=pipenv&type=watch&count=true&size=large"
|
||||
allowtransparency="true" frameborder="0" scrolling="0" width="200px" height="35px"></iframe>
|
||||
</p>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
|
||||
<style>
|
||||
.algolia-autocomplete{
|
||||
width: 100%;
|
||||
height: 1.5em
|
||||
}
|
||||
.algolia-autocomplete a{
|
||||
border-bottom: none !important;
|
||||
}
|
||||
#doc_search{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
<input id="doc_search" placeholder="Search the doc" autofocus/>
|
||||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js" onload="docsearch({
|
||||
apiKey: '0dbb76467f0c180a1344fc46858df17b',
|
||||
indexName: 'pipenv',
|
||||
inputSelector: '#doc_search',
|
||||
debug: false // Set debug to true if you want to inspect the dropdown
|
||||
})" async></script>
|
||||
|
||||
<p>
|
||||
<strong>Pipenv</strong> is a production-ready tool that aims to bring the best of all packaging worlds to the Python world. It harnesses Pipfile, pip, and virtualenv into one single command.
|
||||
|
||||
+21
-6
@@ -71,6 +71,11 @@ Luckily - pipenv will hash your Pipfile *before* expanding environment
|
||||
variables (and, helpfully, will substitute the environment variables again when
|
||||
you install from the lock file - so no need to commit any secrets! Woo!)
|
||||
|
||||
If your credentials contain a special character, surround the references to the environment variables with quotation marks. For example, if your password contain a double quotation mark, surround the password variable with single quotation marks. Otherwise, you may get a ``ValueError, "No closing quotation"`` error while installing dependencies. ::
|
||||
|
||||
[[source]]
|
||||
url = "https://$USERNAME:'${PASSWORD}'@mypypi.example.com/simple"
|
||||
|
||||
|
||||
☤ Specifying Basically Anything
|
||||
-------------------------------
|
||||
@@ -358,7 +363,9 @@ Pipenv supports creating custom shortcuts in the (optional) ``[scripts]`` sectio
|
||||
You can then run ``pipenv run <shortcut name>`` in your terminal to run the command in the
|
||||
context of your pipenv virtual environment even if you have not activated the pipenv shell first.
|
||||
|
||||
For example, in your Pipfile::
|
||||
For example, in your Pipfile:
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
[scripts]
|
||||
printspam = "python -c \"print('I am a silly example, no one would need to do this')\""
|
||||
@@ -369,18 +376,25 @@ And then in your terminal::
|
||||
I am a silly example, no one would need to do this
|
||||
|
||||
Commands that expect arguments will also work.
|
||||
For example::
|
||||
For example:
|
||||
|
||||
.. code-block:: toml
|
||||
[scripts]
|
||||
echospam = "echo I am really a very silly example"
|
||||
|
||||
::
|
||||
|
||||
$ pipenv run echospam "indeed"
|
||||
I am really a very silly example indeed
|
||||
|
||||
☤ Support for Environment Variables
|
||||
-----------------------------------
|
||||
|
||||
Pipenv supports the usage of environment variables in values. For example::
|
||||
Pipenv supports the usage of environment variables in place of authentication fragments
|
||||
in your Pipfile. These will only be parsed if they are present in the ``[[source]]``
|
||||
section. For example:
|
||||
|
||||
.. code-block:: toml
|
||||
|
||||
[[source]]
|
||||
url = "https://${PYPI_USERNAME}:${PYPI_PASSWORD}@my_private_repo.example.com/simple"
|
||||
@@ -395,6 +409,7 @@ Pipenv supports the usage of environment variables in values. For example::
|
||||
records = "*"
|
||||
|
||||
Environment variables may be specified as ``${MY_ENVAR}`` or ``$MY_ENVAR``.
|
||||
|
||||
On Windows, ``%MY_ENVAR%`` is supported in addition to ``${MY_ENVAR}`` or ``$MY_ENVAR``.
|
||||
|
||||
.. _configuration-with-environment-variables:
|
||||
@@ -468,7 +483,7 @@ and the corresponding Makefile::
|
||||
pipenv install --dev
|
||||
|
||||
test:
|
||||
pipenv run py.test tests
|
||||
pipenv run pytest tests
|
||||
|
||||
|
||||
Tox Automation Project
|
||||
@@ -484,7 +499,7 @@ and external testing::
|
||||
deps = pipenv
|
||||
commands=
|
||||
pipenv install --dev
|
||||
pipenv run py.test tests
|
||||
pipenv run pytest tests
|
||||
|
||||
[testenv:flake8-py3]
|
||||
basepython = python3.4
|
||||
@@ -493,7 +508,7 @@ and external testing::
|
||||
pipenv run flake8 --version
|
||||
pipenv run flake8 setup.py docs project test
|
||||
|
||||
Pipenv will automatically use the virtualenv provided by ``tox``. If ``pipenv install --dev`` installs e.g. ``pytest``, then installed command ``py.test`` will be present in given virtualenv and can be called directly by ``py.test tests`` instead of ``pipenv run py.test tests``.
|
||||
Pipenv will automatically use the virtualenv provided by ``tox``. If ``pipenv install --dev`` installs e.g. ``pytest``, then installed command ``pytest`` will be present in given virtualenv and can be called directly by ``pytest tests`` instead of ``pipenv run pytest tests``.
|
||||
|
||||
You might also want to add ``--ignore-pipfile`` to ``pipenv install``, as to
|
||||
not accidentally modify the lock-file on each test run. This causes Pipenv
|
||||
|
||||
+3
-2
@@ -127,6 +127,7 @@ Example Pipfile.lock
|
||||
- Do not keep ``Pipfile.lock`` in version control if multiple versions of Python are being targeted.
|
||||
- Specify your target Python version in your `Pipfile`'s ``[requires]`` section. Ideally, you should only have one target Python version, as this is a deployment tool.
|
||||
- ``pipenv install`` is fully compatible with ``pip install`` syntax, for which the full documentation can be found `here <https://pip.pypa.io/en/stable/user_guide/#installing-packages>`_.
|
||||
- Note that the ``Pipfile`` uses the `TOML Spec <https://github.com/toml-lang/toml#user-content-spec>`_.
|
||||
|
||||
|
||||
|
||||
@@ -203,11 +204,11 @@ To make inclusive or exclusive version comparisons you can use: ::
|
||||
$ pipenv install "requests<=2.13" # will install a version equal or lower than 2.13.0
|
||||
$ pipenv install "requests>2.19" # will install 2.19.1 but not 2.19.0
|
||||
|
||||
.. note:: The use of ``" "`` around the package and version specification is highly recommended
|
||||
.. note:: The use of double quotes around the package and version specification (i.e. ``"requests>2.19"``) is highly recommended
|
||||
to avoid issues with `Input and output redirection <https://robots.thoughtbot.com/input-output-redirection-in-the-shell>`_
|
||||
in Unix-based operating systems.
|
||||
|
||||
The use of ``~=`` is preferred over the ``==`` identifier as the former prevents pipenv from updating the packages: ::
|
||||
The use of ``~=`` is preferred over the ``==`` identifier as the latter prevents pipenv from updating the packages: ::
|
||||
|
||||
$ pipenv install "requests~=2.2" # locks the major version of the package (this is equivalent to using ==2.*)
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#
|
||||
import os
|
||||
|
||||
|
||||
# Path hackery to get current version number.
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
|
||||
@@ -245,10 +245,15 @@ Three ways of running the tests are as follows:
|
||||
|
||||
1. ``make test`` (which uses ``docker``)
|
||||
2. ``./run-tests.sh`` or ``run-tests.bat``
|
||||
3. Using pipenv::
|
||||
3. Using pipenv:
|
||||
|
||||
pipenv install --dev
|
||||
pipenv run pytest
|
||||
.. code-block:: console
|
||||
|
||||
$ git clone https://github.com/pypa/pipenv.git
|
||||
$ cd pipenv
|
||||
$ git submodule sync && git submodule update --init --recursive
|
||||
$ pipenv install --dev
|
||||
$ pipenv run pytest
|
||||
|
||||
For the last two, it is important that your environment is setup correctly, and
|
||||
this may take some work, for example, on a specific Mac installation, the following
|
||||
|
||||
+7
-8
@@ -26,10 +26,12 @@ It automatically creates and manages a virtualenv for your projects, as well as
|
||||
|
||||
Pipenv is primarily meant to provide users and developers of applications with an easy method to setup a working environment. For the distinction between libraries and applications and the usage of ``setup.py`` vs ``Pipfile`` to define dependencies, see :ref:`pipfile-vs-setuppy`.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<iframe src="https://player.vimeo.com/video/233134524" width="700" height="460" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>
|
||||
|
||||
.. image:: https://s3.amazonaws.com/media.kennethreitz.com/pipenv.gif
|
||||
:height: 341px
|
||||
:width: 654px
|
||||
:scale: 100 %
|
||||
:alt: a short animation of pipenv at work
|
||||
|
||||
The problems that Pipenv seeks to solve are multi-faceted:
|
||||
|
||||
- You no longer need to use ``pip`` and ``virtualenv`` separately. They work together.
|
||||
@@ -49,7 +51,7 @@ You can quickly play with Pipenv right in your browser:
|
||||
Install Pipenv Today!
|
||||
---------------------
|
||||
|
||||
If you're on MacOS, you can install Pipenv easily with Homebrew::
|
||||
If you're on MacOS, you can install Pipenv easily with Homebrew. You can also use Linuxbrew on Linux using the same command::
|
||||
|
||||
$ brew install pipenv
|
||||
|
||||
@@ -70,9 +72,6 @@ Otherwise, refer to the :ref:`installing-pipenv` chapter for instructions.
|
||||
User Testimonials
|
||||
-----------------
|
||||
|
||||
**Jannis Leidel**, former pip maintainer—
|
||||
*Pipenv is the porcelain I always wanted to build for pip. It fits my brain and mostly replaces virtualenvwrapper and manual pip calls for me. Use it.*
|
||||
|
||||
**David Gang**—
|
||||
*This package manager is really awesome. For the first time I know exactly what my dependencies are which I installed and what the transitive dependencies are. Combined with the fact that installs are deterministic, makes this package manager first class, like cargo*.
|
||||
|
||||
|
||||
+8
-8
@@ -52,16 +52,16 @@ check this by running::
|
||||
$ pip --version
|
||||
pip 9.0.1
|
||||
|
||||
If you installed Python from source, with an installer from `python.org`_, or
|
||||
via `Homebrew`_ you should already have pip. If you're on Linux and installed
|
||||
If you installed Python from source, with an installer from `python.org`_, via `Homebrew`_ or via `Linuxbrew`_ you should already have pip. If you're on Linux and installed
|
||||
using your OS package manager, you may have to `install pip <https://pip.pypa.io/en/stable/installing/>`_ separately.
|
||||
|
||||
If you plan to install Pipenv using Homebrew you can skip this step. The
|
||||
Homebrew installer takes care of pip for you.
|
||||
If you plan to install Pipenv using Homebrew or Linuxbrew you can skip this step. The
|
||||
Homebrew/Linuxbrew installer takes care of pip for you.
|
||||
|
||||
.. _getting started tutorial: https://opentechschool.github.io/python-beginners/en/getting_started.html#what-is-python-exactly
|
||||
.. _python.org: https://python.org
|
||||
.. _Homebrew: https://brew.sh
|
||||
.. _Linuxbrew: https://linuxbrew.sh/
|
||||
.. _Installing Python: http://docs.python-guide.org/en/latest/starting/installation/
|
||||
|
||||
|
||||
@@ -83,13 +83,13 @@ cases.
|
||||
☤ Homebrew Installation of Pipenv
|
||||
---------------------------------
|
||||
|
||||
Homebrew is a popular open-source package management system for macOS.
|
||||
`Homebrew`_ is a popular open-source package management system for macOS. For Linux users, `Linuxbrew`_ is a Linux port of that.
|
||||
|
||||
Installing pipenv via Homebrew will keep pipenv and all of its dependencies in
|
||||
Installing pipenv via Homebrew or Linuxbrew will keep pipenv and all of its dependencies in
|
||||
an isolated virtual environment so it doesn't interfere with the rest of your
|
||||
Python installation.
|
||||
|
||||
Once you have installed `Homebrew`_ simply run::
|
||||
Once you have installed Homebrew or Linuxbrew simply run::
|
||||
|
||||
$ brew install pipenv
|
||||
|
||||
@@ -223,7 +223,7 @@ have access to your installed packages with ``$ pipenv shell``.
|
||||
|
||||
|
||||
☤ Virtualenv mapping caveat
|
||||
============
|
||||
===========================
|
||||
|
||||
- Pipenv automatically maps projects to their specific virtualenvs.
|
||||
- The virtualenv is stored globally with the name of the project’s root directory plus the hash of the full path to the project's root (e.g., ``my_project-a3de50``).
|
||||
|
||||
+16
-18
@@ -1,28 +1,26 @@
|
||||
alabaster==0.7.10
|
||||
Babel==2.5.0
|
||||
certifi==2017.7.27.1
|
||||
Babel==2.6.0
|
||||
certifi==2018.10.15
|
||||
chardet==3.0.4
|
||||
click==6.7
|
||||
click==7.0
|
||||
docutils==0.14
|
||||
first==2.0.1
|
||||
idna==2.6
|
||||
imagesize==0.7.1
|
||||
idna==2.7
|
||||
imagesize==1.1.0
|
||||
Jinja2==2.10
|
||||
MarkupSafe==1.0
|
||||
pbr==3.1.1
|
||||
pip-tools==1.9.0
|
||||
MarkupSafe==1.1.0
|
||||
pbr==5.1.1
|
||||
-e .
|
||||
Pygments==2.2.0
|
||||
Pygments==2.3.0
|
||||
pythonz-bd==1.11.4
|
||||
pytz==2017.2
|
||||
requests==2.20.0
|
||||
pytz==2018.5
|
||||
requests==2.20.1
|
||||
resumable-urlretrieve==0.1.5
|
||||
semver==2.7.8
|
||||
six==1.10.0
|
||||
six==1.11.0
|
||||
snowballstemmer==1.2.1
|
||||
Sphinx==1.6.3
|
||||
sphinx-click==1.2.0
|
||||
sphinxcontrib-websupport==1.0.1
|
||||
urllib3==1.22
|
||||
virtualenv==15.1.0
|
||||
virtualenv-clone==0.2.6
|
||||
sphinx-click==1.3.0
|
||||
sphinxcontrib-websupport==1.1.0
|
||||
urllib3==1.24.1
|
||||
virtualenv==16.1.0
|
||||
virtualenv-clone==0.4.0
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Added documenation about variable expansion in ``Pipfile`` entries.
|
||||
@@ -0,0 +1 @@
|
||||
Raise `PipenvUsageError` when [[source]] does not contain url field.
|
||||
@@ -0,0 +1 @@
|
||||
Make conservative checks of known exceptions when subprocess returns output, so user won't see the whole traceback - just the error.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed a bug which caused editable package resolution to sometimes fail with an unhelpful setuptools-related error message.
|
||||
@@ -0,0 +1,2 @@
|
||||
Fixed an issue which caused errors due to reliance on the system utilities ``which`` and ``where`` which may not always exist on some systems.
|
||||
- Fixed a bug which caused periodic failures in python discovery when executables named ``python`` were not present on the target ``$PATH``.
|
||||
@@ -0,0 +1 @@
|
||||
Dependency resolution now writes hashes for local and remote files to the lockfile.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed a bug which prevented ``pipenv graph`` from correctly showing all dependencies when running from within ``pipenv shell``.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed resolution of direct-url dependencies in ``setup.py`` files to respect ``PEP-508`` style URL dependencies.
|
||||
@@ -0,0 +1 @@
|
||||
Added support for resolution of direct-url dependencies in ``setup.py`` files to respect ``PEP-508`` style URL dependencies.
|
||||
@@ -1 +0,0 @@
|
||||
Environment variables are expanded correctly before running scripts on POSIX.
|
||||
@@ -1 +0,0 @@
|
||||
Pipenv will no longer disable user-mode installation when the ``--system`` flag is passed in.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed an issue with attempting to render unicode output in non-unicode locales.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed a bug which could cause failures to occur when parsing python entries from global pyenv version files.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed an issue which prevented the parsing of named extras sections from certain ``setup.py`` files.
|
||||
@@ -1 +0,0 @@
|
||||
Correctly detect the virtualenv location inside an activated virtualenv.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed a bug which caused spinner frames to be written to stdout during locking operations which could cause redirection pipes to fail.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed a bug that editable pacakges can't be uninstalled correctly.
|
||||
@@ -1 +0,0 @@
|
||||
Adding normal pep 508 compatible markers is now fully functional when using VCS dependencies.
|
||||
@@ -1 +0,0 @@
|
||||
Updated ``requirementslib`` and ``pythonfinder`` for multiple bugfixes.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed an issue where pipenv could crash when multiple pipenv processes attempted to create the same directory.
|
||||
@@ -1 +0,0 @@
|
||||
Fixed an issue which sometimes prevented successful creation of project pipfiles.
|
||||
@@ -0,0 +1 @@
|
||||
Update pytest-pypi documentation not to be pytest-httpbin documentation.
|
||||
@@ -0,0 +1,3 @@
|
||||
Fixed a bug which caused failures in warning reporting when running pipenv inside a virtualenv under some circumstances.
|
||||
|
||||
- Fixed a bug with package discovery when running ``pipenv clean``.
|
||||
@@ -0,0 +1,5 @@
|
||||
Added full support for resolution of all dependency types including direct URLs, zip archives, tarballs, etc.
|
||||
|
||||
- Improved error handling and formatting.
|
||||
|
||||
- Introduced improved cross platform stream wrappers for better ``stdout`` and ``stderr`` consistency.
|
||||
@@ -0,0 +1,34 @@
|
||||
Updated vendored dependencies:
|
||||
|
||||
- **attrs**: ``18.2.0`` => ``19.1.0``
|
||||
- **certifi**: ``2018.10.15`` => ``2019.3.9``
|
||||
- **cached_property**: ``1.4.3`` => ``1.5.1``
|
||||
- **cerberus**: ``1.2.0`` => ``1.3.1``
|
||||
- **click-completion**: ``0.5.0`` => ``0.5.1``
|
||||
- **colorama**: ``0.3.9`` => ``0.4.1``
|
||||
- **distlib**: ``0.2.8`` => ``0.2.9``
|
||||
- **idna**: ``2.7`` => ``2.8``
|
||||
- **jinja2**: ``2.10.0`` => ``2.10.1``
|
||||
- **markupsafe**: ``1.0`` => ``1.1.1``
|
||||
- **orderedmultidict**: ``(new)`` => ``1.0``
|
||||
- **packaging**: ``18.0`` => ``19.0``
|
||||
- **parse**: ``1.9.0`` => ``1.12.0``
|
||||
- **pathlib2**: ``2.3.2`` => ``2.3.3``
|
||||
- **pep517**: ``(new)`` => ``0.5.0``
|
||||
- **pexpect**: ``4.6.0`` => ``4.7.0``
|
||||
- **pipdeptree**: ``0.13.0`` => ``0.13.2``
|
||||
- **pyparsing**: ``2.2.2`` => ``2.3.1``
|
||||
- **python-dotenv**: ``0.9.1`` => ``0.10.2``
|
||||
- **pythonfinder**: ``1.1.10`` => ``1.2.1``
|
||||
- **pytoml**: ``(new)`` => ``0.1.20``
|
||||
- **requests**: ``2.20.1`` => ``2.21.0``
|
||||
- **requirementslib**: ``1.3.3`` => ``1.5.0``
|
||||
- **scandir**: ``1.9.0`` => ``1.10.0``
|
||||
- **shellingham**: ``1.2.7`` => ``1.3.1``
|
||||
- **six**: ``1.11.0`` => ``1.12.0``
|
||||
- **tomlkit**: ``0.5.2`` => ``0.5.3``
|
||||
- **urllib3**: ``1.24`` => ``1.25.2``
|
||||
- **vistir**: ``0.3.0`` => ``0.4.1``
|
||||
- **yaspin**: ``0.14.0`` => ``0.14.3``
|
||||
|
||||
- Removed vendored dependency **cursor**.
|
||||
@@ -0,0 +1 @@
|
||||
Quote command arguments with carets (``^``) on Windows to work around unintended shell escapes.
|
||||
@@ -0,0 +1 @@
|
||||
Handle alternate names for UTF-8 encoding.
|
||||
@@ -0,0 +1 @@
|
||||
Abort pipenv before adding the non-exist package to Pipfile.
|
||||
@@ -0,0 +1 @@
|
||||
Don't normalize the package name user passes in.
|
||||
@@ -0,0 +1 @@
|
||||
Pipenv will now successfully recursively lock VCS sub-dependencies.
|
||||
@@ -0,0 +1 @@
|
||||
Fix a bug where custom virtualenv can not be activated with pipenv shell
|
||||
@@ -0,0 +1 @@
|
||||
Added support for ``--verbose`` output to ``pipenv run``.
|
||||
@@ -0,0 +1 @@
|
||||
Fix a bug that ``--site-packages`` flag is not recognized.
|
||||
@@ -0,0 +1 @@
|
||||
Fix a bug where pipenv --clear is not working
|
||||
@@ -0,0 +1 @@
|
||||
The inline tables won't be rewritten now.
|
||||
@@ -0,0 +1 @@
|
||||
Pipenv will now discover and resolve the intrinsic dependencies of **all** VCS dependencies, whether they are editable or not, to prevent resolution conflicts.
|
||||
@@ -0,0 +1 @@
|
||||
Fix unhashable type error during ``$ pipenv install --selective-upgrade``
|
||||
@@ -0,0 +1 @@
|
||||
Do not touch Pipfile early and rely on it so that one can do ``pipenv sync`` without a Pipfile.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed a keyerror which could occur when locking VCS dependencies in some cases.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed a bug that ``ValidationError`` is thrown when some fields are missing in source section.
|
||||
@@ -0,0 +1 @@
|
||||
Improve the error message when one tries to initialize a Pipenv project under ``/``.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed the wrong order of old and new hashes in message.
|
||||
@@ -0,0 +1 @@
|
||||
Updated the index names in lock file when source name in Pipfile is changed.
|
||||
@@ -0,0 +1 @@
|
||||
Fixed an issue which caused ``pipenv install --help`` to show duplicate entries for ``--pre``.
|
||||
@@ -0,0 +1 @@
|
||||
Replace (non-existant) video on docs index.rst with equivalent gif.
|
||||
@@ -0,0 +1 @@
|
||||
Fix bug causing ``[SSL: CERTIFICATE_VERIFY_FAILED]`` when Pipfile ``[[source]]`` has verify_ssl=false and url with custom port.
|
||||
@@ -0,0 +1 @@
|
||||
Clarify wording in Basic Usage example on using double quotes to escape shell redirection
|
||||
@@ -0,0 +1 @@
|
||||
Ensure docs show navigation on small-screen devices
|
||||
@@ -0,0 +1 @@
|
||||
Fix ``sync --sequential`` ignoring ``pip install`` errors and logs.
|
||||
@@ -0,0 +1 @@
|
||||
Added a new environment variable, ``PIPENV_RESOLVE_VCS``, to toggle dependency resolution off for non-editable VCS, file, and URL based dependencies.
|
||||
@@ -0,0 +1 @@
|
||||
Fix the issue that lock file can't be created when ``PIPENV_PIPFILE`` is not under working directory.
|
||||
@@ -0,0 +1 @@
|
||||
Added the ability for Windows users to enable emojis by setting ``PIPENV_HIDE_EMOJIS=0``.
|
||||
@@ -0,0 +1 @@
|
||||
Removed unused vendored package shutilwhich
|
||||
@@ -0,0 +1 @@
|
||||
Added a link to the TOML Spec under General Recommendations & Version Control to clarify how Pipfiles should be written.
|
||||
@@ -0,0 +1 @@
|
||||
Removed unused vendored package blindspin
|
||||
@@ -0,0 +1 @@
|
||||
Use tablib instead of requests in tests to avoid failures when vendored
|
||||
@@ -0,0 +1 @@
|
||||
Pipenv will no longer inadvertently set ``editable=True`` on all vcs dependencies.
|
||||
@@ -0,0 +1 @@
|
||||
Allow overriding PIPENV_INSTALL_TIMEOUT environment variable (in seconds).
|
||||
@@ -0,0 +1,2 @@
|
||||
The ``--keep-outdated`` argument to ``pipenv install`` and ``pipenv lock`` will now drop specifier constraints when encountering editable dependencies.
|
||||
- In addition, ``--keep-outdated`` will retain specifiers that would otherwise be dropped from any entries that have not been updated.
|
||||
@@ -0,0 +1 @@
|
||||
Allow KeyboardInterrupt to cancel test suite checks for working internet and ssh
|
||||
@@ -0,0 +1 @@
|
||||
Cleaned up some conditional logic that would always evaluate ``True``.
|
||||
@@ -0,0 +1 @@
|
||||
Add installation instructions for Debian Buster+ in README
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user