Compare commits

..

3156 commits

Author SHA1 Message Date
native-api ef4905cd81
Incorporate the pyenv-link plugin (#3538)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
build / discover_build_logic_change (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests_docker (push) Has been cancelled
build / build (push) Has been cancelled
for use in linking binary installations
2026-09-09 02:43:22 +03:00
Ivan Pozdeev 88e9ab13e8 pwsh: Fix error in shell integration if pyenv is on PATH multiple times
Fixes "The term 'pyenv pyenv' is not recognized..."
2026-09-09 02:31:49 +03:00
macayu17 798a1ad603 Incorporate the pyenv-link plugin
* Adapt test_helper for use in plugins
* Add pyenv-link tests
* Add pyenv-link tests to CI
2026-09-09 02:30:53 +03:00
macayu17 fb7f2071fb Add 'plugins/pyenv-link/' from commit '2f8cb2cf1f093e955a72babf0b65a07f84f33522'
git-subtree-dir: plugins/pyenv-link
git-subtree-mainline: ef7a9f5d14
git-subtree-split: 2f8cb2cf1f
2026-09-08 02:55:49 +05:30
Michael Newman ef7a9f5d14
docs: Add link to list of available Python distributions (#3535)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
build / discover_build_logic_change (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests_docker (push) Has been cancelled
build / build (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
Add a link to the python-build share directory in the intro section
so users can see which Python distributions are supported before
installing pyenv.
2026-09-06 22:14:47 +03:00
Ayush 265b0dcefa
python-build: add build prerequisite installer (#3532)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests_docker (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
build / discover_build_logic_change (push) Has been cancelled
build / build (push) Has been cancelled
2026-09-02 17:56:35 +03:00
Michael Šimáček 2548d53706
Update graalpy URLs for 25.3.4.1 (#3533) 2026-09-02 14:47:33 +03:00
Ivan Pozdeev c293de3650 2.8.5
Some checks failed
build / discover_build_logic_change (push) Waiting to run
build / build (push) Blocked by required conditions
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15-intel) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-26) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests_docker (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
2026-09-01 18:05:40 +03:00
Ayush bdfc6b03f3
pyenv-binary: support relocating macOS archives (#3528) 2026-09-01 18:01:23 +03:00
pyenv-bot[bot] 8c46508bd0
Add CPython 3.15.0rc2 (#3530)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-09-01 17:53:59 +03:00
Michael Šimáček a00e0bc475
Add GraalPy 25.3.4.1 (#3529)
Some checks failed
build / build (push) Blocked by required conditions
build / discover_build_logic_change (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15-intel) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-26) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests_docker (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
2026-08-31 23:28:40 +03:00
Michael Newman 981559003f
Fix typo
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Has been cancelled
pyenv_tests / pyenv_tests_docker (push) Has been cancelled
build / discover_build_logic_change (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
build / build (push) Has been cancelled
2026-08-29 15:01:30 +03:00
Michael Newman 4733cca31b
Fix typo
Some checks failed
build / discover_build_logic_change (push) Waiting to run
build / build (push) Blocked by required conditions
pyenv_tests / pyenv_tests (ubuntu-22.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04-arm) (push) Waiting to run
pyenv_tests / pyenv_tests_docker (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15-intel) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-26) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
2026-08-28 15:36:28 +03:00
native-api ef2fb22235
Merge pull request #3522 from sujeito-operator/ci-test-everywhere-on-build-logic-change
CI: test on all runners when the build logic changes
2026-08-26 16:05:18 +03:00
sujeito-operator 97900a4aa4 CI: test on all runners when the build logic changes
Co-Authored-By: Ivan Pozdeev <vano@mail.mipt.ru>
2026-08-26 10:09:25 +03:00
sujeito-operator ecf9a7f9e6 CI: collapse macos_build and ubuntu_build into a single job
Co-Authored-By: Ivan Pozdeev <vano@mail.mipt.ru>
2026-08-26 09:40:01 +03:00
native-api 495550afc8
Merge pull request #3525 from native-api/test_improvements
Test improvements
2026-08-26 06:00:53 +03:00
Ivan Pozdeev 57f1df294b tests: add file names to TAP output
by using a customized formatter
2026-08-26 05:51:24 +03:00
Ivan Pozdeev 14830b18bf tests: skip permission tests if permission bits are being overridden
e.g. if running as root in a docker container
2026-08-26 05:50:04 +03:00
Ivan Pozdeev 032e7af407 tests: consolidate shims tests 2026-08-26 05:49:17 +03:00
native-api b0cff001ff
tests: Fix "cd: null directory" in OpenSUSE (#3524)
A workaround because tests don't use the Pyenv launcher and setting PYENV_DIR to $PWD at every run invocation is too cumbersome.
2026-08-25 22:43:59 +03:00
Michael Newman 234a87e400
Fix typo 2026-08-17 01:51:28 +03:00
Ayush 50fbc8c6cc
pyenv-binary: record direct system dependencies in Linux/FreeBSD (#3520) 2026-08-15 22:47:27 +03:00
Ivan Pozdeev 0f16606e4f 2.8.4 2026-08-13 15:08:51 +03:00
native-api 7c2226386b
Add anaconda3-2026.07-1, miniconda3 26.5.3-2 2026-08-13 14:59:25 +03:00
Ivan Pozdeev 3a98f8c1c3 add_miniforge: better logging, skip 2 faulty releases 2026-08-13 14:16:14 +03:00
native-api f99638cb82
Merge pull request #3518 from pyenv/auto_add_version/3.10.21_3.11.16_3.12.14
Add CPython 3.10.21, 3.11.16, 3.12.14
2026-08-13 14:03:45 +03:00
Ivan Pozdeev 3b9604c093 Add missing 3.10.x patches 2026-08-13 13:10:43 +03:00
native-api 920052eb0b Add CPython 3.10.21, 3.11.16, 3.12.14 2026-08-13 08:53:14 +00:00
native-api cb20e375d3
Merge pull request #3517 from native-api/ci_ubuntu_arm
CI: add ubuntu ARM images
2026-08-13 01:51:46 +03:00
Ivan Pozdeev f11926a274 Run Docker tests separately 2026-08-13 01:44:17 +03:00
Ivan Pozdeev 0fc5dfe630 refactor 2026-08-13 01:44:17 +03:00
Ivan Pozdeev 2bcc7d8fc4 Add ubuntu ARM images 2026-08-13 01:44:11 +03:00
Ivan Pozdeev 2bd4f6c4da - rbenv compatibility note
We've not been syncing with Rbenv for years
2026-08-12 15:26:35 +03:00
Ivan Pozdeev 8771e721c1 Add past CVE-2026-68939 fix to CHANGELOG
Now that Github has issued a CVE number 3 weeks late
2026-08-12 15:19:48 +03:00
native-api d92b6e1bbe
Merge pull request #3516 from macayu17/fix/2334-package-feedback
pyenv-binary-package: check patchelf early and add --verbose
2026-08-11 05:25:39 +03:00
Ivan Pozdeev 9962f8cb39 pyenv-binary-package: refactor tests
* make them more human-readable
* don't double-test external code outside of integration tests
2026-08-11 05:17:49 +03:00
Ivan Pozdeev f9ffb73a7e test_helper: support here-document to assert_success/failure; + assert_output_glob 2026-08-11 05:17:42 +03:00
Ivan Pozdeev bd7c969e7f test_helper: show diff with whitespace highlights
to be able to see tiny and whitespace differences
2026-08-11 04:22:34 +03:00
macayu17 4a73bd17e2 pyenv-binary-package: add --verbose
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-08-11 04:22:33 +03:00
macayu17 2c1f405180 pyenv-binary: check patchelf before installing archive 2026-08-11 04:19:39 +03:00
native-api e234812f46
Merge pull request #3515 from fudianchn/fix/version-file-relative-loop-3513
Stop infinite loop in pyenv version-file for relative paths
2026-08-10 13:08:04 +03:00
Ivan Pozdeev 1a591b3963 Avoid extra iteration for argument with a trailing slash 2026-08-10 12:56:57 +03:00
Ivan Pozdeev 48e70e1fe9 Only test for UNC paths every iteration if they are special 2026-08-10 12:55:19 +03:00
付典 195b9fe940 version-file: Fix infinite loop for relative paths
find_local_version_file reduces its target with ${root%/*}, but that leaves a slash-less relative argument such as "." unchanged, leading to an infinite loop

Signed-off-by: 付典 <fudianchn@gmail.com>
2026-08-10 12:49:53 +03:00
native-api b7e7adf4ec
Merge pull request #3511 from macayu17/fix/2334-freebsd-ldconfig
pyenv-binary: check FreeBSD system libraries
2026-08-10 03:29:33 +03:00
macayu17 a6ef1e70ba Resolve version prefixes in package names 2026-08-10 03:27:47 +03:00
macayu17 5a31fea21b pyenv-binary: support checking FreeBSD system libraries
* Handle both spaced and unspaced FreeBSD `ldconfig -r` output
2026-08-10 03:27:46 +03:00
native-api 17be308600
Merge pull request #3514 from native-api/add_macos_26_intel
CI: Add macos_26_intel
2026-08-08 00:58:10 +03:00
Ivan Pozdeev 9d6cf587b7 Run the discover job on slim 2026-08-07 23:17:31 +03:00
Ivan Pozdeev 1cc9e770ae Fix regexes 2026-08-07 23:17:31 +03:00
Ivan Pozdeev 0e2e214f56 Fix ubuntu_build_tar_gz 2026-08-07 23:17:31 +03:00
Ivan Pozdeev 340348d98d - code irrelevant to CPython in CPython-specific scenarios 2026-08-07 23:17:30 +03:00
Ivan Pozdeev 2d9a224e6c Add macos-26-intel to CI
* Fix macos_build_bundled_dependencies in macos-26-intel
  It has a different set of preinstalled OpenSSL formulae
2026-08-07 23:16:23 +03:00
Ivan Pozdeev da172db42d 2.8.3 2026-08-05 22:08:09 +03:00
pyenv-bot[bot] b0a64af8cc
Add CPython 3.13.15, 3.14.7 (#3512) 2026-08-05 22:06:09 +03:00
Ivan Pozdeev 9e4d1ca95a 2.8.2 2026-08-04 23:10:49 +03:00
Ayush b9e165271e
pyenv-binary: generate platform-specific package names (#3504) 2026-08-04 22:53:34 +03:00
John Sirois 3088203e33
Add CPython 3.15.0rc1 (#3510) 2026-08-04 22:48:04 +03:00
Anupam Mediratta 8f70d418bb
add_cpython: refactor extra Requests logic (#3507)
---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-08-04 13:12:42 +03:00
dependabot[bot] bdf8d254fe
Bump actions/setup-python from 6 to 7 in the github-actions group (#3505)
Bumps the github-actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python).


Updates `actions/setup-python` from 6 to 7
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-01 16:38:32 +03:00
Michael Šimáček f5915fc866
Add graalpy3.12-25.2.4 (#3502) 2026-07-29 05:53:27 +03:00
Michael Newman 84e0f3a887
Fix typos 2026-07-29 05:49:46 +03:00
Ayush 7126870320
pyenv-binary: add the package subcommand; add pyenv install --list --bare (#3498)
Co-authored-by: native-api <vano@mail.mipt.ru>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-07-28 14:31:20 +03:00
Michael Newman 26dd5d9dda
Fix typo 2026-07-27 21:57:58 +03:00
Michael Newman bac39a0ef8
Fix typo 2026-07-27 08:30:33 +03:00
Ivan Pozdeev bec9a562a5 2.8.1 2026-07-18 22:02:09 +03:00
pyenv-bot[bot] ae9e6594d6
Add CPython 3.15.0b4 (#3495)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-07-18 21:59:23 +03:00
native-api 16c7cc6de4
Merge pull request #3488 from macayu17/feat/2334-pyenv-binary-installer
pyenv-binary: add the `generate-installer` subcommand
2026-07-16 10:51:36 +03:00
Ivan Pozdeev 017ad4a573 Add pyenv-binary tests to CI
* README: fix tests instructions
* test/README: -duplicating and unnecessary stuff
* Makefile: Build Docker images and replace bats link conditionally
* Makefile: fix indent irregularity
2026-07-16 10:39:55 +03:00
macayu17 6188e9efa9 pyenv-binary: add the generate-installer subcommand
* Relocation only implemented for Linux (requires patchelf + ldconfig -p)
* Shell-completing file name is not possible with current Pyenv completion logic:
  `pyenv-complete` does not pass info about the word being completed
* Fix `save`-produced tarball to be compatible with Python-Build fetch_tarball()
* Reuse test_helper from core

--

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-07-16 10:39:50 +03:00
Ivan Pozdeev 286a167cf0 gitignore Vim swap files 2026-07-16 10:22:39 +03:00
Ivan Pozdeev 135adbb192 2.8.0 2026-07-13 21:01:27 +03:00
native-api b3a3e702f1
version-name: skip redundant checks (#3492)
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.14) (push) Has been cancelled
2026-07-11 08:24:01 +03:00
native-api 958e3aca95
Add miniconda3 26.5.3-1 (#3491) 2026-07-11 08:23:42 +03:00
Ivan Pozdeev 74c6efe2f4 Adapt tests involving current directory for Docker
In Docker CI tests, the default current dir is read-only
2026-07-11 08:02:53 +03:00
native-api 95df7dbc7b
Merge commit from fork 2026-07-11 07:22:46 +03:00
max e4c462dc70
Fix typos in docs, scripts, and tests (#3490)
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.14) (push) Has been cancelled
2026-07-08 18:03:00 +03:00
OrbisAI Security 790bedd821
CI: fix: package_managers.dependabot.dependabot-missing-cooldown.dependabot-missing-cooldown security vulnerability (#3489)
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.14) (push) Has been cancelled
Automated security fix generated by OrbisAI Security
2026-07-05 13:40:15 +03:00
Ayush 19f4c7cf20
Add an experimental pyenv-binary plugin with a save command (#3487)
Some checks are pending
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.14) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-15-intel) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-26) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.13) (push) Waiting to run
ubuntu_build / ubuntu_build (3.14) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
* pyenv-binary: add experimental plugin skeleton

Adds a new plugin, decoupled from `pyenv install`, for packaging and installing
relocatable Python binaries. This commit is just the command dispatcher; the
individual subcommands follow.

`pyenv binary <command>` dispatches to the matching script under the plugin's
libexec, so subcommands stay out of the top-level `pyenv commands` list.

Groundwork for the binary distribution support discussed in #2334.

* pyenv-binary: add the `save` subcommand

`pyenv binary save <version> [<output-dir>]` packs an installed version into a
relocatable .tar.gz with relative paths and writes a metadata file recording the
build platform, distro, libc version and the external system libraries the
build links against (via `ldd` on Linux, `otool -L` on macOS).

* pyenv-binary: reject invalid version names and drop readlink -f in save

A version is a single directory name under versions/, so refuse names with a
slash or a dot-dot component before building the prefix path.

Also emit the python paths directly instead of `readlink -f`, which BSD
readlink on macOS does not support; ldd/otool follow the symlinks anyway, so
the resolved paths were never needed.

* pyenv-binary: test the `save` subcommand

Cover argument validation, the version-name guard, and packaging an
installed version into an archive with matching metadata.

* pyenv-binary: test dependency parsing and tighten the version guard

Add tests that feed realistic ldd and otool listings through save and
check only the libraries resolving outside the prefix end up in the
metadata, since that filtering is the fiddliest part of the command.

Narrow the version guard to reject `.' and `..' rather than any name
containing a dot-dot, now that a slash is already refused, and note why
the find still matches *.so.* even though CPython does not produce them.
2026-07-03 09:08:54 +03:00
dependabot[bot] 46cc3e552b
Bump actions/checkout from 6 to 7 in the github-actions group (#3486)
Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 6 to 7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-01 10:27:40 +03:00
Michael Šimáček 8f68aab443
Add graalpy-3.12-25.1.3 (#3485)
* Add graalpy-3.12-25.1.3

* Adjust GraalPy version detection with the new naming scheme

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-30 21:25:03 +03:00
Ivan Pozdeev a27d2723d6 install: reflect the new alias syntax in reference 2026-06-30 04:17:58 +03:00
Ayush 4c78a0dd50
pyenv-install: install a version under a custom name with <version>:<alias> (#3484) 2026-06-30 04:12:16 +03:00
Ayush 91aacc5dbf
Add script to generate sponsors section for release notes (#3478)
* OpenCollectrive API is blocked by a Cloudflare challenge page in some locations so allow to specify the OpenCollective API data manually

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-28 20:06:38 +03:00
Yo Takezawa 3974647f0f
rehash: fix race condition in landlock writability check (#3483) 2026-06-26 21:04:33 +03:00
native-api ebd788d08c
Add miniforge3-26.3.2-2, 26.3.2-3 (#3481) 2026-06-25 09:52:54 +03:00
native-api 4b77d83d9d
CI: add_version enhancements (#3480)
* Default 30 seems enough for our needs
* comments on critical knowledge
* Cleaner handling of t thunk patches
* Fix an error when adding a release for which there's also a prerelease
* Workaround excepthook not working in Github Actions
* requirements.txt workaround is only needed for old Python
2026-06-25 09:48:57 +03:00
Ivan Pozdeev 933d0aaf1d 2.7.3 2026-06-24 05:14:13 +03:00
pyenv-bot[bot] 09dce106a4
Add CPython 3.15.0b3 (#3479)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-06-24 04:27:01 +03:00
Ivan Pozdeev b52a8e3f52 python-build scripts: Switch to jc release
They finally made a release with our fix
2026-06-19 08:36:53 +03:00
Ayush f122a9d764
CI: add_version enhancements (#3475)
- Prevent OpenSSL from bumping across major versions
- Skip adding versions that already have pending PRs
- Copy/move patches when adding new releases in the same series
2026-06-14 21:46:48 +03:00
native-api 3323ba3ed9
README: clarify shell setup instructions using the new --install option 2026-06-12 15:34:14 +03:00
Ivan Pozdeev b43c9e5d42 2.7.2 2026-06-10 23:16:50 +03:00
pyenv-bot[bot] 532b659ca2
Add CPython 3.13.14 (#3473)
---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-10 23:12:21 +03:00
pyenv-bot[bot] 7565df6eab
Add CPython 3.14.6 (#3472)
---------

Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-10 23:11:56 +03:00
Ivan Pozdeev e55613a267 CI: Don't trigger push checks on a pull request 2026-06-10 22:03:22 +03:00
Ivan Pozdeev 6c0c5cfa96 Fix verify_* calls in 3.6.x
Fixes #3470
2026-06-10 21:56:41 +03:00
Anup Das cf6f3c3200
fix(rehash): prevent terminal hang caused by stale or sandbox-blocked lock file (#3469)
* reduce stale lock TTL to 2 min, check for stale lock before acquiring and each time -- to hold up new shell sessions for as little as possible

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-04 22:36:11 +03:00
Ivan Pozdeev 45180928d3
2.7.1 2026-06-03 09:09:54 +03:00
native-api c12fd3ae6b
realpath.c: fix obsolete syntax warning (#3468) 2026-06-03 08:42:53 +03:00
Ayush 455d1a31db
init: add --install for shell setup (#3454) 2026-06-03 01:13:07 +03:00
pyenv-bot[bot] efc77132f7
Add CPython 3.15.0b2 (#3467)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-06-03 00:55:40 +03:00
native-api c425c9ec3a
Update URLs for PyPy nightly; Remove pypy3.5 and pypy3.7 nightly (#3466)
pypy3.5-c-jit-latest and pypy3.7-c-jit-latest are no longer available
2026-06-02 13:16:51 +03:00
native-api 95ddd7d479
Support 3.9 EOL Pip URL, consolidate tests (#3465) 2026-06-02 10:29:59 +03:00
Ivan Pozdeev 29057a6c69
2.6.32 2026-05-31 06:20:35 +03:00
native-api 23eb9a9ee3
Merge pull request #3463 from native-api/3.14_openssl_4_r2
3.14.0-5: Support building against OpenSSL 4
2026-05-31 05:59:43 +03:00
Ivan Pozdeev bfc595b0a0
CI: trigger rebuilds for <v>t, too, if a patch for <v> is changed 2026-05-30 22:00:44 +03:00
Ivan Pozdeev 034e15b810
3.14.0-5: Support building against OpenSSL 4 2026-05-30 22:00:43 +03:00
native-api 4c6d4c9be7
Add missing CPython 3.14.2t (#3464) 2026-05-30 17:58:36 +03:00
native-api 549a644688
Fix linking against a keg_only Homebrew OpenSSL when a a non-keg_only one is also installed (#3462) 2026-05-30 16:53:57 +03:00
native-api 7f1139ebe6
Add micropython 1.22.0 to 1.28.0; add downstream patches to fix compilation errors (#3460) 2026-05-30 16:36:04 +03:00
Ivan Pozdeev 874b27c749
CI: move no-response and add-version to ubuntu-slim
Supposedly lightweight tasks, we'll see
2026-05-30 16:28:31 +03:00
native-api 08a015100e
python_build: Make verify_python verify `pythonX.Y' suffix (#3459)
* Fix erroneous use in tests that didn't show until now
2026-05-30 12:47:16 +03:00
native-api 8decb512b4
Merge pull request #3458 from native-api/with_openssl_rpath
3.11.0+: Use the `--with-openssl-rpath' Configure option when possible
2026-05-30 05:46:13 +03:00
Ivan Pozdeev 84414c0121
3.11.5: Add missing patch 2026-05-30 05:38:46 +03:00
Ivan Pozdeev 9ea5bd3005
3.11.0+: Use the `--with-openssl-rpath' Configure option
The options is available since 3.10.0+ (https://github.com/python/cpython/pull/24820)
but has no effect until 3.11.0 (cpython b9e9292d75fdea621e05e39b8629e6935d282d0d)
and broken in MacOS until 3.12.2 (cpython cc13eabc7ce08accf49656e258ba500f74a1dae8),
we add downstream patches to fix that except for 3.11-dev where we disabled it
2026-05-30 05:38:32 +03:00
native-api 0a12a9cce2
Add GraalPy 25.0.3 (#3452)
* Add graalpy-25.0.3

* CI: modified_scripts_build : fix GraalPy version detection

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-05-22 09:55:55 +03:00
Ivan Pozdeev e52da606ff
CI: modified_scripts_build : fix GraalPy version detection 2026-05-22 09:48:52 +03:00
Michael Simacek 4f47143108 Add graalpy-25.0.3 2026-05-22 08:36:54 +02:00
native-api 70f096a95c
rehash: detect and remove a stale lockfile (#3450)
fixes stalling for 60s and failing if some past fault
has resulting in a stale lockfile being present

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-05-17 09:38:23 +03:00
native-api 06fd1ce788
2.7, 3.4: force C99 standard; 2.7.14-18: force OpenSSL 1 formula (#3448)
GCC 15+ uses C23 by default
(https://www.phoronix.com/news/GCC-15-Default-C23)

fixes "error: static declaration of ‘sinpi’ follows non-static declaration"
fixes "error: cannot use keyword ‘false’ as enumeration constant"

* use OpenSSL 1.0 and 1.1 only from formulae
2026-05-14 06:41:47 +03:00
native-api 0864daa5ea
miniconda 26, CI: switch check to 3.13 (#3447) 2026-05-12 01:32:56 +03:00
native-api 522164fbd5
miniforge3 26.1, 26.3, add_miniforge: exclude .pkg installers (#3446)
According to Miniforge README, they are only meant for interactive installation
2026-05-12 01:06:24 +03:00
native-api 8c59c44902
Add miniconda3 26.3.2-2, miniforge3 26.3.2-0, 26.3.2-1 (#3445) 2026-05-11 23:47:34 +03:00
Ivan Pozdeev c639152ac7
2.6.31 2026-05-11 01:39:26 +03:00
pyenv-bot[bot] 331ff66e2d
Add CPython 3.14.5 (#3444)
* Keep bundled OpenSSL 3
There's no support for OpenSSL 4 yet

---------

Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-05-11 01:36:03 +03:00
native-api f6a5b409e9
CI: add_cpython: Support prereleases for non-initial CPython releases (#3443)
* CI: add_version: correctly handle exceptions

exit code 1 is used as a signal that no new version is found -- so have to use a different exit code for unhandled exceptions

* CI: add_version: support prereleases for non-initial releases

They unexpectedly made a prerelease 3.14.5rc1

* clarify confusing error message
2026-05-08 20:20:32 +03:00
Ivan Pozdeev 3399b2e2e5
clarify confusing error message 2026-05-08 20:10:35 +03:00
Ivan Pozdeev 5bb6b27d61
CI: add_version: support prereleases for non-initial releases
They unexpectedly made a prerelease 3.14.5rc1
2026-05-08 20:10:35 +03:00
Ivan Pozdeev 97573e156e
CI: add_version: correctly handle exceptions
exit code 1 is used as a signal that no new version is found -- so have to use a different exit code for unhandled exceptions
2026-05-08 17:48:39 +03:00
Ivan Pozdeev 40dba8256f
2.6.30 2026-05-08 17:37:31 +03:00
Ned Batchelder e30c23eac2
Add CPython 3.16-dev, switch 3.15-dev to maintenance branch (#3442)
3.15.0b1 released means we need 3.16 support
2026-05-08 17:10:22 +03:00
Ivan Pozdeev a7cc776274
2.6.29 2026-05-08 03:54:43 +03:00
native-api e08497a2b7
Add CPython 3.14.5rc1 (#3441) 2026-05-08 03:53:13 +03:00
John Sirois 709f42cc08
Add CPython 3.15.0b1 (#3440) 2026-05-08 03:22:11 +03:00
Ivan Pozdeev 966819a10f
Merge branch 'master' of https://github.com/pyenv/pyenv 2026-05-06 18:19:08 +03:00
Ivan Pozdeev a736e6af27
CI: add_version: move off the start of the hour
Due to load peak at 0 minutes, it may fail to get a runner.
Github tries to allocate a runner for ~15 minutes.
2026-05-06 18:18:58 +03:00
orbisai0security 6bdb85d8b7
CI: add-version: Add timeouts to CPython release metadata fetches (#3439)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-06 06:35:23 +03:00
Ivan Pozdeev 36f37e96ea
CI: no-response: fix 2026-05-06 01:26:56 +03:00
Ivan Pozdeev 3f62ee82b5
CI: add_version: Fix commit message 2026-05-06 01:25:17 +03:00
Ivan Pozdeev 27b4b4dc84
CI: no-response: half the frequency
getting "no runner found" errors
2026-05-06 01:24:27 +03:00
native-api 0b0335a378
Add PyPy v7.3.22 (#3438)
* Add PyPy v7.3.22

The release blog entry is here:
https://pypy.org/posts/2026/04/pypy-v7322-release.html

* CI: Don't require openssl@1.1

Missing in macos-26 Homebrew, causing an error,
no longer required for any supported Pythons

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-04-30 10:43:25 +03:00
Ivan Pozdeev b8a6e9c33c
CI: Don't require openssl@1.1
Missing in macos-26 Homebrew, causing an error,
no longer required for any supported Pythons
2026-04-30 07:01:27 +03:00
John Sirois 3966e507ba
Add PyPy v7.3.22
The release blog entry is here:
https://pypy.org/posts/2026/04/pypy-v7322-release.html
2026-04-29 19:39:23 -07:00
Ivan Pozdeev 485090e713
2.6.28 2026-04-29 08:26:10 +03:00
native-api 6481d1451d
pyenv-latest: fast path for when there is an exact match (#3437)
Avoids O(N^2) complexity when `pyenv-latest` is called in a loop
for existing entries
2026-04-24 00:34:40 +03:00
Ivan Pozdeev dfb1a96c3e
CI: use macos-26
the Github runner is out of beta
2026-04-17 22:53:42 +03:00
Ivan Pozdeev ae1bb9c061
CI: add_python: 3.9 is EOL 2026-04-17 22:30:54 +03:00
Ivan Pozdeev 46e4e6ab07
-dead code
[no ci]
2026-04-15 15:18:16 +03:00
Ivan Pozdeev 914ff80062
2.6.27 2026-04-08 18:26:46 +03:00
native-api 840f3ff7fd
Add miniforge3 26.1.1-2, 26.1.1-3 (#3433) 2026-04-08 18:24:54 +03:00
pyenv-bot[bot] bfec0e43f5
Add CPython 3.13.13, 3.14.4, 3.15.0a8 (#3432)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-04-08 18:08:59 +03:00
exurd ce491008e7
python-build: advise user with no c compiler (#3294)
this checks if "no acceptable C compiler found" is in the last 10 lines of the log, and asks if the user has correctly installed the build dependencies.
2026-04-01 21:32:48 +03:00
dependabot[bot] d26308df49
Bump actions/create-github-app-token in the github-actions group (#3428)
Bumps the github-actions group with 1 update: [actions/create-github-app-token](https://github.com/actions/create-github-app-token).


Updates `actions/create-github-app-token` from 2 to 3
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 09:31:31 +03:00
Ivan Pozdeev 8397a19c64
- outdated info
[no ci]
2026-03-24 09:05:13 +03:00
Ivan Pozdeev 0d71a264c2
Fix factual errors; highlight pyenv install 3
Closes #3427
[no ci]
2026-03-23 18:12:11 +03:00
Ivan Pozdeev a6521a0d35
Fix link
[no ci]
2026-03-23 17:05:57 +03:00
native-api 044d816d35
which: update pyenv help global tip (#3424) 2026-03-14 11:23:19 +03:00
Jake Lodwick 6a246fad63
commands: fast path for --sh, replace sort|uniq with sort -u (#3423) 2026-03-13 13:56:23 +03:00
Ivan Pozdeev 174c61526f
2.6.26 2026-03-11 01:37:45 +03:00
native-api 397312d0c3
Merge pull request #3422 from native-api/miniconda3-26.1.1-1
Add miniconda3-26.1.1-1
2026-03-11 01:35:04 +03:00
Ivan Pozdeev 5bd084d816
Add miniconda3-26.1.1-1 2026-03-11 01:18:41 +03:00
Ivan Pozdeev 974e820478
Replace patterns with f-strings for logging
fix KeyError: out_dir
2026-03-11 01:17:34 +03:00
pyenv-bot[bot] a47dae9131
Add CPython 3.15.0a7 (#3421) 2026-03-11 01:11:17 +03:00
Ivan Pozdeev d5cd462a35
Revert "Add miniconda3-26.1.1-1 (#3420)"
This reverts commit 1534421e56.

The scripts actually contain the previous version, 25.11.1-1
2026-03-10 08:23:42 +03:00
binbjz 1534421e56
Add miniconda3-26.1.1-1 (#3420)
Co-authored-by: binbjz <binbjz@gmail.com>
2026-03-10 08:21:06 +03:00
Jake Lodwick e985ffab82
rehash: simplify source.bash pipeline (#3419)
Same cleanup applied to conda.bash in #3151.
2026-03-10 08:15:46 +03:00
native-api 8037f22665
rehash: streamline executables discovery; fix regression (#3418)
Separate the corner-cutting code for `rehash' into a dedicated branch.

Saves some more time (about 100ms for the large fixture)
2026-03-07 13:09:14 +03:00
Tekin Tian d5fa1e225e
Fix MacPorts OpenSSL formula detection (#3417)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-03-07 11:44:57 +03:00
Jake Lodwick 23bcdebe18
versions: fast path for --bare --skip-aliases (#3411)
Skip sort, native extension probe, and per-symlink realpath
when called with --bare --skip-aliases (the rehash case).
Use readlink to distinguish internal aliases (relative target)
from external installs (absolute target).

In MacOS, speeds up rehash by 5.2 ms (7%) in empty environment,
55.9 ms (33%) in a regular environment (3 ver, 12 venvs, 320 bins),
93.7 ms (15%) in a large environment (6 ver, 60 venvs, 1466 bins)
2026-03-04 10:02:44 +03:00
Ivan Pozdeev aa2e8b8260
2.6.25 2026-03-03 20:06:38 +03:00
pyenv-bot[bot] c9d3829169
Add CPython 3.12.13 (#3414) 2026-03-03 20:04:59 +03:00
native-api 05d3a598c4
Add miniforge3-26.1.0-0 (#3413) 2026-03-03 09:07:15 +03:00
Ivan Pozdeev c89b6b46dc
2.6.24 2026-03-03 08:17:57 +03:00
pyenv-bot[bot] c4ed80826f
Add CPython 3.10.20, 3.11.15
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-03-03 08:15:01 +03:00
Jake Lodwick 47871b2dc3
rehash: drop redundant sort -u from make_shims call (#3410)
register_shim() already deduplicates via associative array (bash 4+) or
by checking if a shim already exists (bash 3.2). The sort -u pipe in the make_shims
call is thus redundant -- the dedup happens downstream regardless. Shim
creation is order-independent and idempotent, so sorting has no semantic
effect either.

Saves one subprocess fork during every rehash invocation.
2026-03-02 00:36:24 +03:00
binbjz 43e83b52a2
Add Anaconda3-2025.12-2 (#3408)
Co-authored-by: binbjz <binbjz@gmail.com>
2026-02-21 00:32:12 +03:00
Ivan Pozdeev 9279111a60
Revert accidentally left test code from "CI: add_version: use Github App token to create PR"
This partially reverts commit 47b6fce29d.
2026-02-19 07:41:21 +03:00
native-api 3100654510
Merge pull request #3406 from pyenv/use_github_app_token
CI: add_version: use Github App token to create PR
2026-02-19 06:05:04 +03:00
Ivan Pozdeev 06bac52676
add_cpython: fix erroneously deleting old thunks
Looks like a leftover from older logic, before
we `git mv`'d thunks on prerelease upgrade
2026-02-19 04:56:42 +03:00
Ivan Pozdeev 47b6fce29d
CI: add_version: use Github App token to create PR
The only way atm that allows to both trigger CI
and get PR notifications, as per
https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens

Created helper app https://github.com/apps/pyenv-bot/
2026-02-19 04:56:41 +03:00
Ivan Pozdeev 81befc1592
2.6.23 2026-02-17 02:38:47 +03:00
native-api c44f03c058
Add CPython 3.15.0a6 (#3403)
Co-authored-by: native-api <2670332+native-api@users.noreply.github.com>
2026-02-17 02:36:26 +03:00
Ivan Pozdeev b2a43bbcdb
CI: add_verison: Don't run "set PR properties" unnecessarily 2026-02-04 13:58:08 +03:00
Ivan Pozdeev 2f10394d33
CI: add_version: fix Actions not triggering for the pull request 2026-02-04 04:15:00 +03:00
Ivan Pozdeev 57ec277d6a
2.6.22 2026-02-04 03:52:39 +03:00
github-actions[bot] 63edb91375
Add CPython 3.13.12 (#3401) 2026-02-04 03:50:15 +03:00
Ivan Pozdeev 6d8c0e4021
2.6.21 2026-02-03 23:46:41 +03:00
github-actions[bot] fbc7067e3f
Add CPython 3.14.3 (#3400) 2026-02-03 23:44:14 +03:00
Ivan Pozdeev 82f4de5593
CI: reflect GraalPy 25.0.2 dropping MacOS x64 support 2026-01-20 18:52:39 +03:00
Michael Šimáček 968cd11daa
Add GraalPy 25.0.2 (#3395) 2026-01-20 18:12:44 +03:00
Ivan Pozdeev 5447f1f859
CI: add_script: make more frequent
practice shows a long enough delay that contributors step in
2026-01-15 16:09:57 +03:00
Ivan Pozdeev 3441980e83
2.6.20 2026-01-15 07:05:06 +03:00
Ned Batchelder bd2f32dd7d
Add CPython 3.15.0a5 (#3393) 2026-01-15 07:00:46 +03:00
native-api 94faa168cb
CI: adjust CPython PR generation logic (#3392)
* For files retrieved through the GNU mirror load balancer, specify the load balancer URL
* Explicitly `git mv` files on prerelease upgrade in case Git doesn't detect it
* Add a trailing newline to a thunk
2026-01-14 07:03:58 +03:00
Ivan Pozdeev 92c9ab5273
2.6.19 2026-01-14 04:11:02 +03:00
Ned Batchelder 37bf92af84
Add CPython 3.15.0a4 (#3390) 2026-01-14 04:00:41 +03:00
Ivan Pozdeev 05ba9388a7
Fix schedule 2026-01-11 23:45:25 +03:00
Ivan Pozdeev c62be31e8c
2.6.18 2026-01-10 06:16:21 +03:00
Ivan Pozdeev c8129ceee6
fix schedule syntax 2026-01-09 12:04:52 +03:00
native-api d9182d6edc
CI: automatically check for CPython releases (#3388)
* .gitignore local venv
* Add alt GNU mirror support with <table>
* Fix UnboundLocalError when no micro 0 releases
* Cutoff for existing vetsions as well
* add missing dependency more_itertools
* workaround fake_useragent 2.0.0 falsely declaring 3.8 compatibility
2026-01-09 09:52:09 +03:00
native-api 4cf95be5ee
Merge pull request #3387 from native-api/anaconda-2025.12-1
Add anaconda-2025.12-1
2026-01-08 14:09:29 +03:00
Ivan Pozdeev 8c50260ba2
Anaconda 2025.12 dropped MacOS x64 support 2026-01-08 14:00:56 +03:00
Ivan Pozdeev f614e5caa5
Fix hang in Ubuntu build for Anaconda-2025.12 2026-01-08 14:00:55 +03:00
native-api 3c539aa0bc
Merge pull request #3386 from native-api/miniconda-25-accept-tos
Auto-accept TOS for miniconda3-25+
2026-01-08 13:07:40 +03:00
Ivan Pozdeev 935e1a68cd
Add anaconda3-2025.12-1 2026-01-08 11:22:55 +03:00
Ivan Pozdeev 98a7a6809c
Fix verify_py prefix in anaconda3-2025.06 2026-01-08 11:20:20 +03:00
Ivan Pozdeev 45ef1677c4
Auto-accept TOS in miniconda3-25+
Required for installation since this version
2026-01-08 11:20:20 +03:00
binbjz c35f26af3e
CI: exclude unsupported MacOS-x64 for recent Miniconda versions (#3385)
* split macOS Intel build and filter unsupported Miniconda

* Generate exclusions instead

---------

Co-authored-by: binbjz <binbjz@gmail.com>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-01-08 09:08:08 +03:00
binbjz 967ed2c367
Add miniconda3-25.11.1-1 (#3382)
Co-authored-by: binbjz <binbjz@gmail.com>
2026-01-08 00:27:49 +03:00
Ivan Pozdeev 1d8240a641 set executable bit for add_cpython.py 2026-01-07 22:53:57 +03:00
Ivan Pozdeev e5a6b49e02
scripts: remove unused 2026-01-07 07:32:00 +03:00
Ivan Pozdeev 4a3aaf4327
scripts: relax version requirements
Latest version are okay.
Freezing them causes Dependabot alerts
about vulnerabilities in old versions
2026-01-03 13:32:53 +03:00
native-api 2c27f44612
Merge pull request #3358 from native-api/cpython_generate
CI: add a script to autogenerate CPython build scripts
2025-12-27 08:20:00 +03:00
Ivan Pozdeev ff94d498db
(refactor) 2025-12-27 08:18:41 +03:00
Ivan Pozdeev 99faf7f217
Add a script to generate CPython installation scripts
[no ci]
2025-12-27 08:18:41 +03:00
native-api bf37e78693
Merge pull request #3379 from native-api/make_j_argument
Recognize an argument to -j in MAKEFLAGS when building extensions in 3.10-3.11 and latest 3.5-3.9
2025-12-27 06:23:19 +03:00
Ivan Pozdeev 956f78df42
Recognize an argument to -j in MAKEFLAGS when building extensions in 3.10-3.11 and latest 3.5-3.9
Upstream issue fixed in 3.12 (https://github.com/python/cpython/issues/87800)
2025-12-27 02:56:23 +03:00
Ivan Pozdeev 56bc05d5d6
python-build: Use no-tests only for OpenSSL 1.1.1+
Introduced in 1.1.1-pre1
2025-12-27 02:56:15 +03:00
Ivan Pozdeev 8ef33165b8
CI: fix CPython-only checks 2025-12-27 02:56:14 +03:00
native-api 48743aa8f3
README: Document how to change Python version in a shell spawned from a Python-based program (e.g. Jupyter) (#3380) 2025-12-26 17:19:10 +03:00
rockandska 2c38423a98
pyenv launcher: introduce and export _PYENV_INSTALL_PREFIX (#3334)
provides a reliable way for Pyenv code to locate other parts of Pyenv code that are not under `PYENV_ROOT`

* tests: Work with Git entirely in a test repo

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-12-24 10:00:09 +03:00
native-api aa6c9b9694
init: don't silence automatic rehash; rehash: report final error but not provisional ones (#3377) 2025-12-21 07:21:30 +03:00
native-api a944da76c0
rehash: support BSD mktemp (#3376)
macOS 12 `mktemp' doesn't support `-p`
2025-12-21 06:38:46 +03:00
Florian Blanchet aeea3ac825
Add PowerShell support (#2749)
Co-authored-by: Ivan Pozdeev <ivan_pozdeev@mail.ru>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-12-21 05:33:19 +03:00
Ivan Pozdeev 7998159daa
tests: fix integration tests for Bash and Fish 2025-12-21 02:11:02 +03:00
native-api 5855d9dfca
Merge pull request #3372 from native-api/ci_update_cleanup
CI: Update and cleanup workflow scripts
2025-12-20 19:37:04 +03:00
native-api 22993a239e
Merge pull request #3375 from native-api/fix_inf_loop_shim_different_location
Fix an infinite loop if a shim is symlinked to and called from a different location
2025-12-20 11:24:41 +03:00
Ivan Pozdeev 6113214f65
tests: refactor: migrate to newly-added create_stub() 2025-12-20 11:05:27 +03:00
Ivan Pozdeev 7418835908
Prevent infinite loop if a shim is linked and called from a nonstandard location with "system" active 2025-12-20 11:05:27 +03:00
Ivan Pozdeev b259813357
tests: refactor: rename and consolidate create_executable() functions 2025-12-20 08:34:20 +03:00
Ivan Pozdeev 22b192913e
2.6.17 2025-12-16 23:30:42 +03:00
Edgar Ramírez Mondragón b50afe69a8
Add CPython 3.15.0a3 (#3374)
Signed-off-by: Edgar Ramírez-Mondragón <edgarrm358@gmail.com>
2025-12-16 23:28:46 +03:00
native-api 91931a4dd9
miniconda3-latest: auto accept TOS (#3373)
Since 14.07.2025, Anaconda requires accepting the new TOS upon installation
that limit eligibility for free use
2025-12-14 22:48:46 +03:00
Ivan Pozdeev dabaa901e9
CI: - Ubuntu 18.04 workaround 2025-12-13 18:07:37 +03:00
Ivan Pozdeev 4b33cb68b6
CI: - Micropython-specific code from CPython-only branches 2025-12-13 18:04:15 +03:00
Ivan Pozdeev 9b85239875
CI: - commented-out code 2025-12-13 17:52:53 +03:00
Ivan Pozdeev f19fe0f2be
CI: tests: + macos-15 2025-12-13 17:51:51 +03:00
Ivan Pozdeev 293798582a
CI: build: - EOL 3.9, + 3.13 2025-12-13 17:51:26 +03:00
Ivan Pozdeev 4b36ddf5c6
Merge branch 'master' of https://github.com/pyenv/pyenv 2025-12-13 17:26:59 +03:00
Ivan Pozdeev 4e7626721a
Delete the old issue template
[no ci]
2025-12-13 17:22:12 +03:00
native-api 3b25462407
Merge pull request #3371 from 13steinj/new-miniforge-miniconda-versions
Adds latest miniforge releases 25.9.1-0, 25.11.0-1
2025-12-09 22:25:34 +03:00
Jonathan Stein 70294ef6f1 Add miniforge3 25.9.1-0, 25.11.0-1
Adds latest miniforge releases 25.9.1-0, 25.11.0-1.

Skips 25.11.0-0 due to a regression reported in the release notes of
miniforge3-25.11.0-1.

Ref: https://github.com/conda-forge/miniforge/releases/tag/25.11.0-1
2025-12-09 12:27:18 -06:00
Jonathan Stein bdb0508220 Update requirements for the add_miniconda script
At least under Python 3.14, this quickly fails without lxml[html_clean]
installed explicitly.
2025-12-09 12:18:23 -06:00
Ivan Pozdeev e805257c1f
2.6.16 2025-12-06 00:58:03 +03:00
César Román 6cbce8616e
Add CPython 3.13.11, 3.14.2 (#3370) 2025-12-06 00:56:17 +03:00
Ivan Pozdeev a6ea5b3179 Fix rehash 2025-12-05 20:57:07 +03:00
native-api 0f7b8fa8ee
sh-rehash: Fix erroneously executing rather than printing a command (#3369) 2025-12-05 20:42:25 +03:00
binbjz 59204a6c89
Add Miniconda3-25.9.1-3 (#3368)
Co-authored-by: binbjz <binbjz@gmail.com>
2025-12-05 17:26:32 +03:00
native-api 6f0e2d3458
rehash: Fix hanging for 60 seconds when shims directory is not writable due to Linux Landlock (#3367) 2025-12-05 16:19:17 +03:00
Ivan Pozdeev 61d869f67e
2.6.15 2025-12-03 03:23:17 +03:00
John Sirois a63e48cf75
Add CPython 3.13.10. (#3364) 2025-12-03 03:21:46 +03:00
Ivan Pozdeev d1ae7fd65d
2.6.14 2025-12-02 21:00:00 +03:00
Ned Batchelder b230a338df
Add CPython 3.14.1 (#3363) 2025-12-02 20:52:30 +03:00
native-api 94e4bf0ae8
Fix "ld: symbol(s) not found" for some C system calls in MacOS if XCode is for a newer major MacOS version (#3362)
Citing https://www.postgrespro.ru/list/id/E1kfzRR-0001EH-Ph@gemulon.postgresql.org
fixing the same problem:
We previously put the -isysroot switch only into CPPFLAGS, theorizing
that it was only needed to find the right copies of include files.
However, it seems that we also need to use it while linking programs,
to find the right stub ".tbd" files for libraries.  We got away
without that up to now, but apparently that was mostly luck.  It may
also be that failures are only observed when the Xcode version is
noticeably out of sync with the host macOS version; the case that's
prompting action right now is that builds fail when using latest Xcode
(12.2) on macOS Catalina, even though it's fine on Big Sur.

Specifically, the problem arises for `preadv' and `pwritev' (new in MacOS 11 Big Sur) when building with XCode 12.4 (supporting Big Sur) in MacOS 10.15 Catalina.
2025-12-01 22:01:15 +03:00
dependabot[bot] a30c26ddf5
Bump actions/checkout from 5 to 6 in the github-actions group (#3360)
Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 5 to 6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 15:59:31 +03:00
Ivan Pozdeev fdde91269b
2.6.13 2025-11-19 14:30:40 +03:00
Ned Batchelder fa741b861a
Add CPython 3.15.0a2 (#3359) 2025-11-19 14:28:31 +03:00
binbjz 2afd1733a4
Add Miniconda3-25.9.1-1 (#3357) 2025-11-08 14:35:44 +03:00
Edgar Ramírez Mondragón 032022dace
Replace macos-13 with macos-15-intel (#3356)
> The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO.

https://github.com/actions/runner-images/issues/13046

Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com>
2025-11-05 22:10:29 +03:00
Ivan Pozdeev c6ea700cdf 2.6.12 2025-10-31 23:27:18 +03:00
Ned Batchelder 97fd8f436d
Add CPython 3.9.25 (#3355) 2025-10-31 23:24:35 +03:00
Michael Šimáček 1b7d2f08fd
Add graalpy-25.0.1 (#3350) 2025-10-22 02:28:06 +03:00
Ivan Pozdeev 74fea7edc6 Fix leftover commented-out test code 2025-10-15 15:00:43 +03:00
Ivan Pozdeev 94071a9374 2.6.11 2025-10-15 14:40:44 +03:00
Edgar Ramírez Mondragón 7661437864
Add CPython 3.15.0a1 (#3347) 2025-10-15 14:38:53 +03:00
native-api ea3a9fe895
Merge pull request #3346 from nedbat/nedbat/3.13.9 2025-10-15 14:08:11 +03:00
Ivan Pozdeev c1c8646d75 Fix Readline 8.3 URLs
https://www.gnu.org/server/mirror.html advises
to use http://ftpmirror.gnu.org/
for automatic mirror selection
2025-10-15 13:10:13 +03:00
Ned Batchelder fc28287273 Add CPython 3.13.9 2025-10-14 16:18:13 -04:00
native-api 8d3bba2f92
Support building against Homebrew Tcl/Tk 9 (#3343)
Use tclConfig.sh/tkConfig.sh for future-proofing
3.14.0 doesn't detect Tcl/Tk with external libtommath, have to do it ourselves
2025-10-11 00:19:06 +03:00
Ivan Pozdeev a419b003b4 2.6.10 2025-10-10 04:14:38 +03:00
Ned Batchelder 1c05252dfc
Add CPython 3.12.12, 3.11.14, 3.10.19, 3.9.24 (#3344) 2025-10-10 04:12:44 +03:00
Ivan Pozdeev 8087e811cd 2.6.9 2025-10-07 22:33:22 +03:00
John Sirois faddc0d3fe
Add CPython 3.13.8 (#3341) 2025-10-07 22:28:30 +03:00
James ce9d396ccc
Add CPython 3.14.0 (#3339)
---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-10-07 22:26:47 +03:00
native-api ba968fda2d
CI: Fix output variable for CPython-specific workflows (#3340) 2025-10-07 21:31:45 +03:00
tuzi3040 8e34326347
CI: modified-scripts-build: fix CPython-specific jobs never firing (#3338) 2025-10-07 21:00:59 +03:00
Ivan Pozdeev 519ce9dbf0 2.6.8 2025-09-19 07:14:28 +03:00
native-api 3e51bae343
Merge pull request #3327 from native-api/use_pkgconfig_3.12plus
Use TCLTK_* and pkg-config for 3.11+ linking with Homebrew Tcl/Tk; add PYTHON_BUILD_TCLTK_FORMULA envvar
2025-09-19 07:11:26 +03:00
Ivan Pozdeev ca551b3a55 Add PYTHON_BUILD_TCLTK_FORMULA to allow building against Tcl/Tk 9
Tcl/Tk 9.0 support was added in 3.13.0b3 and is not official as of 3.14.0;
the build with Homebrew version fails as of this writing
2025-09-19 06:20:41 +03:00
Ivan Pozdeev bbe6301f01 Use TCLTK_* and pkg-config for 3.11+ instead of --with-tcl-* and pkg-config
Fixes warnings "configure: WARNING: unrecognized options: --with-tcltk-libs, --with-tcltk-includes"

fix script
2025-09-19 06:20:41 +03:00
Ivan Pozdeev 8c3b705f04 CI: modified-scripts-build: print config.log on build failure 2025-09-19 01:26:06 +03:00
native-api 90b1c28fa6
Merge pull request #3333 from nedbat/nedbat/314rc3
Add CPython 3.14.0rc3
2025-09-18 19:17:29 +03:00
Ivan Pozdeev 0052372fa3 Explicitly include Homebrew at /usr/local/include if passing -isysroot
Apple CLang excludes it if -isysroot is passed
2025-09-18 19:02:46 +03:00
Ned Batchelder 1068875cc6 Add CPython 3.14.0rc3 2025-09-18 08:15:02 -04:00
rockandska 22a7c46d54
upgrade pip detetcion in pip-rehash to accept multiple variations: (#3330)
- pip
- pipX
- pipX.Y
- * -m pip

Co-authored-by: Christian Fredrik Johnsen <christian@johnsen.no>
2025-09-17 03:53:37 +03:00
Michael Šimáček 7881c26b5a
Add GraalPy 25.0 (#3331) 2025-09-16 17:57:02 +03:00
native-api 4033a0a260
Merge pull request #3324 from rockandska/bats_in_docker
Bats test suite in docker
2025-09-15 22:37:01 +03:00
rockandska dee36c348d add test README 2025-09-15 20:16:31 +02:00
rockandska d275391f65 add possibility to filter tests with make 2025-09-15 20:16:18 +02:00
rockandska a7897ca0f6 add bats test under docker 2025-09-15 20:16:11 +02:00
rockandska 92a28e531b use BATS_FILE_TMPDIR in test/plugin test
use global setup with bats with possibility to add specific test file _setup
use readlink in helper if realpath is not working as expected
2025-09-15 19:48:34 +02:00
rockandska 8990110dcf upgrade bats to v1.10.0
fix bats warnings
2025-09-15 16:45:02 +02:00
rockandska 68edd564cf update parent shell detection in pyenv-init to be more portable 2025-09-15 15:00:18 +02:00
rockandska 0d987b0e4b fix test isolation
Make sur that PYENV_TEST_DIR is created if mktemp failed
mock python3 usage by updating create_executable function
fix test by adding the right PATH
update path in plugin test
replace for loop with while read
don't use symlink for stub
2025-09-15 15:00:14 +02:00
Ivan Pozdeev 857806e6ca Apple Silicon is now supported by Github 2025-09-14 23:25:49 +03:00
Ivan Pozdeev 85561398ea -unused Dockerfile 2025-09-14 22:21:31 +03:00
native-api 17fb66cd8b
Support curl from a snap (#3329) 2025-09-14 07:23:41 +03:00
native-api 2ecd676a2a
Add miniconda 25.7.0-2 (#3323) 2025-09-08 21:47:20 +03:00
rockandska b57bdef584
Fix rehash hook for pipx/pipx.x/pipx.xx (#3320) 2025-09-04 18:56:53 +03:00
dependabot[bot] cd78412b80
Bump actions/checkout from 4 to 5 in the github-actions group (#3318)
Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).


Updates `actions/checkout` from 4 to 5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 13:33:28 +03:00
native-api 692ac77559
Fix specifying XCode SDK for distutils; Revert to preferring XCode Zlib (#3316)
* Fix specifying XCode SDK for distutils

* Revert to preferring XCode Zlib

It turns out, everything since 2.7.12 and 3.5.2
can use libs from modern XCode SDK
which is always available unless we're using an alternate compiler
2025-09-01 01:09:57 +03:00
native-api 97eda4403f
Fix Readline and OpenSSL detection for MacPorts without the corresponding package (#3317) 2025-08-31 21:48:24 +03:00
native-api ab1331d3c0
Merge pull request #3311 from native-api/fiz_zlib_homebrew
Prefer ZLib from Homebrew/MacPorts if present; Fix using Zlib from Homebrew
2025-08-28 10:54:50 +03:00
Ivan Pozdeev 7d3854b64d CI: use ZLib from XCode SDK
Everything since 3.5.2 (see #3301) can use it;
it's now present in all non-EOL MacOS XCode versions
2025-08-28 10:49:32 +03:00
Ivan Pozdeev 11c1898abb Fix using Zlib from Homebrew 2025-08-28 09:52:24 +03:00
Ivan Pozdeev 25e5989261 Prefer ZLib from Homebrew/MacPorts if present
Zlib from XCode is virtually always present now so it only makes sense to use it from elsewhere if it's preferred.
Works around build failure for 2.7 that's incapable of using Zlib from XCode 7+ (see #3301)
2025-08-28 09:36:13 +03:00
Ivan Pozdeev cd2f410f75 Clean up, skip looking for mambaforge after it's retired 2025-08-23 21:53:51 +03:00
native-api 89b8e5f8da
Add miniforge 25.3.0-1, 25.3.0-2, 25.3.0-3, 25.3.1-0, skip miniforge 25.3.0-0 (#3306)
miniforge-25.3.0-0 is marked as prerelease, there's no Linux version. Probably recalled.
2025-08-23 19:40:17 +03:00
Jared Stever 71a8d47b81
Use Zlib from XCode SDK in a way compatible with XCode 16 and CLT (#3301)
* use `xcrun` instead of `xcodebuild` which is absent in CLT
* use an alternative way that's compatible with CPython's setup.py since 3.5.2

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-08-16 20:17:53 +03:00
Ivan Pozdeev bc44cb8fc0 CI: run modified scripts in MacOS 15, too
It turns out, macos-14 has XCode 15 rather than 16 as advertised in Github docs
2025-08-16 20:04:40 +03:00
Ivan Pozdeev 3dbdfdf39a 2.6.7 2025-08-15 21:49:48 +03:00
Ned Batchelder 43da49d6df
Add CPython 3.14.0rc2 and 3.13.7 (#3303) 2025-08-15 21:13:33 +03:00
native-api 10675af5a6
Don't fail the build if xcodebuild fails (#3302) 2025-08-14 22:40:54 +03:00
native-api 685f281526
Skip Zlib from XCode for XCode 16+ (#3298)
It breaks the build due to yet unknown structural changes from XCode 15
2025-08-08 23:05:49 +03:00
Ivan Pozdeev d56241330c 2.6.6 2025-08-07 23:17:54 +03:00
César Román 73b7420b3d
Add CPython 3.13.6 (#3297) 2025-08-07 23:15:37 +03:00
native-api bd9d13b9fe
Add anaconda3-2025.06-0, anaconda3-2025.06-1, miniconda3-25.3.1-1, miniconda3-25.5.1-0, miniconda3-25.5.1-1 (#3295) 2025-08-03 09:29:54 +03:00
Ivan Pozdeev 05cc41d273 CI: change macos_build to -latest 2025-08-03 09:29:21 +03:00
Ivan Pozdeev df84c42653 2.6.5 2025-07-23 21:20:39 +03:00
Ivan Pozdeev 23fe500a33 Push version in Python-Build as well 2025-07-23 21:20:29 +03:00
Michael Šimáček 609daca27c
Add GraalPy 24.2.2 (#3291) 2025-07-23 21:17:19 +03:00
Ned Batchelder 40f46083db
Add CPython 3.14.0rc1 (#3293) 2025-07-23 21:11:40 +03:00
native-api 418a61b7b8
Update README.md
Explicitly specify how to use the Zsh shell snippet
It turns out to be unclear to some users
2025-07-19 18:34:11 +03:00
César Román 16508177fb
Add Jython 2.7.4 (#3290) 2025-07-17 21:40:12 +03:00
Edgar Ramírez Mondragón 945f4b216d
Bump OpenSSL to 3.5.1 in the latest releases and branch tips in CPython 3.12 - 3.15 (#3287) 2025-07-10 19:49:03 +03:00
Ivan Pozdeev 0c680e8ede 2.6.4 2025-07-08 21:12:30 +03:00
Edgar Ramírez Mondragón 20296fc53a
Add CPython 3.14.0b4 (#3285)
* Bump CPython 3.14 OpenSSL to 3.4.2
2025-07-08 21:10:52 +03:00
native-api 7725fe2cf2
Install feature request templates
[no ci]
2025-07-06 23:46:48 +03:00
native-api d8384fcc05
Install issue templates
It looks like Github have dropped support for https://github.com/pyenv/pyenv/edit/master/.github/ISSUE_TEMPLATE.md entirely.
2025-07-06 23:29:49 +03:00
John Sirois e150257413
Add PyPy v7.3.20 (#3284)
The release blog entry is here:
  https://pypy.org/posts/2025/07/pypy-v7320-release.html
2025-07-06 09:22:51 +03:00
native-api 798d21e0ca
(regression) Use Zlib from XCode SDK in MacOS without Homebrew or Macports (#3282) 2025-06-29 19:51:25 +03:00
native-api 9114929e4f
Backport bpo_36106 to 3.5.10 and 3.6.15 (#3280)
Fixes "error: static declaration of ‘sinpi’ follows non-static declaration"
with newer libm
2025-06-22 14:22:17 +03:00
Ivan Pozdeev f1c5371752 2.6.3 2025-06-18 22:05:08 +03:00
Ned Batchelder 907cd78f35
Add CPython 3.14.0b3 (#3278)
* remove the need for explicit versions in the python-build free-threading files
2025-06-18 22:02:01 +03:00
Danny Kim e13b5848be
Support linking to MacPorts ports installed from binary archives (#3272) 2025-06-14 09:38:35 +03:00
native-api bf19366669
Re-promote "Python versions with extended support" to a section (#3276)
It's a valuable asset of Pyenv and https://github.com/pyenv/pyenv/issues/3275 showed it has stoppped being discoverable

[no ci]
2025-06-13 22:19:06 +03:00
Ivan Pozdeev a71a378dac 2.6.2 2025-06-12 13:19:45 +03:00
Ned Batchelder 807a4e0cac
Add CPython 3.13.5 (#3269) 2025-06-12 12:47:09 +03:00
Ivan Pozdeev b9ede4ae0e 2.6.1 2025-06-04 20:22:49 +03:00
Ned Batchelder 0e05ee8694
Add CPython 3.9.23, 3.10.18, 3.11.13, 3.12.11, 3.13.4 (#3266) 2025-06-04 09:15:55 +03:00
Ivan Pozdeev bfbe76e6a9 2.6.0 2025-05-26 22:59:51 +03:00
Ned Batchelder d88de11543
Add CPython 3.14.0b2 (#3259) 2025-05-26 22:15:12 +03:00
Pedro Fonini 70b973fdd4
Fix python-build's has_broken_mac_readline when Readline is explicitly configured (#3254) 2025-05-22 07:58:25 +03:00
Alexander Studnitskiy f24ff8d152
Add MacPorts support for python-build (#3186)
Did not implement customizable priority due to unclear use feedback and more compilation in the code, can decide and do that separately

Tcl/Tk from MacPorts support is omitted due to CPython's only being compatible with 
Tcl/Tk 9 since 3.12.5 and 3.13.0.

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-05-18 18:24:38 +03:00
Ivan Pozdeev 5e82f5cf81 Merge branch 'master' of https://github.com/pyenv/pyenv 2025-05-18 12:27:06 +03:00
Ivan Pozdeev 6c86ae4175 README: fix erroneous extra indents in code blocks 2025-05-18 12:26:50 +03:00
Jordan Stewart da3fcb7eb7
README: Add shell setup instructions for nushell (#2916) 2025-05-18 12:20:30 +03:00
Jesse Wattenbarger 018ca73444
Add --bare option to pyenv version (#2783) 2025-05-17 18:23:25 +03:00
Tom Godkin 90fa430eca
README: make fish PATH add conditional on the directory existing (#2786) 2025-05-17 16:13:12 +03:00
native-api 2d8bd15ccd
Add CODEOWNERS file (#3247)
to get notifications of pull requests ready for review

[no ci]
2025-05-17 15:38:33 +03:00
native-api 9656bcf0b9
python-build: Support patch paths with spaces/special characters (#3251)
This is now possible because all non-EOL MacOS versions now support
`find -print0`/`sort -z`/`xargs -0`
2025-05-17 08:58:06 +03:00
Ivan Pozdeev f216b4bfb1 2.5.7 2025-05-09 00:52:54 +03:00
Edgar Ramírez Mondragón 54fd0106f8
Point 3.14-dev to 3.14 branch (#3246) 2025-05-09 00:51:24 +03:00
Ivan Pozdeev 6fff3d29d4 2.5.6 2025-05-08 17:12:28 +03:00
native-api b70fb9c07b
Merge pull request #3245 from edgarrmondragon/cpython-3.14.0b1-3.15-dev
Add CPython 3.14.0b1 and 3.15-dev
2025-05-08 17:06:01 +03:00
Edgar Ramírez-Mondragón f4b94c14a6
Add CPython 3.15-dev 2025-05-07 13:53:53 -06:00
Edgar Ramírez-Mondragón e95941c9fe
Add CPython 3.14.0b1 2025-05-07 13:26:50 -06:00
native-api bc7b6cb6b5
Cache uname and sw_vers output (#3244)
Mainly for tests, to avoid having to adjust call counts for stubs when the logic changes
2025-05-06 19:17:36 +03:00
David Lawson ee40ad2253
Fix get-pip URLs for 3.7, 3.8 and Pyston (#3242)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-04-29 20:58:49 +03:00
Michael Šimáček 323af282db
Add GraalPy 24.2.1 (#3238) 2025-04-16 21:08:46 +03:00
Ivan Pozdeev 97993fcc26 2.5.5 2025-04-09 23:00:35 +03:00
native-api 323bd16fbf
Add CPython 3.9.22, 3.10.17, 3.11.12, 3.12.10, 3.13.3, 3.14.0a7 (#3233)
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
2025-04-09 21:56:48 +03:00
native-api 67f474d3e3
Add miniforge3-24.11.3-1, miniforge3-24.11.3-2, miniforge3-25.1.1 (#3224) 2025-03-28 00:03:17 +03:00
native-api 004f6706a1
Switch 3.9+ to OpenSSL 3 (#3223) 2025-03-27 23:35:50 +03:00
Michael Šimáček c579b63696
Add graalpy 24.2 (#3215) 2025-03-18 19:18:33 +03:00
Ivan Pozdeev abf1376487 2.5.4 2025-03-15 02:06:16 +03:00
Ned Batchelder 44172d69f2
Add CPython 3.14.0a6 (#3213) 2025-03-14 20:26:03 +03:00
John Sirois 2f4bdcdb43
Add PyPy v7.3.19. (#3205)
Some checks failed
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
The release blog entry is here:
  https://pypy.org/posts/2025/02/pypy-v7319-release.html
2025-02-28 22:05:57 +03:00
binbjz 47eef10ce1
Add anaconda3-2025.1.1-2 (#3198)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
Co-authored-by: binbjz <binbjz@gmail.com>
2025-02-14 09:48:24 +03:00
Ivan Pozdeev 5051a42b2c 2.5.3
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
ubuntu_build / ubuntu_build (3.13) (push) Waiting to run
ubuntu_build / ubuntu_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
2025-02-13 09:17:25 +03:00
native-api 1c2a7658f0
Merge pull request #3151 from ChristianFredrikJohnsen/fix/conda-rehash
Do not execute conda-specific code if conda is not installed
2025-02-13 08:48:57 +03:00
Christian Fredrik Johnsen 8e5379ebe3 perf: faster execution of build_conda_exclusion_list
1) Got rid of useless call to `cat`, much better to simply use sed with
   file as argument.

2) Got rid of `sort -u`. There is no need to sort the list.
   Additionally, the list `pyenv.d/rehash/conda.d/default.list` only has
   unique entries, and even if you have duplicate entries, the function
   will still work. --> No need for sort nor unique.

3) Further improvement is simple, save a cached
cleaned-list-v1.0 in `conda.d` and simple read from that file instead of
doing `sed`, which must be a more expensive operation than simply
reading from file.
2025-02-13 08:31:48 +03:00
Christian Fredrik Johnsen ab2a5ad030 style: place greadlink in coreutils section
Applies to the conda blacklist in `pyenv.d/rehash/conda.d/default.list`
No practical difference, but it looks misplaced when it sits at the end
of the file.
2025-02-13 08:31:48 +03:00
Christian Fredrik Johnsen 09fbed1d4f fix: pyenv-rehash | do NOT create conda_exclusion_list if conda is not installed.
I was doing some debugging with PYENV_DEBUG=1 and noticed that a lot of
work was being done in conda.bash, even though I had not installed any
conda versions like `mambaforge`.

The solution is pretty simple, put all the code inside an if-block.
This aligns with what @varikin found in his pull request #3037

Additionally, I have refactored the code slightly for readability
(created function `build_conda_exclusion_list`), and added comments
which should make it easier to understand what's going on.

This commit simplifies debugging and should reduce the execution time of

```bash
eval "$(pyenv init -)"
```

slightly.
2025-02-13 08:31:48 +03:00
John Sirois 496dcfc384
Update hashes for Python 3.14.0a5 tarballs (#3196)
Source tarballs were changed to fix a human error: https://discuss.python.org/t/python-3-14-0-alpha-5/80364/3
2025-02-13 07:56:34 +03:00
binbjz a7de2004eb
Add Miniconda3 25.1.1-1 (#3192)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
ubuntu_build / ubuntu_build (3.13) (push) Waiting to run
ubuntu_build / ubuntu_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
Co-authored-by: binbjz <zhaobin@avenir.hk>
Co-authored-by: binbjz <binbjz@gmail.com>
2025-02-12 23:03:05 +03:00
Edgar Ramírez Mondragón f37a5a80d3
Add CPython 3.14.0a5 (#3194) 2025-02-12 23:02:24 +03:00
Ivan Pozdeev ddeb3facf0 CI: remove ubuntu-20.04; move tar_gz to -latest
ubuntu-20.04 is being retired by Github
tar_gz is mainly to verify URLs, OS version doesn't matter
2025-02-12 22:53:37 +03:00
native-api 519f90a67a
Add miniforge3-25.1.1-0, miniforge3-24.11.3-0 (#3191) 2025-02-12 21:49:27 +03:00
binbjz fee6057680
Add Miniconda3 25.1.1 0 (#3190)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
macos_build / macos_build (3.9) (push) Has been cancelled
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
* Add miniconda3-25.1.1-0

Co-authored-by: binbjz <zhaobin@avenir.hk>
Co-authored-by: binbjz <binbjz@gmail.com>
2025-02-10 21:41:22 +03:00
dand-oss 1c7fe36c55
Add PyPy v7.3.18 (#3184)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
Co-authored-by: Dan Dees <dand@appsmiths.com>
2025-02-08 04:46:04 +03:00
Ivan Pozdeev d327702c4d Fix OpenSSL 1.x version parsing
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2025-02-05 20:57:20 +03:00
Ivan Pozdeev b3dad5887e 2.5.2 2025-02-05 19:54:06 +03:00
Edgar Ramírez Mondragón 8775ffe76c
Add CPython 3.12.9 and 3.13.2 (#3183) 2025-02-05 19:52:09 +03:00
Michael Šimáček 823dd3cef9
Add GraalPy 24.1.2 (#3176)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2025-02-02 18:57:19 +03:00
threadflow 8d93ccae39
Fix OpenSSL version parsing in python-build script (#3181)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
ubuntu_build / ubuntu_build (3.13) (push) Waiting to run
ubuntu_build / ubuntu_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
2025-02-02 04:50:48 +03:00
Ivan Pozdeev 734d6323d8 2.5.1
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2025-01-19 17:47:51 +03:00
Ned Batchelder c9514d8e8e
Add CPython 3.14.0a4 (#3168) 2025-01-19 16:22:10 +03:00
native-api e98a0b489f
Fix "Unsupported options" error building bundled OpenSSL <3.2.0 (#3164)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2025-01-09 02:16:06 +03:00
native-api 0173299078
Add miniforge3-24.11.2-0, miniforge3-24.11.2-1 (#3163) 2025-01-08 23:51:11 +03:00
Jay Bazuzi 850a74c5cd
README: Add recommended curl arguments to suggested installer invocation (#3155)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2025-01-04 19:43:09 +03:00
Christian Fredrik Johnsen 4c6b0e9c3b
Fix: mistake in configuration hints in pyenv init and manpage. (#3145)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2024-12-23 20:58:54 +03:00
native-api 330e3fc130
CI: use Ubuntu 24.04; use ubuntu-latest for the ubuntu_build check (#3144)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
ubuntu_build / ubuntu_build (3.13) (push) Waiting to run
ubuntu_build / ubuntu_build (3.9) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
Now that ubuntu-24 is out of beta at Github

Since for ubuntu_build, we only use one OS version
and the changes between versions are not as drastic as with MacOS,
it seems safe to have it upgrade automatically.
2024-12-22 23:38:58 +03:00
Ivan Pozdeev 2aff0df76d 2.5.0 2024-12-22 23:22:20 +03:00
native-api 2acb2296e5
Exclude broken miniforge3/mambaforge3 22.11.0-0, 22.11.0-1, 22.11.0-2 from generation [no ci] (#3143) 2024-12-22 23:10:42 +03:00
native-api 04b440df0b
Add miniforge3 and mambaforge3 24.1.2-0, 24.3.0-0, 24.5.0-0, 24.7.1-0, 24.7.1-1, 24.7.1-2, 24.9.0-0, 24.9.2-0, 24.11.0-0, 24.11.0-1 (#3142) 2024-12-22 23:06:33 +03:00
native-api 5d80be09cb
CI: only run macos_build_bundled_dependencies and ubuntu_build_tar_gz for CPython (#3141)
Only CPython scripts use bundled dependencies for MacOS and two alternative tarballs
2024-12-22 22:19:24 +03:00
Ivan Pozdeev e0504fc2f8 add_miniforge.py: Support different Python version lines, improvements
* report more progress
* don't download SHA files for unsupported architectures
2024-12-22 21:31:28 +03:00
native-api 51937ccc19
Add miniconda3-24.3.0-0 (#3139)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
2024-12-22 17:04:32 +03:00
Ivan Pozdeev ac2f882aab Fix scripts not getting a Python version for verify_pyXXX 2024-12-22 16:19:59 +03:00
Ivan Pozdeev 25c966eb4f add_miniconda.py: future-proof, update defaults, change -v
* future-proof PyVersion
* fix handling "-latest"
* Update default versions
* change -v argument to bool
2024-12-22 15:59:52 +03:00
Christian Fredrik Johnsen c6973391f3
pyenv-init | performance improvements (#3136)
* perf: replace a series of if statements with a case block. Add error
handling for case where unknown option is provided.
Same setup as rbenv-init for reading arguments.

* perf, docs: Recommend users to specify the shell for `pyenv init -`
Speeds up the startup by about 40% (in local testing, from ~50ms to ~30ms).
Reflect this in `pyenv init` hint text.

* style: remove unnecessary `root` variable in pyenv-init
* style: remove unnecessary variable declarations at the top of file in pyenv-init.

* perf: replace `cat <<` calls with `echo`
The builtin `echo` is about 100x faster. In tests, saves about 2-3ms.

* docs: document the `pyenv init - <shell>` performance boost in the Advanced Configuration section.

* style: test_helper.bash: avoid unnecessary ".." in produced PATH

* docs: fix a false statement about completions location in the Advanced Configuration section.
2024-12-22 15:23:51 +03:00
binbjz 38421ba6aa
Add miniconda3-24.11.1-0 (#3138)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
Co-authored-by: binbjz <zhaobin@avenir.hk>
2024-12-21 16:48:25 +03:00
Ivan Pozdeev a1edb81e8e 2.4.23
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-12-18 10:13:13 +03:00
Ned Batchelder 5f7892f728
Add CPython 3.14.0a3 (#3135) 2024-12-18 10:11:11 +03:00
Ivan Pozdeev 86be59a6d5 Tolerate nonexistent versions from pyenv-version-name in pyenv-which
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Addendum to #3134 as per https://github.com/pyenv/pyenv/pull/3134#issuecomment-2545710044
2024-12-16 21:36:14 +03:00
native-api dc873cf568
Support missing versions being present and set in a local .python-version (#3134)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
Requested in https://github.com/pyenv/pyenv/issues/2680
for deployments with a stock `.pyenv-version` that can use any
of a number of Python versions
and for compatibility with `uv`.

* Support `pyenv local --force`
* Support `pyenv-version-file-write --force`
* Support `pyenv version-name --force`
* Ignore missing versions when searching for executables
* Display "commmand not found" even when there are nonexistent versions

* exec.bats: replace `python` and `rspec` with something that doesn't exist globally, either
in Ubuntu Github CI, `python` exists globally
2024-12-16 02:32:45 +03:00
Ivan Pozdeev aef6a2a6d0 Remove incorrect statement about resolution behavior
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
`shell` does not fall through to `local`, and `local to `global`.
2024-12-15 21:20:49 +03:00
native-api 527d8fab3e
Adjust suggested shell startup code to support Pyenv with Pyenv-Win in WSL (#3132)
There's a complaint that this results in duplicate PATH entries in nested shells, will deal with that separately
2024-12-15 17:22:51 +03:00
native-api fc0e27c24b
Support PACKAGE_CPPFLAGS and PACKAGE_LDFLAGS (#3130)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
add test to test all the flag types
2024-12-13 23:06:03 +03:00
Oluf Lorenzen a2ad48aa40
README: explain using multiple versions (#3126)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Co-authored-by: native-api <vano@mail.mipt.ru>
2024-12-12 06:58:02 +03:00
Ivan Pozdeev d04a081dcb 2.4.22
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-12-07 14:29:09 +03:00
Ivan Pozdeev cb83169098 fix CL: + test modified scripts with tar.gz source
missed some of the changes
2024-12-07 14:27:29 +03:00
Daniel Lamblin 3bdb9bd1e7
Fix 404 for bundled openssl-3.4.0 release in 3.13.1 (#3122) 2024-12-07 14:20:33 +03:00
native-api cc40a3f965
CL: + test modified scripts with tar.gz source (#3125) 2024-12-07 14:19:50 +03:00
native-api 25e70b2c80
CI: + build with bundled MacOS dependencies (#3123) 2024-12-07 13:58:35 +03:00
native-api 4c90a3147f
Speed up building bundled OpenSSL (#3124)
* Skip building bundled OpneSSL unnecessary parts
* Remove bundled OpneSSL build hack: no longer needed
2024-12-07 13:54:33 +03:00
Ivan Pozdeev ee84e89ef1 2.4.21
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-12-06 02:57:27 +03:00
native-api a39449bc50
Prefer tcl-tk@8 from Homebrew due to release of Tcl/Tk 9 with which only 3.12+ are compatible (#3118) 2024-12-06 02:55:53 +03:00
Michael Makukha 3bc0d858cc
Add 3.13.1t (#3120) 2024-12-06 01:53:45 +03:00
Ivan Pozdeev 0f8b2b2b84 2.4.20
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-12-04 02:08:51 +03:00
native-api c424717a39
Merge pull request #3117 from edgarrmondragon/cpython-3.13.1
Add CPython 3.9.21, 3.10.16, 3.11.11, 3.12.8 and 3.13.1
2024-12-04 02:07:07 +03:00
Edgar Ramírez-Mondragón 81632f0ab4
Remove EOL Python 3.8 from CI 2024-12-03 16:25:19 -06:00
Edgar Ramírez-Mondragón a79440470e
Run ubuntu_build on Python 3.13 2024-12-03 16:17:03 -06:00
Edgar Ramírez-Mondragón 84037dff4e
Run macos_build on Python 3.13 2024-12-03 16:11:00 -06:00
Edgar Ramírez-Mondragón a7a0354da9
Add CPython 3.9.21, 3.10.16, 3.11.11, 3.12.8 and 3.13.1 2024-12-03 16:09:02 -06:00
Clément Vannicatte 6140619301
README: correct link to shell setup instructions (#3113)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-11-27 23:30:12 +03:00
Noelle Leigh 61c0f25ef5
README: Fix Markdown in "Notes about python releases" (#3112)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
HTML and Markdown need to be separated by an empty line to co-exist, otherwise the Markdown isn't parsed correctly.
2024-11-23 16:35:06 +03:00
Ivan Pozdeev 1e8e96b8a2 2.4.19
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-11-20 22:11:32 +03:00
Madhu Gururajan 707e8d1ef8
Add quick start section and gif demo to accompany it. (#3044)
* Reorganize readme, add gif

1. Details in 'Getting Pyenv' and 'Setup for your shell' are collapsed. User can expand relevant
   sections depending on their platform and shell.

2. 'How It Works' and 'Advanced Configuration' are moved to the bottom of the README.md
   just before 'Contributing' section at the end.

3. Added a GIF in the 'Usage' section to showcase
   - Listing python versions available for install.
   - Installing a specific python version.
   - Listing installed python versions.
   - Switching to another python version for a directory.
   - Testing by moving terminal into the directory and moving back.

* Update GIF to show prefix resolution

* Collapse upgrade notes

* Cross-mention Linux and MacOS instlalation scenarios

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2024-11-20 22:08:35 +03:00
Ned Batchelder 04b32e2d46
Add CPython 3.14.0a2 (#3110) 2024-11-20 21:26:18 +03:00
Ivan Pozdeev 6393a4dfce 2.4.18
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-11-17 23:49:36 +03:00
Michael Goerz b0d6a67881
Add miniforge3-24.9.2-0 (#3106)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-11-13 23:57:14 +03:00
Ivan Pozdeev d64d1aa1e0 MAINTENANCE.md: easier way to make a release
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-10-28 02:53:18 +03:00
Ivan Pozdeev 96b3fb2fc3 2.4.17 2024-10-28 02:43:30 +03:00
native-api 7f60ef0b54
Merge pull request #3097 from binbjz/anaconda3-2024.10-1
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
Add Anaconda3-2024.10-1
2024-10-27 10:43:38 +03:00
binbjz 37ad06f7ce
Add miniconda3-24.9.2-0 (#3096)
Co-authored-by: binbjz <zhaobin@avenir.hk>
2024-10-27 10:35:24 +03:00
binbjz 6711e9a21d Add anaconda3-2024.10-1 2024-10-27 15:33:17 +08:00
binbjz f3e288c6ad Add miniconda3-24.9.2-0 2024-10-27 15:24:35 +08:00
Ivan Pozdeev 770eb66ec8 2.4.16
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-10-17 18:47:39 +03:00
Edgar Ramírez Mondragón 630b3700ad
Add CPython 3.14.0a1 (#3093) 2024-10-17 18:45:38 +03:00
Michael Šimáček fb9880e460
Add GraalPy 24.1.1 (#3092)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
2024-10-16 20:14:36 +03:00
Ivan Pozdeev 050f88c78b 2.4.15
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-10-11 16:31:00 +03:00
native-api 3ced1c4751
Support free-threaded CPython flavor in prefix resolution (#3090)
Since 3.13, CPython is provided in 2 flavors: regular and
free-threaded, with the 't' suffix.

An incomplete prefix ending with '[0-9]t'
resolves only among versions that also end with '[0-9]t'
2024-10-11 16:28:10 +03:00
Antoine Arbouin 03b60aafec
Support virtualenvs with names starting with "python-" (#3086) 2024-10-10 20:43:13 +03:00
Edgar Ramírez Mondragón 6a7ecfe409
Add CPython 3.13.0 (#3081) 2024-10-08 01:16:53 +03:00
David Poznik d201daeb33
Make "y/N" prompt consistent with others (#3080)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-10-05 02:17:45 +03:00
tuzi3040 468dc81107
CI: replace set-output with GITHUB_OUTPUT (#3079)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
`::set-output` is deprecated as per https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2024-10-02 16:37:31 +03:00
Ivan Pozdeev 5180c3cfb5 2.4.14 2024-10-02 15:13:21 +03:00
Edgar Ramírez Mondragón 95917cb753
Add CPython 3.13.0rc3 (#3077) 2024-10-02 14:50:59 +03:00
Edgar Ramírez Mondragón 55134ea1a1
Add CPython 3.12.7 (#3078) 2024-10-02 14:50:30 +03:00
Ivan Pozdeev 3f2ef9e00a README: Clarify Zsh configuration
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Closes #3069
2024-09-28 21:04:59 +03:00
Ivan Pozdeev 62fc392515 2.4.13
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
2024-09-18 07:38:48 +03:00
Michael Šimáček d8f5b583bd
Add GraalPy 24.1.0 (#3066) 2024-09-18 07:33:27 +03:00
Edgar Ramírez Mondragón 6517caf583
Fix OpenSSL 3.3.2 download URLs (#3059)
Some checks failed
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-09-12 07:43:03 +03:00
native-api 9c40f0b67e
Fix tgz checksum for 3.9.20; fallback OpenSSL URLs checksums for 3.11.10, 3.12.6, 3.13.0rc2 (#3060)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
changed OpenSSL URLs to permalinks so that they keep working
2024-09-12 01:44:05 +03:00
Ed Morley d60d1c5cdc
Fix latest version resolution when using python- prefix (#3056)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Fixes use of version specifiers like `python-3.12`, which:
- have an explicit `python-` prefix
- are using a major version alias that has to be resolved
  to an exact version.

Also simplified the conditional for the already
working case, since it had two branches that were virtually identical.
2024-09-10 18:51:55 +03:00
Andrew Linzie 1cabb6e02b
docs: Use --verbose with performance CPython build instructions (#3053)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-09-08 22:13:47 +03:00
Ivan Pozdeev 2e658d3e35 2.4.12
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-09-07 18:50:46 +03:00
Edgar Ramírez Mondragón d8c8338cd8
Add CPython 3.8.20, 3.9.20, 3.10.15, 3.11.10 and 3.12.6 (#3050) 2024-09-07 18:47:51 +03:00
Edgar Ramírez Mondragón ac5c87e044
Add CPython 3.13.0rc2 (#3049) 2024-09-07 18:46:46 +03:00
Ivan Pozdeev b123520826 2.4.11
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-09-04 22:52:25 +03:00
John Sirois 5fcd9d7a4f
Add PyPy v7.3.17. (#3045)
N.B.: 7.3.17 frops Python 3.9 support as well as s390x platform
releases. See: https://pypy.org/posts/2024/08/pypy-v7317-release.html
2024-09-04 22:15:59 +03:00
binbjz 669d1f1038
Add miniconda3-24.7.1-0 support (#3040)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Co-authored-by: binbjz <binbjz@skiff.com>
2024-08-24 12:42:23 +03:00
Tom Schraitle 57a6772451
Add /usr/etc/pyenv.d to hooks path (#3039)
The directory /usr/etc is an optional directory and used by
Fedora, RHEL 9, and openSUSE. The purpose of /usr/etc is to store
distribution-provided configuration files that can be overridden
by user-modified files in /etc.

/usr/etc is not in FHS. However, as Torsten stated in his comment
(https://github.com/thkukuk/atomic-updates_and_etc/issues/2#issuecomment-524848666)
"[FHS] is currently nearly as dead as LSB, we can only ignore it
if we don't want to stop and kill all innovation."
2024-08-24 12:38:54 +03:00
Ivan Pozdeev 9ecd803bff 2.4.10
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-08-07 20:16:29 +03:00
Edgar Ramírez Mondragón 11efbdce46
Add CPython 3.12.5 (#3030) 2024-08-07 19:40:19 +03:00
Ivan Pozdeev 9e7010b72f 2.4.9
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-08-05 01:54:31 +03:00
Edgar Ramírez Mondragón 6511ce26cd
Add CPython 3.13.0rc1 (#3029)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-08-03 14:11:56 +03:00
Michael Goerz 9b09a7efc9
Add miniforge3-24.3.0-0 (#3028)
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-07-31 12:41:59 +03:00
Ivan Pozdeev f17809c4b9 2.4.8
Some checks failed
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-07-21 07:02:45 +03:00
native-api ae5ee4de26
Merge pull request #3021 from native-api/pyenv_latest_b_f
pyenv-latest: replace -q with -b and -f, document as internal
2024-07-21 06:58:00 +03:00
native-api e9611beffe
Fix tests failing if plugins are installed (#3022)
Drop the failing test in favor of a better-written test
that also tests the same
2024-07-21 06:57:39 +03:00
Ivan Pozdeev e44b12c2dc Remove nop tests
Easy syncing with Rbenv is not as important now
2024-07-21 06:36:06 +03:00
Ivan Pozdeev 9373970678 pyenv-latest: replace -q with -b and -f, document as internal
More tailored for the emergent internal use cases
2024-07-21 06:31:42 +03:00
ThomasHaz 88f76ee787
README: Remove reference to Fig [https://fig.io] (#3018)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
[Fig](https://fig.io) has been sunlit for new users, with access being removed in September
2024-07-20 21:32:57 +03:00
Edgar Ramírez Mondragón e396561661
Add CPython 3.13.0b4 and 3.13.0b4t (#3019) 2024-07-20 21:29:18 +03:00
native-api cdd97d8c30
Fix pyenv-uninstall not having the debug tracing invocation (#3020) 2024-07-20 21:22:50 +03:00
Ivan Pozdeev adf3c2bccf 2.4.7
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
2024-07-06 04:44:35 +03:00
native-api 50e726ac41
Fix debug build for X.Yy-dev (#3011)
also just use extglob everywhere
2024-07-06 04:04:46 +03:00
native-api 662b5ddd13
Merge pull request #3009 from binbjz/add-new-anaconda3
Add support for anaconda3-2024.06-1
2024-07-06 03:43:27 +03:00
binbjz d81eebf8d1 Add support for anaconda3-2024.06-1 2024-07-05 19:37:22 +08:00
binbjz b11728c284
Merge branch 'pyenv:master' into master 2024-07-05 19:28:02 +08:00
Ivan Pozdeev ca90363d73 2.4.6
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
2024-07-05 06:57:48 +03:00
Jon Crall 672eef1561
Speed up pyenv prefix by not constructing advice text when it would be discarded (#3005)
Some checks failed
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 16s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
by adding an internal flag
2024-07-04 03:49:12 +03:00
Sam Gross 384361167a
Add 3.13.0b3t and exclude it from pyenv latest (#3001)
Some checks failed
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.8) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
This adds the free-threaded (without GIL) version of 3.13.0b3.

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2024-07-01 22:50:03 +03:00
native-api 1bcaab05b7
CI: push MacOS jobs to MacOS 13 and 14 (#3002)
Github has finally released those as free and retired macos-11
2024-07-01 22:38:06 +03:00
Ivan Pozdeev 2c2c7616e2 2.4.5 2024-06-30 20:58:02 +03:00
Edgar Ramírez Mondragón e8e8cfddcd
Add CPython 3.13.0b3 (#2996)
Some checks are pending
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-11) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-12) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Waiting to run
ubuntu_build / ubuntu_build (3.10) (push) Waiting to run
ubuntu_build / ubuntu_build (3.11) (push) Waiting to run
ubuntu_build / ubuntu_build (3.12) (push) Waiting to run
ubuntu_build / ubuntu_build (3.8) (push) Waiting to run
ubuntu_build / ubuntu_build (3.9) (push) Waiting to run
2024-06-30 20:55:53 +03:00
Ivan Pozdeev 9546f729f7 2.4.4
Some checks failed
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-11) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-12) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.8) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
2024-06-27 23:21:27 +03:00
Sam Gross d660c5a84f
Add support for free-threaded Python (#2995) 2024-06-27 23:18:14 +03:00
binbjz 7947efc130
Add support for miniconda3 24.5.0-0 with py3.12, py3.11, py3.10, py3.9 (#2994) 2024-06-27 20:18:34 +03:00
binbjz bc6a0db677
Merge branch 'pyenv:master' into master 2024-06-27 20:39:59 +08:00
Ivan Pozdeev 756aad2613 2.4.3 2024-06-12 22:48:15 +03:00
Ivan Pozdeev cb27e44291 Merge branch 'master' of https://github.com/pyenv/pyenv 2024-06-10 23:20:31 +03:00
Ivan Pozdeev 42c66c92d8 Document mirror structure and download cache
in more details
2024-06-10 23:20:20 +03:00
binbjz 613e5142b3
Add support for miniconda3 24.4.0-0 with py3.12, py3.11, py3.10, py3.9 (#2982)
Co-authored-by: zhaobin <zhaobin@skycloudsys.com>
2024-06-10 19:38:04 +03:00
zhaobin 4b60ddd06d Add support for miniconda3 24.4.0-0 with py3.12, py3.11, py3.10, py3.9 2024-06-10 15:36:21 +08:00
Ivan Pozdeev 7a91070c02 Removed obsoltete section about --enable-shared 2024-06-09 00:19:44 +03:00
Ivan Pozdeev a86ca7ac2e Document adding defnitions with a plugin 2024-06-09 00:19:03 +03:00
Ivan Pozdeev cb99cbcc8e README: Emphasize the main design idea of the plugins 2024-06-09 00:01:20 +03:00
Ivan Pozdeev 0963c8ac02 2.4.2 2024-06-08 23:49:46 +03:00
Taras I 79951112cc
Add CPython 3.12.4 (#2981)
Also bump up openssl version
2024-06-08 23:32:07 +03:00
John Sirois 2e0bb023e1
Add CPython 3.13.0b2 (#2978) 2024-06-06 21:09:33 +03:00
native-api b0cd5bf883
Add sed and greadlink to exceptions (#2977)
Anaconda has packages that override at least sed
Greadlink is also a critical executable if present
2024-06-04 01:06:33 +03:00
native-api 4ab9b3710b
Document PYTHON_BUILD_CURL_OPTS, PYTHON_BUILD_WGET_OPTS, PYTHON_BUILD_ARIA2_OPTS (#2976)
[no ci]
2024-06-02 15:24:00 +03:00
Younes Askour 8a464cfed1
Correct the Explanation of PATH Variable Lookup (#2975)
This PR corrects a small but important detail in the documentation regarding how the system searches for executable files. The original text incorrectly stated that the operating system performs this search. The corrected text clarifies that it is actually the shell that performs the search.
2024-06-01 22:13:57 +03:00
native-api 56956e9d90
Merge pull request #2969 from timfel/tim/graalpy-dev
Add script to install graalpy development builds
2024-05-27 21:25:30 +03:00
Tim Felgentreff 98c5b711dc fix http_get_aria to cat the correct file 2024-05-27 10:58:58 +02:00
Tim Felgentreff 2ecec311fe
Merge branch 'pyenv:master' into tim/graalpy-dev 2024-05-25 10:38:04 +02:00
Ivan Pozdeev 0e0ca0966b CI: Run changed scripts in debug mode also 2024-05-24 20:36:43 +03:00
Ivan Pozdeev 948f53f6d8 CI: run builds in debug mode
since we're only interested in the output when something goes wrong
2024-05-24 20:34:25 +03:00
Tim Felgentreff 037ba4516b add script to install graalpy ea builds 2024-05-23 14:55:00 +02:00
Ivan Pozdeev aabaa89243 2.4.1 2024-05-09 14:31:11 +03:00
Edgar Ramírez Mondragón ef8daeaea7
Add CPython 3.13.0b1 (#2959)
* Add CPython 3.13.0b1
* Use OpenSSL 3.3.0

---------

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2024-05-09 14:13:45 +03:00
Edgar Ramírez Mondragón 8c7fc98c4f
Add CPython 3.14-dev, update 3.13-dev (#2960)
* Add CPython 3.14-dev
* Update 3.13-dev branch to 3.13
* Use OpenSSL 3.3.0
2024-05-09 12:58:17 +03:00
Edgar Ramírez Mondragón 3ff54e89bc
Add PyPy v7.3.16 (#2948) 2024-04-25 21:51:58 +03:00
Edgar Ramírez Mondragón e1f07da73a
Add CPython 3.13.0a6 (#2942) 2024-04-09 23:38:07 +03:00
Edgar Ramírez Mondragón e5997ef66b
Add CPython 3.12.3 (#2941) 2024-04-09 22:28:42 +03:00
Ivan Pozdeev 21eef94ea0 2.4.0 2024-04-07 21:29:02 +03:00
native-api 961882403a
Add anaconda 2024.02 (#2939) 2024-04-07 21:22:53 +03:00
Ivan Pozdeev b80d5fd28d 2.3.37 2024-04-07 20:48:40 +03:00
Ivan Pozdeev 5b4d5a32d3 remove duplication 2024-04-03 21:08:18 +03:00
Edgar Ramírez Mondragón 465b8ee74a
Add CPython 3.11.9 (#2938) 2024-04-02 17:49:31 +03:00
César Román 51a626c1ea
Add Jython 2.7.3 (#2936) 2024-03-30 12:57:02 +03:00
Edgar Ramírez Mondragón 7e550e31f7
Add CPython 3.10.14 (#2930) 2024-03-21 22:26:57 +03:00
Michael Šimáček 7deace6666
Add GraalPy 24.0.0 (#2928) 2024-03-19 23:43:01 +03:00
Edgar Ramírez Mondragón e41f7c9ee4
Add CPython 3.8.19 and 3.9.19 (#2929) 2024-03-19 23:41:58 +03:00
Edgar Ramírez Mondragón 0167890c8c
Add CPython 3.13.0a5 (#2924) 2024-03-16 01:53:11 +03:00
cuinix c5eae0f263
minor grammar fix in libffi backport patch in 2.5.x (#2922)
Signed-off-by: cuinix <915115094@qq.com>
2024-03-07 00:15:41 +03:00
binbjz 21c2a3dd69
Add miniconda3-24.1.2-0 support for py312、py311、py310、py39 (#2915)
Co-authored-by: binbjz <binbjz@skiff.com>
2024-02-28 18:58:25 +03:00
native-api 556edfb0ae
Merge pull request #2909 from aphedges/update-miniforge-2024-02-26
Add new miniforge and mambaforge definitions
2024-02-27 20:09:22 +03:00
native-api 5503efffcf
Merge pull request #2906 from native-api/use_linuxbrew_if_preferred
Use Homebrew in Linux if Pyenv is installled with Homebrew
2024-02-27 20:03:40 +03:00
Ivan Pozdeev 1e017f3917 Set useful PS4 in python-build 2024-02-27 19:17:47 +03:00
Ivan Pozdeev 05bb4f9a8d Use Homebrew in Linux if Pyenv is installed with Homebrew or PYTHON_BUILD_USE_HOMEBREW is set 2024-02-27 19:17:47 +03:00
native-api 9d8764f545
Document default build configuration customizations (#2911) 2024-02-27 19:10:39 +03:00
Ivan Pozdeev 57594c0600 More detailed explanation of the band-aid code 2024-02-27 18:51:46 +03:00
Ivan Pozdeev 2aa13dc4fe Remove broken miniforge3 and mambaforge 22.11.1-0 to 22.11.1-2
Cause 403s on dependency packages
2024-02-27 18:35:43 +03:00
Alex Hedges 5d06a27118 Update miniforge and mambaforge with add_miniforge.py 2024-02-26 18:48:29 -05:00
Alex Hedges dbbe2b63f4 Skip check for miniforge version 4.13.0-0
We always detect missing build scripts for `4.13.0-0` because the
release[^1] doesn't have any mambaforge artifacts. Given that we've
already created the build files, we don't need to check the release
again.

[^1]: https://github.com/conda-forge/miniforge/releases/tag/4.13.0-0
2024-02-26 18:46:28 -05:00
Alex Hedges a43259a186 Fix overly broad check for existing miniforge build files
The glob pattern we were using was too permissive and detecting
miniconda build scripts as miniforge build scripts when they shared the
same version. I have rewritten the pattern matching code to ensure we
only look at files starting with `miniforge` and `mambaforge`.
2024-02-26 18:44:05 -05:00
Alex Hedges 8316450887 Fix KeyError when running add_miniforge.py
I was attempting to run the script to generate build files for new
versions, but it failed because version `23.1.0-4`[^1] contained a
malformed `.sha256` file.[^2] I looked at the miniforge repo's script
`releases.py`[^3] and copied the logic about which release artifacts
should be skipped when generating a list of downloads.

[^1]: https://github.com/conda-forge/miniforge/releases/tag/23.1.0-4
[^2]: https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-uninstaller-patch-Windows-x86_64.exe.sha256
[^3]: a15762906b/docs/releases.py (L35-L36)
2024-02-26 18:39:48 -05:00
Alex Hedges 02e1d4a293
Handle case where pyenv-commands --sh returns nothing (#2908)
In exceptional cases (custom installation, malfunctions elsewhere), `pyenv-commands --sh` may return nothing.
In non-Fish, this would cause "syntax error near unexpected token `)'" in `pyenv()`.

Bash does not allow to specify a `case` option that would never match.
This works around it by defaulting to `/`. Commands, being filenames, can never match it.
In Fish, nothing needs to be done: it apparently does interpret a `case` without argument as one that never matches.
2024-02-26 00:07:52 +03:00
Ivan Pozdeev f9a2bb81b6 Revert "Add CPython 3.13.0a4 (#2903)" -- MacOS build is broken
This reverts commit 932dc464f5.
2024-02-20 20:42:21 +03:00
Saaket Prakash 932dc464f5
Add CPython 3.13.0a4 (#2903)
Co-authored-by: Edgar Ramírez Mondragón <16805946+edgarrmondragon@users.noreply.github.com>
2024-02-20 20:17:32 +03:00
native-api 8f8a5e03b4
Better document installing the HEAD version with Homebrew 2024-02-15 22:40:53 +03:00
Ivan Pozdeev 5e4879a2bc v2.3.36 2024-02-14 00:58:44 +03:00
Edgar Ramírez Mondragón aca9af761e
Add CPython 3.11.8 (#2898) 2024-02-10 13:28:24 +03:00
Edgar Ramírez Mondragón 443de6614b
Add CPython 3.12.2 (#2899) 2024-02-10 13:25:30 +03:00
Ruben Laguna 9908daf81d
Update pypy3.9-7.3.13 checksums
Releases have been reuploaded upstream
2024-01-25 00:22:54 +03:00
Edgar Ramírez Mondragón 2374260efa
Add PyPy v7.3.15 (#2886) 2024-01-18 10:00:11 +03:00
Edgar Ramírez Mondragón f82acf8d44
Add CPython 3.13.0a3 (#2885) 2024-01-17 21:45:12 +03:00
Michael Šimáček 46d3954bff
Add graalpy-23.1.2 (#2884) 2024-01-16 21:43:29 +03:00
dand-oss 6e3b91a816
Added PyPy 7.3.14 (#2876)
Co-authored-by: Dan Dees <dand@appsmiths.com>
2023-12-31 22:32:19 +03:00
Ryan Williams 920d8d4dbe
Make "Automatic installer" command a copy-able code block (#2874) 2023-12-30 18:11:56 +03:00
cpzt 2d85075123
Add micropython 1.20.0 and 1.21.0 (#2869) 2023-12-26 22:45:07 +03:00
binbjz 2798a6694d
Add support for miniconda3 23.11.0-1, 23.11.0-2 with py3.11, py3.10, py3.9, py3.8 (#2870)
Co-authored-by: binbjz <bin.zhao@naxions.com>
2023-12-26 03:51:40 +03:00
Marvin Häuser 2c69732fec
Add installation prefix to python-config --ldflags output (#2865)
Needed to link against libpython of the Pyenv-controlled installation
2023-12-26 03:43:53 +03:00
dependabot[bot] 96f93fd553
Bump the github-actions group with 1 update (#2864)
Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout).

- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 08:04:41 +03:00
Kurt McKee 3c92216ea2
Add a Dependabot config to auto-update GitHub action versions (#2863) 2023-12-12 07:29:06 +03:00
Anton Petrov 74a2523c97
v2.3.35 2023-12-08 13:23:20 +03:00
Anton Petrov dfde39650e
v2.3.35 2023-12-08 13:22:44 +03:00
Anton Petrov 2aa2d17f05
Merge pull request #2861 from edgarrmondragon/cpython-3.12.0 2023-12-08 06:14:46 +03:00
Edgar Ramírez Mondragón fce51d45a0
Add CPython 3.12.1 2023-12-07 18:52:56 -06:00
Anton Petrov d3766f22a5
v2.3.34 2023-12-06 06:56:43 +03:00
Anton Petrov 99d74e78f7
v2.3.34 2023-12-06 06:56:03 +03:00
Anton Petrov 3fc9f4381a
Merge pull request #2860 from edgarrmondragon/cpython-3.11.7
Add CPython 3.11.7
2023-12-05 09:07:32 +03:00
Edgar Ramírez Mondragón 1a9e9ee5da
Add CPython 3.11.7 2023-12-04 23:44:38 -06:00
native-api 3e1b4e0be1
Move 3.11.5+ to OpenSSL 3 by default (#2858)
As per https://docs.python.org/3.11/whatsnew/3.11.html#notable-changes-in-3-11-5,
OpenSSL 3.0 support in CPython is finally official since 3.11.5.
2023-11-29 23:39:14 +03:00
native-api ebff965cc6
Fix graalpy-community to use a separate package name (#2855)
Using the same name as graalpy causes a cache clash
2023-11-29 22:57:28 +03:00
Anton Petrov 2fb5b9e9a3
v2.3.33 2023-11-27 15:54:43 +03:00
Anton Petrov efb01775c0
v2.3.33 2023-11-27 15:54:25 +03:00
native-api 1239b7cb1f
python-build: Document PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA and PYTHON_BUILD_HTTP_CLIENT (#2853)
grammar
2023-11-26 12:59:10 +03:00
Anton Petrov 10f8805526
Merge pull request #2849 from edgarrmondragon/cpython-3.13.0a2 2023-11-24 09:14:29 +03:00
Edgar Ramírez Mondragón ae74597ded
Add CPython 3.13.0a2 2023-11-22 16:25:45 -06:00
Anton Petrov ac32a20f83
Merge pull request #2844 from binbjz/miniconda-bin 2023-11-18 11:58:54 +03:00
binbjz ae1c5d2bff Add support for miniconda3-3.10-23.10.0-1、miniconda3-3.9-23.10.0-1、miniconda3-3.8-23.10.0-1 2023-11-18 16:39:57 +08:00
Anton Petrov 94d879c92a
Merge pull request #2843 from binbjz/new-miniconda 2023-11-18 11:24:38 +03:00
binbjz ef0c2a787b Add support for miniconda3-3.11-23.10.0-1 2023-11-18 15:53:40 +08:00
Anton Petrov 4405459f57
Merge pull request #2839 from goerz-forks/miniforge3-23.3.1-1 2023-11-13 21:40:35 +03:00
Michael Goerz 62242c1d56 Add miniforge3-23.3.1-1 2023-11-13 12:39:23 -05:00
Anton Petrov d312301099
v2.3.32 2023-11-12 18:53:11 +03:00
Anton Petrov 988258ea5f
v2.3.32 2023-11-12 18:52:52 +03:00
native-api fb2c65f149
Make pyenv init output insertable to startup files (#2838) 2023-11-12 12:41:13 +03:00
native-api 087793a660
Make adding $PYENV_ROOT/bin to PATH independent of other software (#2837)
Fixes breakage in WSL with Pyenv-win installed in the host system;
doesn't affect other supported installation scenarios.
2023-11-12 11:58:17 +03:00
fsc-eriker 63c471d020
Describe --no-rehash option in the manpage (#2832)
(Closes: #2831)
2023-10-30 22:10:26 +03:00
Anton Petrov 54f7a7c046
v2.3.31 2023-10-22 12:35:53 +03:00
Anton Petrov 011bbf0cca
v2.3.31 2023-10-22 12:35:36 +03:00
Anton Petrov a9a92dfdc5
Merge pull request #2824 from aphedges/update-miniconda-2023-10-21 2023-10-22 06:07:51 +03:00
Alex Hedges 968fc797c3 Update anaconda and miniconda with add_miniconda.py
This adds anaconda 2023.09 and miniconda 23.9.0.
2023-10-21 19:05:51 -04:00
Alex Hedges 27525adece Determine Python versions properly for Anaconda
The code for determining which Python version is bundled with which
version of Anaconda has not been updated in a while. I have added 3.10
and 3.11, both of which were used in bundles this year.

I also updated the URL for the source of this data, the Anaconda release
notes, because it has moved.
2023-10-21 19:05:48 -04:00
Anton Petrov f50b99265c
v2.3.30 2023-10-16 21:37:24 +03:00
Anton Petrov 9c8f92cf4e
v2.3.30 2023-10-16 21:36:46 +03:00
startergo d25cd0d0f5
Fix linking against Homebrew's Tcl/Tk 8.6.13 in MacOS (#2820)
Headers have been moved to the 'tcl-tk' subdir
This was causing Tcl/Tk 8.5 from XCode SDK to be silently picked instead
2023-10-15 17:17:22 +03:00
Ivan Pozdeev 709534c21f CI: add 3.12 2023-10-15 15:03:49 +03:00
native-api 62e2e9c743
Merge pull request #2807 from dand-oss/pypy-3.7.13
Add PyPy 7.3.13
2023-10-14 10:11:28 +03:00
Ivan Pozdeev 509d3a8855 Use pip<21 syntax in ensurepip call for pypy2.7-7.3.13 and 2.7.18 2023-10-14 07:38:42 +03:00
Dan Dees c6f0d31dc9 pypy 3.7.13 2023-10-14 07:38:41 +03:00
Edgar Ramírez Mondragón b8b6846a21
Add CPython 3.13.0a1 (#2818) 2023-10-13 21:07:42 +03:00
native-api dee8a9dbad
Fix intermittent "broken pipe" in version sort test (#2817) 2023-10-12 22:09:48 +03:00
Anton Petrov bb38acd994
v2.3.29 2023-10-06 08:05:47 +03:00
Anton Petrov 7d7e7e5b93
v2.3.29 2023-10-06 08:05:28 +03:00
Alex Hedges 928f69cf9a
Install ncurses from Homebrew, if available (#2813)
XCode Command Line Tools 15.0 was recently released, and it contains a
broken version of ncurses 6.0. Some uses of Python's `curses` module
will segfault when compiled with it. The solution is to switch to using
the version of ncurses from Homebrew, which is currently 6.4. Support
for ncurses 6 was added to Python 3.7 and was backported to 3.6 and 2.7,
so this change should not break any recently supported Python versions.

Tested with Python 3.12, 3.11, and 2.7, and all tests in
the `test.test_curses` module pass without issue.

See https://github.com/python/cpython/issues/109617 and
https://github.com/python/cpython/issues/69906 for more information.
2023-10-06 06:59:29 +03:00
Anton Petrov 44c8f061af
Merge pull request #2812 from eregon/graalpy-gftc-23.1.0
Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution
2023-10-05 19:19:41 +03:00
Benoit Daloze 931a7d7c7f Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution
* Use the new Oracle GraalVM distribution to provide the best user experience,
  as it significantly faster than GraalVM CE and is free for development and production use:
  https://medium.com/graalvm/whats-new-in-graalvm-languages-161527df3d76
2023-10-05 12:16:37 +02:00
Anton Petrov 0ada42d89d
Merge pull request #2806 from coatl-dev/cpython-3.11.6
Add CPython 3.11.6
2023-10-03 14:29:43 +03:00
César Román 7fbec9a971
Add CPython 3.11.6 2023-10-02 14:10:51 -07:00
Anton Petrov 28e7000b48
v2.3.28 2023-10-02 19:54:39 +03:00
Anton Petrov a19d613877
Update CHANGELOG.md 2023-10-02 19:54:11 +03:00
Anton Petrov 3edc31eb3d
v2.3.28 2023-10-02 19:53:49 +03:00
Anton Petrov c9477dfd21
Merge pull request #2804 from edgarrmondragon/cpython-3.12.0
Add CPython 3.12.0
2023-10-02 19:50:27 +03:00
Edgar Ramírez Mondragón 3fda63be30
Add CPython 3.12.0 2023-10-02 08:54:31 -06:00
László Papp f7f096503a
Update the OpenSSL dependency for Python 2.7.18 to 1.1 (#2797)
It seems that pyenv cannot install 2.7.18 on Mac M1 (Apple ARM).

openssl 1.0.2 does not have ARM support. M1 support was added in 1.1.1i according to
https://www.openssl.org/news/cl111.txt
2023-09-23 19:47:15 +03:00
Michael Šimáček 8b0c743f12
Add graalpy-23.1.0 (#2796) 2023-09-19 20:48:31 +03:00
Saaket Prakash bed2ec2f73
Add CPython 3.12.0rc3 (#2795) 2023-09-19 18:01:10 +03:00
Edgar Ramírez Mondragón a82598e174
Prefer OpenSSL 3 in Homebrew in 3.13-dev (#2793) 2023-09-19 07:53:45 +03:00
native-api d2c4d963d2
Prioritize 'zlib from xcode sdk' flag correctly (#2791)
All include directories should go into CPPFLAGS.
XCode SDK was being added to CFLAGS instead
which caused old Tcl/Tk in the SDK to override a newer one in Homebrew.
2023-09-18 00:46:59 +03:00
Anton Petrov c844b332ca
v2.3.27 2023-09-17 10:48:10 +03:00
Anton Petrov 64af7c3e54
v2.3.27 2023-09-17 10:47:49 +03:00
Anton Petrov 261fd7c462
Merge pull request #2789 from zsol/patch-1
Update openssl url for 3.12.0rc2
2023-09-17 10:43:27 +03:00
Zsolt Dollenstein 91928bfbc4
Update openssl url for 3.12.0rc2
The old 3.1.1s URL returns a 404
2023-09-16 03:48:52 -07:00
Timothy Pansino 8cfc75604b
Fix get-pip urls for older pypy versions (#2788) 2023-09-16 11:02:21 +03:00
native-api da3ac7b7a3
Prefer OpenSSL 3 in Homebrew since 3.12 (#2781) 2023-09-07 22:11:04 +03:00
Ivan Pozdeev 259b5cad26 Remove 3.7 from CI
3.7 is EOL since 2023-06-27
https://peps.python.org/pep-0537/
2023-09-07 22:03:00 +03:00
Anton Petrov bdfb80cc12
v2.3.26 2023-09-07 11:36:40 +03:00
Anton Petrov abfa56e31d
v2.3.26 2023-09-07 11:36:22 +03:00
Edgar Ramírez Mondragón 1dbb100933
Add CPython 3.12.0rc2 (#2778) 2023-09-07 01:14:28 +03:00
native-api 9100243866
Merge pull request #2764 from xaocon/pip-fix
use -I with ensurepip
2023-08-30 21:16:25 +03:00
Anton Petrov 18ed727eb0
Merge pull request #2769 from xzmeng/fix-a-typo
fix a typo in README.md
2023-08-29 11:50:54 +03:00
Meng Xiangzhuo 3ba8df29e5 fix a typo in README.md 2023-08-29 16:45:11 +08:00
Alex Hedges e1b7e1b519
Fix "grep: warning: stray \ before -" in conda.bash (#2768)
According to the POSIX spec, an unescaped backslash not followed by
an escapable character is undefined behavior,
and it has become an error in GNU grep 3.8 (2022-09-02).
2023-08-28 23:57:04 +03:00
Ivan Pozdeev 2cbba05966 gitignore the bulid directory for tests 2023-08-27 20:27:48 +03:00
Evan Pitstick 6be6231444 Use -I with ensurepip
The -s flag assures that nothing can be installed to user site-packages
but doesn't keep ensurepip from looking there for Pip.
If Pip is installed in the user site-packages directory, pip won't be installed
for the newly built python -- and its shim won't be created.
-I makes the build install Pip in any case.
The user site-packages installation will override it --
but we'll have the shim at least.
2023-08-27 20:27:47 +03:00
Anton Petrov 7ec5c30451
Update pyenv---version 2023-08-27 01:29:50 -07:00
Anton Petrov 14cf54fb1c
Update CHANGELOG.md 2023-08-27 01:29:26 -07:00
Anton Petrov 6e79eb0b7c
Merge pull request #2763 from edgarrmondragon/cpython-3.10.13
Add CPython 3.8.18, 3.9.18, 3.10.13, 3.11.5
2023-08-25 08:47:19 +03:00
Edgar Ramírez Mondragón a8075debe5
Add CPython 3.8.18 2023-08-24 14:56:43 -06:00
Edgar Ramírez Mondragón 552827d3f9
Add CPython 3.9.18 2023-08-24 14:06:46 -06:00
Edgar Ramírez Mondragón 035c9336d2
Add CPython 3.11.5 2023-08-24 12:16:47 -06:00
Edgar Ramírez Mondragón c85ca6ce60
Add CPython 3.10.13 2023-08-24 08:51:13 -06:00
Anton Petrov 79a501139f
2.3.24 2023-08-11 02:21:21 -07:00
Anton Petrov 791ae90aef
2.3.24 2023-08-11 02:20:36 -07:00
Anton Petrov db871427c7
Add an updated Anaconda and Miniconda installer scripts 2023-08-11 12:00:12 +03:00
Anton Petrov 4c5eac68c5
Merge pull request #2752 from edgarrmondragon/cpython-3.12.0rc1
Add CPython 3.12.0rc1
2023-08-06 22:00:47 -07:00
Edgar Ramírez Mondragón d4ff57d0ce
Add CPython 3.12.0rc1 2023-08-06 11:37:43 -06:00
native-api ac5efed3a8
Fix FreeBSD tests in MacOS CI (#2748)
Guthub have recently preinstalled x64 Homebrew OpenSSL to stock MacOS runners. This has caused FreeBSD OpenSSL detection logic to erroneously trigger when running FreeBSD tests in MacOS because their paths happened to coincide.

Replaced checking a specific path with checking with pkg.
2023-07-28 15:23:39 +03:00
VictorieeMan 8aabba9485
README: Add explicit UNIX reference into the relevant installation sections (#2744)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2023-07-23 22:29:17 +03:00
Anton Petrov 879fa68b35
v2.3.23 2023-07-22 16:09:30 +03:00
Anton Petrov e908606554
v2.3.23 2023-07-22 16:08:35 +03:00
native-api b81204c08b
Merge pull request #2742 from aphedges/update-miniconda-2023-07-11
Add new anaconda and miniconda definitions
2023-07-12 20:48:50 +03:00
Alex Hedges 37cc45a831 Update anaconda and miniconda with add_miniconda.py
This adds anaconda 2023.03, anaconda 2023.07, miniconda 23.3.1, and
miniconda 23.5.0.
2023-07-11 17:42:00 -04:00
Alex Hedges 3f6bc8d16a Support miniconda with Python 3.11 2023-07-11 17:36:41 -04:00
Alex Hedges dd5378941a Fix miniconda version handling
Anaconda and miniconda have changed their version string format again,
so the parsing needs to be done differently. `add_miniconda.py` can now
parse all existing definition files properly.
2023-07-11 17:30:10 -04:00
Alex Hedges 2506c9773c Log errors when parsing existing Conda versions
This makes it easier to fix file names that cannot be parsed using the
current logic.
2023-07-11 17:30:10 -04:00
Edgar R. M 51166377b7
Add CPython 3.12.0b4 (#2741) 2023-07-11 21:50:06 +03:00
Anton Petrov af1a54482b
Update CHANGELOG.md 2023-07-08 22:38:47 +03:00
Anton Petrov 64c70feb08
Update pyenv---version 2023-07-08 22:37:24 +03:00
Mészáros Máté Róbert 2f8cb2cf1f
Handle osx specific ln option name (#1)
On OSX `ln` does not have `--symbolic` only `-s`.

* bin/pyenv-link-version

---------

Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com>
2023-07-07 14:18:02 +00:00
Anton Petrov 7b713a88c4
Merge pull request #2739 from filips123/add-cinder-3.10
Add Cinder 3.10 and Cinder configure patches
2023-07-02 10:16:59 +03:00
Filip Š 1874f95a0e Update Cinder errors and warnings 2023-07-01 19:34:12 +02:00
Filip Š 1a882c6053 Add Cinder configure patches 2023-06-28 14:02:51 +02:00
Filip Š 05dcd45741 Add Cinder 3.10 2023-06-28 10:29:55 +02:00
Anton Petrov a2dff4809b
Merge pull request #2730 from edgarrmondragon/cpython-3.12.0b3
Add CPython 3.12.0b3
2023-06-21 07:47:36 +03:00
Edgar Ramírez Mondragón ad0d131032
Add CPython 3.12.0b3 2023-06-20 07:46:41 -06:00
Anton Petrov 7c17c741eb
2.3.21 2023-06-20 13:52:59 +03:00
Anton Petrov ba8b58f90d
2.3.21 2023-06-20 13:52:17 +03:00
native-api fe76b05445
Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' (#2729) 2023-06-20 03:04:06 +03:00
Anton Petrov c5d2639082
Merge pull request #2726 from edgarrmondragon/pypy-7.3.12
Add PyPy 7.3.12
2023-06-18 09:35:15 +03:00
Edgar Ramírez Mondragón d4bd7bbe2b
Add PyPy 7.3.12 2023-06-17 22:46:05 -06:00
Anton Petrov 38ac747239
Merge pull request #2724 from msimacek/master
Add graalpy-23.0.0
2023-06-14 09:41:42 +03:00
Michael Simacek 8f655d2ca6 Add graalpy-23.0.0 2023-06-13 17:13:00 +02:00
Ivan Pozdeev d0b78fd5fe CONTRIBUTING.md: clearer phrasing 2023-06-12 15:34:45 +03:00
Anton Petrov 43f40eca05
v2.3.20 2023-06-12 10:33:36 +03:00
Alex Tomkins 687944d991
Add missing patches for Python 3.7/3.8/3.9 (#2718)
* Use OpenSSL 1.1.1u and remove patches for 1.1.1q
2023-06-11 00:09:42 +03:00
native-api 0f337a6c9a
Merge pull request #2717 from native-api/backport_42351_3.5.10
Backport bpo-42351 to 3.5.10
2023-06-10 20:49:31 +03:00
Ivan Pozdeev afe2615a1c 3.5.10: Backport bpo-42351
The bug is reported to manifest in Mandjaro Linux 6.3.5-2
2023-06-10 20:33:01 +03:00
Ivan Pozdeev d7d5ab5148 3.5.10: Fix patches to apply cleanly 2023-06-10 20:31:57 +03:00
Anton Petrov e79dd97afa
v2.3.19 2023-06-08 12:18:16 +03:00
Anton Petrov 021b6c2da0
v2.3.19 2023-06-08 12:17:52 +03:00
Anton Petrov e008430451
Merge pull request #2713 from edgarrmondragon/cpython-3.12.0b2
Add CPython 3.12.0b2
2023-06-07 14:47:56 +03:00
Anton Petrov 09fc5b8824
Merge pull request #2714 from edgarrmondragon/cpython-3.10.12
Add CPython 3.10.12
2023-06-07 14:47:10 +03:00
Anton Petrov 6eeda1f87e
Merge pull request #2715 from edgarrmondragon/cpython-3.11.4
Add CPython 3.11.4
2023-06-07 14:46:34 +03:00
Edgar Ramírez Mondragón 452647ab33
Add CPython 3.11.4 2023-06-07 01:12:47 -06:00
Edgar Ramírez Mondragón 4086e452fd
Add CPython 3.10.12 2023-06-06 18:26:24 -06:00
Edgar Ramírez Mondragón 82c8d511c4
Add CPython 3.12.0b2 2023-06-06 14:39:15 -06:00
native-api 578c7507c6
Merge pull request #2711 from edgarrmondragon/cpython-3.9.17
Add CPython 3.7.17, 3.8.17 and 3.9.17
2023-06-06 20:04:06 +03:00
Edgar Ramírez Mondragón 23c727a767
Add CPython 3.7.17 and CPython 3.8.17 2023-06-06 10:39:56 -06:00
Edgar Ramírez Mondragón fb73c4b714
Add CPython 3.9.17 2023-06-06 09:19:19 -06:00
real-yfprojects b8d8dee191
Fix output
* bin/pyenv-link-version
2023-06-06 16:59:25 +02:00
real-yfprojects ba9099392a
Fix completions
* bin/pyenv-link
2023-06-06 16:56:16 +02:00
real-yfprojects d428be59ec
Write README.
* README.md
2023-06-06 16:45:22 +02:00
real-yfprojects dffc750fa2
Initial implementation
* bin/pyenv-link

* bin/pyenv-link-version
2023-06-06 16:22:52 +02:00
yfprojects f46b669f1d
Initial commit 2023-06-06 11:09:59 +00:00
Anton Petrov 3fa5812bfc
Update pyenv---version 2023-05-25 11:23:39 +03:00
Anton Petrov c8a23e26e6
Update CHANGELOG.md 2023-05-25 11:23:18 +03:00
t0b3 def5cd994e
Update 3.12-dev and add 3.13-dev (#2703) 2023-05-25 09:47:37 +03:00
Edgar R. M b5576240a2
Add CPython 3.12.0b1 (#2701) 2023-05-23 23:07:48 +03:00
Kevin Schoedel 920ef1456a
Support ksh alternative names (#2697)
* Support ksh versions

Korn shell had two major versions: ’88 and ’93. Some systems have
ksh installed under the name `ksh93`. A few systems (maybe only
Solaris now) also have a `ksh88`. A few others use the `pdksh` (’88)
or `mksh` (’93) implementations, originated before ksh was open source.

Limit to currently-used versions

---------

Co-authored-by: Kevin Schoedel <kps@datatravelandexperiments.com>
2023-05-13 01:24:57 +03:00
Anton Petrov 528d10e96f
Merge pull request #2691 from aviadhahami/master
fix: updating heredoc delimiter to be random and unique
2023-04-30 08:16:28 +03:00
Aviad Hahami cf9d0dcd7b
fix: updating heredoc delimiter to be random and unique 2023-04-30 00:56:43 +03:00
Anton Petrov aa5fd27e2f
Merge pull request #2687 from tomschr/bug2682-fix-manpage
Fix #2682: Correct pyenv_user_setup.bash file
2023-04-25 07:39:39 +03:00
Tom Schraitle 73b6307399 Fix #2682: Correct pyenv_user_setup.bash file
The manpage contains a reference to a file which does
only exist on Debian (/usr/share/pyenv/pyenv_user_setup.bash).

It is replaced by its content to make it usable for
other distributions.
2023-04-24 13:56:01 +02:00
Ivan Pozdeev a57e0b5019 README: move troubleshooting note higher 2023-04-16 20:11:08 +03:00
Anton Petrov b3c91b37d6
Merge pull request #2677 from mirekdlugosz/fix-31011-3113-tarxz
Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3
2023-04-11 11:00:40 +03:00
Mirek Długosz 777089466d
Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3 2023-04-11 09:15:16 +02:00
native-api 20189ff06f
Fix not showing symlink contents for unselected versions in pyenv versions (#2675) 2023-04-08 01:12:09 +03:00
Ivan Pozdeev 5a8dbcf143 Document using and writing plugins 2023-04-07 19:07:35 +03:00
Anton Petrov 9a4f9c2511
2.3.17 2023-04-06 06:58:52 +03:00
Anton Petrov bee178a95d
2.3.17 2023-04-06 06:58:33 +03:00
Anton Petrov 0f75cd8800
Merge pull request #2670 from mirekdlugosz/cpython-3.10.11
Add CPython 3.10.11
2023-04-05 18:28:35 +03:00
Anton Petrov 29c4f279a3
Merge pull request #2671 from mirekdlugosz/cpython-3.11.3
Add CPython 3.11.3
2023-04-05 18:07:59 +03:00
Mirek Długosz be4939604e
Add CPython 3.11.3 2023-04-05 15:52:01 +02:00
Mirek Długosz fc616a0aee
Add CPython 3.10.11 2023-04-05 15:51:13 +02:00
Edgar R. M b613a4abeb
Add CPython 3.12.0a7 (#2668) 2023-04-05 05:56:24 +03:00
Shengqi Chen b1ee6c93c4
Try locate readlink first in pyenv-hooks, fix #2654 (#2655)
* Remove all use of `greadlink`, fix #2654

Signed-off-by: Harry Chen <i@harrychen.xyz>

* revert greadlink back in tests

---------

Signed-off-by: Harry Chen <i@harrychen.xyz>
Co-authored-by: Anton Petrov <anton.a.petrov@gmail.com>
2023-03-28 11:25:27 +03:00
Petrov 9fad1f46c5
Update pyenv---version 2023-03-24 08:26:20 +03:00
Petrov f51d3dcb47
Update CHANGELOG.md 2023-03-24 08:26:05 +03:00
Petrov deb4935187
Merge pull request #2648 from anton-petrov/master
Add Anaconda3-2023.03
2023-03-23 14:38:52 +03:00
Petrov e28d747b83
set hashes to sha-256 2023-03-23 13:41:02 +03:00
Petrov ddd37eb823
Add hashes 2023-03-23 13:35:50 +03:00
Petrov be2bd5f03d
Create anaconda3-2023.03 2023-03-19 08:14:59 +03:00
Justin Lecher 4ef81b5c7a
Add Miniforge3-22.11.1-4 (#2642) 2023-03-10 19:38:06 +03:00
Anton Petrov 6bb75b3ba7
Update CHANGELOG.md 2023-03-10 09:04:21 +03:00
Anton Petrov f507d08064
Update pyenv---version 2023-03-10 09:03:23 +03:00
Saaket Prakash ad15c75e0e
Add CPython 3.12.0a6 (#2638) 2023-03-08 08:32:18 +03:00
Ivan Pozdeev 6052caa038 README: extended support for 3.5.10 2023-03-02 11:27:23 +03:00
Ivan Pozdeev e8a4b54231 CI: ubuntu-build: Fix 404s on apt install 2023-03-02 11:24:05 +03:00
Alex Hedges bcbdadf10d
Add miniconda 23.1.0-1 (#2635) 2023-03-02 06:49:44 +03:00
Anton Petrov 904dd5f828
Update pyenv---version 2023-03-01 08:25:31 +03:00
Anton Petrov 3226a1870b
Update CHANGELOG.md 2023-03-01 08:25:12 +03:00
Anton Petrov 0d19efecf5
Merge pull request #2634 from mrienstra/patch-1
README: clarify behavior of `pyenv latest`
2023-02-28 09:30:48 +03:00
Michael Rienstra ecab7b0d17
README: clarify behavior of pyenv latest 2023-02-27 16:26:18 -08:00
Chaim Halbert 3bfc97ad29
bpo-36231 for v3.5.10: fix Unsupported MacOS X CPU type in ffi.h (#2633) 2023-02-26 18:36:51 +03:00
native-api 276ce32643
Merge pull request #2630 from chaimleib/fix-bpo-27987-on-eol-pythons
bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms
2023-02-26 16:05:39 +03:00
Chaim Halbert b30508f9b8 bpo-41100 for v3.5.10: fix implicit declaration of function sendfile 2023-02-26 05:51:20 -07:00
Chaim Halbert 0e80d0725b v3.5.10 on macOS13: fix unexpected output of arch on OSX 2023-02-26 05:21:03 -07:00
Chaim Halbert 6bec7a50fe bpo-45405 for v3.5.10: Prevent internal configure error when running configure with recent versions of clang. (GH-28845) (GH-31890) 2023-02-24 13:16:52 -07:00
Chaim Halbert 28be65992d bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms 2023-02-24 12:19:13 -07:00
Florian Schüller 68918e69b7
Support for BusyBox version of `head' (#2629) 2023-02-22 20:11:48 +03:00
Rafał 86a4423bbb
Fix indentation (#2620) 2023-02-16 00:10:36 +03:00
Anton Petrov 0ab9683e58
2.3.13 2023-02-15 08:15:35 +03:00
Anton Petrov 7fe647968d
2.3.13 2023-02-15 08:15:14 +03:00
Anton Petrov c8daaa3954
Merge pull request #2614 from Afront/3.12.0a5
Add CPython 3.12.0a5
2023-02-08 14:08:18 +03:00
Anton Petrov 88be70722f
Merge pull request #2616 from edgarrmondragon/cpython-3.10.10
Add CPython 3.10.10
2023-02-08 14:07:46 +03:00
Anton Petrov 47d88d2c5f
Merge pull request #2615 from edgarrmondragon/cpython-3.11.2
Add CPython 3.11.2
2023-02-08 14:07:34 +03:00
Edgar Ramírez Mondragón 6b758c8cf9
Add CPython 3.10.10 2023-02-08 03:43:04 -06:00
Edgar Ramírez Mondragón 017b6d877e
Add CPython 3.11.2 2023-02-08 03:38:33 -06:00
Afront 063aa457e4
Add CPython 3.12.0a5 2023-02-08 15:34:14 +09:00
native-api fcd7806529
Merge pull request #2612 from laggardkernel/bugfix/realpath-in-versions
Fix link resolving in pyenv-versions
2023-02-06 20:09:22 +03:00
Ivan Pozdeev a3f0bddc2a CI: Migrate to checkout@v3
Actions runner warns about v2 deprecation
2023-02-06 19:22:38 +03:00
Ivan Pozdeev f72c1712dc CI: Test with native extension
Only run tests for subcommands that use the native extension
2023-02-06 19:22:38 +03:00
laggardkernel a7b181c3ca Fix link resolving in pyenv-versions
Co-Authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2023-02-06 19:22:38 +03:00
native-api c8c324afb4
Merge pull request #2610 from native-api/version_skip_envs
Ignore virtualenvs in `pyenv latest' in a clean way
2023-02-02 20:01:28 +03:00
Ivan Pozdeev 72c5b034ca Avoid the need to filter out envs in `pyenv-latest' 2023-02-02 18:24:17 +03:00
Ivan Pozdeev 446411dc64 Streamline `pyenv-versions --bare'
Achieves a ~20% speedup.
As it's used in pyenv-latest, this affects all version lookups
2023-02-02 18:15:47 +03:00
Ivan Pozdeev 9fe80f28e5 Add pyenv versions' option to skip envs for pyenv-latest' 2023-02-02 18:15:13 +03:00
native-api 9248255f70
Show symlink contents in non-bare `pyenv versions' (#2609)
* Change other tests to use the newly-created convenience function
2023-02-02 17:24:19 +03:00
native-api 368e04f3fa
Fix pyenv-latest to ignore virtualenvs (#2608)
* Add test, exclude alphas as well
2023-02-02 15:15:16 +03:00
Anton Petrov 76e93b073e
2.3.12 2023-01-30 08:19:43 +03:00
Anton Petrov e3fe82a9b1
2.3.12 2023-01-30 08:19:25 +03:00
native-api dd60d5fae2
Fix overriding arguments for --enable-framework and --enable-universalsdk after #2592 (#2605) 2023-01-29 00:59:47 +03:00
Anton Petrov 96828af31e
Merge pull request #2602 from colesbury/nogil-3.9.10-1
Add more recent build of nogil Python.
2023-01-23 16:17:32 +03:00
Sam Gross c998eae677 Add more recent build of nogil Python. 2023-01-22 13:12:28 -08:00
native-api c20fc7bd6a
Fix pyenv which to support auto-resolved prefixes (#2601)
* Resolve version name that hooks see
* Avoid a 2nd iteration over configured versions
2023-01-22 18:22:26 +03:00
native-api f1a1f59c87
Fix :latest after #2568 (#2599)
* Cleanup mocks logic
* Add test for `:latest`
2023-01-22 05:49:40 +03:00
Ivan Pozdeev b64b0ab5e2 Merge branch 'master' of https://github.com/native-api/pyenv 2023-01-22 00:20:28 +03:00
Ivan Pozdeev 1a0b555baf Improve visibility of the auto-resolution feature
Recent feedback showed that it's not visible enough
2023-01-22 00:07:53 +03:00
native-api 819e2b8f45
Fix wrong libpython being linked to in MacOS (#2596)
Without rpath, python would link up to the system's libpython
2023-01-19 00:21:10 +03:00
Christian Clauss bd618ea9ef
add_miniconda.py: fix typo oversight (#2595) 2023-01-15 13:37:11 +03:00
Anton Petrov b77b0be089
2.3.11 2023-01-15 12:44:38 +03:00
Anton Petrov 906246da4c
2.3.11 2023-01-15 12:43:34 +03:00
native-api 12e74e147a
Fix a compilation error in 3.8.10+ and 3.9.5+ when linking against OpenSSL built with SSLv3 support (#2594) 2023-01-14 05:18:10 +03:00
Ivan Pozdeev 2b0dd7355d Specify additional required information for build failures 2023-01-14 02:28:38 +03:00
native-api f40397088c
Merge pull request #2592 from native-api/disable_shared
* Fix priority for user-supplied configure and make flags
* Don't set --enable-shared if user supplied --disable-shared
2023-01-14 02:00:53 +03:00
Ivan Pozdeev e447fe5b73 Don't set --enable-shared if user supplied --disable-shared 2023-01-14 01:45:20 +03:00
Ivan Pozdeev 4242694a0e Fix priority for user-supplied configure and make flags 2023-01-14 01:44:59 +03:00
native-api 83619f3fbe
Merge pull request #2593 from native-api/fix_freebsd
Fix using dependencies from Ports in FreeBSD that are not searched with pkg-config
2023-01-13 22:20:01 +03:00
Ivan Pozdeev 4bd8a975f4 Avoid adding dangling spaces to *FLAGS 2023-01-13 22:07:31 +03:00
Ivan Pozdeev 2a5bbf6cb5 Fix searching readline and sqlite3 in FreeBSD
Surprisingly, CPython doesn't search these with pkg-config
This is fixed upstream in 3.12.0a1
2023-01-13 22:07:31 +03:00
Sean McGivern b9a27af7b8
Add missing Miniforge/Mambaforge versions (4.10.2-0 - 22.9.0-3) (#2591) 2023-01-11 22:51:31 +03:00
Anton Petrov c03d9cf84c
Merge pull request #2560 from smcgivern/add-miniforge-script
Add a script to add the latest miniforge and mambaforge versions
2023-01-11 19:43:31 +03:00
Sean McGivern c7f2c4db45
Add a script to add the latest miniforge and mambaforge versions
This takes inspiration from the similar script for miniconda, but it
simplifies in a couple of ways:

1. Use the GitHub Releases API instead of scraping HTML.
2. Don't perform a diff, simply add the latest release.

Lots of intermediate miniconda releases have been skipped in the past,
and it doesn't seem particularly valuable to backfill those.
2023-01-11 13:59:33 +00:00
Anton Petrov 3bc3a624db
Merge pull request #2590 from Afront/3.12.0a4
Add CPython 3.12.0a4
2023-01-11 10:43:45 +03:00
Afront f4598bc1f0
Add CPython 3.12.0a4 2023-01-11 13:16:00 +09:00
Anton Petrov fc4c0ac52d
2.3.10 2023-01-10 19:03:46 +03:00
Anton Petrov 579c34e570
2.3.10 2023-01-10 19:03:00 +03:00
native-api 2369ac2a08
Fix using dependencies from Ports in BSD with no pkg-config (#2586) 2023-01-10 01:13:09 +03:00
Brendan Falk 25c974d59a
Add Fig as autocomplete suggestion (#2574)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2023-01-05 05:03:45 +03:00
native-api 2ea797e226
Merge pull request #2583 from aphedges/update-miniconda-22.11.1
Add miniconda 22.11.1-1
2023-01-05 04:47:28 +03:00
Alex Hedges 7d7f8b94ae Add miniconda 22.11.1-1 2023-01-03 20:31:01 -05:00
Alex Hedges e715e03be0 Support new miniconda file name format 2023-01-03 20:29:19 -05:00
Alex Hedges b3a5b5eee3 Support miniconda with Python 3.10 2023-01-03 20:18:26 -05:00
Anton Petrov 894bcd8717
Merge pull request #2579 from hauntsaninja/faster-cpython
Mention how to build for maximum performance
2023-01-03 09:04:44 +03:00
hauntsaninja 03ee3ffd32 Mention how to build for maximum performance 2023-01-02 14:35:16 -08:00
dand-oss 3d83bcdbef
Add PyPy 7.3.11 (#2576)
Co-authored-by: Dan Dees <dand@appsmiths.com>
2022-12-31 11:17:18 +03:00
Ian Chen f897c50202
Fix non-bash output while detecting shell (#2561)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-12-25 02:35:03 +03:00
Anton Petrov 773c65416b
Merge pull request #2554 from anton-petrov/master
Build CPython with--enable-shared flag by default on non-mac systems
2022-12-23 13:48:30 +03:00
Anton Petrov ca1593c80e
Fix build tests 2022-12-23 13:36:37 +03:00
Anton Petrov cb5da5e831
Merge pull request #2568 from rockandska/fix/919
Allow multiple versions for pyenv-install
2022-12-22 21:44:28 +03:00
rockandska 31f372034d Allow multiple versions for pyenv-install 2022-12-22 19:04:04 +01:00
Tobias Klauser ff93c58bab
Remove stray newline after python-build installation (#2566)
To match other Pyenv commands
2022-12-20 22:01:19 +03:00
Anton Petrov 2bb59169db
2.3.9 2022-12-19 07:52:52 +03:00
Anton Petrov f9e519611a
2.3.9 2022-12-19 07:52:31 +03:00
Phung Nhat-Huy ae04877154
Add Anaconda3-2022.10 (#2565) 2022-12-19 01:16:18 +03:00
Anton Petrov e82e12739c
Merge pull request #2564 from samdoran/openssl-patches
Add `openssl` patches for 3.7.15, 3.7.16, and 3.8.16
2022-12-16 10:10:32 +03:00
Sam Doran 6b9795728e
Add openssl patches for 3.7.15, 3.7.16, and 3.8.16 2022-12-15 16:48:41 -05:00
宇萱/土撥鼠(Lisbeth) 23576296ae
Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.16 (#2558) 2022-12-13 20:05:01 +03:00
Anton Petrov 2128b4f27d
Merge pull request #2559 from smcgivern/add-miniforge3-22.9.0-2
Add miniforge3 and mambaforge 22.9.0-2
2022-12-13 19:17:19 +03:00
Sean McGivern 9ba6124833
Add miniforge3 and mambaforge 22.9.0-2 2022-12-13 11:19:40 +00:00
native-api 6c63e086e9
Merge pull request #2553 from dand-oss/pypy7.3.10
Add Pypy 7.3.10
2022-12-11 04:18:08 +03:00
Dan Dees 540c94bdb1 CI: Use PyPy 2.7 as PyPy source build bootstrapper 2022-12-11 02:19:19 +03:00
Ivan Pozdeev 18f62f266d Remove no-longer-needed PyPy prerequisites 2022-12-11 02:18:36 +03:00
Ivan Pozdeev 49cc88094a CI: Install bootstrapper Python for PyPy source builds 2022-12-11 02:17:39 +03:00
Dan Dees cad18bb332 Add PyPy 7.3.10 2022-12-11 02:17:19 +03:00
Ivan Pozdeev 79fdf1e3bb Improve Mac feature messages phrasing 2022-12-09 16:58:44 +03:00
Ivan Pozdeev 03bba03291 Set --enable-shared earlier
To take advantage of the existing logic to add to rpath
2022-12-09 16:52:47 +03:00
Ivan Pozdeev cf50e2a2db Don't hide output from extension checks 2022-12-09 11:41:26 +03:00
Anton Petrov b3d52b05d2
--enable-shared by default on non-mac systems 2022-12-08 12:17:53 +03:00
Anton Petrov 73dc5547fc
Merge pull request #2551 from nwh/add-miniforge3-latest-suffix
add -latest suffix to miniforge3
2022-12-08 11:33:16 +03:00
Anton Petrov 3f0dd1962f
2.3.8 2022-12-08 10:07:26 +03:00
Chad Crawford 48b0224aaf
Add CPython 3.7.16, 3.8.16, 3.9.16 (#2550) 2022-12-08 00:26:27 +03:00
Nick Henderson 8cfa967d74 add -latest suffix to miniforge3
The auto-resolve feature (#2487) means that

  pyenv install miniforge3

installs miniforge3-4.10.3-10 and not the exactly named "miniforge3"
recipe.  Renaming "miniforge3" to "miniforge3-latest" solves this
issue allowing users to execute

  pyenv install miniforge3-latest

This is similar to the naming of the current "miniconda3-latest" recipe.
2022-12-07 12:56:03 -08:00
Anton Petrov a57106c932
Merge pull request #2544 from rudisimo/master
Add CPython 3.10.9
2022-12-07 14:35:18 +03:00
Anton Petrov 189e73e5e8
Merge pull request #2549 from anton-petrov/master
Add CPython 3.11.1
2022-12-07 14:34:58 +03:00
Anton Petrov 8680247381
Add CPython 3.11.1 2022-12-07 13:43:35 +03:00
Anton Petrov 606ff454a1
Merge pull request #2545 from saaketp/3.12.0a3
Add CPython 3.12.0a3
2022-12-07 13:10:57 +03:00
Saaket Prakash b05d15f673 Add CPython 3.12.0a3 2022-12-07 04:57:31 +05:30
Rodolfo Puig 881ba40ff4 Add CPython 3.10.9
Signed-off-by: Rodolfo Puig <rodolfo@puig.io>
2022-12-06 17:36:03 -05:00
Anton Petrov 58bbbf8880
Merge pull request #2540 from ianchen-tw/detect-shell
Export detected shell environment in pyenv-init
2022-12-02 18:07:11 +03:00
Ian Chen c1674cd552 Detect shell 2022-12-02 00:22:50 +08:00
Anton Petrov 74f923b5fc
2.3.7 2022-12-01 10:16:53 +03:00
Anton Petrov 59c560893a
2.3.7 2022-12-01 10:15:45 +03:00
spookyuser 4971d9e35e
Copy auto installer oneliner to README (#2538) 2022-11-29 23:00:22 +03:00
weensy 6d13db992f
Fix typo in README.md (#2535)
There was a space at the beginning of the `git clone` command
2022-11-28 19:43:11 +03:00
Ivan Pozdeev 13d8568620 Add 3.11 into CI for Linux 2022-11-19 00:08:53 +03:00
Isaac Levy cc56f76733
Add --no-push-path option (#2526)
In some advanced shell setups, the order of custom-added PATH entries is important.
We disregard it by default, always pushing shims to the front of PATH,
to ensure that Pyenv works even in poorly maintained shell environments
and with minimal hassle for non-export users
(an attempt to do the opposite (#1898) has ended in a disaster).
Some advanced users are however ready and able to carefully maintain their environment
and deal with breakages and inconvenience. This option is for them.
2022-11-19 00:01:59 +03:00
Saaket Prakash 4c261e6ea1
Add CPython 3.12.0a2 (#2527) 2022-11-16 00:10:34 +03:00
native-api 31355676f0
Support aria2c being a snap (#2528)
Likely in Ubuntu where it's only available as a snap
2022-11-15 20:57:04 +03:00
Alex Hedges c162dcd932
Add .editorconfig (#2518) 2022-11-13 05:35:45 +03:00
native-api 0b6320d371
Merge pull request #2520 from twangboy/fix_3.9.15
Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.15 and 3.8.15
2022-11-13 04:52:37 +03:00
Twangboy 3bfaa33c1b Gitignore special files of PyCharm and Vim 2022-11-13 04:47:01 +03:00
Twangboy cd2858aa17 Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.15 and 3.8.15 2022-11-13 04:46:48 +03:00
James Campbell 19359de7b8
Add activate.nu to shim creation exception list (#2524) 2022-11-10 18:58:04 +03:00
Alex 8dd46e3915
GitHub Workflows security hardening (#2511)
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-11-10 04:46:55 +03:00
native-api ed1083ec27
Fix resolution of a name that's a prefix of another name (#2521) 2022-11-10 04:46:14 +03:00
Ivan Pozdeev 904fe964b0 README: Prefix auto-resolution: improve phrasing 2022-11-07 04:46:44 +03:00
Hoàng 036fd63bbd
style: convert crlf to lf (#2517) 2022-11-06 19:18:04 +03:00
native-api 1250d7dd30
Don't use Zlib from XCode SDK if a custom compiler is used (#2516) 2022-11-05 02:11:55 +03:00
Omer Korner ad6a950734
Add Python version 3.11 to the macOS build (#2510) 2022-11-03 15:32:52 +01:00
Rust Saiargaliev 6da0e89207 2.3.6 2022-11-03 09:26:31 +01:00
Ivan Pozdeev e03118235a Improve prefix resolution documentation 2022-10-30 21:38:06 +03:00
Rust Saiargaliev a8f921ce4d
Document the release process (#2503) 2022-10-30 12:42:20 +03:00
Ivan Pozdeev 4a031504db Document prefix auto-resolution et al.
* Document listing available versions in the tutorial (#1677)
* Reflect 3.7.15's extended support
* Document using development head with Homebrew
* Structurize the Upgrading section
* Fix Pyenv-latest documentation
2022-10-30 05:28:53 +03:00
Ivan Pozdeev 75022d5d7c Revert version auto-resolution in python-build
It was moved to `pyenv-install`
2022-10-30 04:12:42 +03:00
native-api a12f947cc3
Auto-resolve prefixes to the latest version (#2487) 2022-10-30 03:38:40 +03:00
native-api 0b5e16add3
Fix invalid syntax error in pyenv init - if PYENV_ROOT has spaces (#2506) 2022-10-29 23:08:02 +03:00
native-api 5b0ac41dec
Discover Tcl/Tk from Homebrew via pkgconfig for 3.11+ (#2501)
CPython 3.11+ dropped support for --with-tcl-tk-*
in favor of pure pkgconfig
2022-10-29 22:48:13 +03:00
Michael Šimáček 44510a68f1
Add graalpy-22.3.0 (#2497) 2022-10-27 02:55:27 +03:00
Edgar R. M 16c4924f22
Add CPython 3.12.0a1 (#2495) 2022-10-27 02:41:30 +03:00
native-api ac30d5f4e4
Merge pull request #2500 from native-api/fix_macos_openssl_build
Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+
2022-10-27 00:22:09 +03:00
Ivan Pozdeev 9f5dcbffd4 Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+
"error: implicitly declaring library function 'memcmp'"
Downstream backport of https://github.com/openssl/openssl/issues/18720
2022-10-27 00:02:24 +03:00
Ivan Pozdeev faceb4b79c Allow patching supplementary packages 2022-10-27 00:02:13 +03:00
Igor Davydenko d7389c10ee
Update Python 3.11.0 tgz checksum (#2496)
For some reason checksum for `Python-3.11.0.tgz` file introduced in
0726e02e3a is invalid. Update that
checksum to ensure `pyenv install 3.11.0` works well on systems without
tar.xz support.
2022-10-26 21:21:53 +03:00
Noam Cohen 0726e02e3a
Add CPython 3.11.0 (#2493) 2022-10-24 22:49:48 +03:00
Adam Johnson 03a5d65387
Add CPython 3.7.15, 3.8.15, and 3.9.15 (#2482)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-10-12 20:52:53 +03:00
MuX 776f6ff9fa
Add CPython 3.10.8 (#2480) 2022-10-12 07:39:42 +03:00
Ivan Pozdeev bb0f2ae1a7 Merge branch 'master' of https://github.com/pyenv/pyenv 2022-10-08 20:49:53 +03:00
Ivan Pozdeev ea6085e3f3 2.3.5 2022-10-08 20:49:49 +03:00
Ville Skyttä 2c2619a49e
Add Pyston 2.3.5 (#2476) 2022-10-05 20:52:20 +03:00
native-api 1f526edbdd
Merge pull request #2471 from native-api/add_dsymutil
Build CPython 3.12+ with --with-dsymutil in MacOS
2022-09-23 16:37:19 +03:00
Ivan Pozdeev 8b226c9679 Build 3.12+ with --with-dsymutil 2022-09-23 16:16:17 +03:00
Ivan Pozdeev f3521e88be Allow to build CPython with --with-dsymutil
Since 3.12, CPython can provide debug symbols in
Apple's nonstandard way, "dSYM bundles"
2022-09-23 16:16:17 +03:00
native-api 5b08a6492b
Add missing patch for 3.7.14 (#2469) 2022-09-22 10:59:03 +03:00
Nikita Sobolev d722f059a0
Drop Travis integration (#2468)
It has been unused since Travis dropped free plans
2022-09-22 10:32:50 +03:00
native-api 093d0b3a49
Merge pull request #2464 from samdoran/skip-brew
Add ability to easily skip all use of Homebrew
2022-09-19 00:59:55 +03:00
Ivan Pozdeev 73d4f3102a Allow to test python-build separately 2022-09-19 00:19:01 +03:00
Ivan Pozdeev aa07a3a37c Remove extraneous is_mac call 2022-09-19 00:19:00 +03:00
Sam Doran e6446555f3 Add envvar to skip Homebrew 2022-09-19 00:19:00 +03:00
native-api c5e0d2cd94
Document extended support for 3.7.14
Added in https://github.com/pyenv/pyenv/pull/2463
2022-09-15 22:01:05 +03:00
Sam Doran cfe684ef42
Add patches for 3.7.14 needed for Apple Silicon (#2463) 2022-09-15 17:53:22 +03:00
Viktor Haag 1d28067353
Add CPython 3.11.0rc2 (#2459) 2022-09-14 07:53:34 +03:00
Tsuki 0740fdf910
Update miniconda3-3.9-4.12.0 (#2460)
update checksum from https://repo.anaconda.com/miniconda/
Miniconda3-py39_4.12.0-MacOSX-arm64.sh	52.2M	2022-06-01 14:45:20	f7448cfeb278f2a84ed903db02d5525c
2022-09-14 07:48:12 +03:00
Anton Petrov 75fc9f6fd4
Merge pull request #2456 from edgarrmondragon/cpython-3.7.14_3.8.14_3.9.14
Add CPython security releases 3.7.14, 3.8.14 and 3.9.14
2022-09-11 19:47:51 +03:00
Edgar Ramírez Mondragón a0fbdad292
Add CPython security releases 3.7.14, 3.8.14 and 3.9.14 2022-09-07 11:13:11 -05:00
Grzegorz 6a104f68d0
docs: Add configuration option for Fish 3.2.0+ (#2449)
The original instructions were added 2 years ago in 0f2d659732. Since then, [Fish released](https://github.com/fish-shell/fish-shell/releases/tag/3.2.0) [a more declarative instruction for this operation](https://fishshell.com/docs/current/cmds/fish_add_path.html), which is now the recommended way of manipulating `PATH` in Fish.
2022-09-06 21:39:31 +03:00
Edgar R. M f6f1803ac9
Add CPython 3.10.7 (#2454) 2022-09-06 19:13:59 +03:00
Ivan Pozdeev 23559ee6d1 Fix syntax error 2022-09-06 01:43:12 +03:00
Ivan Pozdeev 4e31668c21 Ignore beta and release candidates in :latest
Fixes https://github.com/pyenv/pyenv/issues/2450
2022-09-05 23:20:39 +03:00
Ivan Pozdeev 2b22145670 2.3.4 2022-09-04 01:54:33 +03:00
Filip Š 7c1c180551
Add Cinder 3.8 (#2433)
* Add Cinder 3.8
* Add distro and GCC warnings
* Set the complier to GCC 10 if available

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-09-04 01:48:43 +03:00
native-api a648682ed6
CI: Bump OS versions (#2448)
* CI: Bump OS versions

Github released ubuntu-22.04 and macos-12 from beta
and deprecated ubuntu-18.04 and macos-10.15, due to dropping by 2013.

* CI: clean up installed packages
2022-09-04 01:40:00 +03:00
James Stronz 47b0ce77c0
Re-allow paths in .python-version provided that they resolve to within the versions dir (#2442)
* Fixes #2430 while still preventing CVE-2022-35861
* Adds a skipped version message to stderr

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-09-03 22:37:53 +03:00
Ivan Pozdeev fdabd14c2b Merge branch 'master' of https://github.com/pyenv/pyenv 2022-09-03 22:31:15 +03:00
Ivan Pozdeev e52ad61389 CI: Bump versions 2022-09-03 22:31:00 +03:00
native-api 2e5983b004
Merge pull request #2447 from native-api/ci_modified_micropython
CI: support Micropython, deleted scripts; build with -v
2022-09-03 22:22:56 +03:00
Ivan Pozdeev 27b5f62dfb CI: Build with -v 2022-09-03 22:02:47 +03:00
Ivan Pozdeev 7c1e3a710c CI: Support Micropython 2022-09-03 22:02:47 +03:00
Ivan Pozdeev 13f273188d CI: Exclude deleted scripts from modified check 2022-09-03 22:02:47 +03:00
Dmitriy Serdyuk c89a69a6ed
Add micropython 1.18 and 1.19.1 (#2443)
Support frozen builtin modules e.g. upip
2022-09-01 13:48:26 +03:00
native-api a8afc61146
CONTRIBUTING.md: phrasing 2022-08-16 21:33:49 +03:00
native-api e4a0c12b1b
CONTRIBUTING.md: clarify that Bash 4+ optimizations are allowed 2022-08-16 21:32:14 +03:00
hardikpnsp afeb971fa2
Add support for multiple versions in pyenv uninstall (#2432) 2022-08-15 20:25:46 +03:00
Edgar R. M 965421d5d4
Add CPython 3.11.0rc1 (#2434) 2022-08-14 15:12:22 +03:00
Janith Petangoda ae22c69505
Small update to instruction in README.md (#2431) 2022-08-06 18:12:11 +03:00
Ivan Pozdeev 37a6070855 2.3.3 2022-08-02 23:59:30 +03:00
Edgar R. M 1ae5596bfa
Add CPython 3.10.6 (#2428) 2022-08-02 23:51:31 +03:00
Michael Šimáček ff9d3ca69e
Add GraalPython 22.2.0 (#2425) 2022-07-28 00:08:14 +03:00
Edgar R. M d98d3f5055
Add CPython 3.11.0b5 (#2420) 2022-07-26 22:04:26 +03:00
brogon f5cbba0636
Allow pypy2 pypy3 patching (#2421)
* Fix: patterns for pypy2.*/pypy3.* versions

* Shrink pypy patterns

* Fix extglob pattern

* Fix: no regex-charclasses like '[:digit:]' in 'extglob', needs also double-activation for parse/runtime stage

Co-authored-by: native-api <vano@mail.mipt.ru>
Co-authored-by: Bjoern Schneider <bjoern.schneider@scribos.com>
2022-07-26 22:03:26 +03:00
brogon 16f7ea03e8
Fix: patterns for pypy2.*/pypy3.* versions (#2419)
Co-authored-by: native-api <vano@mail.mipt.ru>
2022-07-25 23:55:11 +03:00
James Stronz 22fa683571
CVE-2022-35861: Fixed relative path traversal due to using version string in path (#2412) 2022-07-17 01:01:04 +03:00
Tim Gates 0eba0a5bd5
docs: fix simple typo (#2414)
Signed-off-by: Tim Gates <tim.gates@iress.com>
2022-07-15 16:55:30 +03:00
Sorin Sbarnea 0990e7843d
python-build: Replace deprecated git protocol in the README (#2413) 2022-07-14 16:29:59 +03:00
Tahir H. Butt aee9c82c29
Add CPython 3.11.0b4 (#2411) 2022-07-12 00:05:34 +03:00
Pedro Fonini fdaeaf1f97
Use version sort in pyenv versions if available (#2405) 2022-07-10 23:00:51 +03:00
Ivan Pozdeev 207f33fc5e Fix line endings in 3.7.13 patches 2022-07-02 22:05:34 +03:00
Ivan Pozdeev 304515f2cd 2.3.2 2022-06-30 16:04:22 +03:00
Ivan Pozdeev 572a8bcfba Merge branch 'master' of https://github.com/pyenv/pyenv 2022-06-13 18:22:36 +03:00
Ivan Pozdeev 100871b48a Remove no-longer-needed commented line 2022-06-13 18:22:21 +03:00
Xiangyu Xu 9f2cba3da8
Update anaconda3-2022.05 MacOSX arm64 md5 (#2391) 2022-06-11 01:28:58 +03:00
Ivan Pozdeev 6620e0e2c5 CONTRIBUTING: softened working about EOL fixes 2022-06-11 01:24:51 +03:00
native-api d59e7dff5e
Update README.md 2022-06-11 01:14:46 +03:00
Ivan Pozdeev 22532c305e Merge branch 'master' of https://github.com/pyenv/pyenv 2022-06-11 01:10:54 +03:00
Ivan Pozdeev e48883b940 README: document cases of extended support 2022-06-11 01:10:44 +03:00
dand-oss 7457df4190
Add pyston-2.3.4 (#2390)
Co-authored-by: Dan Dees <dand@appsmiths.com>
2022-06-10 10:11:44 +03:00
Ivan Pozdeev c4fd08e6fb README: Link to CONTRIBUTING and Python-Build's envvars 2022-06-09 02:52:50 +03:00
Ivan Pozdeev 97039ca1af Fix accidental typo 2022-06-08 23:23:01 +03:00
native-api c3404568e8
Merge pull request #2385 from native-api/condas
Add Anaconda 2019.10, 2021.04, 2022.05; support Anaconda in add_miniconda.py
2022-06-08 22:40:50 +03:00
Ivan Pozdeev 42cace010b CI: workaround MacOS jobs hanging for some Anaconda releases
Shims from executables bundled with some older Anaconda releases
cause MacOS script check jobs to hang at the end
2022-06-08 22:19:34 +03:00
Ivan Pozdeev e9f95065ad Add Anaconda 2019.10, 2021.04, 2022.05 2022-06-08 18:37:36 +03:00
Ivan Pozdeev 64aacd5cfd add_miniconda: support Anaconda, support non-CPython scripts in scripts check 2022-06-08 18:32:42 +03:00
Illia Volochii 9b91641094
Add CPython 3.10.5 (#2386) 2022-06-06 21:52:20 +03:00
native-api bc13a87bee
Add flags for Homebrew into python-config --ldflags (#2384) 2022-06-05 22:35:56 +03:00
Edgar R. M c055ba718b
Add CPython 3.11.0b3 (#2382) 2022-06-01 19:45:35 +03:00
Alex Hedges 4456e64c89
Add post-install checks for curses, ctypes, lzma, and tkinter (#2353)
Tkinter check is conditional on DISPLAY

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-05-31 21:37:44 +03:00
yggdr cd5522965b
Pass through CFLAGS_EXTRA for Micropython (#2007)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-05-31 19:47:06 +03:00
Saaket Prakash 845e08eb2f
Add CPython 3.11.0b2 (#2380) 2022-05-31 18:50:52 +03:00
Ivan Pozdeev 8ff6507f80 2.3.1 2022-05-29 19:50:13 +03:00
tuzi3040 0930533d92
CI: Add tests for modified python build scripts (#2286)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2022-05-23 03:36:39 +03:00
Ivan Pozdeev 477fd42d68 Merge branch 'master' of https://github.com/pyenv/pyenv 2022-05-22 15:59:23 +03:00
Ivan Pozdeev e16b7adf94 Migrate from probot/no-response to lee-dohm/no-response
probot/no-response has been retired and no longer runs
2022-05-22 15:58:48 +03:00
native-api e676fde990
Fix endless loop in pyenv init - under SSH in some shell setups (#2374) 2022-05-18 16:15:05 +03:00
native-api 8608d60fed
Merge pull request #2371 from aphedges/update-miniconda-4.12.0
Add miniconda 4.12.0
2022-05-18 00:42:29 +03:00
Mathieu Kniewallner ef110c1c4f
Add CPython 3.9.13 (#2372) 2022-05-18 00:35:26 +03:00
Alex Hedges d200c6afa9 Add miniconda 4.12.0 2022-05-17 15:59:25 -04:00
Alex Hedges 25e0ffa67d Add missing miniconda architectures: aarch64, arm64, s390x 2022-05-17 15:59:11 -04:00
Hugo van Kemenade 70b23638f4
Update 3.11-dev and add 3.12-dev (#2361) 2022-05-10 12:01:58 +03:00
Edgar Ramírez df5ecfc72d
Add CPython 3.11.0b1 (#2358) 2022-05-09 06:07:44 +03:00
SADIK KUZU 169321b3e6
README.md, CHANGELOG.md, libexec/pyenv-help: Fix typos 2022-05-08 09:46:47 +03:00
SADIK KUZU 86598fcf4e
README.md: Fix typo 2022-05-08 01:16:03 +03:00
Ville Skyttä c3fd96c429
Version file read improvements (#2269)
* Don't bother reading empty version files
* Implement version file read in pure bash
Is faster with usual sized version files, slower with degenerate cases.
2022-05-06 19:51:51 +03:00
Ivan Pozdeev 867f34b596 README.md: Fix typos, improve phrasing 2022-05-04 04:28:35 +03:00
Ivan Pozdeev cca008ba04 Merge branch 'master' of https://github.com/pyenv/pyenv 2022-05-04 03:32:53 +03:00
Ivan Pozdeev 2fd7be0453 2.3.0 2022-05-04 03:30:52 +03:00
Hay Kranen cdccbd0ba3
Add :latest syntax to documentation for the install command (#2351) 2022-05-04 03:20:16 +03:00
native-api 51c026bf56
Merge pull request #2349 from native-api/no_linuxbrew
Don't use Homebrew outside of MacOS
2022-05-04 03:19:27 +03:00
Ivan Pozdeev 5d967fa38a Merge branch 'master' into no_linuxbrew 2022-05-04 03:10:08 +03:00
Ivan Pozdeev f03adae58a Rename CI workflows to what they actually do 2022-05-04 03:08:46 +03:00
Ivan Pozdeev 65316a7e99 Don't use Homebrew outside of MacOS
In Linux, it's not the primary source of packages and
cannot be used without build flag adjustments
thus has caused build failures.
2022-05-04 03:04:45 +03:00
Ivan Pozdeev e928e75f22 Fix a duplicate error message on stub plan overrun 2022-05-04 02:58:47 +03:00
native-api de1f8a7a1d
Merge pull request #2310 from native-api/simplify_setup
Simplify init scheme
2022-05-02 19:17:31 +03:00
Ivan Pozdeev 7256feeaa8 Remove EOL versions from CI 2022-05-02 19:08:49 +03:00
Ivan Pozdeev 6d4365a696 Make pyenv init --path usable as a pyenv init - substitute
We're going to eliminate the need to mandatorily use `pyenv init --path`.
We can't delete it yet for backward compatibility.
Besides, there's one other use case for it: to enable shims but without
shell integration, e.g. for noninteractive shells.

To be a full-fledged replacement for `pyenv init -` however,
it needs to do rehashing.
2022-05-02 19:07:24 +03:00
Ivan Pozdeev 8439f8e187 Simplify init scheme; update & clarify the README
Now the setup is to add to both rc and profile:
1) set PYENV_ROOT
   (can do it unconditionally -- since if you change it,
   you need to update all places anyway since any of them can be run first)
2) Add `pyenv` to PATH if not already there
3) eval "$(pyenv init -)"

Not a breaking change, old setup will continue to work.
2022-05-02 19:07:24 +03:00
Ivan Pozdeev 32a86a84c0 Show output for assert_line() and refure_line()
Required for diagnostics
2022-05-02 04:46:00 +03:00
native-api d5b12f826d
Make PYENV_DEBUG imply -v for pyenv install (#2347)
Trace logs without `-v` are usually useless due to missing the build part.
So this leaves one less thing for users to worry about
when submitting error reports.

Mentioning `-v` in the issue template should stay for some time
since users report on old versions, too.
2022-05-01 05:49:09 +03:00
Michael Šimáček b6b761f9f1
Add GraalPython 22.1.0 (#2346) 2022-04-29 20:30:31 +03:00
native-api e8f952a5d8
Support XCode 13.3 (Apple Cang 13.1.6) in all releases that officially support MacOS 11 (#2344)
There are no new (glaring) platform incompatibilities in MacOS 12 so those releases should technically run in it as well
2022-04-29 08:54:22 +03:00
Sam Gross 864cd79980
Add "nogil" Python v3.9.10 (#2342) 2022-04-29 05:49:43 +03:00
Illia Volochii 6d20b3b123
Add CPython 3.11.0a7 (#2315) 2022-04-19 18:01:22 +03:00
Ville Skyttä fe4eccf3e7
Add Pyston 2.3.3 (#2316) 2022-04-19 18:01:07 +03:00
dand-oss f0f2cdd1c6
Add PyPy 7.3.9 (#2308)
Co-authored-by: Dan Dees <dand@appsmiths.com>
2022-04-01 15:26:38 +03:00
native-api 58427b9a5c
Add CONTRIBUTING.md (#2287) 2022-03-31 05:28:28 +03:00
native-api 72757562c1
Remove bountysource since it has gone rogue
I've never been able to activate (or refund) existing bounties on solved problems. Their support has been unhelpful. So I've given up on them.
2022-03-24 20:00:29 +03:00
Sam Doran fb97a9c2bd
Support MacOS with CLang 3+ for CPython 3.7.12 (#2292) 2022-03-24 16:36:48 +03:00
Netanel Shine 48b545345e
Support MacOS with CLang 3+ for CPython 3.6.15 (#2288) 2022-03-24 16:35:57 +03:00
Saaket Prakash 45bb60dc39
Add CPython 3.10.4 (#2295) 2022-03-24 16:10:10 +03:00
Saaket Prakash c0fef470cb
Add CPython 3.9.12 (#2296) 2022-03-24 16:09:17 +03:00
Ed Rogers 986fe1a749
Prevent GitHub autolinking to an issue (#2282) 2022-03-18 07:52:26 +03:00
Ivan Pozdeev bfe54c9459 declare -ar causes "readonly variable" error in Bash 3.2
Fixes https://github.com/pyenv/pyenv/issues/2278
2022-03-18 07:39:44 +03:00
Ivan Pozdeev a43631d7c0 Copy patches 3.7.12->3.7.13
All the patches still apply
2022-03-17 14:48:33 +03:00
tuzi3040 a157725dbe
Bump openssl 1.1 to 1.1.1n for CPython 3.7.13 3.8.13 3.9.11 3.10+ (#2276) 2022-03-17 00:47:09 +03:00
Josh Friend 3a95c969e1
v2.2.5 Add new CPython versions 2022-03-16 16:58:43 -04:00
dand-oss 0d949796ce
Add PyPy 7.3.8 (#2253)
Co-authored-by: Dan Dees <dand@appsmiths.com>
2022-03-09 21:13:38 +03:00
Ville Skyttä ee6ef20859
docs(pyenv-prefix): note support for multiple versions (#2270) 2022-03-09 05:33:01 +03:00
Alex Hedges 7bc426e2be
Add miniconda3-3.7-4.11.0, miniconda3-3.8-4.11.0, miniconda3-3.9-4.11.0 (#2268) 2022-03-08 17:37:39 +03:00
Saaket Prakash 3b0ee099a8
Add CPython 3.11.0a6 (#2266) 2022-03-07 21:23:04 +03:00
Ivan Pozdeev 44db3b03d0 Merge branch 'master' of https://github.com/pyenv/pyenv 2022-03-01 09:25:30 +03:00
Ivan Pozdeev 49d955d584 Fix typo in looked-for argument name 2022-03-01 09:25:20 +03:00
Saaket Prakash 1e79a5222b
Add CPython 3.11.0a5 (#2241) 2022-02-04 03:04:53 +03:00
David Lawson d29feab2c8
Add pyston-2.3.2 (#2240) 2022-02-03 16:07:56 +03:00
Pedro Fonini a98fee0555
python-build: add URL for get-pip for Python 3.6 (#2238) 2022-02-03 03:20:52 +03:00
Pedro Fonini 7ea0408966
Fix UnicodeDecodeError for CPython 3.6.15 and 3.7.12 (#2237) 2022-02-02 15:56:12 +03:00
Anton Petrov 42e6409f6c
Update CHANGELOG.md 2022-01-27 18:51:13 +03:00
Anton Petrov 6f7a29c3f4
Update pyenv---version 2022-01-27 18:46:17 +03:00
Michael Šimáček 8aa8d84e09
Add GraalPython 22.0.0 (#2226) 2022-01-26 12:12:55 +03:00
Verdi March 39f1b141ef
miniconda3-latest: added Linux-aarch64 (#2221) 2022-01-17 19:44:59 +03:00
Ned Batchelder a55dd92436
CPython 3.9.10 and 3.10.2 (#2219) 2022-01-15 16:27:08 +03:00
Ned Batchelder 9f5aa953b4
CPython 3.11.0a4 (#2217) 2022-01-15 10:51:28 +03:00
native-api 971397dd4e
Revert "Disable coreutils on M1 Apple Silicon with arm64 (#2020)" (#2212)
This reverts commit 90d0d20508.

After further consideration, we've decided to remove this workaround:
* It only has an effect if the user has added `gnubin` from Homebrew Coreutils to PATH which is an unsupported setup
* It was intended to be applied only to a few select 3.8 and 3.9 versions that officially support Apple Silicon and only fail with Homebrew Coreutils in PATH because they have `config.*` from a too old version of Autoconf that doesn't support the Arm64 arch -- but
  * CPython devs [didn't actually fix the problem in 3.10, either, only in 3.11](https://github.com/pyenv/pyenv/pull/2157#issuecomment-968055387), so we'd need to apply it to all 3.10 releases, too
  * users started pushing this workaround into other unrelated branches because they were using the above unsupported setup. See https://github.com/pyenv/pyenv/pull/2190#pullrequestreview-835221952 for discussion.
2022-01-08 13:56:56 +03:00
Christian Hammond 867909c933
Fix a regression in include paths when compiling ctypes in 3.6.15/3.7.12. (#2209)
In my previous work on getting Python 3.6.15 and 3.7.12 to compile on
Apple M1, I backported logic from newer 3.8.x releases to properly find
libffi and related files on macOS.

This regressed compilation on Linux. The include search path was
incomplete, and `ffi.h` could not be found, resulting in `ctypes` being
disabled.

There was a key difference between the old logic and new logic that led
to this regression:

1. In 3.8 and newer, `detect_ctypes()` in `setup.py` took no arguments,
   and was expected to access instance variables for the include search
   path.
2. In 3.7 and earlier, `detect_ctypes()` took the path as an argument,
   and was expected to make use of it.

The backport made use of the instance variables, overriding the provided
include path. These were not equivalent. The one on the instance was not
complete, lacking the necessary directories to find `ffi.h`. Since this
could not be found, `ctypes` support was disabled.

The fix is to simply not overwrite the variables passed to the function,
and resume using them as before.

Fixes #2207
2022-01-07 05:14:22 +03:00
Joseph Strach 162fea40f7
Fix incorrect pypy 2.7-7.3.6 sha256 hashes (#2208) 2022-01-05 23:46:06 +03:00
Fluency 423de9ae8d
add-miniconda: add docstrings to several key functions (#2197) 2021-12-23 21:01:28 +03:00
Anton Petrov 40d35f84b4
Update CHANGELOG.md 2021-12-22 09:48:46 +03:00
Anton Petrov 8675031879
Update pyenv---version 2021-12-22 09:48:21 +03:00
Yudai Hayashi 381002dbe2
Add pypy2.7-7.3.2~7.3.6 (#2194) 2021-12-20 13:51:28 +03:00
Christian Hammond 2d9e981d60
Fix Python 3.7.12 compilation on macOS arm64/M1. (#2190)
This change ports pyenv and Python patches to 3.7.12 to enable the
`ctypes `and `decimal` modules to compile.

While Python 3.7.12 itself compiles on arm64/M1, both of these modules
fail to compile, due to missing support for locating system libffi and
due to architecture gate-keeping. These issues have been fixed in newer
releases of Python, and in other pyenv patch bundles.

The following patches are provided:

1. `0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` -
   Fixes system `ffi.h`/`libffi` path determination and usage and
   enables calling of variadic functions, fixing ctypes support
   (consolidated port of existing pyenv patches for 2.7.18 that iterate
   on this logic).

2. `0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch` -
   Adds arm64 to the list of allowable architectures for the
   `decimal` module (port of Python patch introduced in 3.8.10).
2021-12-20 07:14:14 +03:00
Christian Hammond 152457a428
Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189)
This change ports several established patches to the Python 3.6.15
build, enabling compilation on arm64/Apple M1 architectures:

1. `0001-Detect-arm64-in-configure.patch` -
   Updates configure to detect arm64 architectures (port of an existing
   pyenv patch for 2.7.18).

2. `0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch` -
   Adds macOS SDK root computation logic for determining include paths
   (port of existing Python patches introduced in 2.7.17 and 3.7.4).

3. `0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch` -
   Fixes Tcl/Tk support on macOS (port of an existing pyenv patch
   for 2.7.18).

4. `0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` -
   Fixes system `ffi.h`/`libffi` path determination and usage and
   enables calling of variadic functions, fixing ctypes support
   (consolidated port of existing pyenv patches for 2.7.18 that iterate
   on this logic).

5. `0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch` -
   Updates Darwin version checks to handle macOS 11's major version
   bump (port of Python patches introduced in 3.7.0 and 3.9.0).

6. `0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch` -
   Adds arm64 to the list of allowable architectures for the
   `decimal` module (port of Python patch introduced in 3.8.10).
2021-12-20 07:09:38 +03:00
SouthWolf 86ca164a11
Add Anaconda3-2021.11 (#2193)
* Use verify_py39 since anaconda3-2021.11 is using python-3.9 according to release notes
2021-12-19 18:43:01 +03:00
Ned Batchelder 943c5f995d
Add CPython 3.11.0a3 (#2187) 2021-12-09 21:41:09 +03:00
John Miller c80b1cdfb9
Fix errant "echo" in build env install instructions (#2185) 2021-12-08 07:12:53 +03:00
Juan Luis Cano Rodríguez 15677f7f5a
Add Miniforge and Mambaforge 4.10.3-10 (#2184) 2021-12-07 21:39:30 +03:00
Ricardo Madriz 631bf6a23a
Add CPython 3.10.1 (#2183) 2021-12-07 08:50:30 -05:00
native-api 2862858052
Merge pull request #2182 from J-M0/fix_3.6.15
Fix 3.6.15 build on macOS
2021-12-06 20:01:42 +03:00
James Morris a7e09ce2ea Update macOS test dependencies 2021-12-05 19:23:21 -05:00
James Morris 4d56947277 Fix Python 3.6.15 build 2021-12-03 16:50:13 -05:00
James Morris 07b7471819 Add macOS tests 2021-12-03 16:48:22 -05:00
James Morris 3d4fc164a2 Update Python 3.6 in Ubuntu tests 2021-12-03 16:47:42 -05:00
Ivan Pozdeev f2925393e4 update ISSUE_TEMPLATE.md 2021-11-23 20:22:59 +03:00
Anton Petrov a681e756e1
Update CHANGELOG.md 2021-11-22 22:35:16 +03:00
Anton Petrov dc3a201301
Update pyenv---version 2021-11-22 22:33:10 +03:00
Xiangyu Xu 7706a45080
Add macOS Apple M1 to Miniconda-latest (#2164)
[source](https://www.anaconda.com/blog/anaconda-individual-edition-2021-11#:~:text=Update%20on%20macOS%20Apple%20M1%20Support)
2021-11-20 23:58:42 +03:00
Josh Friend 23dfe75b73
v2.2.1 2021-11-20 09:04:59 -05:00
Illia Volochii df7ccfe0e8
Add CPython 3.9.9 (#2162) 2021-11-16 19:17:00 +03:00
native-api e342d84715
Merge pull request #2158 from scop/micropythons 2021-11-14 00:05:58 +03:00
Ville Skyttä e54cd5f49d Add micropython 1.17 2021-11-13 22:56:51 +02:00
Ville Skyttä 80ec306155 Add micropython 1.16 2021-11-13 22:56:42 +02:00
Ville Skyttä a9e11ba164
Use command and type instead of which (#2144)
`which` has been deprecated in Debian's debianutils 5.0+
They suggest using `type` and `command` as replacements:
3a8dd10b45 ,
610a65c6ef
2021-11-11 21:08:12 +03:00
native-api 5b7c140f5b
Dummy for https://github.com/pyenv/pyenv/issues/106 (#2156)
The issue has been resolved in ed38af6409
but the bounty didn't trigger -- allegedly 'cuz it's not a PR.

Bountysource support replied "we're looking" but never did anything
so I'm going to try to trigger it via a dummy PR.
2021-11-09 20:48:12 +03:00
Ivan Pozdeev aebed1c0a4 Merge branch 'master' of https://github.com/pyenv/pyenv 2021-11-09 20:19:35 +03:00
Ivan Pozdeev 4adc45ef8a Dummy for https://github.com/pyenv/pyenv/issues/106 2021-11-09 20:19:16 +03:00
native-api d79bda4602
Patch 3.10.0 configure (#2155)
* Fix "PKG_PROG_PKG_CONFIG: command not found"

Apply f146ca36f8
* bpo-45350: Rerun autoreconf with the pkg-config macros (GH-28707)
2021-11-09 19:06:42 +03:00
Oğuzhan Çelikarslan 552d943762
Fix typos in command examples (#2147) 2021-11-09 09:50:29 +03:00
Parnassius 663abeb5fa
Add CPython 3.9.8 (#2152) 2021-11-07 17:43:58 +03:00
Ned Batchelder 748261869a
CPython 3.11.0a2 (#2150) 2021-11-06 14:21:35 +03:00
native-api 54889eb87a
Make gist generation instructions more explicit; add Zsh PS4 2021-10-31 05:14:03 +03:00
sandipanpanda cfe2aba670
Add definition of pyenv help in COMMANDS.md (#2139) 2021-10-30 22:11:42 +03:00
Ivan Pozdeev 009fea2b20 Merge branch 'master' of https://github.com/pyenv/pyenv 2021-10-29 12:20:30 +03:00
Ivan Pozdeev 6e214570d1 Use OpenSSL 1 for 2.7.18 2021-10-29 12:20:20 +03:00
native-api abfa1c6d92
Explicitly state to enable verbose mode 2021-10-29 01:21:23 +03:00
Anton Petrov 066c05336f
Update pyenv---version 2021-10-27 11:15:57 +03:00
Anton Petrov 1fa027af1e
Update CHANGELOG.md 2021-10-27 11:15:29 +03:00
Ivan Pozdeev a0cc289d15 Added a wiki page on how to setup shell as a login shell in MacOS 2021-10-27 00:27:14 +03:00
Danny Hermes 4bbf7d7bb0
Adding PyPy release 7.3.7 (Python 3.7 and 3.8). (#2132) 2021-10-26 05:09:48 +03:00
native-api 4b82f575c7
Append Homebrew custom prefix to search path (#1957)
This is needed to find other Python deps (e.g. libintl) in Homebrew if it has
nonstandard prefix (e.g. in Apple M1)

* Re-allow to search Homebrew for zlib everywhere
2021-10-26 04:36:01 +03:00
amd-9 c0d8b9cfe8
Add documentation for init command (#2125) 2021-10-25 15:30:50 +03:00
native-api 0388da7d0b
Add setup instructions for the case when one installs Pyenv as part of a batch job (#2127) 2021-10-25 01:08:57 +03:00
amd-9 13efdea9ab
Add documentation for completions command (#2126) 2021-10-24 23:33:32 +03:00
native-api 8db91d5516
Default --with-universal-archs to universal2 on Apple Silicon (#2122)
Don't override a user-supplied value
2021-10-23 22:01:57 +03:00
Khushl Vora a015760854
Update README.md (#2120)
Minor changes to make the docs better.
2021-10-23 17:33:18 +03:00
Michael Šimáček d4f45b0096
Add GraalPython 21.3.0 (#2117) 2021-10-21 18:04:03 +03:00
native-api 444088b1db
Merge pull request #2111 from dand-oss/pypy3.8-7.3.6
Pypy ver 7.3.6 - python 3.7 and python 3.8
2021-10-19 17:20:46 +03:00
Dan Dees 09877f45cb pypy3.8-7.3.6 2021-10-19 09:36:29 -04:00
Dan Dees f864294e0e pypy3.7-7.3.6 2021-10-19 09:36:29 -04:00
native-api 5963dc4f61
Discover Tcl/Tk reliably and use active version (#2106)
Link to the active version like other Homebrew deps --
this won't break when another binary-compatible version is installed.
Use a discovery method that doesn't break when other versions are present alongside.
2021-10-16 14:51:39 +03:00
native-api 0915c5b7b6
Update README.md 2021-10-16 01:57:05 +03:00
native-api ed38af6409
Add Homerew alias to fix brew doctor's warning
Closes #106
2021-10-15 22:15:25 +03:00
native-api 208be7d6af
Update ISSUE_TEMPLATE.md 2021-10-14 12:13:46 +03:00
Marcin Konowalczyk 07aa659dbb
fish installation instructions (#2104) 2021-10-12 14:09:15 +03:00
native-api 88c3404997
Update ISSUE_TEMPLATE.md 2021-10-08 11:56:08 +03:00
native-api 3a35f43eb4
Update FUNDING.yml 2021-10-08 11:47:01 +03:00
Ivan Pozdeev 9a42b48da4 Merge branch 'master' of https://github.com/pyenv/pyenv 2021-10-07 02:37:36 +03:00
Ivan Pozdeev f5cc25ed14 Fix "`build_package_pyston2.2': not a valid identifier" 2021-10-07 02:37:04 +03:00
Anton Petrov e0e3244015
Merge pull request #2099 from nedbat/master
Add CPython 3.11.0a1
2021-10-06 14:48:38 +03:00
Ned Batchelder 9c72c27d76 Add CPython 3.11.0a1 2021-10-06 07:25:55 -04:00
Anton Petrov 483d95d6d2
Remove travis build status 2021-10-05 17:49:38 +03:00
Anton Petrov 05ca057bb2
Update pyenv---version 2021-10-05 17:32:37 +03:00
Anton Petrov 108a10a198
Update CHANGELOG.md 2021-10-05 17:32:15 +03:00
Anton Petrov 979e6f0a61
Merge pull request #2096 from ashwinvis/patch-1
Fix mambaforge-pypy3 build
2021-10-05 17:24:58 +03:00
Ashwin V. Mohanan 2a9c18372a
Update mambaforge-pypy3
Fix typo `ase` -> `case`
2021-10-05 15:28:13 +02:00
native-api 8315e1528b
Create FUNDING.yml 2021-10-05 12:27:48 +03:00
Anton Petrov c81a28105f
Merge pull request #2093 from Parnassius/py310
Add Python 3.10.0
2021-10-04 22:28:30 +03:00
Parnassius d601efa0d5 Add Python 3.10.0 2021-10-04 21:16:19 +02:00
sandipanpanda 0688b17cc1
Add documentation for exec command (#2090) 2021-10-02 23:15:18 +03:00
sandipanpanda bb6a747c02
Add documentation for shims command (#2091) 2021-10-02 23:10:37 +03:00
sandipanpanda 681d31bc36
Add documentation for hooks command (#2089) 2021-10-02 20:00:24 +03:00
sandipanpanda 3b1bc86031
Add documentation for root command (#2088)
* Add documentation for root command
2021-10-02 19:58:56 +03:00
sandipanpanda 6139b51af4
Add documentaion for prefix command (#2087) 2021-10-02 19:54:12 +03:00
Ivan Pozdeev 10a8c83888 Merge branch 'master' of https://github.com/pyenv/pyenv 2021-10-01 02:30:41 +03:00
Ivan Pozdeev 9985f7b436 Honor CONFIGURE_OPTS as well as PYTHON_CONFIGURE_OPTS when detecting options 2021-10-01 02:30:28 +03:00
Kevin Modzelewski a7895e6ea8
Update to Pyston's v2 package of the 2.3.1 release (#2078)
This one gets rid of the extra "usr" subdirectory that we had and now fits the format that pyenv expects
2021-09-28 21:12:46 +03:00
Anton Petrov 7dd48d1665
Merge pull request #2075 from kmod/pyston_2.3.1
Add pyston-2.3.1 support
2021-09-27 21:45:33 +03:00
Kevin Modzelewski 11c54713bb This looks unnecessary now 2021-09-24 17:23:35 -04:00
Kevin Modzelewski 3051d21004 Add pyston-2.3.1 support
We changed the directory structure for pyston 2.3.1 slightly, where we now
include a top-level "pyston-2.3.1" directory when you unpack the tarball.
2021-09-24 15:10:50 -04:00
Anton Petrov 9ecfdd1073
Merge pull request #2074 from anton-petrov/master
Don't update conda when installing pip
2021-09-23 12:47:50 +03:00
Anton Petrov 47d3dee0bb
Fix 2021-09-23 12:26:46 +03:00
Anton Petrov 0a3b72d890
Don't update conda when installing pip 2021-09-23 12:00:09 +03:00
native-api f018056165
Merge pull request #2072 from aphedges/improve-add_miniconda 2021-09-21 08:07:42 +03:00
Alex Hedges af55330d37 Add miniconda2-2.7-4.8.3, miniconda3-3.7-4.10.3, miniconda3-3.8-4.10.3, miniconda3-3.9-4.10.3 2021-09-21 08:06:57 +03:00
native-api 0211c345f7
Merge pull request #2073 from native-api/github_actions_tests
GitHub actions tests
2021-09-21 07:55:28 +03:00
Ivan Pozdeev 2f8c625a7d Fix test failures 2021-09-21 07:44:03 +03:00
Ivan Pozdeev e28661c7e2 Fix random "broken pipe" 2021-09-21 07:43:58 +03:00
Ivan Pozdeev 6882be06a6 Bats: report unstub failure details 2021-09-21 07:43:58 +03:00
Ivan Pozdeev c6c4e41eb9 Bats: show output on failed assertions 2021-09-21 05:07:17 +03:00
Ivan Pozdeev f504b01818 consistent message 2021-09-21 05:07:12 +03:00
Ivan Pozdeev 876be1bb04 Bats: path_without: support multiple args 2021-09-21 05:07:12 +03:00
Ivan Pozdeev 6185bb55e6 allow for sys.executable to be different 2021-09-21 05:07:06 +03:00
Ivan Pozdeev 7f714c34ba Bats 1.2 requires readline from gnu coreutils in MacOS 2021-09-21 05:07:06 +03:00
Ivan Pozdeev 848e56e992 Add Pyenv tests to Github Actions
Now that Travis check has been removed from the repo
2021-09-21 05:07:06 +03:00
Alex Hedges 8b07b92c37 Support newer miniconda filenames 2021-09-20 19:47:26 -04:00
Alex Hedges 3a20ce7555 Add default verbosity to add_miniconda.py
Required to prevent a crash when no verbosity given.
2021-09-20 19:30:45 -04:00
rallyemax 0c6ad7c52b
Fix sed commands (#2071)
In GNU `sed`, the `-iEe` argument is equivalent to `--in-place=Ee`, which would create `~/.profileEe` as backup of `~/.profile` if the command executed successfully. However, because the `e` is no longer being processed as an expression argument, `sed` does not correctly join the expressions and exits with `sed: -e expression #2, char 10: unexpected }`.

The intent is to use extended regex, perform the changes in-place, and use a series of expressions, so `-Ei -e` is used instead.
2021-09-21 00:30:11 +03:00
Takumi Sueda 1bd397112a
Add Python 2.7.18 patches for Apple Silicon machines (#2061) 2021-09-20 22:10:58 +03:00
Anton Petrov dcfd715603
Update pyenv---version 2021-09-20 20:08:06 +03:00
Anton Petrov 474d7cc066
Update CHANGELOG.md 2021-09-20 20:07:51 +03:00
Anton Petrov 02c44942c6
Merge pull request #2067 from native-api/readme
Update setup instructions in the Readme
2021-09-20 07:33:50 +03:00
Ivan Pozdeev 76db37dbfa Update fish instructions based on user feedback 2021-09-19 01:08:26 +03:00
Ivan Pozdeev eb89256f59 Remove the sample code from pyenv init
since there proved to be to many cases to fit
2021-09-19 00:27:03 +03:00
Ivan Pozdeev 19f74e41f0 Update setup instructions based on user feedback 2021-09-19 00:26:48 +03:00
Ivan Pozdeev 6c74b616a5 Windows note as a separate section 2021-09-19 00:26:30 +03:00
Ivan Pozdeev 8cce6e8dd2 Add notes when to use the 2nd shell step 2021-09-19 00:26:07 +03:00
Ivan Pozdeev 03cabd88e9 Highlight MacOS note about restart 2021-09-19 00:26:07 +03:00
tillhainbach e56962b357
allow tcl-tk as argument or try with homebrew by default Replacement for #1409 (#1646)
* feat(python-build): allow tcl-tk as argument or default to homebrew
* refactor(python-build): detect tcl-tk-libs from confugre_opts_arr
2021-09-17 14:56:53 +03:00
Ivan Pozdeev cabdc45181 fix possible side effect 2021-09-17 03:52:52 +03:00
Ivan Pozdeev 7f45f1eb9d Merge branch 'sbin'
# Conflicts:
#	test/prefix.bats
2021-09-15 20:45:27 +03:00
Ivan Pozdeev acc949c27b fix test 2021-09-15 20:42:41 +03:00
native-api 4f689cdf83
Allow system Python in sbin (#2065)
Arch Linux has Python is sbin as well as bin
2021-09-15 20:00:49 +03:00
Ivan Pozdeev 26134d9b38 Allow system Python in sbin
Arch Linux has Python is sbin as well as bin
2021-09-15 19:07:00 +03:00
Pamela McA'Nulty 1c90a0f864
Prevent duplicate PATH entries when bin_path/.. is the same as PYENV_ROOT (#2045) 2021-09-15 01:09:50 +03:00
Toshihiro Takushima 90d0d20508
Disable coreutils on M1 Apple Silicon with arm64 (#2020)
* Disable coreutils on arm64-apple
* Only selectively apply to the affected CPython versions

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2021-09-09 15:53:00 +03:00
Ned Batchelder 58e2087967
Add Python 3.10.0rc2 (#2053) 2021-09-08 17:28:25 +03:00
Seonghyeon Cho a65af6570d
Add space after yes/no prompt (#2040) 2021-09-07 23:35:53 +03:00
Ricardo N Feliciano 70d7749584
Add CPython v3.6.15 and v3.7.12 (#2052) 2021-09-07 23:07:40 +03:00
Víctor Molina García 9df4524c79
Add missing Python 2.6.x definitions and patches (#2051) 2021-09-06 22:37:38 +03:00
Víctor Molina García f7450587dc
Fix build of ossaudiodev in Linux/FreeBSD for Python 2.6 (#2049)
This is essentially the same fix as in pull request #2047, but it
is applied from Python 2.6.6 to 2.6.9, and for `ossaudiodev` as well
as the (deprecated) `linuxaudiodev`.
2021-09-05 21:54:57 +03:00
Víctor Molina García 22e1aa6e9d
Fix build of ossaudiodev in Linux/FreeBSD for Python 3.1 (#2047)
With the normal `setup.py`, the installation of the `ossaudiodev`
module is skipped under GNU/Linux with newer kernel versions because
Python 3.1 appends the major kernel version to the result of
`build_ext.get_platform` and later `ossaudiodev` is skipped if the
major kernel version is not 2. A similar problem might occur if
installing in FreeBSD.

This problem may even occur if installing Python 3.1 in a Docker image
of an old OS (e.g. prehistoric Debian or CentOS), because the major
kernel version is still the one of the host system.

The solution is to use `str.startswith` and only check that the
platform starts with 'linux' or 'freebsd'.
2021-09-03 16:56:45 +03:00
Anton Petrov 2d64fb1cb9
Update pyenv---version 2021-08-31 08:44:12 +03:00
Anton Petrov a85875c39e
Update CHANGELOG.md 2021-08-31 08:43:56 +03:00
Anton Petrov 8db5778b12
Merge pull request #2044 from poad/master
Add CPython 3.9.7
2021-08-31 08:36:49 +03:00
Kenji Saito c7d8a1c33d Add CPython 3.9.7 2021-08-31 08:29:43 +09:00
Ricardo N Feliciano 44b7da194b
Add CPython v3.8.12 (#2043) 2021-08-30 23:39:24 +03:00
Anton Petrov b2eb2d28d1
Merge pull request #2037 from NyaMisty/master
[Fixed] Adapt conda.bash for bash associative array
2021-08-24 13:42:02 +03:00
Anton Petrov 8b60418361
Update CHANGELOG.md 2021-08-23 10:35:08 +03:00
Anton Petrov e9c8dfc197
Update pyenv---version 2021-08-23 10:34:26 +03:00
Sakuragawa Misty dfeda54079 fixes checking of associative array in conda.bash 2021-08-21 04:20:23 +08:00
Anton Petrov 4f8b15fecd
Merge pull request #2035 from pyenv/revert-2027-master
Revert "Adapt conda.bash for bash associative array"
2021-08-20 14:18:30 +03:00
Anton Petrov 07609cc579
Revert "Adapt conda.bash for bash associative array" 2021-08-20 09:58:18 +03:00
Anton Petrov 3738c2a282
Merge pull request #2027 from NyaMisty/master
Adapt conda.bash for bash associative array
2021-08-19 19:38:25 +03:00
Anton Petrov 9668be8850
Merge pull request #2032 from vatosarmat/master
Move man page to location where it can be automatically found by man
2021-08-19 13:29:12 +03:00
V S dc36c300e1 Move man page to location where in can be automatically found by manpage utility without manual MANPATH setting 2021-08-19 19:55:22 +10:00
Sakuragawa Misty 351ddb1095 Adapt conda.bash for bash associative array 2021-08-10 05:54:51 +08:00
native-api d209e0612b
Merge pull request #2025 from fredrikaverpil/fix-checksums
Update checksums for CPython 3.10.0rc1
Remove 3.10.0rc1
2021-08-04 23:23:24 +03:00
Fredrik Averpil 825ef64995 Remove CPython 3.10.0b4 2021-08-04 22:22:11 +02:00
Fredrik Averpil 65588f51d9 Update checksums for CPython 3.10.0rc1 2021-08-04 22:16:34 +02:00
Anton Petrov ab1a9d290c
Merge pull request #2022 from native-api/remove_3.9.3
Remove 3.9.3
2021-08-03 21:58:21 +03:00
Anton Petrov b40ef3c698
Merge pull request #2023 from fredrikaverpil/add-3100rc1
Add CPython 3.10.0rc1
2021-08-03 21:57:08 +03:00
Fredrik Averpil 1427f80828 Add test to CI 2021-08-03 20:10:53 +02:00
Fredrik Averpil 9db1193c2a Add CPython 3.10.0rc1 2021-08-03 20:07:38 +02:00
Ivan Pozdeev 1f906baae8 Remove 3.9.3
It has been recalled due to introducing an unexpected incompatibility:
https://www.python.org/downloads/release/python-393/
2021-08-03 06:52:44 +03:00
Anton Petrov cef86ce462
Update pyenv---version 2021-07-25 11:54:16 +03:00
Anton Petrov 52822a3d50
Update CHANGELOG.md 2021-07-25 11:53:58 +03:00
Anton Petrov afc8031544
Merge pull request #2019 from anton-petrov/master
Added scripts for rolling releases of Miniforge
2021-07-25 11:48:07 +03:00
Anton Petrov c435fde088
Rename mambaforge3-pypy3-latest to mambaforge-pypy3 2021-07-25 11:38:11 +03:00
Anton Petrov 3773dfb4f1
Update and rename miniforge3-pypy3 to miniforge-pypy3 2021-07-25 11:37:22 +03:00
Anton Petrov abe0056b5f
Update and rename mambaforge3-latest to mambaforge 2021-07-25 11:34:51 +03:00
Anton Petrov fd8854dea1
Rename miniforge3-latest to miniforge3 2021-07-25 11:34:05 +03:00
Anton Petrov 9b6377de23
Create mambaforge3-pypy3-latest 2021-07-25 11:30:59 +03:00
Anton Petrov 8c251a5e9b
Rename mambaforge3 to mambaforge3-latest 2021-07-25 11:27:21 +03:00
Anton Petrov a6d6ba8050
Rename miniforge3 to miniforge3-latest 2021-07-25 11:26:54 +03:00
Anton Petrov fc7560bcfd
Update and rename mambaforge3-latest to mambaforge3 2021-07-25 11:24:59 +03:00
Anton Petrov 56fd6c3c51
Update and rename miniforge3-latest to miniforge3 2021-07-25 11:24:31 +03:00
Anton Petrov db82c73391
Create miniforge3-pypy3 2021-07-25 11:23:28 +03:00
Anton Petrov d4d66b6183
Update miniforge3-latest 2021-07-25 11:12:58 +03:00
Anton Petrov 0c287ffcf7
Create mambaforge3-latest 2021-07-25 11:12:29 +03:00
Anton Petrov af59ef0088
Create miniforge3-latest 2021-07-25 11:09:54 +03:00
David Lawson ad8807543b
Update pyston-2.3 (#2017)
The original 2.3 portable version was compiled on Ubuntu 20.04 and didn't work with older glibc.

This has been fixed and the older file has been deleted so hopefully this change is acceptable.
2021-07-22 19:28:04 +03:00
Michael Šimáček aad74674cb
Add GraalPython 21.2.0 (#2018) 2021-07-22 19:26:11 +03:00
Anton Petrov f043f47c35
Merge pull request #2013 from nedbat/fix-3.10.0b4
fix: correct the reported version for 3.10.0b4
2021-07-20 08:14:12 +03:00
Ned Batchelder d769f22996 fix: correct the reported version for 3.10.0b4 2021-07-19 14:40:13 -04:00
Anton Petrov 56fe98bfed
Merge pull request #2012 from dmrlawson/pyston-2.3
Add Pyston 2.3
2021-07-18 20:55:42 +03:00
David Lawson 041903c640 Add Pyston 2.3 2021-07-18 18:21:01 +01:00
Anton Petrov 84a6535708
Merge pull request #2005 from nedbat/3.10.0b4
3.10.0b4
2021-07-12 07:51:57 +03:00
Ned Batchelder 93dd6f1163 Add 3.10.0b4 2021-07-11 14:02:39 -04:00
Anton Petrov 3a5a21ee05
Update pyenv---version 2021-07-03 10:10:58 +03:00
Anton Petrov ae29f86968
Update CHANGELOG.md 2021-07-03 10:10:42 +03:00
native-api f7754ae6a4
Remove PATH warning (#2001)
* In some cases (Ubuntu), `pyenv init -` has to be run before `pyenv init --path`.
* The warning has served its purpose by now.
2021-07-03 09:48:13 +03:00
Illia Volochii 673c73012d
Add Python 3.6.14, 3.7.11, 3.8.11, and 3.9.6 (#1996) 2021-06-29 13:45:48 +03:00
Anton Petrov 20df064204
Update pyenv---version 2021-06-27 11:25:53 +03:00
Anton Petrov 1cce1cadbd
Update CHANGELOG.md 2021-06-27 11:25:37 +03:00
Anton Petrov fc83d32317
Merge pull request #1992 from anton-petrov/master
Miniforge minor update to 4.10.1-5
2021-06-27 11:01:51 +03:00
Anton Petrov cb0402214e
Merge pull request #1991 from hughrawlinson/patch-1
Suggest that fish users init in interactive mode
2021-06-27 11:01:42 +03:00
Anton Petrov 35e0b0e24a
Create mambaforge-4.10.1-5 2021-06-27 10:45:15 +03:00
Anton Petrov 57f1c3b5b4
Create miniforge3-4.10.1-5 2021-06-27 10:39:48 +03:00
Hugh Rawlinson 637fd914dc
Update README.md 2021-06-27 00:25:22 +02:00
Hugh Rawlinson d2bd4c06ef
Suggest that fish users init in interactive mode
...rather than login mode.

I couldn't get rid of the warning that `pyenv init -` no longer sets path until I did this. It looks like setting only on the login shell wasn't enough to hide the warning in other shells I opened. This fits with [how rbenv does the same thing](https://github.com/rbenv/rbenv/blob/master/libexec/rbenv-init#L74).

I'm way out of my depth here, so someone who knows about shell types should definitely review this.
2021-06-27 00:22:59 +02:00
Ned Batchelder 5f75198569
Add 3.10.0b3 (#1988)
* Add 3.10.0b3

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2021-06-19 15:41:43 +03:00
native-api bbcecc7561
Merge pull request #1984 from pyenv/revert-1907-install_no_blank
Revert "Drop inferring version to install from `pyenv local`"
2021-06-14 18:08:19 +03:00
native-api e154693dc6
Revert "Drop inferring version to install from pyenv local" 2021-06-14 17:08:46 +03:00
native-api 1706436fae
Use system Python3 for tests (#1979)
PEP 394 now doesn't require `python` presence or specify what it is.
Tests that invoke it use Py3-specific code.
2021-06-10 03:57:58 +03:00
native-api 859b260764
Check for shims in path with pure Bash (#1978)
Closes https://github.com/pyenv/pyenv/issues/1921
2021-06-10 03:51:59 +03:00
LukeAI fadb3f3389
Fix instructions for Debian/Ubuntu to have shims ahead of ~/.local/bin (#1977)
Debian/Ubuntu's stock `~/.bashrc` prepends `~/.local/bin` to `PATH` towards its end if it exists.
Executables for per-user modules for system Python are installed into `~/.local/bin` --
so need to prepend `shims` to `PATH` later that that.

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2021-06-08 18:10:38 +03:00
Anton Petrov f81bffc95e
2.0.1 2021-06-06 16:25:48 +03:00
Anton Petrov d517315d25
Update CHANGELOG.md 2021-06-06 16:25:21 +03:00
Anton Petrov 70934bd635
Merge pull request #1907 from native-api/install_no_blank
Drop inferring version to install from `pyenv local`
2021-06-04 21:01:48 +03:00
Anton Petrov b8686ffdad
Merge pull request #1971 from anton-petrov/master
Create mambaforge-4.10.1-4
2021-06-04 20:57:34 +03:00
Anton Petrov c95b1f2b95
Create mambaforge-4.10.1-4 2021-06-04 20:32:57 +03:00
Seth Michael Larson c878150dac
Add 3.10.0b2 (#1966) 2021-06-03 00:16:20 +03:00
Philip Howard 6633382417
Fix .bashrc echo install syntax error (#1965)
Change `done` to `fi` since otherwise Bash emits an unexpected token error:

```
bash: /home/foo/.bashrc: line 120: syntax error near unexpected token `done'
bash: /home/foo/.bashrc: line 120: `if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; done'
```
2021-06-03 00:12:58 +03:00
native-api 83056fc404
Merge pull request #1964 from native-api/master
Add explicit Zsh instructions for MacOS
2021-06-02 12:25:12 +03:00
Ivan Pozdeev cb1390cb49 Fix capitalization 2021-06-02 00:47:52 +03:00
Ivan Pozdeev 159327ff25 Add explicit instructions for Zsh in MacOS
Indirect ones with errata have proven to confuse users.
Fixes #1947, #1948
2021-06-02 00:08:28 +03:00
Ivan Pozdeev e2125b2750 Merge branch 'master' of https://github.com/pyenv/pyenv 2021-06-01 02:22:35 +03:00
Ivan Pozdeev adca14a910 fix typo 2021-06-01 02:22:19 +03:00
native-api fa7bb12221
Merge pull request #1955 from aisk/patch-1
install pip with pyston
2021-05-31 12:34:46 +03:00
An Long fa384f134e
install pip with pyston
The default pyston build do not have pip installed by default. This change just add `get_pip` function to have pip installed.
2021-05-31 16:46:01 +08:00
native-api ca2032452b
Merge pull request #1537 from native-api/mention_log
Mention log file if an error happened before building, too
2021-05-27 02:29:58 +03:00
native-api 713cfea475
Merge pull request #1950 from dmrlawson/pypy3.7-7.3.5
Add pypy3.7-7.3.5, pypy3.7-7.3.4-src, pypy3.7-7.3.5-src
2021-05-26 23:20:44 +03:00
David Lawson d73ae603c7 Add pypy3.7-7.3.4-src and pypy3.7-7.3.5-src 2021-05-26 20:55:17 +01:00
David Lawson 84486ceb70 Add pypy3.7-7.3.5 2021-05-26 20:21:38 +01:00
Anton Petrov 1270ca6b0b
2.0.0 2021-05-23 20:01:43 +03:00
Anton Petrov c8abcd23f0
Update CHANGELOG.md 2021-05-23 20:01:19 +03:00
Anton Petrov 748a1ff0ec
Merge pull request #1908 from native-api/show_cache_filename
Report cache filename at download
2021-05-23 19:54:32 +03:00
Anton Petrov 20a146ed6e
Create miniforge3-4.10.1-3 2021-05-23 19:45:53 +03:00
Ville Skyttä ac4de22265
Add micropython 1.15 (#1939) 2021-05-21 19:01:02 +03:00
Nathan V d02b929d07
Add Stackless 2.7.16 (#1450)
* Added Stackless 2.7.16

Co-authored-by: Nathan <nathan@nathan.v>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2021-05-21 15:09:05 +03:00
Anton Petrov 4ce52bd333
2.0.0-rc1 2021-05-20 23:20:22 +03:00
Anton Petrov d576ac4c8c
2.0.0 2021-05-20 23:19:25 +03:00
Anton Petrov aa950f939a
Merge pull request #1935 from native-api/framework_prefix
Prevent build from installing MacOS apps globally
2021-05-20 22:50:31 +03:00
Anton Petrov 13e67a37ab
Merge pull request #1934 from native-api/no_ldflags_dirs
ldflags_dirs is not needed for Python and causes failures
2021-05-20 22:49:21 +03:00
Anton Petrov 750ccb1129
Merge pull request #1937 from anton-petrov/master
Update anaconda3-2021.05 - fixed checksum for macOS package
2021-05-20 09:46:03 +03:00
Anton Petrov 5cf4eeb5cb
Update anaconda3-2021.05
Fixed checksum for macos package
2021-05-20 09:44:36 +03:00
Ivan Pozdeev 0dd61f8777 fix test 2021-05-19 17:02:03 +03:00
Ivan Pozdeev a7044d2c06 Prevent build from installing MacOS apps globally 2021-05-19 15:44:05 +03:00
Ivan Pozdeev d010b4110a adjust tests 2021-05-19 05:47:48 +03:00
Ivan Pozdeev e5db32499c ldflags_dirs is not needed for Python and causes failures
Ensuring that all dirs in LDFLAGS exist is only needed for Ruby due to its `configure` requirements.
If some LDFLAGS entries point to a nonexisting path to which the user doesn't have permission. this causes a build failure.
2021-05-19 05:28:03 +03:00
Ivan Pozdeev ddf952ab2d Allow for cases where user might've aliased some programs
The $(type -p | head -1) construct expects to always get a path, so need to ignore such aliases with -P

Closes https://github.com/pyenv/pyenv/issues/1662
2021-05-17 10:48:46 +03:00
Ivan Pozdeev fdbcdd38f1 Add a version-neutral verify fn for rolling-release scripts
E.g. "*-latest"
May need splitting into project-specific ones if there emerge projects with different check needed

Closes https://github.com/pyenv/pyenv/issues/1559
2021-05-17 00:47:27 +03:00
Anton Petrov 7b04d3a8e6
Merge pull request #1928 from anton-petrov/master
Create miniforge3-4.10.1-1
2021-05-16 21:24:46 +03:00
Anton Petrov d9b9c4588d
Create anaconda3-2021.05 2021-05-16 21:01:13 +03:00
Anton Petrov 13ae1461ff
Create miniforge3-4.10.1-1 2021-05-16 20:52:24 +03:00
native-api b5d7216f5c
Merge pull request #1905 from native-api/umask
Make test independent of umask
2021-05-15 15:49:52 +03:00
native-api bba1289e23
Bash automated install option (#1922)
Bash automated install option for the case when ~/.profile sources ~/.bashrc
2021-05-14 00:05:40 +03:00
Ivan Pozdeev e0d109c227 Include a Bash automated install option 2021-05-13 22:58:07 +03:00
native-api 0d07cda969
Update install instructions for Bash and Zsh (#1920)
* Update install instructions for Bash and Zsh

* Synchronize README.md with `pyenv init`
* Add a ~/.bash_profile note
* Concatenate shims activation into installation for brevity
  (Pyenv can't be used meaningfully without shims anyway)
  Otherwise, we'd need to duplicate all the ~/.profile shenanigans in both sections
* Update based on feedback
* Proofread
2021-05-13 22:57:14 +03:00
Ivan Pozdeev a7f3e3a5be Use magic keyword for linking issues to PRs 2021-05-11 22:36:58 +03:00
Fabian Homborg 0d2fb35cee
Fix fish installation instructions (#1916) 2021-05-11 22:35:15 +03:00
Anton Petrov fd3c891d76
Merge pull request #1912 from native-api/profile_sources_rc
Add a hint for cases when ~/.profile sources ~/.rc
2021-05-10 06:09:25 +03:00
Ivan Pozdeev da9392fd09 Add a hint for cases when ~/.profile sources ~/.rc
Our ~/.rc logic must run after the ~/.profile one
2021-05-10 04:39:45 +03:00
Ivan Pozdeev b4511f0787 Remove test for the feature 2021-05-10 03:19:38 +03:00
native-api f0a8e72c36
Merge pull request #1910 from native-api/full_install_message
Place full shell configuration instructions into `pyenv init`
2021-05-10 00:36:46 +03:00
Ivan Pozdeev 13deda8875 Place full shell configuration instructions into pyenv init
including initial PATH and PYENV_ROOT entries.
The migration hint proved to be unclear to users without them.
2021-05-10 00:08:46 +03:00
Ivan Pozdeev 891dc31c92 Report cache filename at download
In certain cases, a user wants to know the cached filename to add the file themselves,
see https://github.com/pyenv/pyenv/issues/1743 .
Since we report both a filename and a URL anyway, there's no reason to report a wrong one.
2021-05-08 19:50:21 +03:00
native-api debf1abd8b
Merge pull request #1312 from AlyssonOliveira/update_configuration_files
Update generated configuration files before run ./configure
2021-05-08 04:28:09 +03:00
Ivan Pozdeev 8bff74dbd4 Drop inferring version to install from pyenv local
This behavior is only triggered when the version is provided as an empty string,
is undocumented and breaks if multiple local versions are specified
(rightly so since it's unclear which of them to install).
2021-05-08 01:58:47 +03:00
Ivan Pozdeev 37f6349b01 Make test independent of umask
Only test the permission bit that we're setting
2021-05-07 20:34:00 +03:00
Anton Petrov 35795148fb
Update no-response.yml 2021-05-07 19:38:57 +03:00
Anton Petrov a52e79856e
Create no-response.yml 2021-05-07 19:05:02 +03:00
Anton Petrov fecb03fcb3
Merge pull request #1898 from native-api/startup_r1
Split startup logic into PATH and everything else
2021-05-07 18:38:28 +03:00
Ivan Pozdeev aab562c696 Add a warning about needing to restart the entire login session
E.g. for a GUI session, ~/.profile is executed by the GUI login "shell" at its startup
so one needs to fully log out and log back in.
Before that, the change would only be seen by shells explicitly started as login shells.
2021-05-07 16:21:17 +03:00
Anton Petrov db308d830e
Merge pull request #1902 from native-api/openssl_osx_arm
Bump OpenSSL to 1.1.1x for all Pythons that support MacOS 11
2021-05-07 09:11:20 +03:00
Anton Petrov 73e41c250e
Delete 3.10.0a7 2021-05-07 09:09:28 +03:00
Ivan Pozdeev a59430c7c4 Bump OpenSSL to 1.1.1x for all Pythons that support MacOS 11
To support building for Apple ARM64 which was introduced in MacOS 11
OpenSSL added support for Apple ARM in 1.1.1
(61168b5b8d).
Python added support for MacOS 11 in 3.7.8+, 3.8.4+, 3.9.0+
(https://github.com/python/cpython/pull/21113 and backports).
2021-05-07 02:57:58 +03:00
Anton Petrov 328fd42c3a
support for pyston 2.2 2021-05-06 15:06:06 +03:00
Anton Petrov 58b09b7461
Create pyston-2.2 2021-05-06 15:04:20 +03:00
Anton Petrov 92f7510b4b
Delete pyston-0.6.1 2021-05-06 15:02:55 +03:00
Anton Petrov 4464fda5af
Delete pyston-0.6.0 2021-05-06 15:02:36 +03:00
Anton Petrov cf17d4a548
Delete pyston-0.5.1 2021-05-06 15:02:19 +03:00
Ivan Pozdeev 3e3f40fefc Warn users to add pyenv init --path to ~/.profile
To facilitate migration
2021-05-05 03:04:52 +03:00
Ivan Pozdeev 7838707595 Separate startup logic into PATH and the rest
PATH manipulation should be done in ~/.profile rather than ~/.*rc since .rc can be sourced multiple times
2021-05-05 03:04:51 +03:00
Ivan Pozdeev b0b862ca64 Don't print actual PATH in test output 2021-05-05 01:29:18 +03:00
Ivan Pozdeev 5998f4f7ab Refactoring: make logic more fit for rearrangement
With functions, we have more leeway in what to call
2021-05-05 01:25:11 +03:00
Fredrik Averpil 1edded3426
Update 3.10-dev and 3.11-dev (#1897) 2021-05-04 14:28:09 -04:00
S. Co1 e887a3d062
Fix CPython 3.10-dev target branch (#1896) 2021-05-04 09:44:58 -04:00
Fredrik Averpil 7355554fdc
Add CPython 3.8.10 (#1895)
Co-authored-by: Josh Friend <josh@fueledbycaffeine.com>
2021-05-04 08:48:39 -04:00
Rajiv Bakulesh Shah 1146ce6e9c
Add CPython 3.9.5 (#1892)
Co-authored-by: Josh Friend <josh@fueledbycaffeine.com>
2021-05-04 08:42:26 -04:00
Anton Petrov 4e676667cf
Merge pull request #1891 from fredrikaverpil/3.10.0b1
Add CPython 3.10.0b1
2021-05-04 10:42:01 +03:00
Fredrik Averpil 79d979f954 Add test 2021-05-04 07:57:52 +02:00
Fredrik Averpil 7ad2162004 Add CPython 3.10.0b1 2021-05-03 23:16:20 +02:00
Anton Petrov 6656066d4f
1.2.27 2021-05-01 08:41:27 +03:00
Anton Petrov 9edeafbc77
1.2.27 2021-05-01 08:41:08 +03:00
Anton Petrov 54e58dc778
Merge pull request #1882 from msimacek/master
Add GraalPython 21.1.0
2021-04-25 15:26:25 +03:00
Michael Simacek a9a3c96bbd Add GraalPython 21.1.0 2021-04-21 11:15:54 +02:00
Anton Petrov b1d1ceba82
Merge pull request #1880 from Theelgirl/master
Add CPython 3.10.0a7
2021-04-20 11:17:30 +03:00
Theelgirl 8dd8fa2d66 Fix missing character in checksum and add tgz checksum 2021-04-19 09:27:38 -07:00
Theelgirl 30ba8356bc Add CPython 3.10.0a7 2021-04-19 09:15:12 -07:00
Theelgirl e18620c0a7 Add CPython 3.10.0a7 2021-04-19 09:14:23 -07:00
Anton Petrov 6759b7cdf1
Merge pull request #1874 from scop/docs/version-file-separator
docs(README): fix info about version-file separator
2021-04-17 10:59:08 +03:00
Ville Skyttä 60dbcea612 docs(README): fix info about version-file separator
Any whitespace doesn't work, need version per line.
2021-04-16 18:48:32 +03:00
Anton Petrov 2924886a77
Merge pull request #1350 from maxbrunet/feature/versions/dotglob
List versions starting with a dot
2021-04-15 21:02:50 +03:00
Anton Petrov 58e3a0ce18
Merge pull request #1866 from scop/feat/python-version-comments
feat: support (skip) commented lines in version-file
2021-04-15 21:00:03 +03:00
Anton Petrov 4cc08407ed
Merge pull request #1873 from dand-oss/pypy3.7.4
pypy3.7-7.3.4
2021-04-15 20:58:56 +03:00
Dan Dees 526750e889 pypy3.7-7.3.4 2021-04-13 13:56:24 +07:00
Ville Skyttä 641916270b feat: support (skip) commented lines in version-file
Sometimes it is convenient to be able to temporarily disable something
in a version-file. Because these files often aren't necessarily tracked
in a SCM, especially when working with virtualenvs, the SCM diffs won't
help with showing removed lines which are currently the only way to
disable something.
2021-04-11 07:46:34 +03:00
Anton Petrov c010935abd
Update COMMANDS.md 2021-04-09 10:46:22 +03:00
Anton Petrov fab0082bd5
Merge pull request #1868 from anton-petrov/master
Create miniforge3-4.10
2021-04-08 13:03:55 +03:00
Anton Petrov 0e1b1229ce
Create miniforge3-4.10 2021-04-08 12:17:21 +03:00
Anton Petrov 4f93366be8
Update CHANGELOG.md 2021-04-05 14:27:53 +03:00
Anton Petrov 80067632b6
1.2.26 2021-04-05 14:25:25 +03:00
Anton Petrov 1c1df80e0e
Merge pull request #1865 from idwpan/3.9.4-hotfix
add CPython 3.9.4
2021-04-05 14:18:14 +03:00
idwpan e18ea212e9 add CPython 3.9.4 2021-04-04 17:03:28 -04:00
Anton Petrov 4ef6570781
Merge pull request #1863 from anton-petrov/master
New version 1.2.25
2021-04-04 15:05:36 +03:00
Anton Petrov 35aa7e52ce
1.2.25 2021-04-04 14:42:16 +03:00
Anton Petrov 2197566c42
Update CHANGELOG.md 2021-04-04 14:41:47 +03:00
idwpan 32ba5d5e61
bpo-43631: update to openssl 1.1.1k (#1861) 2021-04-03 09:01:48 -04:00
idwpan e2a1c77666
Add CPython 3.9.3 and 3.8.9 (#1859) 2021-04-02 16:28:07 -04:00
Anton Petrov 6889fbc147
Merge pull request #1858 from scop/micropython-1.14
Add micropython 1.14
2021-04-02 12:58:30 +03:00
Ville Skyttä 5c8735cdbf Add micropython 1.14 2021-03-27 10:29:13 +02:00
Anton Petrov 132d546453
Merge pull request #1835 from scop/shell-detect-improvements
Shell detect improvements
2021-03-26 19:11:17 +03:00
Anton Petrov 84cc7825da
Merge pull request #1856 from scop/test/misleading-parent-shell-arg
test(init): remove misleading detect from parent shell case arg
2021-03-26 19:10:49 +03:00
Ville Skyttä b5008ce74e test(init): remove misleading detect from parent shell case arg
The generated script does not take/use any arguments, so passing
/bin/zsh to it serves only to cause confusion.
2021-03-23 23:45:32 +02:00
Ville Skyttä 61d702405d feat(init): strip -<suffix> when autodetecting shell
For example bash-5.1, bash-static.
2021-03-23 22:10:55 +02:00
Anton Petrov 3086e6e790
Merge pull request #1855 from msimacek/master
Add GraalPython 21.0.0
2021-03-23 20:30:53 +03:00
Michael Simacek 5a122c6732 Add GraalPython 21.0.0 2021-03-19 14:07:17 +01:00
Anton Petrov 332772abc5
1.2.24 2021-03-19 10:06:26 +03:00
Anton Petrov 8ec4a60db1
1.2.24 2021-03-18 12:49:09 +03:00
Anton Petrov 80e418eca5
Merge pull request #1838 from cclauss/patch-1
GitHub Actions: Add $PYENV_ROOT/shims to $PATH
2021-03-09 14:41:02 +03:00
Anton Petrov 47ab85ccf7
Merge pull request #1839 from Theelgirl/master
Add Python 3.10.0a6
2021-03-09 14:37:06 +03:00
Anton Petrov afb14d2072
Merge pull request #1814 from native-api/rm_script_dir
Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature
2021-03-09 14:36:12 +03:00
Anton Petrov de17b20a88
Merge pull request #1844 from mateumann/master
Update GET_PIP_URL
2021-03-09 13:05:52 +03:00
Mateusz Neumann 3bdafde5bf Fix URLs in the tests 2021-03-08 13:02:52 +01:00
Mateusz Neumann 1bacfa5445 Update GET_PIP_URL
The bootstrap.pypa.io URLs for pip installation changed.
2021-03-08 12:51:02 +01:00
Christian Clauss f75e028401
Prove that actual Python == expected Python 2021-03-03 13:26:08 +01:00
Theelgirl 23048b4f63 Add CPython 3.10a6 2021-03-02 17:36:05 -08:00
Theelgirl 8ee5611755 Add CPython 3.10a6 2021-03-02 17:35:27 -08:00
Christian Clauss 45b99abec6
Update ubuntu_tests.yml 2021-03-02 13:21:20 +01:00
Christian Clauss 9212585098
Update ubuntu_tests.yml 2021-03-02 13:19:57 +01:00
Christian Clauss 5ca0900a23
Update ubuntu_tests.yml 2021-03-02 13:06:26 +01:00
Christian Clauss 6e74abc42a
Update ubuntu_tests.yml 2021-03-02 12:54:20 +01:00
Christian Clauss c20aad5ef9
Update ubuntu_tests.yml 2021-03-02 12:49:09 +01:00
Christian Clauss 9e4ead1f93
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH 2021-03-02 12:42:17 +01:00
Christian Clauss 66ba35817b
Separate pyenv install, pyenv global, pyenv rehash 2021-03-02 12:36:19 +01:00
Christian Clauss acb5f572b2
echo $GITHUB_PATH 2021-03-02 12:23:44 +01:00
Christian Clauss 63a6f1bec4
GitHub Actions: Add $PYENV_ROOT/shims to $PATH 2021-03-02 12:15:18 +01:00
Anton Petrov abcbf6e112
Merge pull request #1794 from cclauss/patch-3
GitHub Action to build Python versions on Ubuntu
2021-03-01 08:32:20 +03:00
Anton Petrov ec2d2b970b
Merge pull request #1786 from scop/nounset
Make work in nounset (-u) mode
2021-02-28 22:20:46 +03:00
Anton Petrov 338c3666de
Merge pull request #1834 from anton-petrov/master
Update miniforge3-4.9.2
2021-02-28 22:05:07 +03:00
Anton Petrov af5bc2bc97
Update miniforge3-4.9.2
Update miniforge3-4.9.2 to the latest patch
2021-02-28 21:02:01 +03:00
Anton Petrov b2f7629c56
Merge pull request #1833 from anton-petrov/master
Added aarch64 for Linux in anaconda_architecture()
2021-02-28 19:59:02 +03:00
Anton Petrov a2634350f4
Fixed typo
Added aarch64 for Linux in anaconda_architecture()
2021-02-28 19:03:12 +03:00
Anton Petrov 2fd00096de
Added aarch64 for Linux in anaconda_architecture()
Added aarch64 for Linux in anaconda_architecture()
2021-02-28 19:01:11 +03:00
Anton Petrov dde9a31f2e
Merge pull request #1831 from anton-petrov/master
Hook script to add latest suffix for install command
2021-02-27 09:25:16 +03:00
Asynchronous Interruption #0 9ee109b661
fix error link (#1832) 2021-02-25 23:17:47 -05:00
Anton Petrov 16d0f50b37
Merge pull request #1830 from zdog234/patch-1
clarify proxy variable names in readme?
2021-02-25 10:33:04 +03:00
Anton Petrov 4c4457b22f hook script to add latest suffix for install command 2021-02-25 08:55:13 +03:00
Zane Dufour 06e88164cc
clarify proxy variable names in readme?
The casing for `*_proxy` is currently inconsistent. I'm guessing that's a typo?

Thanks for maintaining this awesome tool!
2021-02-24 14:29:21 -05:00
Christian Clauss 12e6f92a56
Update ubuntu_tests.yml 2021-02-24 12:48:18 +01:00
Christian Clauss 5ec5f9598f
echo "$HOME/bin" >> $GITHUB_PATH 2021-02-24 12:45:00 +01:00
Christian Clauss f86a799b5f
Update ubuntu_tests.yml 2021-02-24 12:30:13 +01:00
Christian Clauss 1e4c759b7a
PYENV_ROOT: /home/runner/work/pyenv/pyenv 2021-02-24 12:28:15 +01:00
Christian Clauss 8c0603acf2
Update ubuntu_tests.yml 2021-02-24 12:26:57 +01:00
Christian Clauss 61e2f742fc
Update ubuntu_tests.yml 2021-02-24 12:16:02 +01:00
Christian Clauss bc185d76cd
Update ubuntu_tests.yml 2021-02-24 12:07:27 +01:00
Anton Petrov b4a5bb3d85
Merge pull request #1708 from cclauss/patch-1
Travis CI: Add Xcode 12 on macOS 10.15.5
2021-02-24 13:07:44 +03:00
Christian Clauss 36efced5b7
echo "$HOME/.local/bin" >> $GITHUB_PATH 2021-02-24 10:42:12 +01:00
Christian Clauss 33335507b0
env: PYENV_ROOT: $HOME" 2021-02-24 10:40:14 +01:00
Christian Clauss 7c18f8a10c
Update ubuntu_tests.yml 2021-02-24 10:31:10 +01:00
Christian Clauss ee9c1d2b1c
Update ubuntu_tests.yml 2021-02-24 10:07:52 +01:00
Ville Skyttä f06fb60b1f Make work in nounset (-u) mode 2021-02-23 22:29:56 +02:00
Christian Clauss 604cd77d26 Update ubuntu_tests.yml 2021-02-23 18:51:53 +01:00
Christian Clauss c8bbc481ee cd $(bin/pyenv root) && git pull 2021-02-23 18:51:53 +01:00
Christian Clauss ac198a66ae Update ubuntu_tests.yml 2021-02-23 18:51:53 +01:00
Christian Clauss 086f594b8c runs-on: Ubuntu-20.04 2021-02-23 18:51:53 +01:00
Christian Clauss 878e96978a Python 3.6.12 and 3.7.9 2021-02-23 18:51:52 +01:00
Christian Clauss 390a1dd8c7 Update ubuntu_tests.yml 2021-02-23 18:51:52 +01:00
Christian Clauss 4be2dc685a bin/pyenv update 2021-02-23 18:51:52 +01:00
Christian Clauss 170636769f Python 3.6.13 and 3.7.10 2021-02-23 18:51:52 +01:00
Christian Clauss f9a0bfbe91 bin/pyenv global ${{ matrix.python-version }} 2021-02-23 18:51:52 +01:00
Christian Clauss d6b6e470b9 Python 3.9.1 2021-02-23 18:51:52 +01:00
Christian Clauss e702adaee1 bin/pyenv install ${{ matrix.python-version }} 2021-02-23 18:51:52 +01:00
Christian Clauss 79bdfce276 ./pyenv install ${{ matrix.python-version }} 2021-02-23 18:51:52 +01:00
Christian Clauss 665f1f9aa4 Update ubuntu_tests.yml 2021-02-23 18:51:52 +01:00
Christian Clauss b66160cc42 GitHub Action to build Python verssions on Ubuntu 2021-02-23 18:51:52 +01:00
Anton Petrov 3fbbc155c7
Merge pull request #1829 from anton-petrov/master
Added --nosystem argument
2021-02-23 08:16:40 +03:00
Anton Petrov f31a06dc19
Added --nosystem argument
Added --nosystem argument to skip the system environment when searching for an executable.
2021-02-22 12:21:02 +03:00
Christian Clauss 1e5938a9d0
Update comments on macOS versions 2021-02-20 10:59:42 +01:00
Christian Clauss f34dbba9b5
Upgrade xcode11.3 --> xcode11.6 2021-02-20 07:05:34 +01:00
Christian Clauss 4860b9a059
Upgrade to Python 3.9.1, Bug Sur and Ubuntu Focal 2021-02-20 06:47:11 +01:00
Anton Petrov 2c02f4f0f8
Merge pull request #1825 from gotche/master
Add CPython 3.8.8
2021-02-20 07:25:51 +03:00
Anton Petrov f1aab847e7
Update 3.8.8
Upgrade openssl to 1.1.1i
2021-02-20 06:54:49 +03:00
Anton Petrov b0dc8b77ba
Merge pull request #1826 from gotche/add-cpython-3.9.2
Add CPython 3.9.2
2021-02-20 06:51:55 +03:00
Anton Petrov 666aceea6c
Merge pull request #1790 from karthek-git/master
add manpage
2021-02-20 06:51:37 +03:00
Anton Petrov d9cb389a46
Update 3.9.2
Upgrade openssl to 1.1.1i
2021-02-20 06:33:06 +03:00
Jose Martin 32740a1e86
Add CPython 3.9.2 2021-02-19 18:07:50 +01:00
Jose Martin cc776ff875
Add CPython 3.8.8 2021-02-19 18:00:05 +01:00
karthek 2073e6d4ca
Update pyenv.1 2021-02-18 01:36:11 +05:30
Josh Friend 5f62ad7680
v1.2.23 2021-02-17 11:32:41 -05:00
native-api 5b49256330
Fix download links for everything (incl. PyPy and Stackless) (#1692)
* Update PyPy download links. Remove releases that are no longer available.

PyPy has moved from bitbucket.org to foss.heptapod.net.
Downloads have moved to https://downloads.python.org/pypy/; some of the archives are no longer available.

Portable PyPy has moved from bitbucket.org to Github. Old archives have been moved to a 3rd-party "Bitbucket Archive" site.

* Update Stackless download links. Remove releases that are no longer available.

Stackless has moved from Bitbucket to Github. Old downloads have been renamed(?); stackless.com no longer works via HTTPS.

* Delete releases that have become invalid since the last check

* fix changed checksums
2021-02-17 11:13:18 -05:00
tuzi3040 d51999adf5
Fix 'sed: RE error: illegal byte sequence' (#1714)
... by unsetting `LC_ALL` and passing `LC_CTYPE=C` to `sed`.

This commit fixes issue #1454.
2021-02-17 11:12:45 -05:00
Mike Tigas 9f12152463
add pypy3.7-c-jit-latest. use https for buildbot.pypy.org URLs. (#1812) 2021-02-17 11:12:26 -05:00
Ricardo N Feliciano f0f2e626f4
Add CPython v3.6.13. (#1817) 2021-02-17 11:11:41 -05:00
Ricardo N Feliciano c340532286
Add CPython v3.7.10. (#1818) 2021-02-17 11:10:12 -05:00
Ivan Pozdeev 131e44afcb Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature
It's impossible to 100% reliably extract the script argument from the command line for all and unknown Python versions and implementations
2021-02-16 23:59:08 +03:00
Ivan Pozdeev a6b0a2846e Revert "shims: handle symlinked scripts, via new PYENV_FILE_ARG"
This reverts commit 493f036928.

# Conflicts:
#	libexec/pyenv
2021-02-16 23:53:05 +03:00
Ivan Pozdeev e44490c639 Revert "add tests for PYENV_FILE_ARG"
This reverts commit 438e828eb5.

# Conflicts:
#	test/pyenv_ext.bats
2021-02-16 23:46:08 +03:00
Anton Petrov 421ff608fc
Merge pull request #1815 from native-api/fix_versions_bash3
Fix not printing asterisk for current version in Bash 3
2021-02-16 20:37:20 +03:00
Ivan Pozdeev 00f7d6249a Fix not printing asterisk for current version in Bash 3 2021-02-14 15:50:36 +03:00
Anton Petrov a0b02db770
Merge pull request #1810 from native-api/ps4
Use a better PS4 as recommeneded by Bash Hackers Wiki
2021-02-12 14:33:11 +03:00
Anton Petrov bd5274bbbe
Merge pull request #1811 from anton-petrov/master
Create 3.10.0a5
2021-02-12 07:35:48 +03:00
Anton Petrov 1158adbb2f
Create 3.10.0a5 2021-02-11 21:11:06 +03:00
Ivan Pozdeev 9309050864 Use a better PS4 as recommeneded by Bash Hackers Wiki
it allows to see functions as well as lines, therefore making it possible to see the control flow
2021-02-10 22:42:18 +03:00
Anton Petrov 89d3d0c33d
Merge pull request #1655 from draeath/master
"system" python - support cases where python3, python2 is in PATH but not python
2021-02-10 20:45:41 +03:00
Anton Petrov 9e1bd80668
Merge pull request #1809 from acethical/master
Fixed Miniconda 4.9.2 for MacOSX-x86_64
2021-02-10 20:37:23 +03:00
acethical a2350d3d9d fix: error link 2021-02-10 11:31:02 +09:00
Anton Petrov be9aa0c899
Merge pull request #1806 from earlchew/issue/1805
[python-build] Support PYENV_DEBUG
2021-02-07 22:58:34 +03:00
Anton Petrov 50a48764ff
Merge pull request #1797 from rharish101/search_system
Added fallback to system executable
2021-02-07 19:37:26 +03:00
Earl Chew 4c3f2cce3e [python-build] Support PYENV_DEBUG
fixes #1805
2021-02-06 10:15:18 -08:00
Anton Petrov 4c302a022d
Merge pull request #1749 from scop/perf
Use associative arrays for performance on bash >= 4
2021-01-31 12:27:49 +03:00
Ville Skyttä c4e556eded versions: use associative array to hold current versions
"hyperfine pyenv-versions" before with my bash 4.4:

Time (mean ± σ):    81.7 ms ±   2.2 ms  [User: 67.8 ms, System: 15.7 ms]
Range (min … max):  78.3 ms …  87.2 ms  34 runs

After:

Time (mean ± σ):    70.6 ms ±   2.4 ms  [User: 55.6 ms, System: 16.9 ms]
Range (min … max):  67.9 ms …  78.9 ms  41 runs
2021-01-29 19:54:25 +02:00
Ville Skyttä a804887307 rehash: use associative array to hold registered shims
"hyperfine pyenv-rehash" before on my bash 4.4:

Time (mean ± σ):   172.8 ms ±   8.2 ms [User: 185.0 ms, System: 24.8 ms]
Range (min … max): 164.2 ms … 198.4 ms 15 runs

After:

Time (mean ± σ):   113.8 ms ±   2.8 ms [User: 127.1 ms, System: 26.1 ms]
Range (min … max): 108.0 ms … 117.6 ms 25 runs
2021-01-29 19:54:25 +02:00
Anton Petrov b7efafe599
Merge pull request #1798 from scop/subsec-sleep
rehash: try to sleep in 0.1 sec steps when acquiring lock
2021-01-29 20:01:19 +03:00
Anton Petrov 982c5b36d3
Merge pull request #1763 from pc-fmarin/master
Add miniconda3 4.8.2, 4.8.3, & 4.9.2
2021-01-29 17:06:03 +03:00
Anton Petrov e0886f552d
Merge pull request #1796 from anton-petrov/master
Add PyPy 3.6 versions 7.3.2 and 7.3.3
2021-01-29 16:19:00 +03:00
Harish Rajagopal cdecf14535
Added fallback to system executable
If pyenv doesn't find an executable for the current version/virtualenv,
then search the "system" version as a fallback.
2021-01-29 13:01:21 +01:00
Anton Petrov fdd61c29e6
Create pypy3.6-7.3.3-src
PyPy version 3.6-7.3.3-src
2021-01-29 12:18:07 +03:00
Anton Petrov 09ca07981d
Create pypy3.6-7.3.3
PyPy version 3.6-7.3.3
2021-01-29 12:16:06 +03:00
Anton Petrov 6077d64b71
Create pypy3.6-7.3.2-src
PyPy version 3.6-7.3.2-src
2021-01-29 12:11:22 +03:00
Anton Petrov d40aa12a27
Create pypy3.6-7.3.2
PyPy 3.6 version 7.3.2
2021-01-29 12:07:45 +03:00
Anton Petrov ef3b5072ce
Delete pypy3.7-7.3.2
The file was in the wrong location!
2021-01-29 12:00:28 +03:00
Ville Skyttä b938abdea1 rehash: preserve existing $PYENV_REHASH_TIMEOUT semantics
Try for that long no matter what the sleep step available is.
2021-01-28 16:00:59 +02:00
Ville Skyttä c0ea15226d rehash: try to sleep in 0.1 sec steps when acquiring lock 2021-01-28 16:00:59 +02:00
Anton Petrov 511756f0c7
Merge pull request #1748 from scop/dylib-compile-doc
README: note optional bash extension build
2021-01-27 20:27:40 +03:00
Anton Petrov c53cce21c3
Merge pull request #1792 from spookylukey/patch-1
README section on using pyenv without "pyenv init"
2021-01-27 20:04:51 +03:00
Anton Petrov 136bfab5f7
Merge pull request #1793 from cclauss/patch-2
Fix get-pip which dropped support for legacy Python
2021-01-27 20:01:02 +03:00
Christian Clauss 93025e9aa4
Also fix Python 3.4 and 3.5 which do not support f-strings 2021-01-27 10:31:16 +01:00
Christian Clauss 189afa88c6
Fix get-pip which dropped support for legacy Python
Fix pyenv to continue to support legacy Python builds despite the fact that `get-pip` has dropped support for Python 2 as discussed in pypa/get-pip#87
2021-01-27 10:10:06 +01:00
Luke Plant bfb5e0ec1e
README section on using pyenv without "pyenv init" 2021-01-26 09:37:19 +03:00
karthek 6c0f6e05e9
add manpage 2021-01-25 22:27:00 +05:30
Anton Petrov 569992f25f
Merge pull request #1785 from John15321/more_general_instal_readme
more general installation readme instructions
2021-01-15 08:24:09 +03:00
Anton Petrov f53aa3e64e
Update README.md
corrected fish shell command
2021-01-15 08:02:25 +03:00
Jan Bronicki b61536e9ee more general installation readme instructions 2021-01-13 19:36:39 +01:00
Anton Petrov 5b90e62984
Rename miniconda3-py39_4.9.2 to miniconda3-3.9-4.9.2 2021-01-11 20:11:36 +03:00
Anton Petrov 5c5d647a06
Rename miniconda3-py38_4.9.2 to miniconda3-3.8-4.9.2 2021-01-11 20:11:04 +03:00
Anton Petrov 01e5eaecf3
Rename miniconda3-py38_4.8.3 to miniconda3-3.8-4.8.3 2021-01-11 20:09:58 +03:00
Anton Petrov b103763fa8
Rename miniconda3-py38_4.8.2 to miniconda3-3.8-4.8.2 2021-01-11 20:09:30 +03:00
Anton Petrov 553f9a4d26
Rename miniconda3-py37_4.9.2 to miniconda3-3.7-4.9.2 2021-01-11 20:08:31 +03:00
Anton Petrov d15b3674d8
Rename miniconda3-py37_4.8.3 to miniconda3-3.7-4.8.3 2021-01-11 20:08:11 +03:00
Anton Petrov 90b68684ac
Rename miniconda3-py37_4.8.2 to miniconda3-3.7-4.8.2 2021-01-11 20:07:52 +03:00
Anton Petrov a7f44c3955
Merge pull request #1782 from anton-petrov/anton-petrov-Miniforge3
Added Miniforge 3
2021-01-10 17:50:28 +03:00
Anton Petrov c5d2050254
Update miniforge3-4.9.2
OS X arm64 will be installed with Python 3.9 only. Other versions bundled with python 3.8. Miniforge does not have as wide a choice of python versions as miniconda.
The Python version is specific only to the base environment.
2021-01-10 09:37:42 +03:00
Yamashita, Yuu bb14f22522
Merge pull request #1718 from guiscaranse/master
Add pypy3.7
2021-01-10 13:08:58 +09:00
Yamashita, Yuu ccd80a5b80
Merge pull request #1726 from brechtm/patch-1
Add PyPy 3.7-7.3.2 (binary distribution)
2021-01-10 13:08:07 +09:00
Yamashita, Yuu 061afe00de
Merge pull request #1727 from brechtm/patch-2
Add PyPy 3.7-7.3.2 (source distribution)
2021-01-10 13:07:02 +09:00
Yamashita, Yuu 7be79f36de
Merge pull request #1778 from chrahunt/fix-anaconda3-2020.07
Use verify_py38 for anaconda3-2020.07
2021-01-10 12:59:56 +09:00
Yamashita, Yuu 852a50e9e0
Merge pull request #1780 from anton-petrov/anton-petrov-pypy3.7-7.3.3-src
Create pypy3.7-7.3.3
2021-01-10 12:58:59 +09:00
Yamashita, Yuu bd5825e277
Merge pull request #1781 from anton-petrov/anton-petrov-pypy3.7-7.3.3
Create pypy3.7-7.3.3-src
2021-01-10 12:57:39 +09:00
Yamashita, Yuu dc70546565
v1.2.22 (fixes #1760) 2021-01-10 12:52:22 +09:00
Anton Petrov 559cc59677
Create pypy3.7-7.3.3-src 2021-01-09 20:27:10 +03:00
Anton Petrov d589778b6b
Create pypy3.7-7.3.3 2021-01-09 20:24:20 +03:00
Anton Petrov ebd4d98227
Update miniforge3-4.9.2
Bump version to  4.9.2-5
2021-01-09 20:07:03 +03:00
Anton Petrov 9e03d1b62e
Added arm64 architecture support in python-build for macOS (#1775)
* Update python-build with arm64 architecture
2021-01-09 11:54:49 -05:00
Chris Hunt 48f742446a Use verify_py38 for anaconda3-2020.07
Per the release notes the installer and base environment (which I assume
we'd be verifying here, if anything) is Python 3.8.
2021-01-09 10:59:10 -05:00
Anton Petrov 82ef0424d6
Added anaconda3-2020.11 (#1774)
Added support for Anaconda 2020.11
2021-01-09 10:37:49 -05:00
Anton Petrov c8aff5f1b7
Added Miniforge3-4.9.2
Added Miniforge3-4.9.2 support for all platforms, including arm64 in macOS for Apple M1 SoC
2021-01-09 11:13:28 +03:00
Chris Hunt d511f7ba88
Merge pull request #1762 from gotche/Add-CPython-3.8.7
Add CPython 3.8.7
2021-01-08 20:28:20 -05:00
Kiko Marin fd003a8f06 Add miniconda3 4.8.2, 4.8.3, & 4.9.2 2020-12-22 20:59:58 -07:00
Jose Martin 973597d67d
Add CPython 3.8.7 2020-12-22 09:40:04 +01:00
Tim Felgentreff 2bf6111fa0
Add GraalPython 20.3 (#1736)
* Add GraalPython 20.3

* Update graalpython repository URLs
2020-12-16 11:32:58 -05:00
Almenon db939bbcfc
Put prerequisite for installation before install (#1750)
This prevents people from jumping the gun and trying to install a python version right after brew install.
2020-12-10 19:50:14 -05:00
Chris Barnes 23677c5124
Docker config for testing python-build (#1548)
* Dockerfile for testing python builds

* README: document docker usage

* Finish docker

dockerignore file, specify ephemeral nature of containers.

* Move docs for docker usage to python-build README
2020-12-10 19:49:13 -05:00
tillhainbach 9052491a05
Change order of LDFLAGS paths (#1754) 2020-12-10 19:46:40 -05:00
Kenji Saito 7307b185d2
Add the CPython 3.9.1 (#1752) 2020-12-10 19:42:26 -05:00
Ville Skyttä 5221c4aeea README: note optional bash extension build
Borrowed from rbenv.
2020-12-05 18:19:26 +02:00
Benjamin Howell 943015ebb2
Add LDFLAGS for zlib on macOS >= 1100 (#1711)
Add LDFLAGS for Xcode SDK zlib on macOS >= 1100 to resolve build issues on Big Sur.
2020-11-14 16:48:15 -05:00
Brecht Machiels 3c51754e83
Add PyPy 3.7-7.3.2 (source distribution) 2020-11-04 10:16:53 +01:00
Brecht Machiels 87c6fed697
Add PyPy 3.7-7.3.2 (binary distribution) 2020-11-04 10:02:50 +01:00
Paul Bransford 7c0c3cc22b
Merge pull request #1 from native-api/system_detect_py2
Detect Py2 presence as well
2020-11-03 18:40:54 -05:00
Guilherme Scaranse 0129a87bd3
Add pypy3.7 2020-10-17 20:38:10 -03:00
Josh Friend 806b30d6ce
v1.2.21 2020-10-08 20:59:02 -04:00
Christian Clauss a488feb9bf
Travis CI: Add Xcode 12 on macOS 10.15.5 2020-10-06 12:18:08 +02:00
wakemaster39 8ac91b4fd6
Add CPython 3.9.0 (#1706) 2020-10-05 14:19:24 -04:00
James Curtin 5d84eed869
Add support for PYTHON_BUILD_MIRROR_URL when checksums do not exist (#1673) 2020-10-03 14:30:46 -04:00
Chris Slater c9eab47752
Add Jython 2.7.2 (#1672) 2020-10-02 10:50:24 -04:00
Tim Felgentreff f44cb70d93
Add Graalpython 20.1.0 and 20.2.0 (#1594) 2020-10-02 10:40:23 -04:00
Ville Skyttä 501c97aeea
CONDUCT.md: update maintainers (#1625) 2020-10-01 21:36:24 -04:00
cornfeedhobo cadebd8e65
Search for plugins in PYENV_DIR and PYENV_ROOT (#1697) 2020-10-01 21:33:34 -04:00
M. Smits 71d2e4549e
Updated documentation pyenv init for fish shell comform to readme. (#1703) 2020-10-01 21:28:29 -04:00
Smiler Lee 592271b86f
Fix 'sed: RE error: illegal byte sequence' (#1670)
... which is caused by `realpath.dylib` containing illegal UTF-8 byte sequence, and `LC_CTYPE` won't take effect if `LC_ALL` happens to be set to something other than `C`.

This commit fixes issue pyenv/pyenv#1454.

Ref: https://stackoverflow.com/a/23584470
2020-10-01 20:16:55 -04:00
Anton Petrov a992892225
Add Anaconda3-2020.07 (#1684) 2020-10-01 20:15:42 -04:00
Maximilian Matthe 898fe1bb9b
add file for downloading and installing micropython-1.13 (#1704) 2020-10-01 20:13:05 -04:00
native-api 8bf79eb44c
Drop pypy3-dev (#1700)
PyPy has now only one development tip, `default`,
others are version-line-specific maintenance branches.
The py3k branch has been closed in 2016.
As such, a separate pypy3-dev entry no longer makes sense.
2020-09-30 11:53:37 -04:00
Jose A. Martin 1e3ee5e3aa
Add CPython 3.9.0rc2 (#1694) 2020-09-30 11:50:39 -04:00
Kenji Saito dd62b0d155
Add CPython 3.8.6 (#1698) 2020-09-25 21:46:12 -04:00
Ivan Pozdeev f77c2d7eab Detect Py2 presence as well 2020-09-21 18:53:09 +03:00
Ricardo N Feliciano d1ae4a1225
Add CPython v3.5.10 (#1690) 2020-09-15 11:07:22 -04:00
Yamashita, Yuu 1ec3c6f177
Merge pull request #1685 from miketrumpis/exclude-conda-coreutils
exclude bin files from coreutils
2020-08-28 10:54:51 +09:00
miketrumpis 34c0e60798 exclude bin files from coreutils 2020-08-27 11:06:33 -07:00
Kevin Rose 58c776a136
Add 3.6.12 and 3.7.9 versions (#1680) 2020-08-22 09:11:25 -04:00
Ashwin Vishnu dc4e24e681
Fix PyPy download links (#1682)
* Find working PyPy links in downloads.python.org
* Use portable-pypy links from softwareheritage.org
2020-08-20 15:58:38 -04:00
Seth Michael Larson 70635dade8
Add Python 3.9.0rc1 (#1676) 2020-08-14 15:05:35 -04:00
Josh Friend c52d26d8db
v1.2.20 2020-07-22 09:25:49 -04:00
Josh Friend 6e9a763537
Add CPython 3.9.0b5 2020-07-22 09:20:12 -04:00
Filip Chabik ea7b5c4aea
Fix has_tar_xz_support function on FreeBSD. (#1652) 2020-07-22 09:10:56 -04:00
Ryan Williams af122400ed
Make grep detection more robust (#1663) 2020-07-22 09:07:18 -04:00
Filip Chabik 26b8ba1677
Fix CPython 3.7.8 gzip checksum (#1651) 2020-07-22 09:02:21 -04:00
Jose A. Martin 41210bb16f
Add CPython 3.8.5 (#1667) 2020-07-22 08:57:54 -04:00
George Rawlinson bdfed51d72
Add CPython 3.8.4 (#1658) 2020-07-14 08:16:06 -04:00
Arcadiy Ivanov 0164e2bd59
CPython 3.9.0b4 (#1654) 2020-07-09 22:14:12 -04:00
Paul Bransford 4d762bca7b fix 'system' python to be present if 'python3' is on path but not 'python' 2020-07-07 18:39:52 -04:00
Josh Friend 366c980166
Add CPython 3.8.4rc1 2020-06-30 20:17:00 -04:00
Josh Friend 1bfb2d7607
Add CPython 3.7.8 2020-06-28 10:50:40 -04:00
Josh Friend d0b5ab6cde
Add CPython 3.6.11 2020-06-28 10:50:29 -04:00
Josh Friend ece59ca827
fix changelog typo 2020-06-17 10:08:39 -04:00
Josh Friend 86fbc6861d
v1.2.19 2020-06-17 09:59:49 -04:00
Yamashita, Yuu 2a3b286b71
Merge pull request #1629 from ghedsouza/patch-1
Fix homebrew link in README.
2020-06-11 08:44:07 +09:00
Edward D'Souza 86497f72c2
Fix homebrew link in README. 2020-06-10 19:31:58 -04:00
Michael Mlsna cf81e5a0c4
Fix stackless-3.7.5 python-build script (#1616)
Remove extra whitespace in quoted package_url#checksum string.

Prevent the following error:

  unexpected checksum length: 65 (e2562a8d235adc19be5451c170837f53ef916aec4cd5cd17d9e0ab1f1b875d3f )
  expected 0 (no checksum), 32 (MD5), or 64 (SHA2-256)
2020-05-21 12:45:26 -04:00
Glen Winters 31f1732fa2
docs(README): removed $ in front of CLI commands (#1620)
This makes it easier to copy and paste commands from the README.
2020-05-21 12:29:21 -04:00
Yamashita, Yuu 2c32a6be15
Merge pull request #1619 from pganssle/update_39
Update 3.9-dev and add 3.10-dev
2020-05-20 07:49:32 +09:00
Paul Ganssle cd2c26ef71
Add 3.10-dev 2020-05-19 11:26:47 -04:00
Paul Ganssle 14feb59960
Move 3.9-dev to the 3.9 tag
After the feature freeze, master now points to 3.10.
2020-05-19 11:21:59 -04:00
Jose A. Martin 5a96d9f2cd
Add CPython 3.8.3 (#1612) 2020-05-14 13:45:33 -04:00
Alexander Ronald Altman ae3a61d8dd
pypy 7.3.1 support (#1586) 2020-05-11 15:28:57 -04:00
Marshall Zobel 098227f26c
improve the flow of macOS installation instructions (#1599) 2020-05-01 14:07:31 -04:00
Claudio Jolowicz a56bcf1015
Update cpython 3.9.0 to latest alpha (3.9.0a6) (#1601) 2020-05-01 13:47:45 -04:00
Claudio Jolowicz be595ededa
Fix duplicate test in prefix.bats due to bad merge (#1603)
The test "prefix for system in /" is duplicated in test/prefix.bats.
Both tests are completely identical. This commit removes the
duplication.

It appears that the culprit is this merge from rbenv/master, from 2016:

  cf1beda362

With the current development version of bats, this leads to the
following error when running `make test`:

  Error:
  Duplicate test name(s) in file
  "/home/travis/build/pyenv/pyenv/test/prefix.bats":
  test_prefix_for_system_in_-2f

Note that the development version is what pyenv's Makefile uses. With
the latest release of bats, the duplication only leads to a warning:

  bats warning:
  duplicate test name(s) in /src/test/prefix.bats:
  test_prefix_for_system_in_-2f
2020-05-01 13:46:49 -04:00
Claudio Jolowicz e394cb898d
Fix CI by pinning bats to the latest release (1.2.0) (#1602)
* Pin bats to the latest release (1.2.0)

This fixes the following error when running `make test` with bats
installed from its master branch:

  /src/bats/libexec/bats-core/bats-exec-file:
  line 192:
  bats-exec-test:
  command not found

The Makefile currently runs bats from its master branch. This can lead
to errors when bats is broken between releases, as is currently the case
with bats at the following commit:

  bats-core/bats-core@b615ed8f75

Instead, use the latest release of bats, which is 1.2.0 (2020-04-25).

* Pin bats to latest release on Travis CI
2020-05-01 13:46:14 -04:00
David Baumgold 5e8719ab0e
Remove Ruby references from python-build (#1596)
* Remove Ruby references from python-build

* restore fix_directory_permissions
2020-04-27 16:25:17 -04:00
Bertrand Croq ae4d48932f
add stackless 3.7.5 (#1589) 2020-04-22 11:46:36 -04:00
Varun Agrawal a8f5fc13ee
Improved messages for uninstall (#1591) 2020-04-22 11:45:28 -04:00
Ricardo N Feliciano c3e29f08b3
Add CPython v2.7.18. (#1593) 2020-04-22 11:33:23 -04:00
George Hawkins 5b009e8767
Updated sha2 values for micropython-1.12 after tarball updates. (#1587)
See https://github.com/micropython/micropython/issues/5884
2020-04-13 11:55:11 -04:00
Marcel Campello e49794521e
Add anaconda3-2020.02 (#1584) 2020-04-12 11:34:08 -04:00
Swaroop Hegde 3e0f5e798c
Fixes missing double quote in README #1582 (#1583)
Bash example had a missing quote for setting PYENV_ROOT path
2020-04-10 13:00:13 -04:00
Alexander Popov 0f2d659732
Update instructions for installation in README (#1580)
Describe more clearly for different shells.
2020-04-09 09:03:55 -04:00
Josh Friend 18fe640d29
Also update checksums for 3.9.0a5 2020-04-02 15:32:45 -04:00
Josh Friend 1b6657e751
v1.2.18 2020-04-02 15:28:56 -04:00
Josh Friend 0255cfa8df
Update cpython 3.9.0 to latest alpha 2020-04-02 15:28:39 -04:00
Josh Friend 30a0234ccb
Remove old cpython RC version 2020-04-02 15:28:22 -04:00
Sudarshan Wadkar b1381d1d46
Fix python-build brew: command not found error (#1544)
This PR fixes (currently harmless) warning on macOS when homebrew is *not* installed.

- [ ] Test case (required?)

For example:

```sh
wadkar$ pyenv install 3.8.2
/Users/wadkar/.pyenv/plugins/python-build/bin/python-build: line 1541: brew: command not found
/Users/wadkar/.pyenv/plugins/python-build/bin/python-build: line 1541: brew: command not found
Installing openssl-1.1.0j...
Installed openssl-1.1.0j to /Users/wadkar/.pyenv/versions/3.8.2

Installing readline-8.0...
Installed readline-8.0 to /Users/wadkar/.pyenv/versions/3.8.2

Installing Python-3.8.2...
python-build: use zlib from xcode sdk
Installed Python-3.8.2 to /Users/wadkar/.pyenv/versions/3.8.2
```
2020-04-02 15:25:54 -04:00
Edwin Shin 2a0d576681
Update README.md (#1555)
Update the bats link to https://github.com/bats-core/bats-core (which is what pyenv is actually using on [Travis](https://github.com/pyenv/pyenv/blob/master/.travis.yml#L35))
2020-04-02 15:24:48 -04:00
Sean Gies 8f82fc63e2
Update download URLs for old OpenSSL releases (#1578)
https://www.openssl.org/source/openssl-1.0.2*
  => https://www.openssl.org/source/old/1.0.2/openssl-1.0.2*

https://www.openssl.org/source/openssl-1.1.0*
  => https://www.openssl.org/source/old/1.1.0/openssl-1.1.0*

Co-authored-by: Sean Gies <seangies@apple.com>
2020-04-02 15:07:08 -04:00
Brian Dowling a8ca63fcc0
Update help docs to clarify multiple version(s) are allowed (#1197)
* Update help docs to clarify multiple version(s) are allowed

* Tweek version(s) help description
2020-03-19 17:35:46 -04:00
Edwin Shin 89786b909f
pyenv-version-file-read: use POSIX character sets (#1554)
Fixes #623
2020-03-13 09:08:18 -04:00
Josh Friend 3005c46643
v1.2.17 2020-03-13 08:38:35 -04:00
Joshua Sleeper a7afd20bfc
Add CPython 3.7.7 (#1553) 2020-03-12 15:18:57 -04:00
Yamashita, Yuu df9fa1dc30
Merge pull request #1361 from clbarnes/auto_miniconda
Update miniconda builds
2020-03-10 10:08:11 +09:00
Chris Barnes 81e797be12 Miniconda script review comments
README, better docs + logging
2020-03-09 10:47:26 +00:00
Chris Barnes 0d6cfcc1bd python-build: Run add_miniconda script 2020-03-05 06:09:53 -05:00
Chris Barnes d1b7bd47a3 python-build: update 4.7.10 to use py37 2020-03-05 06:09:53 -05:00
Chris Barnes a9686fcae0 python-build: Use python 3.7 for miniconda >= 4.7 2020-03-05 06:09:53 -05:00
Chris Barnes c0ebcd7228 Run add_miniconda script 2020-03-05 06:09:53 -05:00
Chris Barnes 1fb6e795b6 Script for new miniconda builds
Scrapes available miniconda builds from anaconda repo
2020-03-05 06:09:53 -05:00
Kareem Francis 84f3f77a39
Update README: highlight brew post-install steps (#1543)
I skimmed past the requires post-installation steps for Homebrew when walking though the README. 
Anecdotally, other devs noted the same issue.
2020-02-28 18:52:41 -05:00
Adam Hitchcock 174b7e72a1
Create micropython-1.12 (#1542) 2020-02-26 23:02:06 -05:00
Josh Friend 7cbaff3803
Add CPython 3.9.0a4 2020-02-26 23:00:55 -05:00
Josh Friend a0a1ae89ab
Add CPython 3.8.2 2020-02-25 21:02:57 -05:00
Ivan Pozdeev df671621e9 Mention log file if an error happened before building, too 2020-02-19 17:58:50 +03:00
adrian-the-git 7097f8204e Remove duplicate help message (#1525)
The pyenv help listing offered the "commands" command twice.
2020-01-22 18:12:29 -05:00
Phil Fernandez 1487135415 fixes sed illegal byte sequence error (#1521) 2020-01-14 13:07:05 -05:00
Christian Clauss a72ea0abca Travis CI: Upgrade to the latest Xcode images (#1519) 2020-01-13 12:39:25 -05:00
Christian Clauss 36fc10fbfd Travis CI: xcode11.2 (#1434)
https://docs.travis-ci.com/user/reference/osx/#macos-version
2020-01-13 05:11:56 -05:00
Josh Friend 4500a33c73
Modify zshrc instead of zshenv
https://github.com/pyenv/pyenv/issues/1400#issuecomment-551371058

Closes #846, #1400, #1447, #1449
2020-01-10 12:59:46 -05:00
Josh Friend ce0be04ad4
v1.2.16 2020-01-06 08:06:57 -05:00
Yamashita, Yuu 4e0ba2f47d
Merge pull request #1502 from lazka/pypy-7.3.0
Add PyPy 7.3.0
2019-12-27 13:34:19 +09:00
Christoph Reiter 20a1f0cd7a Add PyPy 7.3.0
The official pypy builds should now be portable on linux.
Also add aarch64 builds.
2019-12-26 10:15:26 +01:00
Jose A. Martin ac246e160f Add CPython 3.6.10 (#1499) 2019-12-20 13:26:14 -05:00
Jose A. Martin 25c9195b90 Add CPython 3.7.6 (#1498) 2019-12-20 13:25:57 -05:00
Jose A. Martin 318f85162e Add CPython 3.8.1 (#1497) 2019-12-19 08:21:26 -05:00
Yamashita, Yuu c3b17c4bbb
Merge pull request #1486 from timgates42/bugfix/typo_above
Fix simple typo: abovementioned -> above
2019-12-17 17:48:39 +09:00
Tim Gates 32663fb8a4
Fix simple typo: abovementioned -> above
Closes #1485
2019-12-17 17:29:37 +11:00
Yamashita, Yuu 089b828b0f
Merge pull request #1471 from saahilh/readme-fixes
Grammatical corrections
2019-12-02 10:35:20 +09:00
Saahil Hamayun eacde87acf Grammatical corrections 2019-12-01 20:00:17 -05:00
Josh Friend 22c0202231
Exclude reset from conda shims
Closes #1459
2019-11-14 15:40:22 -05:00
Joe Siewert 49bf595266 Add CPython 3.5.9 (#1448) 2019-11-04 09:23:30 -05:00
Josh Friend b5f69fe58a
v1.2.15 2019-10-31 16:06:42 -04:00
Joachim Brandon LeBlanc 9c7ec0ce0a Update Python 3.5.8 xz checksum (#1442)
```
checksum mismatch: Python-3.5.8.tar.xz (file is corrupt)
expected 1bb1319bcd05d95c4d9752c7f6378c5378b8f467fb9045e07023e94b28b2ff41, got 55a345c78ee3afbc2e60678442aad7bcc384ddea5bb95f8d66edc4868d4847d4
```
2019-10-30 14:37:45 -04:00
Joe Siewert d389885466 Add CPython 3.5.8 and remove 3.5.8rc1 (#1441) 2019-10-29 15:36:06 -04:00
Yamashita, Yuu 0e7cfc3b3d
Merge pull request #1433 from joesiewert/python-2.7.17
Add CPython 2.7.17
2019-10-21 09:09:52 +09:00
Joe Siewert 69377c65de Add CPython 2.7.17 2019-10-20 11:50:09 -06:00
Phillip Marshall ddc56ebe3a Add PyPy 7.2.0 (#1418) 2019-10-18 13:41:49 -04:00
Anton Petrov 68a77df0fd Add anaconda3-2019.10 (#1427) 2019-10-16 12:32:23 -04:00
wukuan405 fcf539ecef change help message from hard coding to dynamic (#1421)
## before
```Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
```

## after
```
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   --version   Display the version of pyenv
   commands    List all available pyenv commands
   exec        Run an executable with the selected Python version
   global      Set or show the global Python version
   help        Display help for a command
   hooks       List hook scripts for a given pyenv command
   init        Configure the shell environment for pyenv
   install     Install a Python version using python-build
   local       Set or show the local application-specific Python version
   prefix      Display prefix for a Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   root        Display the root directory where versions and shims are kept
   shell       Set or show the shell-specific Python version
   shims       List existing pyenv shims
   uninstall   Uninstall a specific Python version
   update      update pyenv and plugins
   version     Show the current Python version and its origin
   version-file   Detect the file that sets the current pyenv version
   version-name   Show the current Python version
   version-origin   Explain how the current Python version is set
   versions    List all Python versions available to pyenv
   whence      List all Python versions that contain the given executable
   which       Display the full path to an executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme
```
2019-10-16 11:47:11 -04:00
Yamashita, Yuu 8bf5d9d303
Merge pull request #1423 from cjolowicz/cpython-3.7.5
Add CPython 3.7.5
2019-10-16 20:48:57 +09:00
Claudio Jolowicz ebfba473cf
Use CPython 3.7.5 on travis-ci 2019-10-16 12:36:04 +02:00
Claudio Jolowicz 9aa08ed763
Add CPython 3.7.5 2019-10-16 12:32:45 +02:00
Josh Friend d6d6bc8bb0
v1.2.14 2019-10-15 10:15:56 -04:00
Josh Friend a0a5822785
Remove 3.8.0 betas/rcs 2019-10-15 10:10:59 -04:00
Jeremiah Boby 3cfe81a3f8 Add Python 3.8.0 (stable release) (#1416)
Use stable 3.8.0 release for PYTHON_BUILD_VERSION
2019-10-15 10:08:32 -04:00
Yamashita, Yuu f3d008fddd
Merge pull request #1410 from felixonmars/patch-1
Correct a typo in python-build
2019-10-09 09:10:18 +09:00
Felix Yan 4039709dfe
Correct a typo in python-build 2019-10-09 06:12:27 +08:00
Josh Friend 38de38e3d5
Add CPython 3.5.8rc1 (#1406) 2019-10-02 08:44:00 -04:00
Josh Friend 908d57d677
Add CPython 3.7.5rc1 (#1405) 2019-10-02 01:16:15 -04:00
Anton Petrov 9fc7ef3a17 Create 3.8.0rc1 (#1404)
Added Python version 3.8.0 Release Candidate 1
2019-10-02 01:11:03 -04:00
Daniel Hahler ecd67c8223
pyenv-exec: no -a with exec to keep $PATH with system version (#1169)
Using `exec -a` caused Python to use $PATH to look up the full program name (for
`sys.executable`), which 314937d then tried to fix by changing $PATH
also for the system version.
This is not necessary anymore when not using the short name with `exec`.

This was rejected upstream
(https://github.com/rbenv/rbenv/pull/1089#issuecomment-394531896), since
it is not a problem with Ruby apparently.

Uses $PYENV_ROOT to check if system version is used.

Fixes https://github.com/pyenv/pyenv/issues/98.
Fixes https://github.com/pyenv/pyenv/issues/789.
2019-09-29 00:03:44 +02:00
Daniel Hahler 31b7e1c390
tests: remove "supports python -S <cmd>" (#1168)
This was imported semi-automatically in 0965577, but `ruby -S` is
different from `python -S`.

`ruby -S`: look for the script using PATH environment variable
`python -S`: don't imply 'import site' on initialization
2019-09-24 04:59:49 +02:00
Yamashita, Yuu 8a56fe641f
Merge pull request #1397 from grahamannett/tcltk-fix
working with tcl-tk in PYTHON_CONFIGURE_OPTS
2019-09-19 17:10:42 +09:00
graham b7f4ace335 working with tcl-tk in PYTHON_CONFIGURE_OPTS 2019-09-18 18:04:12 -07:00
Yamashita, Yuu a7cba17fb7
Merge pull request #1396 from cdwilson/fix-micropython-build
Fix path to Unix port in micropython build
2019-09-19 09:24:17 +09:00
Christopher Wilson a71e590a44 Fix path to Unix port in micropython build 2019-09-18 10:18:48 -07:00
Yamashita, Yuu 3798638a6a
Merge pull request #1395 from cdwilson/add-micropython-1.11
Add micropython-1.11
2019-09-18 15:07:40 +09:00
Yamashita, Yuu e29d2b666b
Merge pull request #1394 from cdwilson/fix-micropython-build
Build mpy-cross dependency for micropython builds
2019-09-18 15:06:51 +09:00
Christopher Wilson c9da22d559 Add micropython-1.11 2019-09-17 21:44:46 -07:00
Christopher Wilson 8bebdb7f1a Build mpy-cross dependency for micropython builds 2019-09-17 21:39:04 -07:00
Yamashita, Yuu 6563b64d0b
Merge pull request #1390 from Juanlu001/add-cpython-380b4
Add CPython 3.8.0b4
2019-08-31 17:42:33 +09:00
Juan Luis Cano Rodríguez eefdc57562 Add CPython 3.8.0b4
Fix #1389.
2019-08-31 09:57:46 +02:00
Yamashita, Yuu 0aeeb6fdcb
Merge pull request #1382 from kenshohara/master
Support Anaconda-2019.07
2019-08-21 16:32:38 +09:00
kenshohara b5547afbc8 Support Anaconda-2019.07 2019-08-21 14:57:25 +09:00
Josh Friend 17f44b7cd6
v1.2.13 2019-07-09 08:56:34 -04:00
Joe Siewert 10bf9d22c6 Add CPython 3.7.4 (#1370) 2019-07-08 22:00:12 -04:00
Yamashita, Yuu 525dac36f6
Merge pull request #1368 from joesiewert/python-3.6.9
Add CPython 3.6.9
2019-07-07 16:29:24 +09:00
Joe Siewert d24bb6eb7e Add CPython 3.6.9 2019-07-06 18:48:56 -06:00
Yamashita, Yuu eb68ec9488
Merge pull request #1358 from jonathanbranam/patch-1
Remove infocmp from shims
2019-06-21 12:42:40 +09:00
Jonathan Branam aed0c91d61
Remove infocmp from shims
infocmp is a system utility that returns information about the user's terminal. When it is shimmed it can cause problems for various programs that use it to determine terminal settings. In particular, the library used by the Scala shell reads it and problems can occur where various control keys don't work (e.g. backspace does not work).
2019-06-20 22:04:20 -04:00
Josh Friend a10c787f9b
v1.2.12 2019-06-11 10:18:18 -04:00
Mikhail Bulash 4157973301 Find zlib from Xcode or brew on Mojave (#1353)
fixes #1219, #1333
2019-06-11 10:12:00 -04:00
Josh Friend 2350e57b00
Add CPython 3.8.0b1 2019-06-04 19:39:02 -04:00
Maxime Brunet 2b174ab69f List versions starting with a dot 2019-06-02 16:16:52 -04:00
Josh Friend 7dd50144d5
Link windows users to pyenv-win
see #62
2019-04-28 20:21:47 -04:00
Christopher Hunt 6103468023
Merge pull request #1337 from nvllsvm/1336
Revert "Merge pull request #1153 from cmcginty/remove-sbang"
2019-04-23 10:39:24 -04:00
Andrew Rabert 0f596d2504 Revert "Merge pull request #1153 from cmcginty/remove-sbang"
This reverts commit 070e1c859f, reversing
changes made to 3faeda67bb.
2019-04-23 10:23:33 -04:00
Christopher Hunt 070e1c859f
Merge pull request #1153 from cmcginty/remove-sbang
Remove shebang lines from scripts for performance
2019-04-22 20:13:19 -04:00
Christopher Hunt 3faeda67bb
Merge pull request #1216 from blueyed/abs_dirname
Fix abs_dirname for relative symlinks in same directory
2019-04-18 16:34:55 -04:00
Yamashita, Yuu ec220c4476
Merge pull request #1335 from lazka/pypy-7.1.1
Add PyPy 7.1.1
2019-04-17 16:57:04 +09:00
Christoph Reiter 01f596e33c Add PyPy 7.1.1
https://pypy.readthedocs.io/en/latest/release-v7.1.1.html
2019-04-17 09:04:56 +02:00
Yamashita, Yuu abd4469920 v1.2.11 2019-04-09 00:50:15 +00:00
Yamashita, Yuu 2891972d85
Merge pull request #1329 from pyenv/yy-mac-readline-8.0
Use GNU Readline 8.0
2019-04-09 09:46:38 +09:00
Yamashita, Yuu 3895488c53
Merge pull request #1327 from pyenv/yy-import-ruby-build-20190401
Import ruby-build 20190401
2019-04-09 00:37:32 +09:00
Yamashita, Yuu 8523111193 Clean up test prefix at the beginning of test-build [ci skip] 2019-04-09 00:07:13 +09:00
Yamashita, Yuu 02a4b33b62 Run python-build directly from make to avoid job cancellation after 10 min no output on travis-ci.org 2019-04-08 23:54:12 +09:00
Yamashita, Yuu 70e173381e Use GNU Readline 8.0 2019-04-08 23:15:31 +09:00
Yamashita, Yuu e7ed7fa27e Fix tests 2019-04-08 23:09:29 +09:00
Yamashita, Yuu b551fed8d5 Imported changes from rbenv/ruby-build 20190401 2019-04-08 23:09:29 +09:00
Yamashita, Yuu 6efe9d1f40
Merge pull request #1328 from pyenv/yy-prefer-openssl11
Prefer OpenSSL 1.1 only for specific python versions
2019-04-08 23:09:06 +09:00
Yamashita, Yuu 612dd5e2e8 Upgrade the _default_ OpenSSL version from 1.0.2k to 1.1.0j, only against versions w/ OpenSSL 1.1 support backported
See also:
* https://bugs.python.org/issue32947
2019-04-08 20:39:48 +09:00
Yamashita, Yuu 3bb3de7529 Set PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 to 3.7 and 3.8 definitions 2019-04-08 19:20:35 +09:00
Yamashita, Yuu 79481d686f Fix typos 2019-04-08 08:31:27 +00:00
Yamashita, Yuu 6d279501b5 Add extra code to configure with --with-openssl which is supported by CPython 3.7+ 2019-04-08 08:21:36 +00:00
Yamashita, Yuu 0708c6c968 Add prefer_openssl111 to definitions that (would) support OpenSSL 1.1 (#1327) 2019-04-08 11:25:01 +09:00
Yamashita, Yuu 62395cabb5 Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) 2019-04-08 11:18:31 +09:00
Yamashita, Yuu 78cecd2060
Merge pull request #1324 from binbjz/master
Support Anaconda 2019.03
2019-04-08 09:29:50 +09:00
binbjz b531e0f420 Support Anaconda 2019.03 2019-04-06 19:59:39 +08:00
Ville Skyttä e405c7898c Add CPython 3.4.10 (#1322) 2019-04-05 13:29:17 -04:00
Yamashita, Yuu 3176c8b71c
Merge pull request #1321 from alexdo/bugfix/fix-2.4-name-collision
Fix 2.4 builds: redeclaration of posix_close
2019-04-05 11:57:06 +09:00
Alexander Dormann 40a88f050b fix posix_close name collision in 2.4 builds
Ported from https://bugs.python.org/issue20594
2019-04-04 20:49:18 +02:00
Yamashita, Yuu 9a98bfae48 v1.2.10 2019-04-04 01:18:57 +00:00
Yamashita, Yuu b610909314
Merge pull request #1302 from ThomasWaldmann/prefer-openssl-1.1
macOS: prefer homebrew openssl 1.1.x over 1.0.x, see #839
2019-04-01 10:53:26 +09:00
Josh Friend 333946b3f8
Update checksums for pypy3.6-7.1.0 to match new tarballs
closes #1316
2019-03-28 14:04:55 -04:00
Josh Friend 64c0828562
Fix checksum error for pypy3.6-7.1.0-linux64
closes #1314
2019-03-27 15:21:15 -04:00
Alysson Oliveira ee75a75385 Run autoreconf intead autoconf 2019-03-26 23:45:36 -03:00
Yamashita, Yuu 377f6a13fe
Merge pull request #1310 from lazka/pypy-7.1.0-portable
Add pypy 7.1.0 portable builds
2019-03-27 10:12:35 +09:00
Christoph Reiter 15543ba68b Add pypy 7.1.0 portable builds 2019-03-26 21:26:15 +01:00
Yamashita, Yuu dae256f3e0
Merge pull request #1309 from chrahunt/fix-versions
Add copy_python_gdb for 3.7.3 and move patches.
2019-03-26 12:42:46 +09:00
Chris Hunt 9305f1baf4 Add copy_python_gdb for 3.7.3 and move patches.
Fixes issue introduced in #1283 and #1308.
2019-03-25 23:26:18 -04:00
Yamashita, Yuu a9052c68e7
Merge pull request #1308 from dannyvink/add-python-3.7.3
Add support for Python 3.7.3
2019-03-26 10:59:09 +09:00
Danny Vink e1d83d1212 Add support for Python 3.7.3 2019-03-25 17:16:31 -07:00
Josh Friend aefff77b4b
Add pypy 7.1.0 2019-03-24 21:20:54 -04:00
Yamashita, Yuu a899d2507c
Merge pull request #1305 from creativecoderr/patch-1
Minor formatting changes
2019-03-22 19:47:46 +09:00
Yamashita, Yuu 53dc6b6891
Merge pull request #1306 from zed/add-cpython-3.5.7
Add cpython 3.5.7
2019-03-22 17:34:31 +09:00
zed 5f46979079 add newline at the end of file 2019-03-22 11:06:59 +03:00
zed 5e9ef18002 Add CPython 3.5.7 2019-03-22 10:53:13 +03:00
Ratul R 6fa07b32e5
Minor formatting changes
Adding a list to the notes of point #2 in Basic GitHub Checkout steps.
2019-03-22 11:16:38 +05:30
Thomas Waldmann dda597efb3 macOS: prefer homebrew openssl 1.1.x over 1.0.x, see #839
previously, it was not possibly to compile a python with homebrew
openssl 1.1 because the code always queried "openssl" and ignored
"openssl@1.1".

now, if 1.1 is installed, it is used to compile python and only
if it is not, 1.0 is checked and used.
2019-03-16 21:17:43 +01:00
Daniel Hahler 3768f1d7db Revert "also remove shebang with libexec/pyenv"
This reverts commit d352b4810d.
2019-03-07 22:38:15 +01:00
Daniel Hahler d352b4810d also remove shebang with libexec/pyenv 2019-03-07 22:35:38 +01:00
Casey McGinty 83e5459cfb Remove shebang lines from scripts for performance
All scripts in libexec/ (excluding pyenv) are called through pyenv,
therefore the shebang lines are not necessary. On some systems this
provides a measurable increase in performance of the shell prompt.

Related to pyenv/pyenv-virtualenv#259
2019-03-07 22:15:14 +01:00
Les Aker 7d02b2463b Add CPython 2.7.16 (#1296) 2019-03-04 15:58:26 -05:00
Christopher Hunt abc28d3a53
Merge pull request #1289 from chrahunt/feature/add-python-gdb
Install python-gdb.py.
2019-03-03 23:47:24 -05:00
Christopher Hunt 9baa6efeda
Merge pull request #1291 from chrahunt/feature/add-travis-checks
Add CI builds that actually build Python.
2019-02-22 20:14:38 -05:00
Christopher Hunt fe04483773
Merge pull request #1217 from remilapeyre/master
Force y, Y, yes or YES to confirm installation
2019-02-21 20:31:20 -05:00
Chris Hunt 8ed7912759 Add CI builds that actually build Python.
For now this just builds the latest CPython, but it can be
extended to include other versions.

Skip with `[skip build]` in commit message.
2019-02-21 20:02:40 -05:00
Chris Hunt 3018241aee Install python-gdb.py.
The script in `Tools/gdb/libpython.py` has helper functions for
debugging Python processes under gdb. When installed to `{exe}-gdb.py`
it will automatically be loaded by gdb assuming it is in the safe path.

gdb resolves all symlinks, so having the single script is sufficient
regardless of how Python is invoked.

Since it is usually only included as part of a dbg/dev package, this
file is intentionally excluded from install by the CPython build
scripts. Like the packaging with EPEL/Debian, we opt to manually copy
it after the build/install.

To ensure this file gets picked up it is enough for users to put this in
their `~/.gdbinit`:

```
add-auto-load-safe-path ~/.pyenv
```

Fixes #1190.
2019-02-18 11:16:37 -05:00
Christopher Hunt 99092d7fd1
Merge pull request #1285 from scop/micropython-xz
Use xz compressed micropython 1.9.* tarballs
2019-02-18 09:12:07 -05:00
Christopher Hunt 7fa3a3f15c
Merge pull request #1284 from scop/micropython-1.10
Add micropython 1.10
2019-02-18 09:10:44 -05:00
Yamashita, Yuu eb4c4c526a
Merge pull request #1287 from paugier/enh/add-pypy3.6-v7.0.0
Add pypy3.6-7.0.0
2019-02-18 22:04:36 +09:00
paugier 15d85a828c Add pypy3.6-7.0.0 2019-02-18 13:57:23 +01:00
Ville Skyttä 4de590433b Use xz compressed micropython 1.9.* tarballs if we have tar.xz support 2019-02-17 18:10:55 +02:00
Ville Skyttä bd4e24cc30 Add micropython 1.10 2019-02-17 18:09:11 +02:00
Christopher Hunt ddb335c197
Merge pull request #1283 from chrahunt/feature/explicit-versions
Use explicit versions for CPython identifiers.
2019-02-15 23:51:11 -05:00
Chris Hunt 1373ce433c Use explicit versions for CPython identifiers.
Fixes #1282.
2019-02-15 23:00:08 -05:00
Yamashita, Yuu 6b0418226f
Merge pull request #1278 from lazka/pypy-7.0.0
Add pypy 7.0.0
2019-02-13 22:55:13 +09:00
Christoph Reiter 9479db96fe Add pypy 7.0.0 2019-02-13 14:15:32 +01:00
Yamashita, Yuu 6309aaf295
Merge pull request #1266 from bicycle1885/patch-1
Add a note for fish shell users (close #1203)
2019-01-11 17:33:25 +09:00
Kenta Sato 336cc885cf
Add a note for fish shell users (close #1203) 2019-01-11 17:21:17 +09:00
Josh Friend 3f39e8a944
v1.2.9 2019-01-10 08:19:47 -05:00
Yamashita, Yuu 337b92d95d
Merge pull request #1263 from jwilk-forks/python3.3.7-sslv3
Add OPENSSL_NO_SSL3 patch for 3.3.7
2019-01-08 12:11:29 +09:00
Jakub Wilk 781db9bb8c Add OPENSSL_NO_SSL3 patch for 3.3.7 2019-01-07 18:33:40 +01:00
Yamashita, Yuu 775a4b6379
Merge pull request #1260 from adithyabsk/ironpython_dev
Update ironpython development install location
2018-12-28 09:11:03 +09:00
Adithya Balaji 22b7de95d6 Update ironpython development install location 2018-12-27 17:59:43 -05:00
Yamashita, Yuu 0e3e812aa8
Merge pull request #1259 from anton-petrov/add-anaconda-2018.12
Added new Anaconda 2018.12 installers.
2018-12-27 14:54:34 +09:00
Anton Petrov 962fdd974d Added new Anaconda 2018.12 installers.
new file:   plugins/python-build/share/python-build/anaconda2-2018.12
new file:   plugins/python-build/share/python-build/anaconda3-2018.12

Close #123
2018-12-27 08:41:39 +03:00
Yamashita, Yuu f07184b34c
Merge pull request #1256 from ipfans/master
Add CPython 3.7.2 and CPython 3.6.8
2018-12-25 08:24:52 +09:00
ipfans b246ba437f
CPython 3.6.8 2018-12-24 23:23:52 +08:00
ipfans bdd58ff278
CPython 3.7.2 2018-12-24 23:22:35 +08:00
Yamashita, Yuu ec9fb5492b
Merge pull request #1248 from neersighted/ls-definitions
Use ls instead of find to list definitions
2018-11-26 09:16:47 +09:00
Bjorn Neergaard cc35fbd0b8 Use ls instead of find to list definitions 2018-11-25 12:31:17 -07:00
Yamashita, Yuu dd523b706d
Merge pull request #1246 from binbjz/master
python-build: add anaconda[23]-5.3.1
2018-11-24 22:25:37 +09:00
ZhaoBin 0c69fc9501 update sha256 2018-11-24 20:24:08 +08:00
ZhaoBin e302f0d443 add anaconda[23]-5.3.1 2018-11-24 19:16:39 +08:00
Josh Friend 80414b1b5b
v1.2.8 2018-10-30 09:42:16 -04:00
Yamashita, Yuu e389c8d906
Merge pull request #1234 from alanyee/master
Update README.md
2018-10-30 14:49:54 +09:00
Alan Yee cd7c8af487
Update README.md
Replace OS X with macOS
2018-10-29 22:02:21 -07:00
Josh Friend 835707da22
CPython 3.6.7 and 3.7.1 2018-10-20 17:38:55 -04:00
Yamashita, Yuu ee7b974160
Merge pull request #1228 from purificant/3.7.1rc2_url
amend 3.7.1rc2 url
2018-10-14 20:46:12 +09:00
purificant 62213bbfff amend 3.7.1rc2 url 2018-10-14 11:35:26 +01:00
Josh Friend 75ca7613ad
CPython 3.6.7rc2 and 3.7.1rc2 2018-10-13 18:28:04 -04:00
Josh Friend 21c75c19e3
Add CPython 3.7.1rc1 2018-10-02 09:11:39 -04:00
Josh Friend 99346da8eb
Add CPython 3.6.7rc1 2018-10-02 09:11:24 -04:00
Yamashita, Yuu 1a276f2d78
Merge pull request #1220 from shoichiaizawa/add-anaconda-5.3.0
python-build: add anaconda[23]-5.3.0
2018-10-02 09:25:43 +09:00
Shoichi Aizawa 650d9bd652 python-build: add anaconda[23]-5.3.0 2018-10-01 09:32:28 +09:00
Rémi Lapeyre 9be58802c1 Force y, Y, yes or YES to confirm installation 2018-09-19 16:18:27 +02:00
Daniel Hahler 4f21d9a2ea Fix abs_dirname for relative symlinks in same directory
Ref (abs_dirname in bats): https://github.com/sstephenson/bats/pull/224
Ref: https://github.com/rbenv/rbenv/pull/868

Fixes https://github.com/pyenv/pyenv/issues/580
2018-09-19 10:18:07 +02:00
Yamashita, Yuu 5603eb51c9
Merge pull request #1209 from altendky/patch-1
Add readme step for installing build deps per wiki
2018-08-28 23:32:50 +09:00
Kyle Altendorf c6e3f95f67
Add readme step for installing build deps per wiki 2018-08-28 10:25:51 -04:00
rhymes 7190216884 #1199 introduced Python 3.5.6 not 3.7 (#1200) 2018-08-12 08:33:02 -04:00
Josh Friend b7eea9003b
v1.2.7 2018-08-11 14:41:04 -04:00
Josh Friend 1e96b2c321
Add CPython 3.5.6
Closes #1199
2018-08-11 14:40:09 -04:00
Josh Friend 0bdae9fd9d
Add CPython 3.4.9 2018-08-11 14:37:41 -04:00
Josh Friend 9c7bdbc5e2
Remove old RC 2018-08-11 14:37:25 -04:00
Yamashita, Yuu 97f244fbb5 v1.2.6 2018-07-18 06:39:28 +00:00
Yamashita, Yuu c057a80c82
Merge pull request #1180 from LWisteria/wget_version_check
Check wget version iff wget is going to be used (again)
2018-07-03 09:35:28 +09:00
LWisteria 0e3f04c429 Check wget version iff wget is going to be used
reapplying 4ebba7cd5f , which is (accidently?) reverted by fc90785f75
2018-06-29 14:55:32 +09:00
Yamashita, Yuu 3de7c5f298
Merge pull request #1178 from rhymes/python366
Added CPython 3.6.6
2018-06-28 17:52:26 +09:00
rhymes 996a2d12a5 Added CPython 3.6.6 2018-06-28 10:04:27 +02:00
Josh Friend 4812e0387b
v1.2.5 2018-06-27 19:21:18 -04:00
Josh Friend 334e413722
Remove 3.5.5rc1 2018-06-27 19:16:40 -04:00
Josh Friend 2f1fb3a6e1
Remove 3.7.0rc1
fixes #1177
2018-06-27 19:15:15 -04:00
Pascal van Kooten d48a954c6c Add CPython 3.7.0 2018-06-27 19:03:52 -04:00
Robin Message d08c9cfb36 Language tweaks to PULL_REQUEST_TEMPLATE.md (#1173) 2018-06-21 10:11:00 -04:00
Josh Friend 43235c2716
CPython 3.7.0rc1 and 3.6.6rc1 2018-06-12 23:06:54 -04:00
Yamashita, Yuu cbf3983ac5
Merge pull request #1166 from tsahara/openbsd-does-not-have-seq
seq(1) is not available on OpenBSD.
2018-06-06 09:42:26 +09:00
Tomoyuki Sahara 9c1d677d23 seq(1) is not available on OpenBSD. 2018-06-01 15:11:01 +09:00
Yamashita, Yuu eee72eecdf
Merge pull request #1165 from shoichiaizawa/add-anaconda-5.2.0
python-build: add anaconda[23]-5.2.0
2018-06-01 10:52:08 +09:00
Shoichi Aizawa 09494e3943 python-build: add anaconda[23]-5.2.0 2018-06-01 00:57:28 +09:00
Josh Friend 8eeddaebc1
CPython 3.7.0b5 2018-05-31 08:34:08 -04:00
Ville Skyttä dad0fc708a Add micropython 1.9.4 (#1160) 2018-05-20 16:24:11 -04:00
Josh Friend a2d51328ee
CPython 3.7.0b4 2018-05-07 08:25:52 -04:00
Josh Friend 3faba7d47c
v1.2.4 2018-05-01 13:51:00 -04:00
Josh Friend 3f8ea04cc2
Add pypy-portable 6.0.0
closes #1154
2018-05-01 13:45:59 -04:00
Josh Friend f7a3ffd2d8
CPython 2.7.15 2018-05-01 01:14:42 -04:00
Yamashita, Yuu df0437f111
Merge pull request #1145 from pyenv/rehash-wait
Wait rehash until lock acquisition
2018-05-01 09:37:03 +09:00
Yamashita, Yuu d6ba379e08
Merge pull request #1146 from pyenv/http-client-based-on-envvar
Allow overriding HTTP client type based on environment variable
2018-05-01 09:34:24 +09:00
Josh Friend 47436606b5
Add pypy 6.0.0 2018-04-27 18:16:14 -04:00
Yamashita, Yuu b3ba0fd7e3 Refactor test code of python-build. Use curl during tests by default 2018-04-26 02:06:57 +00:00
Yamashita, Yuu 750c63c643
Merge pull request #1151 from pyenv/ruby-build-20180424
Import latest changes from https://github.com/rbenv/ruby-build as of v20180424
2018-04-26 10:31:38 +09:00
Yamashita, Yuu c8ad3385c7 Import latest changes from https://github.com/rbenv/ruby-build as of v20180424 2018-04-26 00:56:08 +00:00
Yamashita, Yuu 11067155f4
Merge pull request #1147 from zbentley/fix_bundle_loader_for_new_osx
Address #273 via a patch from python#21811
2018-04-25 10:11:54 +09:00
Zac Bentley 18df84f535 Address #273 via a patch from python#21811 2018-04-24 13:14:18 -04:00
Yamashita, Yuu 098fb9f07a Rewrite python-build tests with using PYTHON_BUILD_HTTP_CLIENT 2018-04-24 05:22:32 +00:00
Yamashita, Yuu fc90785f75 Allow overriding HTTP client type based on environment variable PYTHON_BUILD_HTTP_CLIENT (#1126) 2018-04-24 02:33:43 +00:00
Yamashita, Yuu 1ec57a0c68 Add basic test for rehash wait 2018-04-24 00:42:47 +00:00
Yamashita, Yuu 7973e59473 Fix rehash test to give up sooner after lock file's presence 2018-04-24 00:38:01 +00:00
Yamashita, Yuu b1e3f13a85 Renamed variable; s/PYENV_REHASH_LOCK_TIMEOUT/PYENV_REHASH_TIMEOUT/ 2018-04-24 00:35:55 +00:00
Yamashita, Yuu a6c15fb242 Experimental implementation to wait rehash until acquiring lock
For now the code is using traditional pseudo locking mechanism
based on `noclobber`.
2018-04-19 01:02:16 +00:00
Yamashita, Yuu 63c4b7f45c
Merge pull request #1140 from fschulze/2.7.15rc1
Add Python 2.7.15rc1.
2018-04-15 19:51:09 +09:00
Florian Schulze 20e4f53aac Add Python 2.7.15rc1. 2018-04-15 12:40:30 +02:00
Yamashita, Yuu 35f7ef8708
Merge pull request #1133 from pyenv/rbenv-20180402
Import changes from rbenv as of 20180402
2018-04-05 16:47:20 +09:00
Yamashita, Yuu 83429344ea Rewrite some tests for pyenv which was recently imported from rbenv 2018-04-02 01:52:42 +00:00
Yamashita, Yuu 83f97ef2b3 Merge remote-tracking branch 'rbenv/master' into rbenv-20180402 2018-04-02 01:46:48 +00:00
Josh Friend b960f863cc CPython 3.7.0b2 -> b3 2018-03-30 15:04:29 -04:00
Yamashita, Yuu a41d7561d0
Merge pull request #1131 from pyenv/workaround-get-pip-url-py26-py32
Use custom get-pip URL based on the target version
2018-03-29 12:19:46 +09:00
Yamashita, Yuu 980b03b582 Update warning message on presence of PIP_VERSION 2018-03-29 03:16:53 +00:00
Yamashita, Yuu f3aba64a84
Merge pull request #1132 from pyenv/fix-typo-in-pr-template
Fixed a typo in PR template
2018-03-29 10:18:07 +09:00
Yamashita, Yuu fc33f674b4 s/Generaly/Generally/ 😞 2018-03-29 01:14:19 +00:00
Yamashita, Yuu f5663f084a Show some warning on the use of PIP_VERSION 2018-03-29 00:58:17 +00:00
Yamashita, Yuu a1d39c1e25 Add test for custom GET_PIP_URL per versions 2018-03-29 00:58:06 +00:00
Yamashita, Yuu 90dfb261e2 Use custom get-pip URL based on the target version (#1127) 2018-03-29 00:38:16 +00:00
Joe Siewert 367c6765ab Modify changelog to indicate CPython 3.6.5 (#1130) 2018-03-28 20:15:40 -04:00
Josh Friend abbb606041 v1.2.3 2018-03-28 18:22:17 -04:00
Josh Friend 359aa1f4c6 Add CPython 3.6.5 2018-03-28 18:18:56 -04:00
Yamashita, Yuu b95d0d9542
Merge pull request #1128 from pyenv/pip-version-workaround2
Refactoring around `GET_PIP_URL`
2018-03-22 11:04:33 +09:00
Yamashita, Yuu 15ff779eb5 Refactoring
Manage `GET_PIP_URL` value at single place for readability.
2018-03-22 01:34:44 +00:00
Yamashita, Yuu f35aea984f
Merge pull request #1123 from pyenv/github-issue-templates
Add template for issues and pull requests
2018-03-22 09:37:25 +09:00
Daniel Hahler 806b9384a1
Update PULL_REQUEST_TEMPLATE.md
revisited
2018-03-20 21:40:02 +01:00
Daniel Hahler 5861aee062
Update ISSUE_TEMPLATE.md
revisited
2018-03-20 21:37:40 +01:00
Yamashita, Yuu 967d9b6a1b
Merge pull request #1124 from pyenv/pip-version-workaround
Unset `PIP_VERSION` before invoking `get-pip.py` as a workaround for `invalid truth value` error
2018-03-20 13:23:51 +09:00
Yamashita, Yuu ed2d2a921e Unset PIP_VERSION before invoking get-pip.py as a workaround for invalid truth value error (pyenv/pyenv-installer#70) 2018-03-20 04:04:49 +00:00
Yamashita, Yuu 143e0be9fc Add template for issues and pull requests (#1116) 2018-03-20 01:44:57 +00:00
raimon 694b551935 Fix dead links in ToC (#1121) 2018-03-15 15:42:52 -04:00
Jens Hedegaard Nielsen 59846ca9b1 Set openssl PKG_CONFIG_PATH for python 3.7 (#1117) 2018-03-13 10:00:23 -04:00
Yamashita, Yuu adbb59ed2c
Merge pull request #1113 from timsavage/activepython
Support for ActivePython
2018-03-13 09:33:17 +09:00
Tim Savage 05143526f4 Added download source and SHA256 hashes 2018-03-12 14:44:57 +11:00
Tim Savage 296ce06d69 Added current ActivePython versions 2.7.14, 3.5.4, 3.6.0 2018-03-09 12:12:56 +11:00
Tim Savage 3daed2e517 Added entries to support installing ActivePython (linux) 2018-03-09 12:12:13 +11:00
Josh Friend a8e207f330 v1.2.2 2018-02-28 16:32:37 -05:00
Josh Friend 5f74547379 CPython 3.7.0b1 -> 3.7.0b2 2018-02-28 16:24:58 -05:00
Yamashita, Yuu 23e1c5049f
Merge pull request #1101 from Calinou/readme-use-markdown-image
Use Markdown image markup in README
2018-02-23 09:36:08 +09:00
Hugo Locurcio 7ca1923a44
Use Markdown image markup in README
This also fixes the aspect ratio of the image being incorrect.
2018-02-22 15:43:44 +01:00
Yamashita, Yuu 445d59ae2e
Merge pull request #1100 from shoichiaizawa/add-anaconda-5.1.0
python-build: add anaconda[23]-5.1.0
2018-02-19 10:46:56 +09:00
Shoichi Aizawa bc9687576e python-build: add anaconda[23]-5.1.0 2018-02-16 18:03:57 +09:00
Yamashita, Yuu 907a86b743
Merge pull request #1094 from claco/update-3.4.8
Correct CPython 3.4.8 Checksums
2018-02-09 13:13:02 +09:00
Christopher H. Laco 812f02662b
Correct CPython 3.4.8 Checksums
The current checksums for tar.xz and .tgz files are reversed. This
causes python-build to fail with a checksum mismatch error.

Reversing the checksums to allow the build to succeed.
2018-02-08 22:40:04 -05:00
Yamashita, Yuu 5c0570cdc0
Merge pull request #1093 from charlesreid1/master
Improve screenshot in readme
2018-02-09 09:37:18 +09:00
Yamashita, Yuu 43c4063f51
Merge pull request #1091 from BanzaiMan/python-build-updates
Python-build updates
2018-02-09 09:33:52 +09:00
Charles Reid aab718844a Changing background to be lighter/lower contrast 2018-02-08 16:10:37 -08:00
Charles Reid 59050aa093 Fixing image of terminal output to use carbon (cleaner and easier-to-read colors) 2018-02-08 16:08:24 -08:00
Hiro Asari 42349d9d24 Update 3.4.8rc1 to 3.4.8 release 2018-02-08 08:34:01 -05:00
Hiro Asari 2ba2d8797b Add 3.8-dev to point to master
Push 3.7-dev to `3.7` branch
2018-02-08 08:27:18 -05:00
Yamashita, Yuu 04d9342f82
Merge pull request #1090 from draeath/master
Add CPython 3.5.5
2018-02-08 09:38:09 +09:00
Paul Bransford d85bc23592 Add CPython 3.5.5 2018-02-07 17:25:15 -05:00
INADA Naoki f114557698 3.7.0a4 -> 3.7.0b1 (#1086) 2018-02-01 13:31:38 -05:00
Yamashita, Yuu 95ad305bcb
Merge pull request #1084 from scop/pypy3-5.10.1
Add pypy3 5.10.1
2018-01-29 09:05:27 +09:00
Ville Skyttä 6c0625710f Add pypy3 5.10.1 2018-01-29 00:11:11 +02:00
Yamashita, Yuu 86e1b9a8ad
Merge pull request #1082 from shoichiaizawa/add-clear-to-conda-blacklist
Do not create `clear` shim when Anaconda is installed
2018-01-26 15:17:19 +09:00
Shoichi Aizawa b64c445b61 Do not create clear shim when Anaconda is installed
Add `clear` to the Anaconda's default blacklist in order to prevent
pyenv from creating the shim script for it.

The `clear` command executable began included from Anaconda 5.0.0
onwards, and this executable now conceals that of the user's base system
- this hinders the user from running the `clear` command with the
`command not found` error output if a user installs and selects one or
more Python version(s) other than Anaconda 5.x.x.

Adding this one-liner to the blacklist allows the user to use the
`clear` command even when Anaconda 5.x.x is not selected by pyenv.
2018-01-26 13:29:48 +09:00
Josh Friend 1864fd7b93 Add CPython 3.4.8rc1 and 3.5.5rc1 2018-01-23 10:13:57 -05:00
Josh Friend 6f27c91b5f Update CPython 3.7.0a3 -> 3.7.0a4 2018-01-12 18:56:44 -05:00
Josh Friend b704c4242c Update changelog for 1.2.1 release 2018-01-10 08:27:34 -05:00
Josh Friend 978d8e0f9a Add portable pypy[23] 5.10.0 2018-01-10 08:26:30 -05:00
Yamashita, Yuu 65ddf84926
Merge pull request #1070 from BanzaiMan/pypy-xenial
Allow binary installs of PyPy on Xenial
2018-01-10 12:26:17 +09:00
Hiro Asari 9a59c8490a Use multi-arg form of require_distro 2018-01-09 20:50:38 -05:00
Hiro Asari 4a14d2f62a Allow binary installs of PyPy on Xenial 2018-01-09 14:07:27 -05:00
Hiro Asari 66412f556d Rename PyPy 5.10 to include TEENY version (#1069) 2018-01-09 10:13:15 -05:00
Yamashita, Yuu 785738d5b3
Merge pull request #1062 from pyenv/pypy-5.10
Add PyPy[23] 5.10
2017-12-27 08:51:07 +09:00
Josh Friend 71f09a6d71 Add PyPy[23] 5.10
closes #1061
2017-12-26 10:23:07 -05:00
Yamashita, Yuu 9619e6bd53
Merge pull request #1058 from zmwangx/cpython-3.6.4
Add CPython 3.6.4 and remove 3.6.4rc1
2017-12-19 19:34:05 +09:00
Zhiming Wang 2c3998f88b
Add CPython 3.6.4 and remove 3.6.4rc1 2017-12-19 05:19:10 -05:00
Yamashita, Yuu 69d47d5fd7
Merge pull request #1055 from klimkjar/fix-illumos
Fix pyenv install on Solaris / Illumos
2017-12-15 19:01:19 +09:00
Kjetil Limkjær dc145fa5a2 Added true fallback to num_cpu_cores SunOS case 2017-12-15 09:19:15 +01:00
Kjetil Limkjær 5149c53165 Add SunOS case statement to num_cpu_cores 2017-12-14 22:17:34 +01:00
Kjetil Limkjær c5e4bab858
Fix pyenv install on Solaris / Illumos
pyenv install crashes on Solaris with an empty log file. Adding support for the proper Solaris getconf call in num_cpu_cores fixed it. Tested and working under OmniOS CE r151024.
2017-12-13 22:00:14 +01:00
Josh Friend e71ac9e439 Release v1.2.0 2017-12-10 09:40:49 -05:00
Chris Laco 76655979f4 Added CPython 3.3.7 (#1053)
* Added final Python 3.3 release, 3.3.7
* Removed Python 3.3.7rc1
2017-12-10 09:15:08 -05:00
Josh Friend 15ba0d9c3f Add CPython 3.6.4rc1 2017-12-06 08:37:07 -05:00
Josh Friend 364fa7f7c6 CPython 3.7.0a2 -> 3.7.0a3 2017-12-06 08:36:47 -05:00
Yamashita, Yuu b6929531c6
Merge pull request #1051 from LWisteria/do_not_check_wget_version
Check wget version iff wget is going to be used
2017-12-06 09:40:47 +09:00
LWisteria 4ebba7cd5f Check wget version iff wget is going to be used
Do not check when tarball is cached
2017-11-29 20:54:04 +09:00
Yamashita, Yuu 85a66a9640
Merge pull request #1036 from zachriggle/pwd-changes
Fix $PWD changes when executing Python
2017-11-21 10:51:41 +09:00
Yamashita, Yuu 435e362c60
Merge pull request #1041 from pyenv/automate-release
Create releases on GitHub automatically from tags (fixes #1038)
2017-11-20 10:58:54 +09:00
Yamashita, Yuu afd0840836 Create releases on GitHub automatically from tags (fixes #1038) 2017-11-20 01:53:38 +00:00
Zach Riggle 19e2b9588a Fix $PWD changes when executing Python
Specifically, this does not play well with PWD=/proc/self/cwd
2017-11-13 16:04:31 -06:00
Yamashita, Yuu 5b5df15eb7
Merge pull request #1033 from scop/mp193
Add micropython 1.9.3
2017-11-10 09:39:54 +09:00
Yamashita, Yuu 428a94b3ed
Merge pull request #1031 from scop/getconf
Get number of processors using getconf over cpuinfo grep
2017-11-09 17:39:32 +09:00
Ville Skyttä 08bed5b7b1 Add micropython 1.9.3 2017-11-09 09:21:16 +02:00
Ville Skyttä fc4f496545 Get number of processors using getconf over cpuinfo grep 2017-11-08 19:07:20 +02:00
Yamashita, Yuu 7ab48c47fd
Merge pull request #1026 from pyenv/ruby-build-20171031
Imported recent changes from the latest ruby-build as of Oct 31, 2017
2017-11-04 06:47:44 +09:00
Yamashita, Yuu 9ff06f61b6 Fix broken tests 2017-11-03 14:14:46 +00:00
Yamashita, Yuu ecc5ff5ead Fix a bug in handling of PACKAGE_MAKE_INSTALL_TARGET 2017-11-03 14:10:08 +00:00
Yamashita, Yuu 4521552662 Imported recent changes from the latest https://github.com/rbenv/ruby-build as of Oct 31, 2017 (#1025) 2017-11-03 14:10:08 +00:00
Samuel Villamonte 2f396596d7 Moved stackless-dev to Github repo 2017-10-31 08:49:36 -04:00
Samuel Villamonte 47c0db9dd8 Moved stackless-3.4-dev to Github repo 2017-10-31 08:49:36 -04:00
Samuel Villamonte ecc3100828 Removed stackless-3.2-dev 2017-10-31 08:49:36 -04:00
Samuel Villamonte e77bdb2f0b Modified stackless-2.7-dev to point to Github 2017-10-31 08:49:36 -04:00
Yamashita, Yuu 4fb078c4c5
Merge pull request #978 from pyenv/skip-enable-unicode-py33
Skip passing `--enable-unicode` for CPython 3.3+ (fixes #912)
2017-10-31 09:57:18 +09:00
Yamashita, Yuu 8d5ffcd082
Merge pull request #1025 from jamieconnolly/fix-missing-openssl-lib
Ignore LibreSSL bundled with macOS 10.13
2017-10-31 09:38:37 +09:00
Jamie Connolly eb70ee3e73
Ignore LibreSSL bundled with macOS 10.13 2017-10-30 16:47:53 +00:00
Josh Friend 9d7a011f6e pypy defs already use pypy-portable if no official binary is available (#1023)
having a separate definition for each of these seems redundant
2017-10-29 19:25:07 -05:00
Josh Friend 37299c8851 Remove CPython dev branches no longer in development 2017-10-29 09:20:26 -04:00
Josh Friend 734c341c46 Remove ancient pypy-dev branches 2017-10-28 18:32:06 -04:00
Josh Friend 2d9779b60d Remove old pypy-2.4 betas 2017-10-28 18:16:33 -04:00
Josh Friend 71671df0e3 Remove old Jython 2.7.1 betas 2017-10-28 18:10:36 -04:00
Josh Friend 8aa1db2050 A TON of verify_py* checks in miniconda were wrong 2017-10-28 18:04:49 -04:00
Shoichi Aizawa 2998ebce87 python-build: add miniconda[23]-4.3.30 (#1022) 2017-10-28 17:52:47 -04:00
Josh Friend 2263fc883a Don't create shim for bunzip2 2017-10-28 17:31:03 -04:00
Josh Friend 6c24a5a88d Update anaconda[23] 5.0.0 to 5.0.0.1 bugfix 2017-10-28 17:31:03 -04:00
Josh Friend 968ecc10c9 Add Anaconda[23] 5.0.1 2017-10-28 17:31:03 -04:00
Josh Friend 0638a5a320 Don't email on successful builds 2017-10-27 10:33:20 -04:00
Samuel Villamonte a2d00cb613 Added stackless-3.5.4 2017-10-22 19:20:26 -04:00
Samuel Villamonte a070a395bf Added stackless-3.4.7 2017-10-22 19:20:26 -04:00
Samuel Villamonte 29e6f34174 Added stackless-3.3.7 2017-10-22 19:20:26 -04:00
Samuel Villamonte 9daffd3fcc Added stackless-2.7.14 2017-10-22 19:20:26 -04:00
Zhiming Wang 7b9d1a40c2 Add CPython 3.7.0a2 and remove 3.7.0a1 2017-10-18 08:50:32 -04:00
Josh Friend af8cca9b31 Add miniconda[23] 4.3.14, 4.3.21, and 4.3.27
closes #1012
2017-10-10 21:04:42 -04:00
Yamashita, Yuu 656d7b15c0 Merge pull request #1010 from jab/patch-1
Fix broken download link
2017-10-09 11:18:16 +09:00
jab ff47681966 Fix broken download link (pypy2.7-portable-5.9.0) 2017-10-08 21:46:54 -04:00
Cosimo Lupo 34a5b7f56e fix typo in pypy-5.9 package name for non-ubuntu linux distros
https://github.com/pyenv/pyenv/pull/1005#discussion_r143206847
2017-10-06 11:28:16 -04:00
Josh Friend d339fbdc53 Add PyPy 5.9.0 2017-10-06 09:58:50 -04:00
Yamashita, Yuu 19cdbc828d Merge pull request #1001 from shoichiaizawa/add-tput-to-conda-blacklist
Do not create `tput` shim when Anaconda is selected
2017-10-05 09:38:52 +09:00
Josh Friend 5af8d2fb12 Update changelog for v1.1.5 2017-10-03 19:30:53 -04:00
Cosimo Lupo 18edb656f9 Add CPython 3.6.3 and remove 3.6.3rc1 (#1000) 2017-10-04 00:48:04 +02:00
Shoichi Aizawa 0c1edefe6a Do not create tput shim when Anaconda is selected
Add `tput` to the Anaconda's default blacklist in order to prevent pyenv
from creating the shim script for it.

Anaconda 5.0.0 contains some executables which are part of the base
system. Many of these executables did not exist in the last major
version of Anaconda (`4.4.0`), and the existence of pyenv's shim
scripts for these executables in `5.0.0` can cause to conceal those
executables in the user's base system; for the details, please see the
discussion with @yyuu at #992.

This commit resolves a coloured output error when running a terminal
command which uses `tput`. This error occurs when multiple Python
versions are installed alongside `anaconda2-5.0.0` or `anaconda3-5.0.0`
and neither of those two Anaconda versions is selected by pyenv.
2017-10-03 15:25:43 +09:00
Yamashita, Yuu 433e2d1f99 Merge pull request #992 from shoichiaizawa/add-anaconda-5.5.0
python-build: add anaconda[23]-5.0.0
2017-09-28 18:09:15 +09:00
Shoichi Aizawa a3598423c1 python-build: add anaconda[23]-5.0.0 2017-09-28 16:28:13 +09:00
Zhiming Wang f9183b5f8c Add CPython 3.7.0a1 2017-09-20 09:01:59 -04:00
Zhiming Wang d3c5b37b8a Add CPython 3.6.3rc1 2017-09-20 09:01:59 -04:00
Yamashita, Yuu 2178fb931c v1.1.4 2017-09-20 01:54:46 +00:00
Zhiming Wang 2ebab025f7 Add CPython 2.7.14 and remove 2.7.14rc1 (#980)
https://www.python.org/download/releases/python-2714
2017-09-17 21:42:38 -04:00
Yamashita, Yuu 90ac836576 Merge pull request #979 from scop/micropython
micropython-dev: unix dir moved to ports/unix
2017-09-16 09:54:00 +09:00
Ville Skyttä 2f4caa83b7 micropython-dev: unix dir moved to ports/unix 2017-09-15 19:12:39 +03:00
Josh Friend fae20aece7 Add CPython 2.7.14rc1 2017-09-14 18:33:30 -04:00
Yamashita, Yuu 7478310c1b Fix tests regard to --enable-unicode 2017-09-11 02:02:15 +00:00
Yamashita, Yuu 2a4b203312 Skip passing --enable-unicode for CPython 3.3+ (fixes #912) 2017-09-11 01:09:23 +00:00
Yamashita, Yuu 48aa0c491b Merge pull request #977 from cia-rana/update-readme-pyenv-init
Update `pyenv init` line in README.md
2017-09-09 09:04:44 +09:00
CIARANA f6384fe8d4 Update pyenv init line in README.md 2017-09-09 00:39:02 +09:00
cia-rana 839c9e5c76 Update pyenv init line in README.md 2017-09-08 02:07:47 +09:00
cia-rana 2a2cbea951 Change [ to [[ and move it into eval 2017-09-08 01:23:21 +09:00
CIARANA bc58ab54f8 Change ~/.pyenv to $PYENV_ROOT 2017-09-07 22:36:14 +09:00
CIARANA 6485409a55 Update pyenv init line in README.md
Update `pyenv init` line in README.md in case ```pyenv``` is not found.
2017-09-07 20:31:02 +09:00
Josh Friend 8297de9ee0 Add CPython 3.3.7rc1 2017-09-06 21:40:05 -04:00
Nikita Grishko 09bc868ea8 Remove extra spaces in checksum (#976)
Fixes #902.
2017-09-05 19:08:48 +02:00
Yamashita, Yuu fd0b8fcfb3 Merge pull request #973 from Samureus/jython-2.7.1
Added jython-2.7.1
2017-08-28 09:15:51 +09:00
Samuel Villamonte 33873e9b4d
Added jython-2.7.1 2017-08-27 13:01:46 -05:00
Yamashita, Yuu d92e190dc8 Merge pull request #971 from claco/add-3.5.4
Added CPython 3.5.4
2017-08-23 12:01:12 +09:00
Christopher H. Laco faaa2d587a
Added CPython 3.5.4 2017-08-22 22:43:10 -04:00
James Stidard 005a2e8914 Added CPython 3.4.7 (#965) 2017-08-14 14:15:00 -04:00
Yamashita, Yuu 24a3108499 Merge pull request #956 from pyenv/copy-libpypy3
Add support for PyPy3 executables like `libpypy3-c.so`
2017-08-14 09:08:47 +09:00
Yamashita, Yuu b1d32217c3 Avoid creating a symlink for symlink 2017-08-13 20:02:20 +09:00
Yamashita, Yuu 8b0ec441da Add OpenSSL to pypy build definitions 2017-08-13 17:31:39 +09:00
Yamashita, Yuu 41f00c639d Check if copying file is a file or not 2017-08-13 16:54:04 +09:00
Yamashita, Yuu bb352f8822 Add genc as a dependency 2017-08-13 16:53:41 +09:00
Yamashita, Yuu 2158e8224a Stop requiring GCC for PyPy source build
It must not have hard dependency to GCC in general.
2017-08-09 22:25:41 +09:00
Yamashita, Yuu 0fe7d78503 Check pycparser's availability when building PyPy from source 2017-08-09 22:23:31 +09:00
Yamashita, Yuu fc23323ed4 Revert "Avoid choosing virtualenv when building PyPy from source"
This reverts commit 63c00d9989.
2017-08-09 22:22:05 +09:00
Yamashita, Yuu 63c00d9989 Avoid choosing virtualenv when building PyPy from source 2017-08-09 09:23:49 +00:00
Yamashita, Yuu 98878e5d12 Changed default PyPy build option; specify --batch to avoid launching interactive debugger 2017-08-09 09:23:30 +00:00
Yamashita, Yuu 0cbfcf09d4 Fix pattern match for PyPy versions 2017-08-09 07:34:59 +00:00
Yamashita, Yuu 0c909f7457 Merge pull request #959 from diggzhang/fix_doc
Fix readme.md
2017-08-05 16:47:42 +09:00
diggzhang 7c9ebc2727 Fix readme.md 2017-08-05 14:11:30 +08:00
Yamashita, Yuu 269a702321 Fix wrong variable reference 2017-07-26 01:31:26 +00:00
Yamashita, Yuu adc0365923 Add support for PyPy3 executables like libpypy3-c.so (fixes #955) 2017-07-26 01:06:04 +00:00
Yamashita, Yuu 7dae19765c Merge pull request #953 from pyenv/source-shim
Workaround for scripts in `$PATH` which needs to be source'd
2017-07-21 09:58:37 +09:00
Yamashita, Yuu ad5a7f0c17 Stop assuming bash for source scripts 2017-07-21 00:55:37 +00:00
Yamashita, Yuu e9ad498fe3 I should have used basename only to check shims 2017-07-21 00:55:11 +00:00
Yamashita, Yuu 753a9e826b Move conda.txt and source.txt into their directory to allow users to have custom blacklist 2017-07-21 00:43:23 +00:00
Yamashita, Yuu 52d6acc3b0 Workaround for scripts in $PATH which needs to be source'd (#100, #688) 2017-07-20 01:25:36 +00:00
Josh Friend 0314de0c73
v1.1.3 2017-07-17 09:12:51 -04:00
Markus Kaiserswerth 37e4c2094f Add CPython 3.6.2 and remove 3.6.2rc2 (#951) 2017-07-17 08:49:22 -04:00
Yamashita, Yuu 5ab088c707 Merge pull request #948 from zmwangx/cpython-3.6.2rc2
Add CPython 3.6.2rc2 and remove 3.6.2rc1
2017-07-08 20:48:23 +09:00
Zhiming Wang 3e08d43fd9
Add CPython 3.6.2rc2 and remove 3.6.2rc1
https://www.python.org/downloads/release/python-362rc2/
2017-07-08 07:22:46 -04:00
Yamashita, Yuu 8fa1f43856 v1.1.2 2017-07-07 00:40:21 +00:00
Yamashita, Yuu e93b170fe1 Merge pull request #921 from scop/micropython
micropython-dev: Set better sys.path
2017-07-06 10:41:06 +09:00
Ville Skyttä 7add7793cd micropython-dev: Set better sys.path 2017-07-05 08:30:49 +03:00
Yamashita, Yuu 7467eec9de Merge pull request #942 from xHeliotrope/master
Update README.md typo
2017-06-24 10:06:11 +09:00
Ryan Moore e83168655c Update README.md 2017-06-24 00:50:54 +00:00
Yamashita, Yuu 4a707c27de Merge pull request #674 from jossy/master
Add default-packages to .gitignore
2017-06-21 20:22:25 +09:00
Zhiming Wang 734e40d8a5 Add CPython 3.6.2rc1 (#940) 2017-06-18 19:51:04 -04:00
Samuel Villamonte 440f044f0b Update CHANGELOG.md for v1.1.1 bugfix release 2017-06-17 13:44:25 -05:00
Samuel Villamonte bd32d489c1 Update links to Portable Pypy 5.8-1 bugfix release (#939)
* Update pypy2.7-portable-5.8.0, pypy3.5-portable-5.8.0, pypy2.7-5.8.0 and pypy3.5-5.8.0

See issue https://github.com/squeaky-pl/portable-pypy/issues/54
2017-06-17 13:39:10 -05:00
Yamashita, Yuu bed627addd v1.1.0 2017-06-16 01:03:32 +00:00
Yamashita, Yuu 29436ffe6d Merge pull request #932 from Samureus/pypy-5.8
Add Pypy 5.8.0
2017-06-12 11:46:36 +09:00
Samuel Villamonte d82324ecf9 Fix wrong Portable PyPy links 2017-06-11 21:19:50 -05:00
Samuel Villamonte 1910e8667f Merge branch 'pypy-5.8' of github.com:Samureus/pyenv into pypy-5.8 2017-06-10 15:33:55 -05:00
Samuel Villamonte cb579583bc Dropped support for all EOL x86/x64 Ubuntu distros to use Portable PyPy instead, per issue #925 comments 2017-06-10 15:32:32 -05:00
Samuel Villamonte 7a6cbbcd08 Fixed error message, PyPy3 2017-06-10 15:18:48 -05:00
Samuel Villamonte 3314420f2e Fix yet another checksum 2017-06-09 12:42:31 -05:00
Samuel Villamonte 1f3b0ae017 Fix portable pypy typo 2017-06-09 11:38:39 -05:00
Samuel Villamonte d3e40c34bb Added pypy3.5-5.8.0 2017-06-09 11:37:20 -05:00
Samuel Villamonte 38e2067ad6 Added pypy2.7-5.8.0 2017-06-09 11:27:20 -05:00
Samuel Villamonte e0b0147056 Fix sha256 sum 2017-06-09 11:06:42 -05:00
Samuel Villamonte 88e46c4b5a Added pypy3.5-portable-5.8.0 2017-06-09 11:03:34 -05:00
Samuel Villamonte ca00b8e2e9 Added pypy2.7-portable-5.8.0 2017-06-09 10:43:38 -05:00
Samuel Villamonte 02001dbfb3 Added pypy3.5-5.8.0-src 2017-06-09 10:11:34 -05:00
Samuel Villamonte 033dae622d Added pypy2.7-5.8.0-src 2017-06-09 10:05:35 -05:00
Yamashita, Yuu 0849776306 Merge pull request #930 from shoichiaizawa/master
python-build: add anaconda[23]-4.4.0
2017-06-08 15:15:06 +09:00
Shoichi Aizawa d5b193e5b0 python-build: add anaconda[23]-4.4.0 2017-06-08 13:33:18 +09:00
Roman Bolshakov 01d39850b5 Do not attempt to read .python-version directories (#606) 2017-06-06 13:09:45 +02:00
Yamashita, Yuu d461b5f1d8 Merge pull request #927 from blueyed/merge-rbenv
Merge rbenv master
2017-06-06 09:38:33 +09:00
Daniel Hahler 3fd23431af Merge remote-tracking branch 'rbenv/master'
Conflicts:
	README.md
	libexec/pyenv---version
	libexec/pyenv-init
	libexec/rbenv
	libexec/rbenv-sh-shell
	libexec/rbenv-which
	test/init.bats
	test/shell.bats
2017-06-05 15:18:44 +02:00
Yamashita, Yuu acbd736eb3 Merge pull request #920 from scop/micropython
Add micropython-dev
2017-05-29 11:05:18 +09:00
Ville Skyttä fd1fb13016 Add micropython-dev 2017-05-28 14:04:42 +03:00
Yamashita, Yuu 3292200786 Merge pull request #909 from joesiewert/fix-command
Fix --enable-shared sample command
2017-05-12 12:38:05 +09:00
Joe Siewert a91b36b236 Fix --enable-shared sample command 2017-05-11 14:23:31 -07:00
Yamashita, Yuu d15f3888f0 Merge pull request #907 from LarsFronius/patch-1
Fixes pip-rehash to rehash if pip was called with a flag
2017-05-10 09:01:34 +09:00
Lars Fronius 1ec90481e8 Update pip 2017-05-09 12:51:50 +02:00
Lars Fronius 95818ab802 Update pip 2017-05-09 12:50:46 +02:00
Lars Fronius bbd8f2c01e Fixes pip-rehash to rehash if pip was called with a flag
`pip -v install foobar` or `pip -q install foobar` did not trigger a rehash before. Now it should have the same behaviour as `pip install foobar`.
2017-05-09 12:43:51 +02:00
Yamashita, Yuu 30212f0054 Merge pull request #903 from webb04/fix-pyenv-shell-readme-link
Update link to pyenv shell documentation in README
2017-05-03 06:05:38 +09:00
Jamie Webb 27a7466f15 Update link to pyenv shell documentation in README 2017-05-02 16:52:53 +01:00
Yamashita, Yuu 23d819ed69 Merge pull request #899 from joliveros/fix-anaconda-build-when-prefix_path-exists
add -f to anaconda install script
2017-05-01 09:50:43 +09:00
Yamashita, Yuu da80a3d3cc Merge pull request #901 from Bachmann1234/Bachmann1234-patch-1
Remove duplicate heading
2017-04-29 21:00:02 +09:00
Matt Bachmann 0a69dbd818 Remove duplicate heading
Link was pointing to this heading. It seemed incorrect
2017-04-29 07:14:46 -04:00
José Oliveros aad7c0e055 add -f to anaconda install script 2017-04-27 18:51:30 -05:00
Yamashita, Yuu 19e70e34a0 Merge pull request #897 from proinsias/proinsias/miniconda3-4.3.11
Add miniconda3-4.2.12 and miniconda3-4.3.11
2017-04-26 13:18:25 +09:00
Francis T. O'Donovan 19048f1b60
Add miniconda3-4.2.12 and miniconda3-4.3.11 2017-04-25 15:08:02 -04:00
Yamashita, Yuu 7209cc490e Merge pull request #892 from menduo/master
replace github.com/yyuu with github.com/pyenv
2017-04-18 12:47:08 +09:00
menduo f5e49fe6fa changelog: correct doc for version 1.0.9 2017-04-18 10:16:37 +08:00
menduo ff666ab489 replace github.com/yyuu with github.com/pyenv 2017-04-17 11:59:53 +08:00
Josh Friend bcc8ab231a
Add PyPy 5.7.1 portable 2017-04-04 11:05:32 -04:00
Josh Friend 29126e4965
Add PyPy3.5 5.7.1 2017-04-04 10:27:20 -04:00
Josh Friend ae11c56565 Add PyPy 5.7.1
closes #888
2017-04-03 20:54:27 -04:00
Yamashita, Yuu eef042ad89 Merge pull request #884 from pyenv/ci-workaround-v1.0.10
Workaround for CI failures with versions with multiple digits
2017-03-28 13:47:35 +09:00
Yamashita, Yuu bec978d0f6 Workaround for CI failures with versions with multiple digits
https://travis-ci.org/pyenv/pyenv/jobs/215777826
2017-03-28 04:43:28 +00:00
Yamashita, Yuu b3efcc9d15 v1.0.10 (fixes #878) 2017-03-28 02:40:09 +00:00
Yamashita, Yuu fe1bd31443 Merge pull request #881 from Samureus/miniconda-latest
Update miniconda-latest and miniconda3-latest
2017-03-27 11:43:14 +09:00
Samuel Villamonte 45f1d19240 Merge pull request #880 from NickAnderegg/anaconda2-typos
python-build: Fix typo in MacOS packages for anaconda2-4.3.0/4.2.0
2017-03-26 14:16:25 -05:00
Samuel Villamonte cb2a5b3cea miniconda3 no longer seems to have ARM or PPC *latest* versions, only numbered versions, and is now based on 3.6 2017-03-26 13:22:41 -05:00
Nick Anderegg 6404661372
python-build: Fix typo in MacOS packages for anaconda2-4.3.0/4.2.0
The package names in the python-build files for anaconda2-4.2.0 and
anaconda2-4.3.0 both had 'Anaconda2-4.2.1-MacOSX-x86_64' erroneously
listed as the package name. Anaconda2-4.2.1 is not a version of Anaconda
in existence. The URL arguments were correct, just not the package name
arguments.
2017-03-26 14:03:24 -04:00
Samuel Villamonte 69cfc1a3e2 Make miniconda-latest point to miniconda2-latest 2017-03-26 12:49:19 -05:00
Samuel Villamonte 00165f5796 Merge pull request #876 from NickAnderegg/anaconda-4.3.1
python-build: Add Anaconda2/Anaconda3 4.3.1
2017-03-25 23:52:32 -05:00
Samuel Villamonte acfbc96614 V1.0.9 release (#877)
* Update version to 1.0.9
2017-03-24 11:36:21 -05:00
Nick Anderegg c148ac9f89
python-build: Add Anaconda2/Anaconda3 4.3.1 2017-03-23 14:18:02 -04:00
Josh Friend df52586134 Update changelog with new python additions 2017-03-22 08:49:48 -04:00
Samuel Villamonte e5d8edf1d9 Add PyPy3 5.7-beta (#871) 2017-03-22 08:36:15 -04:00
Samuel Villamonte 030821e618 Add PyPy2 5.7.0 (#872) 2017-03-22 08:34:54 -04:00
Zhiming Wang 46a6adea6b Add CPython 3.6.1 and remove 3.6.1rc1 (#873) 2017-03-22 08:32:23 -04:00
Samuel Villamonte cd22737d70 Added pypy-portable-5.7.0 (#868) 2017-03-21 22:00:44 -04:00
Samuel Villamonte 459a535228 Added pypy3-portable-5.7.0 (#869) 2017-03-21 22:00:38 -04:00
Doug Harris cf38195541 Updated docs to reflect homebrew change. (#867)
* Updated docs to reflect homebrew change.

The instructions previously mentioned in this file were removed from the Homebrew caveats since
they weren't specific to homebrew. See discussion in [this homebrew issue](https://github.com/Homebrew/homebrew-core/pull/11209)

* Added link to specific section of readme
2017-03-21 16:00:37 -04:00
Yamashita, Yuu 98f40f6d6e Merge pull request #864 from Samureus/pypy3-5.7.0-src
Added pypy3.5-5.7-beta-src
2017-03-21 20:12:40 +09:00
Samuel Villamonte a5619caf54 Added pypy3.5-5.7-beta-src this time for real 2017-03-21 00:35:54 -05:00
Yamashita, Yuu 23f62aeb75 Merge pull request #863 from Samureus/pypy-5.7.0-src
Add PyPy2 5.7.0-src
2017-03-21 14:31:37 +09:00
Yamashita, Yuu 7625d20ee4 Merge pull request #859 from Samureus/pyston-0.6.1
Added pyston-0.6.1
2017-03-21 14:30:22 +09:00
Samuel Villamonte edd5b932d6 Added pypy2-v5.7.0-src 2017-03-21 00:12:45 -05:00
Samuel Villamonte b7451d7280 Updated pypy-5.7.0-src shim 2017-03-21 00:08:03 -05:00
Samuel Villamonte 81c2e4b32e Added warning message on top 2017-03-20 23:54:40 -05:00
Samuel Villamonte 250208261f Merge branch 'master' of github.com:pyenv/pyenv into pyston-0.6.1 2017-03-13 22:52:33 -05:00
Yamashita, Yuu d1ff898a2b Merge pull request #860 from Samureus/http_proxy-in-README
Mention http_proxy in README.md
2017-03-14 11:48:20 +09:00
Samuel Villamonte d12120a4bf Change curl to proxy note 2017-03-12 09:53:15 -05:00
Samuel Villamonte b1dd4a8130 Agh spaces 2017-03-12 09:50:35 -05:00
Samuel Villamonte f1a22c104c Mention http_proxy and HTTPS_PROXY in README.md 2017-03-12 09:45:32 -05:00
Samuel Villamonte 8b0de41c4a Added pyston-0.6.1 2017-03-12 08:55:53 -05:00
Yamashita, Yuu 0e683164bd Merge pull request #852 from pyenv/migrate-to-pyenv-org
Migrate to pyenv org
2017-03-06 13:47:31 +09:00
Yamashita, Yuu 8ce9928819 Update Travi CI build status link target 2017-03-06 04:42:15 +00:00
Yamashita, Yuu d01fa09a7d Migrate project URL to https://github.com/pyenv/pyenv 2017-03-06 04:31:48 +00:00
Yamashita, Yuu 3d36ee7227 Change default mirror site to https://pyenv.github.io 2017-03-06 04:27:06 +00:00
Yamashita, Yuu 98a879bdb0 Migrate project URL from https://github.com/yyuu to https://github.com/pyenv 2017-03-06 04:14:12 +00:00
Yamashita, Yuu 4107496053 Update to 3.6.1rc1's OpenSSL to 1.0.2k (#850, #851) 2017-03-06 04:09:40 +00:00
Yamashita, Yuu 291b6fb2be Merge pull request #851 from zmwangx/upgrade-openssl-to-1.0.2k
Upgrade OpenSSL to 1.0.2k
2017-03-06 07:07:57 +09:00
Yamashita, Yuu 7d50714105 Merge pull request #850 from zmwangx/cpython-3.6.1rc1
Add CPython 3.6.1rc1
2017-03-06 07:06:29 +09:00
Zhiming Wang ba620fd076
Upgrade OpenSSL to 1.0.2k 2017-03-05 11:17:36 -05:00
Zhiming Wang 3cf9586b92
Add CPython 3.6.1rc1
https://www.python.org/downloads/release/python-361rc1/
2017-03-05 11:05:31 -05:00
Yamashita, Yuu b7d89bacf3 Merge pull request #845 from jwilk/spelling
Fix typos
2017-03-02 08:55:34 +09:00
Jakub Wilk 3a4c7cf200 Fix typos 2017-03-02 00:20:59 +01:00
Yamashita, Yuu ad8f2886ae v1.0.8 (fixes #841) 2017-02-24 06:09:09 +00:00
Yamashita, Yuu 9a99d427ef --quiet options isn't sensible for sha256sum(1) of GNU coreutils (fixes #840)
The option is available only if verifying digest, not available when computing digest.

>       --quiet
>              don't print OK for each successfully verified file
2017-02-23 20:06:44 +00:00
Yamashita, Yuu 6bb14c60da Merge pull request #837 from yyuu/cpython-github-dev
Use GitHub for all CPython dev versions
2017-02-17 09:28:01 -08:00
Yamashita, Yuu d9c933e0c0 Use GitHub for all CPython dev versions (#836) 2017-02-17 17:24:05 +00:00
Yamashita, Yuu 19cb9f535a Merge pull request #836 from yan12125/cpython-now-uses-git
CPython now uses git
2017-02-17 08:08:23 -08:00
Yen Chi Hsuan 84c4ed5230 CPython now uses git 2017-02-17 19:03:33 +08:00
Yamashita, Yuu 235eea3003 Merge pull request #831 from maxnordlund/patch-1
Fix fish subcommand completion
2017-02-10 17:24:11 +09:00
Yamashita, Yuu 688c0af0cd Merge pull request #828 from massongit/develop
Fix file the path and file name of README.md
2017-02-10 10:18:41 +09:00
SUZUKI Masaya c1af5ab0a9 Fix the file path. 2017-02-10 10:04:35 +09:00
Max Nordlund e09d61780c Fix fish subcommand completion
This allows subcommand style plugins to properly autocomplete.
Existing commands are not affected. 

Example, say you have support for `pyenv foo bar --flag`, then
this allows the last `--flag` argument to be properly completed.
2017-02-09 15:15:28 +01:00
massongit 4cef3d74ac Fix file the path and file name of README.md 2017-02-06 22:26:13 +09:00
Yamashita, Yuu f36d735e27 Merge pull request #824 from jprjr/add-anaconda-4.3.0
Add Anaconda 4.3.0
2017-02-03 10:16:17 +09:00
John Regan a6776562c1 Add Anaconda 4.3.0 2017-02-01 16:28:44 +00:00
Yamashita, Yuu 9c4e489637 Merge pull request #823 from yyuu/revert-819-master
Revert "use $ORIGIN for rpath so the built python can be copied"
2017-01-28 20:24:14 +09:00
Yamashita, Yuu afbd54dd13 Revert "use $ORIGIN for rpath so the built python can be copied" 2017-01-28 20:21:25 +09:00
Yamashita, Yuu 99b510859d Merge pull request #819 from woosley/master
use $ORIGIN for rpath so the built python can be copied
2017-01-27 11:08:06 +09:00
woosley 2657f1049c use $ORIGIN for rpath so the built python can be copied 2017-01-26 08:30:15 +00:00
Yamashita, Yuu 99d16707e3 Removed release candidates of 3.4.6 and 3.5.3 (#811, #812) 2017-01-19 00:47:24 +00:00
Yamashita, Yuu 57f946550a v1.0.7 2017-01-19 00:39:23 +00:00
Yamashita, Yuu ccaab86c4c Merge pull request #812 from browniebroke/3.4.6
Add CPython 3.4.6
2017-01-19 09:34:51 +09:00
Yamashita, Yuu db4cc6097f Merge pull request #811 from browniebroke/3.5.3
Add CPython 3.5.3
2017-01-19 09:34:17 +09:00
Bruno Alla 54e7796eee Update sha's for Python 3.5.3 archives 2017-01-17 12:22:19 +00:00
Bruno Alla bf613e3d54 Add CPython 3.4.6
https://www.python.org/downloads/release/python-346/
2017-01-17 11:41:01 +00:00
Bruno Alla 25c6817c48 Add CPython 3.5.3 2017-01-17 11:14:21 +00:00
Yamashita, Yuu 0464221edb Specify -O0 when --debug has specified (fixes #808) 2017-01-16 01:23:01 +00:00
Yamashita, Yuu 4d96271113 Merge pull request #801 from yyuu/let-jython-to-generate-launcher-as-shell-script
Let Jython installer to generate shell script instead of python script even if there's `python2.7` available in `$PATH`
2017-01-06 23:26:44 +09:00
Yamashita, Yuu 322aa82ae7 I should have created stub script in $BUILD_PATH explicltly since pwd isn't changed before install_jar 2017-01-06 14:23:23 +00:00
Yamashita, Yuu 9833be730a Let Jython installer to generate shell script instead of python script even if there's python2.7 available in $PATH (#800) 2017-01-06 14:19:04 +00:00
Yamashita, Yuu e3c8a754a4 Merge pull request #798 from orip/patch-1
README: multiple versions in .python-version
2017-01-06 21:31:00 +09:00
Josh Friend 2d5fc1b749 Add CPython 3.4.6rc1 2017-01-02 23:34:34 -05:00
Josh Friend 001c824744 Add CPython 3.5.3rc2 2017-01-02 23:34:34 -05:00
Ori Peleg fa80772142 README: multiple versions in .python-version
Document that multiple versions in `.python-version` work similarly to the command line.
2017-01-02 16:18:38 +02:00
Yamashita, Yuu 0c7d2205ff Merge pull request #797 from PeterDaveHello/patch-2
Shallow clone bats in makefile
2017-01-01 21:31:46 +09:00
Yamashita, Yuu 4f719b7909 Merge pull request #796 from PeterDaveHello/patch-1
Syntax highlight in README.md
2017-01-01 21:31:09 +09:00
Peter Dave Hello 134d38fc53 Shallow clone bats in makefile 2017-01-01 18:40:52 +08:00
Peter Dave Hello 3531ad06b2 Syntax highlight in README.md 2017-01-01 18:39:20 +08:00
Takahiro Ueda 767bcae71c Fix the checksum for Python-3.6.0.tgz (#793) 2016-12-30 10:18:36 -05:00
Yamashita, Yuu 0256ff06e8 Add mention to pyenv-virtualenv in README (#662) 2016-12-27 00:51:29 +00:00
Josh Friend 2552329dbd
v1.0.6 2016-12-23 08:51:29 -05:00
Donald Stufft ac0dd36da8 Add CPython 3.6.0 (#787) 2016-12-23 14:29:36 +01:00
Josh Friend 095ca59878
v1.0.5 2016-12-17 18:04:50 -05:00
Josh Friend fed6d25cb1
Remove CPython 2.7.13rc1 2016-12-17 18:04:36 -05:00
Zhiming Wang 7203a96cd7 Add CPython 2.7.13 (#782)
https://www.python.org/downloads/release/python-2713/.
2016-12-17 17:33:11 -05:00
Zhiming Wang cf7fe1d87f Add CPython 3.6.0rc2 (#781)
https://www.python.org/downloads/release/python-360rc2/.
2016-12-17 17:32:28 -05:00
Yamashita, Yuu 1000c2fa99 Merge pull request #780 from luzfcb/patch-2
document how to accelerate the download with aria2
2016-12-17 06:57:45 +09:00
Fábio C. Barrionuevo da Luz fc7ceb4176 document how to accelerate the download with aria2 2016-12-16 14:08:44 -03:00
Yamashita, Yuu a73d90b9a0 Add Anaconda2 4.2.0 (fixes #774) 2016-12-12 00:48:34 +00:00
Yamashita, Yuu c024fc8428 Merge pull request #775 from Samureus/ironpython-2.7.7
Add Ironpython 2.7.7
2016-12-12 09:34:03 +09:00
Samuel Villamonte a08f82cab8 Added ensurepip check 2016-12-11 12:07:14 -05:00
Samuel Villamonte f39fc3a71a Changed to install_zip 2016-12-11 11:22:23 -05:00
Samuel Villamonte 5826d4275b Removed ironpython-2.7.7-rc2 definition 2016-12-11 11:09:55 -05:00
Samuel Villamonte c930df95b2 Added ironpython-2.7.7 2016-12-11 11:07:55 -05:00
Josh Friend dce5f750ce
Add CPython 3.6.0rc1 2016-12-07 11:02:02 -05:00
Yamashita, Yuu d72b977846 Merge pull request #771 from zmwangx/cpython-2.7.13rc1
Add CPython 2.7.13rc1
2016-12-04 19:23:27 +09:00
Zhiming Wang 935fdb003b
Add CPython 2.7.13rc1
https://www.python.org/downloads/release/python-2713rc1/
2016-12-03 23:58:38 -05:00
Yamashita, Yuu 53cf2e3387 Merge pull request #765 from takeru/anaconda3-4.2.0
anaconda3-4.2.0
2016-11-25 10:02:16 +09:00
sasaki takeru bde4786577 anaconda3-4.2.0 2016-11-24 20:57:20 +09:00
Josh Friend 30baff8e5d v1.0.4 2016-11-22 23:31:12 -05:00
Josh Friend 0f6c5ac9b7 Add Pyston 0.6.0 2016-11-22 23:31:12 -05:00
Zhiming Wang 08fc271fca Add CPython 3.6.0b4 and remove 3.6.0b3 (#762)
* Remove CPython 3.6.0b3 in favor of 3.6.0b4

* Add CPython 3.6.0b4

https://www.python.org/downloads/release/python-360b4/.
2016-11-22 09:14:59 -05:00
Yamashita, Yuu 956b9efe0f Merge pull request #737 from Samureus/pypy3.5-c-jit-latest
Pypy3.5-c-jit-latest nightly builds (please review)
2016-11-17 09:20:22 +09:00
Samuel Villamonte 1c63e733f8 Uncomment verify_py35 and ensurepip
Don't remember exactly why I had these out, guess it could be something about pip, seems to be working now
2016-11-15 21:29:03 -05:00
Samuel Villamonte b9d8a75c8b Merge branch 'master' into pypy3.5-c-jit-latest 2016-11-15 21:16:24 -05:00
Yamashita, Yuu 635d83e26c Merge pull request #752 from Samureus/ironpython-2.7.7-rc2
Add Ironpython 2.7.7 rc2
2016-11-16 10:58:53 +09:00
Josh Friend 74ba392548 Update CHANGELOG 2016-11-13 15:19:41 -05:00
Josh Friend 3ec652e0b1 Add stackless 2.7.11 2016-11-13 15:19:28 -05:00
Josh Friend c59b1d55c4 Add stackless 2.7.10 2016-11-13 15:19:12 -05:00
Samuel Villamonte bfbc9e280b Add stackless-2.7.12 (#753) 2016-11-13 14:18:42 -05:00
Samuel Villamonte fb8801120b Merge branch 'master' of github.com:yyuu/pyenv into pypy3.5-c-jit-latest 2016-11-12 22:11:39 -05:00
Samuel Villamonte 1ca671cc6a Change install_zip to install_package 2016-11-12 19:42:08 -05:00
Samuel Villamonte dffd62e2cb Add ironpython-2.7.7-rc2 2016-11-12 19:37:00 -05:00
Samuel Villamonte 8f7fb57fbb Add Portable PyPy2 5.6.0 (#749) 2016-11-12 15:37:59 -05:00
Samuel Villamonte 6540dd7ca5 Add PyPy2 5.6.0-src (#750) 2016-11-12 15:37:41 -05:00
Samuel Villamonte 293ffb04a6 Add PyPy2 5.6.0 (#751) 2016-11-12 15:35:03 -05:00
Yamashita, Yuu 0d1a5b3030 v1.0.3 2016-11-11 05:16:06 +00:00
Josh Friend 41606c4307 Merge pull request #744 from methane/3.6.0b3
CPython 3.6.0b3
2016-11-01 08:43:30 -04:00
INADA Naoki 114f4f6d49 3.6.0b3 2016-11-01 19:34:28 +09:00
Samuel Villamonte a80f54307e Add a link to the buildbot listing page 2016-10-15 13:41:44 -05:00
Samuel Villamonte 709ff7fba7 Fix some formatting 2016-10-15 13:35:36 -05:00
Samuel Villamonte 0ba2cec70e Merge branch 'master' of github.com:yyuu/pyenv into pypy3.5-c-jit-latest
Update from upstream
2016-10-15 13:25:41 -05:00
Yamashita, Yuu eb2e5ac4c4 Merge pull request #736 from scop/pypy3355-portables
Add PyPy3.3 v5.5-alpha portable binaries
2016-10-14 15:22:54 +09:00
Ville Skyttä 6e658f30a9 Add PyPy3.3 v5.5-alpha portable binaries 2016-10-14 08:38:06 +03:00
Yamashita, Yuu 1dee022342 Merge pull request #735 from scop/notes
Fedora users should tweak ~/.bashrc too
2016-10-12 11:56:51 +09:00
Yamashita, Yuu 31a3aec870 Merge pull request #726 from yyuu/osx-unicode-narrow-ucs2
Stop using ucs4 as default unicode encoding on OS X
2016-10-12 11:56:23 +09:00
Ville Skyttä 22ab0f8b2f Like Ubuntu, Fedora users should modify ~/.bashrc too 2016-10-11 22:39:25 +03:00
Ville Skyttä e04f2720b4 Make Ubuntu notes stand out better; add linebreak after zsh ones
Line break accomplished by two trailing spaces on the zsh lines.
2016-10-11 22:38:19 +03:00
Josh Friend aa36a3f69c Merge pull request #733 from scop/spelling
Spelling fixes
2016-10-11 10:04:27 -04:00
Yamashita, Yuu 7718410061 Merge pull request #734 from scop/pypy3355
Add PyPy3.3 v5.5-alpha
2016-10-11 22:15:06 +09:00
Ville Skyttä d5f18d4d82 Add PyPy3.3 v5.5-alpha 2016-10-11 14:42:09 +03:00
Ville Skyttä 725ff0c5dd Spelling fixes 2016-10-11 14:07:48 +03:00
Josh Friend ddc9b4d861 Merge pull request #731 from zmwangx/cpython-3.6.0b2
Add CPython 3.6.0b2 and remove 3.6.0b1
2016-10-10 22:29:57 -04:00
Zhiming Wang bf0cdcf980
Remove CPython 3.6.0b1 in favor of 3.6.0b2 2016-10-10 22:11:24 -04:00
Zhiming Wang 5fe403d7da
Add CPython 3.6.0b2
https://www.python.org/downloads/release/python-360b2/.
2016-10-10 22:10:32 -04:00
Yamashita, Yuu 77981bbf1a Merge pull request #730 from skirpichev/3.6
Point 3.6-dev to the 3.6 branch
2016-10-10 17:44:42 +09:00
Yamashita, Yuu e198792df2 Merge pull request #729 from BanzaiMan/python-3.7-dev
Add 3.7-dev definition
2016-10-10 17:43:39 +09:00
Sergey B Kirpichev 72d6b75b5c Point 3.6-dev to the 3.6 branch
As reported in travis-ci/travis-ci#6599,
the "default" Python branch has moved on to "3.7-dev".
2016-10-10 09:57:47 +03:00
Hiro Asari a87877c381 Add 3.7-dev definition
As reported in https://github.com/travis-ci/travis-ci/issues/6599,
the "default" Python branch has moved on to "3.7-dev".
2016-10-10 00:53:44 -04:00
Yamashita, Yuu ff67dc7036 Merge pull request #728 from Samureus/patch-1
Incorrect directory in the 32-bit version
2016-10-09 14:52:37 +09:00
Samuel Villamonte 096f0e2ba6 Incorrect directory in the 32-bit version 2016-10-09 00:41:43 -05:00
Yamashita, Yuu 35ecd398ac Fix test failure on OS X 2016-10-05 10:06:03 +09:00
Yamashita, Yuu 9f3f38d312 Add uname stubs to avoid test failures on OS X (#257) 2016-10-05 00:45:21 +00:00
Yamashita, Yuu 021b53f924 Stop specifying --enable-unicode=ucs4 on OS X (#257) 2016-10-05 00:32:57 +00:00
Yamashita, Yuu 8f4a361414 Merge pull request #725 from robsonpeixoto/venv-3.5.2-fix
Add patch to fix 3.5.2 bug - https://bugs.python.org/issue26664
2016-10-04 10:56:33 +09:00
Robson Roberto Souza Peixoto e5ce793ad5
Add patch to fix 3.5.2 bug - https://bugs.python.org/issue26664 2016-10-03 08:47:19 -03:00
Yamashita, Yuu 0e298b691d Merge pull request #718 from Samureus/pyston-0.5.1
Add Pyston 0.5.1
2016-10-03 10:29:50 +09:00
Samuel Villamonte 4336d8b43a Drop numpy install for now 2016-10-02 11:57:06 -05:00
Samuel Villamonte 46bc0b7558 Moved this too soon, verify_python() expects bin/python to be created first 2016-10-02 11:38:50 -05:00
Samuel Villamonte 858b318779 Add workaround hacks into pyston-0.5.1 2016-10-02 10:24:26 -05:00
Samuel Villamonte b662634abf Move virtualenv hack into pyston-0.5.1 2016-10-02 10:07:50 -05:00
Samuel Villamonte 7a957c5488 Fix missing reference to pypy_architecture 2016-09-26 21:16:52 -05:00
Samuel Villamonte 4e4bd42020 Changed pypy_architecture reference to pyston alias 2016-09-26 20:31:01 -05:00
Samuel Villamonte d24ce2494b Added pyston_architecture() alias to python-build 2016-09-26 20:28:46 -05:00
Samuel Villamonte 8acb4ebaba Delete pyston-0.5.1-numpy 2016-09-26 19:46:29 -05:00
Samuel Villamonte 4441eeada7 Merge branch 'master' into pyston-0.5.1 2016-09-26 00:49:53 -05:00
Yamashita, Yuu 80e769e8d6 Merge pull request #720 from Samureus/stackless-3.4.2
Add stackless-3.4.2 with SHA256 checksum
2016-09-26 14:44:17 +09:00
Samuel Villamonte e48c2d2f66 Add stackless-3.4.2 with SHA256 checksum 2016-09-25 23:21:50 -05:00
Yamashita, Yuu 7ee7eb108d Merge pull request #717 from Samureus/patch-1
Added SHA256 checksum
2016-09-26 10:32:37 +09:00
Samuel Villamonte 800488bbc1 Add pyston-0.5.1-numpy shim 2016-09-25 17:31:56 -05:00
Samuel Villamonte e03cb557b0 Add pyston-0.5.1 2016-09-25 17:27:36 -05:00
Samuel Villamonte 866dcd408e Add build_package_pyston() to python-build 2016-09-25 17:25:55 -05:00
Samuel Villamonte 7890b27bcf Added SHA256 checksum to stackless-2.7.9 2016-09-25 00:52:03 -05:00
Samuel Villamonte 7fed8c9c54 Added SHA256 checksum 2016-09-25 00:46:14 -05:00
Yamashita, Yuu 1f9eb6b25d Merge pull request #716 from Samureus/ironpython-2.7.6.3
Add ironpython-2.7.6.3
2016-09-25 10:26:51 +09:00
Yamashita, Yuu ed1bcc755a Merge pull request #714 from Samureus/stackless-2.7.9
Added stackless-2.7.9
2016-09-25 10:20:27 +09:00
Samuel Villamonte 7ac203bc11 Add ironpython-2.7.6.3 2016-09-24 11:43:24 -05:00
Samuel Villamonte 53fd32c2b6 Added stackless-2.7.9 2016-09-24 10:39:11 -05:00
Yamashita, Yuu d74daad8f5 v1.0.2 (fixes #709) 2016-09-20 00:52:19 +00:00
Yamashita, Yuu 5be82cb363 Merge pull request #706 from proinsias/proinsias-miniconda-4.1.11
Latest version of miniconda is 4.1.11 not 4.1.1
2016-09-16 00:19:13 +09:00
Francis T. O'Donovan 89a150f434
Latest version of miniconda is 4.1.11 not 4.1.1
My bad!
2016-09-15 09:49:02 -04:00
Yamashita, Yuu 7214f59385 Merge pull request #705 from proinsias/patch-4
Rearrange 'pyenv install' sections in COMMANDS.md
2016-09-15 22:37:15 +09:00
Francis T. O'Donovan 1fc3b48907 Rearrange 'pyenv install' sections in COMMANDS.md
I noticed that there were 3 sections for `pyenv install`, so I've rearranged these to make 1 section.
2016-09-15 09:28:54 -04:00
Yamashita, Yuu 47b6f545f3 Merge pull request #704 from proinsias/patch-3
Add miniconda3 4.1.1
2016-09-15 12:27:33 +09:00
Yamashita, Yuu ea7ae1ba1a Merge pull request #703 from proinsias/patch-2
Add miniconda2 4.1.1
2016-09-15 12:27:17 +09:00
Yamashita, Yuu 8b982b1cd4 Merge pull request #702 from proinsias/patch-1
Add anaconda2 4.1.1
2016-09-15 12:26:57 +09:00
Francis T. O'Donovan fe25b85982 Add miniconda3 4.1.1 2016-09-14 21:58:22 -04:00
Francis T. O'Donovan a2298f7660 Add miniconda2 4.1.1 2016-09-14 21:57:09 -04:00
Francis T. O'Donovan fd19e45fa9 Add anaconda2 4.1.1 2016-09-14 21:54:31 -04:00
Yamashita, Yuu 7531e7779f Merge pull request #701 from proinsias/patch-1
Add anaconda3 4.1.1
2016-09-15 07:03:14 +09:00
Francis T. O'Donovan 9c78edcdaf Add anaconda3 4.1.1 2016-09-14 17:34:37 -04:00
Yamashita, Yuu 8305eaefe3 Merge pull request #700 from yyuu/issue687
Remove `bin.orig` if it already exists
2016-09-14 09:56:39 +09:00
Yamashita, Yuu bc4abf06bd Remove bin.orig if it already exists (fixes #687)
The directory may exist if the `build_package_symlink_version_suffix`
ran multiple times.
2016-09-14 09:54:01 +09:00
s1341 36647a66de Only mv bin to bin.orig the first time, otherwise the mv will fail 2016-09-14 09:53:19 +09:00
Yamashita, Yuu 79fca42c35 Merge pull request #699 from zmwangx/3.6.0b1
Add CPython 3.6.0b1 and remove 3.6.0a4
2016-09-14 09:37:13 +09:00
Zhiming Wang 9dcc477c3f
Remove CPython 3.6.0a4 in favor of 3.6.0b1 2016-09-13 00:29:00 -04:00
Zhiming Wang 5462e8df8c
Add CPython 3.6.0b1
https://www.python.org/downloads/release/python-360b1/
2016-09-13 00:28:41 -04:00
Samuel Villamonte 61ce66a7c6 Added warning message 2016-09-09 07:38:19 -05:00
Samuel Villamonte bde78e83a0 Added latest pypy 3.5 nightly build 2016-09-09 01:34:48 -05:00
Yamashita, Yuu a0c5fe42e9 v1.0.1 (#694) 2016-09-09 05:26:49 +00:00
Yamashita, Yuu 3e433b2949 Merge pull request #697 from Samureus/pypy2-5.4.1
Added pypy2-5.4.1 and pypy-5.4.1
2016-09-09 14:23:43 +09:00
Samuel Villamonte d3b71cfb0b Merge branch 'master' into pypy2-5.4.1 2016-09-08 23:53:12 -05:00
Samuel Villamonte ba945d229c Update pypy2-5.4.1
Updated comment and fixed typo.
2016-09-08 23:50:09 -05:00
Yamashita, Yuu 4e192a6851 Merge pull request #695 from Samureus/pypy2-5.4.1-src
Added pypy2-5.4.1-src
2016-09-09 13:41:08 +09:00
Samuel Villamonte 85354377dd Forgot about shim sorry 2016-09-08 23:34:15 -05:00
Samuel Villamonte 654b645984 Merge branch 'master' into pypy2-5.4.1-src 2016-09-08 23:24:44 -05:00
Samuel Villamonte e44f7399f5 Added pypy2-5.4.1 and pypy-5.4.1 2016-09-08 23:21:41 -05:00
Yamashita, Yuu 45173d1f67 Merge pull request #696 from Samureus/pypy-portable-5.4.1
Added pypy-portable-5.4.1 now
2016-09-09 13:09:51 +09:00
Samuel Villamonte baeecdfc7d Added pypy-portable-5.4.1 now 2016-09-08 22:38:09 -05:00
Samuel Villamonte b2ee05b931 Added pypy2-5.4.1-src 2016-09-08 22:19:21 -05:00
Yamashita, Yuu 6601c34408 Update change log [ci skip] 2016-09-06 01:16:49 +00:00
Yamashita, Yuu 7417b6d57f Merge pull request #686 from Samureus/pypy2-5.4-updated
Updated pypy2-5.4 with portable pypy links
2016-09-03 11:31:23 +09:00
Samuel Villamonte 3d89369f50 Updated pypy2-5.4 with portable pypy links 2016-09-02 20:25:12 -05:00
Yamashita, Yuu c6ff64220f Merge pull request #685 from Samureus/pypy-portable-5.4
Added pypy-portable-5.4
2016-09-03 10:23:56 +09:00
Samuel Villamonte 44df355099 Added pypy-portable-5.4 2016-09-02 20:08:50 -05:00
Yamashita, Yuu 414a512f47 Add pypy2-5.3.1-src 2016-09-01 04:41:35 +00:00
Yamashita, Yuu 165fbb2c1d Add PyPy2 5.4 2016-09-01 04:36:56 +00:00
Yamashita, Yuu 11476f7a31 Merge pull request #684 from yyuu/pypy-to-pypy2
Rename pypy 5.x definitions as `pypy2`
2016-09-01 13:29:08 +09:00
Yamashita, Yuu 15b336da84 s/pypy/&2/ in error messages 2016-09-01 04:26:20 +00:00
Yamashita, Yuu d15140fea6 Rename pypy 5.x definitions as pypy2 2016-09-01 04:22:46 +00:00
Yamashita, Yuu 955d517588 Merge pull request #683 from Samureus/pypy-5.4-src
Added pypy-5.4-src
2016-09-01 13:18:21 +09:00
Samuel Villamonte e7943da3f5 Added pypy-5.4-src 2016-08-31 21:50:41 -05:00
Yamashita, Yuu dcc109f8be Merge pull request #680 from hawkowl/https
make all http source urls https
2016-08-24 10:19:34 +09:00
Amber Brown (HawkOwl) 778bb2e10f stackless over https too 2016-08-24 03:22:10 +08:00
Amber Brown (HawkOwl) 12447f67f5 make all http source urls https 2016-08-24 02:07:27 +08:00
Josef Hoerandtner e29dd67ce8 Add default-packages to .gitignore
The plugin pyenv-default-packages uses `$(pyenv root)/default-packages`
as configuration file. Since this plugin is listed as approved, I
assume it makes sense to have the file permanently ignored by Git.
2016-08-16 21:43:55 +02:00
Yamashita, Yuu e23b9e90b4 Merge pull request #673 from zmwangx/3.6.0a4
Add CPython 3.6.0a4; remove 3.6.0a1 and 3.6.0a3
2016-08-16 18:02:41 +09:00
Zhiming Wang 7dd33c27c2
Remove CPython 3.6.0a1 and 3.6.0a3 in favor of 3.6.0a4 2016-08-16 16:24:08 +08:00
Zhiming Wang cbcf03d327
Add CPython 3.6.0a4
https://www.python.org/downloads/release/python-360a4/
2016-08-16 16:23:34 +08:00
Yamashita, Yuu 7fadd939ad v1.0.0 (fixes #520) 2016-08-15 08:30:01 +00:00
Yamashita, Yuu 4e10692a1e Merge pull request #671 from yyuu/issue610
Show meaningful message on missing executable (fixes #610)
2016-08-15 15:08:09 +09:00
Yamashita, Yuu fb757053c8 Show meaningful message on missing executable (fixes #610) 2016-08-15 06:01:55 +00:00
Yamashita, Yuu 949c1dab8d Merge pull request #670 from yyuu/conda-rehash-config
Split blacklist of conda's system executables
2016-08-15 15:00:07 +09:00
Yamashita, Yuu d8559b9749 Workaround for performance issue with conda.txt
The performance issue must be caused by too many I/O requests to
`conda.txt` from fgrep. This inline expansion should work to reduce # of
read to the `conda.txt`.

original performance:

```
% git rev-parse HEAD
4f76be6a12
% time bash -c 'pyenv rehash'
bash -c 'pyenv rehash'  0.05s user 0.02s system 76% cpu 0.089 total
```

previous commit: ==> 4x slower than original

```
% git rev-parse HEAD
4469d51ef7
% time bash -c 'pyenv rehash'
bash -c 'pyenv rehash'  0.06s user 0.03s system 25% cpu 0.358 total
```

with this workaround: ==> almost same as original

```
% git rev-parse HEAD
3ffe91bdbc69220eaecf6e2088229cc27366c3f3
% time bash -c 'pyenv rehash'
bash -c 'pyenv rehash'  0.05s user 0.00s system 68% cpu 0.082 total
```
2016-08-15 05:49:50 +00:00
Yamashita, Yuu 4469d51ef7 Extract conda's system command list to anaconda.txt 2016-08-15 05:48:25 +00:00
Yamashita, Yuu 4f76be6a12 anaconda.bash is misleading. It's not only for anaconda, but for all conda 2016-08-15 05:40:15 +00:00
Yamashita, Yuu 81b89e16db Update change log [ci skip] 2016-08-15 05:31:45 +00:00
Yamashita, Yuu a62f1a4423 Merge pull request #669 from yyuu/rbenv-20160815
rbenv 20160815
2016-08-15 14:30:03 +09:00
Yamashita, Yuu a02f5dde4f s/rbenv/pyenv/g 2016-08-15 05:22:59 +00:00
Yamashita, Yuu cf1beda362 Merge remote-tracking branch 'rbenv/master' into rbenv-20160815 2016-08-15 05:14:24 +00:00
Yamashita, Yuu 8aebe3b43d Update change log [ci skip] 2016-08-15 04:47:22 +00:00
Yamashita, Yuu 9a10674ab9 Merge pull request #668 from yyuu/ruby-build-20160602
ruby-build 20160602
2016-08-15 13:45:19 +09:00
Yamashita, Yuu 66c8ca6cff Import changes in rbenv/ruby-build#979 2016-08-15 04:42:50 +00:00
Yamashita, Yuu 3a1379cb34 Import changes from ruby-build v20160602 2016-08-15 04:40:09 +00:00
Yamashita, Yuu 740fbe4bda Merge pull request #661 from yyuu/workaroud-bin-python
Add workaround for `/bin/python`
2016-08-03 22:48:46 +09:00
Yamashita, Yuu 93ece2ac16 Rewrite with using here document syntax 2016-08-03 06:31:27 +00:00
Yamashita, Yuu bc8dba4bea Always create bin as symlink to framework path if the version was built with --enable-frameowrk (#590)
Actually I'm not 100% sure what was going on, but it seems CPython build
script may create `bin` as directory instead of symlink even if
`--enable-framework` was specified.
2016-08-03 10:48:44 +09:00
Yamashita, Yuu 1b35cfaa2c 1) Remove useless touch 2) Add explicit shebang line to executable for testing 2016-08-03 01:34:42 +00:00
Yamashita, Yuu b8885e4fe2 Keep using original PATH ordering in test_helper 2016-08-02 00:23:47 +00:00
Yamashita, Yuu 5c83c4abb7 Add test for /bin/python case 2016-08-01 00:19:04 +00:00
Yamashita, Yuu 7da05ee964 v20160726 2016-07-26 08:06:31 +00:00
Yamashita, Yuu 21131ee493 Merge pull request #663 from yyuu/bsd-tar-xz
Use `.tar.xz` archive only if `tar` supports `-J` (especially on *BSD)
2016-07-26 16:59:07 +09:00
Yamashita, Yuu ac07d63780 Add workaround for conflict of rehash hook between pyenv-virtualenv 2016-07-26 07:47:02 +00:00
Yamashita, Yuu ad9805a455 Don't need to create temporary files since tar(1) writes to stdout by default 2016-07-26 07:22:47 +00:00
Yamashita, Yuu e0fdded2cd Use .tar.xz archive only if tar supports -J (especially on *BSD) (#654) 2016-07-25 01:17:22 +00:00
Yamashita, Yuu 4df7cf2dd6 Add workaround for /bin/python (#628) 2016-07-21 02:45:27 +00:00
Yamashita, Yuu e93ae00ca1 Write help message to stdout just like other commands (#650, #651) 2016-07-20 00:25:09 +00:00
Yamashita, Yuu a761ff602d Merge pull request #657 from zmwangx/cpython-3.6.0a3
Add CPython 3.6.0a3 and remove 3.6.0a2
2016-07-12 17:58:03 +09:00
Zhiming Wang 253d79503d
Remove CPython 3.6.0a2 in favor of 3.6.0a3 2016-07-12 14:39:22 +08:00
Zhiming Wang f3e7005fb1
Add CPython 3.6.0a3 2016-07-12 14:38:54 +08:00
Yamashita, Yuu 2ad9dfd217 Merge pull request #654 from yyuu/tgz-to-tar-xz
Use xz archive instead of gzip archive
2016-07-05 11:25:59 +09:00
Yamashita, Yuu 9e8df34124 MD5 -> SHA256 2016-07-05 02:21:51 +00:00
Yamashita, Yuu 7a61486b5c PyPy 5.1.1 binary isn't available for ppc64(le)? 2016-07-05 02:14:21 +00:00
Yamashita, Yuu c3cefd9588 Add anaconda[23]-4.1.0 2016-07-05 00:38:02 +00:00
Yamashita, Yuu 4771e05c53 Use xz archive instead of gzip archive 2016-07-04 09:34:57 +00:00
Yamashita, Yuu 331f68260b 3.4.3: MD5 -> SHA256 2016-07-04 08:52:08 +00:00
Yamashita, Yuu c803130a9d Merge pull request #651 from yyuu/sh-help-stderr
Messages should not be written to stdout if the command is `sh-` command
2016-07-01 09:13:42 +09:00
Yamashita, Yuu 24ba8ce904 Merge pull request #653 from yyuu/rbenv-20160701
rbenv 20160701
2016-07-01 09:05:46 +09:00
Yamashita, Yuu 727b8b02ac Merge remote-tracking branch 'rbenv/master' into rbenv-20160701 2016-07-01 00:00:35 +00:00
Yamashita, Yuu de4c2a91d4 Merge pull request #652 from nicktimko/patch-1
Use non-broken 3.6.0a2 xz archive
2016-07-01 08:53:23 +09:00
Nick Timkovich aedbd8d046 Use non-broken 3.6.0a2 xz archive
Fixes #647. Also reduces potential demonic invasions through reduction of `666`s.
2016-06-30 15:41:47 -05:00
Yamashita, Yuu 25d3ca7fdf Messages should not be written in stdout if the command is sh- command (fixes #650) 2016-06-30 09:48:00 +00:00
Yamashita, Yuu 081f539cbc Merge pull request #648 from JayH5/fix-pypy-5-3-1
pypy-5.3.1: Remove stray text
2016-06-29 19:14:29 +09:00
Jamie Hewland 1e75a11d32 pypy-5.3.1: Remove stray text 2016-06-29 11:50:52 +02:00
Josh Friend 7d709586ee
v20160629 2016-06-28 22:09:39 -04:00
Josh Friend 962c7827fb Add PyPY 5.3.1
closes #646
2016-06-28 22:08:16 -04:00
Yamashita, Yuu e8c1f0dccf Merge pull request #645 from zmwangx/cpython-2.7.12
Add CPython 2.7.12 and remove 2.7.12rc1
2016-06-28 16:31:39 +09:00
Zhiming Wang 0e698ffc4c
Remove CPython 2.7.12rc1 in favor of 2.7.12 2016-06-28 13:34:42 +08:00
Zhiming Wang 5298c4bd1b
Add CPython 2.7.12 2016-06-28 13:34:20 +08:00
Yamashita, Yuu 9cd200b98c v20160628 (fixes #644) 2016-06-28 00:34:58 +00:00
Josh Friend efef9d8c5c Remove CPython release candidates 3.4.5 and 3.5.2 2016-06-27 08:39:10 -04:00
Yamashita, Yuu 5e7bd78766 Merge pull request #643 from zmwangx/cpython-3.4.5-and-3.5.2
Add CPython 3.4.5 and 3.5.2
2016-06-27 19:48:37 +09:00
Zhiming Wang 4967a7f495
Add CPython 3.5.2 2016-06-27 18:45:01 +08:00
Zhiming Wang 803697feb2
Add CPython 3.4.5 2016-06-27 18:44:23 +08:00
Yamashita, Yuu fcbb1a24fd Merge pull request #642 from yyuu/stop-calling-verify-pyxx-twice
Added `build_package_symlink_version_suffix` to stop calling `verify_pyXX`
2016-06-27 09:43:32 +09:00
Yamashita, Yuu f22d0e969b Added build_package_symlink_version_suffix to stop calling verify_pyXX twice (#638) 2016-06-27 00:39:49 +00:00
Yamashita, Yuu 3d263c8fa3 verify_pyXX before and after ensurepip to ensure there's python executable (#638) 2016-06-24 09:43:00 +00:00
Yamashita, Yuu ae40042ff8 veirfy_pyXX should be called after ensurepip (#638) 2016-06-24 08:58:45 +00:00
Yamashita, Yuu 8579fd4567 build_package_ensurepip should be called earlier than build_package_verify_py33 to generate symlink of pip from pip3.3 (fixes #638) 2016-06-24 08:56:03 +00:00
Yamashita, Yuu c4e012d5e3 Prevent loading user's aria2.conf (fixes #625) 2016-06-22 00:38:38 +00:00
Yamashita, Yuu f64f7c7c49 Merge pull request #634 from yyuu/use-curl-stub-in-tests
Use `curl` stub instead of `aria2c` during tests
2016-06-21 09:38:16 +09:00
Yamashita, Yuu 0dcce750b9 Use curl stub instead of aria2c during tests (equiv to rbenv/ruby-build#965) 2016-06-21 00:31:19 +00:00
Josh Friend a300254841 Added new pythons to changelog 2016-06-15 22:07:04 -04:00
Josh Friend 57df303a2c Added CPython 2.7.12rc1 2016-06-15 22:02:24 -04:00
Yamashita, Yuu aed0eaeceb Add PyPy3.3 v5.2-alpha1 2016-06-15 03:16:40 +00:00
Yamashita, Yuu bbe84d0411 Fix the name of pypy-5.3-src 2016-06-15 03:00:51 +00:00
Yamashita, Yuu 2145efec42 Merge pull request #630 from zmwangx/cpython-3.6.0a2
Add CPython 3.6.0a2
2016-06-14 18:49:25 +09:00
Zhiming Wang cd3ace7d97
Add CPython 3.6.0a2
https://www.python.org/downloads/release/python-360a2/.
2016-06-13 22:51:30 -07:00
Josh Friend 8781d132e7 Fix CPython 3.4.5rc1 install 2016-06-13 14:16:08 -04:00
Josh Friend f66b8ead99 Add CPython 3.4.5rc1
NOTE: 3.4.5rc1 does not create a `python` executable shortcut like
other pythons, it only creates `python3`
2016-06-13 13:30:13 -04:00
Josh Friend 8b414ce31d Add CPython 3.5.2rc1 2016-06-13 13:28:58 -04:00
Josh Friend aa7b6420ce Add PyPy2 5.3
Closes #626
2016-06-08 14:41:19 -04:00
Yamashita, Yuu 216244fbac pyenv should not manage shims for all xz related executables 2016-06-08 05:29:04 +00:00
Yamashita, Yuu 4c654d703e Merge pull request #620 from yyuu/workaround-aria2c-stdout
Write remote content on stdout with `aria2c`
2016-06-02 11:04:41 +09:00
Yamashita, Yuu 02c7589d2a pwd of build_package_* must be $BUILD_PATH 2016-06-02 01:51:32 +00:00
Yamashita, Yuu 69d5656311 Import functions from ruby-build v20160426-33-g3304f96
I should add EOL warnings to old versions later....
2016-06-02 01:49:10 +00:00
Yamashita, Yuu 4d64f84a25 http_get_aria2c should return proper value on aria2c failures 2016-06-02 01:43:57 +00:00
Yamashita, Yuu 42cffbc82d Fix broken tests related to changes in aria2c arguments 2016-06-02 01:38:23 +00:00
Yamashita, Yuu c8c40cff21 Write remote content on stdout with aria2c (fixes #619, #534)
`aria2c` doesn't support writing content to stdout. As a workaround,
this patch will use temporary file then write content on stdout once
finished downloading.
2016-06-01 06:55:59 +00:00
Yamashita, Yuu 10957b786a Merge pull request #618 from jayvdb/stackless-dev-py35
Update stackless-dev to check for Python 3.5
2016-06-01 07:31:18 +09:00
John Vandenberg 9e07319cf9 Update stackless-dev to check for Python 3.5 2016-06-01 05:19:36 +07:00
Yamashita, Yuu 03f8029c41 Merge pull request #615 from cha-ron/fish-depcrecated-period
"." has been deprecated in the fish shell in favor of explicit "source"
2016-05-30 09:10:36 +09:00
McTavish McArdle 5f20bc258f "." has been deprecated in the fish shell in favor of explicit "source" 2016-05-28 18:29:45 -04:00
Yamashita, Yuu 75fd97803d Require GCC for CPython prior to 2.4.4 (fixes #613) 2016-05-27 06:44:07 +00:00
Yamashita, Yuu 9993d13996 Merge pull request #539 from yyuu/download-aria2c
Use `aria2c` as the download if available (#534)
2016-05-26 09:30:39 +09:00
Yamashita, Yuu c71cf59f50 Merge branch 'master' into download-aria2c 2016-05-26 09:28:45 +09:00
Yamashita, Yuu 8ea88dee1c Trivial fixes 2016-05-26 00:22:54 +00:00
Yamashita, Yuu 97da7c40e7 Merge pull request #608 from yyuu/skip-create-conda-shims-reloaded
Skip creating shims for conda's system executables, more reliably
2016-05-24 23:05:14 +09:00
Yamashita, Yuu 1921dbef18 Skip creating shims for conda's system executables, more reliably (#594, #595) 2016-05-24 01:01:41 +00:00
Yamashita, Yuu 0a73b8f886 Merge pull request #595 from yyuu/anaconda-rehash
Skip creating shims for system executables bundled with Anaconda (#594)
2016-05-19 09:19:06 +09:00
Yamashita, Yuu 4a8947d1a6 Remove which hook for Anaconda in favor of rehash hook 2016-05-19 00:14:22 +00:00
Yamashita, Yuu e748c14db8 Skip creating shims for system executables bundled with Anaconda (fixes #594, #599)
With this, we'd be able to remove a hook script for `pyenv which`
eventually.
2016-05-19 00:13:37 +00:00
Yamashita, Yuu cd3103340c Merge pull request #604 from zmwangx/cpython-3.6.0a1
Add CPython 3.6.0a1
2016-05-18 17:40:11 +09:00
Zhiming Wang 4543ff88bc
Add CPython 3.6.0a1
https://www.python.org/downloads/release/python-360a1/
2016-05-17 23:14:58 -07:00
Yamashita, Yuu 2017dd0c25 v20160509 2016-05-09 00:45:51 +00:00
Yamashita, Yuu 24d05343f8 PyPy 5.1 binary for linux x86 is built for Ubuntu 12.04 - 14.04 2016-05-09 00:41:50 +00:00
Yamashita, Yuu aa305d2c3d Add PyPy 5.1.1 (fixes #591) 2016-05-09 00:39:53 +00:00
Yamashita, Yuu 73ca25e49b Merge pull request #593 from Samureus/PyPy-5.1.1-src
Pypy 5.1.1 src
2016-05-09 09:28:02 +09:00
Samuel Villamonte 25184d9fca Added PyPy 5.1.1-src 2016-05-08 13:51:10 -05:00
Samuel Villamonte d948274305 Merge pull request #1 from Samureus/Portable-PyPy-5.1.1
Added PyPy Portable 5.1.1
2016-05-08 12:59:28 -05:00
Samuel Villamonte 444bb360a8 Added PyPy Portable 5.1.1
Only tested 64-bit
2016-05-08 12:58:36 -05:00
Yamashita, Yuu d0fae57c4d miniconda3 releases are Python 3 2016-05-06 08:57:23 +00:00
Yamashita, Yuu 37ad781061 Add miniconda2/3 4.0.5 2016-05-06 08:51:43 +00:00
Yamashita, Yuu a8664a2339 Fixed wrong SHA256 for pypy-5.1-linux_x86_64-portable.tar.bz2 (fixes #586) 2016-05-02 00:18:56 +00:00
Josh Friend 78b9cee98e v20160422 2016-04-22 08:56:37 -04:00
Josh Friend f72fc8eabc Add PyPy 5.1 Portable 2016-04-21 18:44:50 -04:00
Josh Friend 180ff6c955 Add PyPy 5.1
Closes #579
2016-04-21 09:09:52 -04:00
Yamashita, Yuu 6a8003d56d I realized that at least miniconda3-3.19.0 contains xz in it.
Basically I'd like to use system pakcage for `xz` command as much as
possible.
2016-04-20 05:51:35 +00:00
Yamashita, Yuu 739392a2e4 Merge pull request #577 from anthrotype/jython-2.7.1b3
Add Jython 2.7.1 beta3
2016-04-15 19:34:41 +09:00
Cosimo Lupo 0a19b2fa02 Add Jython 2.7.1 beta3 2016-04-15 08:53:47 +01:00
Yamashita, Yuu d594bcadb3 Merge pull request #572 from SNakano/anaconda-4.0.0
Add Anaconda 4.0.0
2016-04-09 13:53:12 +09:00
SNakano eb6e24cef1 Add Anaconda 4.0.0 2016-04-09 10:42:48 +09:00
Josh Friend 9c12b302eb Add PyPy Portable 5.0.1 2016-03-19 17:45:46 -04:00
Josh Friend cdf7e6c924 Add PyPy 5.0.1
closes #558
2016-03-19 09:30:37 -04:00
Josh Friend bd312d652e Add PyPy 5.0 Portable 2016-03-19 09:05:28 -04:00
Yamashita, Yuu 916d0eae8e Merge pull request #556 from jackmaney/master
Fixed date in version
2016-03-12 08:55:41 +09:00
Jack Maney 23364549d7 Merge pull request #1 from jackmaney/jackmaney-fix-date
Fixed version date
2016-03-11 09:35:28 -06:00
Jack Maney e92a7de031 Fixed version date
`s/2015/2016/`
2016-03-11 09:35:11 -06:00
Josh Friend 8ef30d9e4d v20160310 2016-03-10 20:28:49 -05:00
Yamashita, Yuu 74d5dba06a Fix wrong distro version checks for PyPy binaries 2016-03-11 01:02:01 +00:00
Yamashita, Yuu 6bd7927333 Basically we don't have to run rehash explicitly anymore (fixes #553) 2016-03-11 01:02:01 +00:00
Josh Friend 4684507021 Add PyPy 5.0.0
closes #555
2016-03-10 19:37:50 -05:00
Yamashita, Yuu 12069a1118 Merge pull request #549 from yyuu/rbenv-1.0
rbenv 1.0+
2016-03-04 09:37:56 +09:00
Yamashita, Yuu 30538b0672 Fix broken tests for pyenv---version
I need to use release date versioning at least for now until preparing
custom version comparator for brew's formula.
2016-03-04 00:31:04 +00:00
Yamashita, Yuu fd893ea3b0 Fix broken test for pyenv-version-name 2016-03-04 00:10:48 +00:00
Yamashita, Yuu be3fc6d8cb Fix broken pyenv local 2016-03-04 00:00:53 +00:00
Yamashita, Yuu 7467c88780 v20160303 2016-03-03 00:43:07 +00:00
Yamashita, Yuu d75b1a12d7 Removed diff between ruby-build <-> python-build a little 2016-03-03 00:37:22 +00:00
Yamashita, Yuu 7db657beb5 Upgrade OpenSSL to 1.0.2g (fixes #550) 2016-03-03 00:29:00 +00:00
Yamashita, Yuu 41ce3aade2 Merge remote-tracking branch 'rbenv/master' into rbenv-1.0 2016-03-02 01:39:52 +00:00
Yamashita, Yuu 0c4392bf16 Merge pull request #547 from hackaugusto/master
Added pypy-dev special case in pyenv-install to use py27
2016-03-01 21:41:01 +09:00
Augusto F. Hack d2e2c61c51 added pypy-dev special case in pyenv-install to use py27 2016-03-01 09:35:32 -03:00
Yamashita, Yuu e1aac2a12c Merge branch 'issue546' 2016-03-01 00:02:27 +00:00
Yamashita, Yuu b1cccdb24c Revert fetch_nightly_tarball which is used from PyPy's nightly build (fixes #546) 2016-03-01 00:01:50 +00:00
Yamashita, Yuu a6f1f480eb Merge pull request #542 from yyuu/default-unicode-ucs4
Compile with `--enable-unicode=ucs4` by default for CPython
2016-02-17 20:33:52 +09:00
Yamashita, Yuu d8fe9fd0cb Merge pull request #543 from kuanyili/update-continuum
Update build scripts for Continuum products
2016-02-15 17:56:13 +09:00
Kuan-Yi Li dc97ef3dbe Add anaconda[23]-2.5.0 2016-02-15 15:44:11 +08:00
Kuan-Yi Li efb00b65bf Switch download URL of Continuum products from HTTP to HTTPS
Conda access official Continuum repository through HTTPS now. Making the
switch for better security and privacy.
2016-02-15 15:31:57 +08:00
Yamashita, Yuu 5436020ec3 Add a test for custom value for --enable-unicode 2016-02-15 00:42:34 +00:00
Yamashita, Yuu b37361b862 Fix broken tests with --enable-unicode=ucs4 by default 2016-02-15 00:37:20 +00:00
Yamashita, Yuu 90e6e30d63 Compile with --enable-unicode=ucs4 by default for CPython (fixes #257) 2016-02-15 00:27:40 +00:00
Yamashita, Yuu a0e0f1637a Just a style issue; use export instead of unset like other variables 2016-02-13 03:49:28 +00:00
Yamashita, Yuu cd8f61b5e0 Allow overriding aria2c/curl/wget via environment variable (#534) 2016-02-13 02:50:51 +00:00
Yamashita, Yuu fbc40aae77 Increased verbosity of aria2c downloader (#534) 2016-02-12 07:08:59 +00:00
Yamashita, Yuu b116f341fe Use aria2c as the download if available (#534) 2016-02-08 12:45:28 +00:00
Yamashita, Yuu c8ab429d7b Import recent changes from ruby-build 20160130 2016-02-08 00:19:05 +00:00
Yamashita, Yuu f2f703d6d9 Merge pull request #536 from patrick91/patch-1
Documenting the skip-existing option for install
2016-02-05 17:54:45 +09:00
Patrick Arminio 2de5ca0846 Documenting the skip-existing option for install 2016-02-05 09:50:02 +01:00
Yamashita, Yuu 425e44d064 v20160202 2016-02-02 08:43:21 +00:00
Yamashita, Yuu b84b9ce532 Use setuptools 17.1.1 for Python 3.0-3.2 to prevent the following warning (#531)
```
/home/yyuu/.pyenv/versions/3.2.6/lib/python3.2/site-packages/pkg_resources/__init__.py:85: UserWarning: Support for Python 3.0-3.2 has been dropped. Future versions will fail here.
  warnings.warn(msg)
```
2016-01-30 04:38:29 +00:00
Yamashita, Yuu dcec0cedf4 Add patches for Stackless 3.2.x to fix build failures 2016-01-30 02:37:15 +00:00
Yamashita, Yuu 1dc9ef24df Use pip 7.1.2 for CPython 3.2.x (#531) 2016-01-30 02:18:56 +00:00
Yamashita, Yuu 5c5205e172 Remove broken 3.4.4rc1 (fixes #515) 2016-01-01 02:12:55 +00:00
Yamashita, Yuu 4c06f23aaf Run rehash after conda install 2015-12-23 08:09:40 +00:00
Yamashita, Yuu 046f5bde02 Add miniconda latest 2015-12-23 07:54:47 +00:00
Yamashita, Yuu c678bb1eaa Add anaconda[23]-2.4.1 2015-12-23 07:41:52 +00:00
Yamashita, Yuu 5e72a4c3e3 Add miniconda[23]-3.19.0 2015-12-23 06:57:51 +00:00
Yamashita, Yuu 23669162c0 Rename anaconda/miniconda to anaconda2/miniconda2 2015-12-23 06:54:28 +00:00
Yamashita, Yuu 01835c2682 Merge pull request #511 from dirn/cpython-3.4.4
Add CPython 3.4.4
2015-12-23 01:00:11 +09:00
Andy Dirnberger 4243ac6ffc Add CPython 3.4.4 2015-12-22 10:58:48 -05:00
Yamashita, Yuu b0f29d511a v20151222 2015-12-22 10:45:34 +00:00
Yamashita, Yuu 3031cb9750 Add workaround for test failure on Arch Linux (#480) 2015-12-20 12:29:30 +00:00
Yamashita, Yuu 6bcb1d6211 Merge pull request #510 from yyuu/no-ssl3-for-py30-py31-py32
`OPENSSL_NO_SSL3` patch for 3.0.x, 3.1.x and 3.2.x
2015-12-20 16:54:04 +09:00
Yamashita, Yuu 3d1ba0c58c Add OPENSSL_NO_SSL2 & OPENSSL_NO_SSL3 patch for 3.0.1, 3.1 and 3.1.2 2015-12-20 07:46:36 +00:00
Yamashita, Yuu 68e8945f74 Add OPENSSL_NO_SSL2 & OPENSSL_NO_SSL3 patch for 3.1.3 2015-12-20 07:46:01 +00:00
Yamashita, Yuu 3ddbb19663 Add OPENSSL_NO_SSL3 patch for 3.1.4 .. 3.1.5 2015-12-20 07:45:39 +00:00
Yamashita, Yuu 763a30bb1d Add OPENSSL_NO_SSL3 patch for 3.2 2015-12-20 07:16:08 +00:00
Yamashita, Yuu 9a33ce643e Add OPENSSL_NO_SSL3 patch for 3.2.1 2015-12-20 07:15:57 +00:00
Yamashita, Yuu b29c54ee0a Add OPENSSL_NO_SSL3 patch for 3.2.2 2015-12-20 07:15:46 +00:00
Yamashita, Yuu 58275fc52b Add OPENSSL_NO_SSL3 patch for 3.2.3 .. 3.2.6 2015-12-20 06:55:46 +00:00
Yamashita, Yuu dc4b355aad Update OPENSSL_NO_SSL3 patch for 3.3.x to remove unnecessary imports 2015-12-20 06:55:46 +00:00
Yamashita, Yuu 9f1daac9f7 Merge pull request #507 from yyuu/openssl-no-ssl3
`OPENSSL_NO_SSL3` patch for 2.6, 2.7, 3.3 and 3.4
2015-12-18 23:59:25 +09:00
Yamashita, Yuu 471fa24531 Add OPENSSL_NO_SSL2 & OPENSSL_NO_SSL3 patch for 2.6.6 .. 2.6.8 2015-12-18 14:54:04 +00:00
Yamashita, Yuu f228825879 Add OPENSSL_NO_SSL2 & OPENSSL_NO_SSL3 patch for 2.6.9 2015-12-18 14:53:39 +00:00
Yamashita, Yuu 8c96897495 Add OPENSSL_NO_SSL2 & OPENSSL_NO_SSL3 patch for 2.7 .. 2.7.1 2015-12-18 14:25:01 +00:00
Yamashita, Yuu 659e532701 Add OPENSSL_NO_SSL3 patch for 2.7.2 2015-12-18 14:24:49 +00:00
Yamashita, Yuu 5f0056886a Add OPENSSL_NO_SSL3 patch for 2.7.3 .. 2.7.8 2015-12-18 14:24:37 +00:00
Yamashita, Yuu bc322b0238 Add OPENSSL_NO_SSL3 patch for 2.7.9 2015-12-18 14:24:22 +00:00
Yamashita, Yuu 6251c3bad5 Add OPENSSL_NO_SSL3 patch for 3.3.x 2015-12-18 13:47:09 +00:00
Yamashita, Yuu 526fa03968 Add OPENSSL_NO_SSL3 patch for 3.4.x 2015-12-18 13:46:56 +00:00
Yamashita, Yuu d6e0120cc8 Use http://www.python.org instead of http://python.org since former is configured to use fast.ly
```
% dig python.org. A
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 9216
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; python.org.  IN      A

;; ANSWER SECTION:
python.org.     5       IN      A       104.130.43.121

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 3 msec
;; SERVER: 192.168.44.2
;; WHEN: Wed Dec 16 06:08:20 2015
;; MSG SIZE  rcvd: 44
```

```
% dig www.python.org. A
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 22050
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; www.python.org.      IN      A

;; ANSWER SECTION:
www.python.org. 5       IN      CNAME   python.map.fastly.net.
python.map.fastly.net.  5       IN      A       103.245.222.223

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 7 msec
;; SERVER: 192.168.44.2
;; WHEN: Wed Dec 16 06:08:23 2015
;; MSG SIZE  rcvd: 83
```
2015-12-16 06:07:48 +00:00
Daniel Hahler 66bd348600 Merge pull request #504 from blueyed/merge-rbenv
Merge rbenv/master
2015-12-14 14:13:42 +01:00
Daniel Hahler 03ece82197 Merge remote-tracking branch 'rbenv/master'
Using `git merge rbenv/master -s recursive -X rename-threshold=5%`.

Conflicts:
	README.md
	bin/python-local-exec
	libexec/pyenv
	libexec/pyenv-help
	test/--version.bats
2015-12-14 13:47:11 +01:00
Yamashita, Yuu e66dcf258c curl bundled with Anaconda does not work on Debian 2015-12-11 08:28:51 +00:00
Yamashita, Yuu fab6a0fcd1 v20151210 2015-12-10 08:27:05 +00:00
Josh Friend c4968f7a48 Add CPython 3.4.4rc1 2015-12-09 16:09:18 -05:00
Josh Friend d0e9cd7d7e Remove old 2.7.11 release candidate 2015-12-09 16:09:18 -05:00
Yamashita, Yuu 3185dee8a2 Copied OPENSSL_NO_SSL3 patch to 2.7 series (#495) 2015-12-09 01:18:41 +00:00
Yamashita, Yuu 05615587d0 Merge pull request #495 from catlee/master
Adding SSL patch to build 2.7.3 on Debian
2015-12-09 08:58:23 +09:00
Yamashita, Yuu 132179d0ca Merge pull request #498 from ipfans/master
Add CPython 3.5.1
2015-12-07 16:14:31 +09:00
ipfans b6cdfcf5dc Upgrade OpenSSL to 1.0.1q 2015-12-07 15:13:04 +08:00
ipfans c78f079078 Add CPython 3.5.1 2015-12-07 14:59:48 +08:00
Yamashita, Yuu 2767461235 Use PYENV_BOOTSTRAP_VERSION during python-build if declared 2015-12-07 05:10:11 +00:00
Yamashita, Yuu 20432dda88 Add a workaround for Anaconda's curl issue
Anaconda's `curl` doesn't work with HTTPS on platfroms where
`/etc/pki/tls/certs/ca-bundle.crt` isn't available.
2015-12-07 04:22:41 +00:00
Yamashita, Yuu f27e3ebb94 Update OpenSSL version for 2.7.11 (#496) 2015-12-07 01:38:50 +00:00
Yamashita, Yuu 7718afbca2 Merge branch 'issue496' 2015-12-07 10:35:11 +09:00
Yamashita, Yuu 28766056b2 Update OpenSSL to 1.0.1q (fixes #496) 2015-12-07 01:23:14 +00:00
Chris AtLee dbf8b2fb65 Adding SSL patch to build 2.7.3 on Debian 2015-12-06 09:53:05 -05:00
Yamashita, Yuu aaec35859d Merge pull request #494 from zmwangx/cpython-2.7.11
Add CPython 2.7.11
2015-12-06 10:10:59 +09:00
Zhiming Wang 54f7944ae2
Add CPython 2.7.11 2015-12-05 17:08:29 -08:00
Yamashita, Yuu 96bfa1532d Skip virtualenv aliases as well (yyuu/pyenv-virtualenv#126) 2015-12-02 09:52:33 +00:00
Yamashita, Yuu ebd6c1aee3 Add comments to Anaconda executables (#491) 2015-11-29 23:50:30 +00:00
Yamashita, Yuu a8f8f0ae0c Merge pull request #491 from yyuu/anaconda-which-ext
Add a default hook for Anaconda to look for original `$PATH`
2015-11-28 12:51:00 +09:00
Yamashita, Yuu a50d0492b3 Merge pull request #490 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2015-11-28 12:50:31 +09:00
Yamashita, Yuu a6dbb11dca Add a default hook for Anaconda to look for original $PATH 2015-11-28 03:47:00 +00:00
ReadmeCritic 43abe13db9 Update README URLs based on HTTP redirects 2015-11-27 19:12:54 -08:00
Yamashita, Yuu 465bd1f3e8 v20151124 2015-11-24 01:08:46 +00:00
Yamashita, Yuu 96be89835e Add PyPy 4.0.1 (fixes #489) 2015-11-24 01:01:33 +00:00
Josh Friend 3428431aef Add CPython 2.7.11 RC1 2015-11-22 11:50:21 -05:00
Yamashita, Yuu 8841f7788d Merge pull request #487 from yyuu/rbenv-20151121
rbenv 20151121
2015-11-21 13:28:26 +09:00
Yamashita, Yuu 8da3749648 Merge remote-tracking branch 'rbenv/master' into rbenv-20151121 2015-11-21 04:21:14 +00:00
Yamashita, Yuu 94bce8abf8 Merge pull request #486 from yyuu/ruby-build-20151028
Import changes from ruby-build v20151028
2015-11-21 12:12:26 +09:00
Yamashita, Yuu f62ee1a4db Import changes from ruby-build v20151028 2015-11-21 02:59:36 +00:00
Yamashita, Yuu e7b0d99601 Merge pull request #485 from brittag/readme-improvements
Readme improvements: correcting errors and clarifying Homebrew instructions
2015-11-21 10:44:41 +09:00
Britta 6e3dd80f15 Readme fixes: tiny copyedits
Removing an extra comma in "There are some systems, where the", and adding another "the" to "toward the end of shell configuration file".
2015-11-18 16:50:03 -08:00
Britta d5a5cd1aae Readme fixes: clarifying Homebrew instructions
Adding a tip for how to view the Homebrew package caveats again if you skipped reading them.

Directing readers to additional next steps after installing pyenv via Homebrew.
2015-11-18 16:48:57 -08:00
Britta 195942f22e Changing "neckbeard" to "advanced"
Many advanced users who enjoy reading detailed documentation may not really think of themselves as "neckbeards", even in a jokey way, so naming this section with a simple, familiar (and easy-to-translate!) name may encourage more people to read it. :)
2015-11-17 16:51:03 -08:00
Britta daaa1aab6d Readme fixes: correcting errors
Correcting instructions for installing Python versions (removing "download and unpack the source").

Fixing links to #pyenv-shell, #pyenv-local, and #pyenv-global - linking them to the appropriate sections of the COMMANDS.md page.
2015-11-17 16:35:35 -08:00
Yamashita, Yuu 9ca7de5b6c Merge pull request #477 from jimmywan/miniconda-3.18.3
Add miniconda*-3.18.3.
2015-11-11 07:30:01 +09:00
jimmywan 3d1c38f1a8 Add miniconda*-3.18.3. 2015-11-10 22:26:28 +00:00
Yamashita, Yuu 12ad6f670b Merge pull request #471 from yyuu/activate-ng
List Anaconda-style virtual environments as a version in pyenv
2015-11-05 18:42:03 +09:00
Yamashita, Yuu 9163c46568 v20151105 2015-11-05 09:21:08 +00:00
Yamashita, Yuu 204ded5a55 Add Portable PyPy 4.0 (fixes #472) 2015-11-05 09:19:23 +00:00
Yamashita, Yuu 3937dc3618 list virtual environments created by anaconda/miniconda as a version in pyenv 2015-11-04 15:00:48 +00:00
Josh Friend 8f25eabbbc Add anaconda2-2.4.0 and anacondaa3-2.4.0 2015-11-04 08:43:32 -05:00
Yamashita, Yuu cb65df8bec Specify branch for build status 2015-11-04 12:14:10 +00:00
Yamashita, Yuu 0daf04a71b v20151103 2015-11-03 13:31:28 +00:00
Yamashita, Yuu 52544e6956 Remove useless if since portable-pypy 4.0.0 binary is still not available (#463) 2015-11-03 13:24:45 +00:00
Yamashita, Yuu 39a6b097f7 Add PyPy 2.6.1 freebsd64 binary 2015-11-01 02:12:47 +00:00
Yamashita, Yuu f19ab5fea2 Remove PyPy 4.0.0 freebsd64 binary since it's not available for now (#463)
https://bitbucket.org/pypy/pypy/issues/2178/
2015-11-01 02:10:00 +00:00
Yamashita, Yuu 6c3dd0a24f Add PyPy 4.0.0 (fixes #463)
The binaries of portable-pypy are not yet available, though.
2015-10-30 02:54:08 +00:00
Josh Friend 155012911c Add Jython 2.7.1 beta2
http://fwierzbicki.blogspot.co.uk/2015/10/jython-271-beta2-released.html
2015-10-20 19:47:52 -04:00
Yamashita, Yuu bdfe6d383f Add shebang workaround for Jython 2.7.x (fixes #458) 2015-10-18 11:47:12 +09:00
Yamashita, Yuu efdba2d76b Show message about pip/setuptools for 3.0.1 on OS X (fixes #456) 2015-10-17 10:42:52 +00:00
Yamashita, Yuu 19c02bf39c v20151006 2015-10-06 14:12:04 +00:00
Josh Friend d462e158e2 Add Jython 2.7.1b1 2015-09-30 10:17:35 -04:00
Yamashita, Yuu 3ecc94fa38 Merge pull request #447 from chenfengyuan/master
add proxy usage note
2015-09-24 22:49:26 +09:00
Fengyuan Chen 53bc95314c add proxy usage note 2015-09-24 21:46:34 +08:00
Yamashita, Yuu db325cc66d Merge branch 'use-homebrew-openssl' 2015-09-23 14:33:41 +09:00
Yamashita, Yuu 28c40ece8d Fix broken tests 2015-09-23 14:23:31 +09:00
Yamashita, Yuu 34f938fdb9 --libdir doesn't work nicely when building OpenSSL (#429) 2015-09-23 14:17:47 +09:00
Yamashita, Yuu e034c80388 Update Python versions in sample image 2015-09-23 00:29:49 +09:00
Yamashita, Yuu 948d1f4ca7 Merge branch 'blueyed-pyenv-rehash-python-glub' (fixes #379, #404) 2015-09-22 15:28:15 +09:00
Yamashita, Yuu 438e828eb5 add tests for PYENV_FILE_ARG 2015-09-22 15:28:00 +09:00
Yamashita, Yuu e52ed97fff install OpenSSL on OS X if no proper versionn is available (#429) 2015-09-21 06:26:03 +00:00
Yamashita, Yuu 43eb33e929 Merge pull request #444 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-09-21 11:48:39 +09:00
The Gitter Badger 10ab381fb6 Add Gitter badge 2015-09-21 02:43:40 +00:00
Josh Friend c452da8084 v20150913 2015-09-13 11:03:52 -04:00
Josh Friend e6090f00f3 Add CPython 3.5.0
Closes #440
2015-09-13 10:55:55 -04:00
Yamashita, Yuu 6868d3053a Merge pull request #439 from recruit-mtl/master
Fixed anaconda3 repo's paths. #438
2015-09-11 15:42:09 +09:00
kasajei 10d3123caa Fixed anaconda3 repo's paths. 2015-09-11 15:37:53 +09:00
Yamashita, Yuu 2d16c638e9 Merge pull request #437 from zmwangx/cpython-3.5.0rc4
Add CPython 3.5.0rc4
2015-09-09 23:30:39 +09:00
Josh Friend 3ae068b492 Add CPython 3.5.0rc4 2015-09-09 10:19:24 -04:00
Zhiming Wang 824f7e6b21
Add CPython 3.5.0rc4 2015-09-09 22:15:00 +08:00
Josh Friend 5d247793e6 Add CPython 3.5.0rc3 2015-09-07 22:27:36 -04:00
Josh Friend ed700c0185 Merge pull request #435 from jimmywan/miniconda-3.16.0
Add miniconda-3.16.0 and miniconda3-3.16.0
2015-09-01 15:18:49 -04:00
Josh Friend 193e64b6b2 v20150901 2015-09-01 13:59:13 -04:00
Josh Friend 5ba585769b Add pypy2.6.1 portable 2015-09-01 13:57:15 -04:00
Jimmy Wan 5540e235ab Add scripts for miniconda*-3.16.0. 2015-09-01 16:35:19 +00:00
Josh Friend c9268bb0dc Add PyPy 2.6.1
Will add portable when squeaky-pl/portable-pypy#17 is closed.
2015-08-31 14:32:22 -04:00
Josh Friend 5ddc14704c Add 3.5.0rc2 2015-08-25 18:53:13 -04:00
Josh Friend 5fcb4cf0bf Remove 3.5.0 betas 2015-08-25 18:52:59 -04:00
Yamashita, Yuu 0f288f2462 Import changes from ruby-build v20150818 2015-08-25 15:37:31 +09:00
Yamashita, Yuu 0c81c97926 remove patch that cannot be applied to CPython 3.1.1 and 3.1.2 (#421) 2015-08-18 10:57:26 +09:00
Yamashita, Yuu 5ff089de9c add PyPy-STM 2.3 and 2.5.1 (fixes #428) 2015-08-16 23:12:30 +09:00
Yamashita, Yuu 459725df3c Merge branch 'disable-fortify-source' (fixes #422) 2015-08-16 13:37:19 +09:00
Yamashita, Yuu ec3b7d815d add fortify_crash_workaround patch for CPython (>= 2.4, <= 2.4.3) (#422) 2015-08-16 13:29:44 +09:00
Yamashita, Yuu afe86aef52 disable _FORTITY_SOURCE to fix build of CPython (>= 2.4, <= 2.4.3) (#422) 2015-08-16 13:17:38 +09:00
Yamashita, Yuu 461ae27a19 add patches for 3.1, 3.1.1, 3.1.2 to fix build with recent version of openssl (fixes #421) 2015-08-15 13:34:34 +09:00
Yamashita, Yuu c0f691fc57 Merge pull request #424 from zmwangx/python-3.5.0rc1
Add Python 3.5.0rc1
2015-08-11 10:18:43 +09:00
Zhiming Wang ffc899475a
Add Python 3.5.0rc1
https://www.python.org/downloads/release/python-350rc1/
2015-08-10 18:14:25 -07:00
Yamashita, Yuu 57d1c9d6be Merge pull request #419 from takluyver/35b4
Add Python 3.5.0b4
2015-07-31 07:02:57 +09:00
Thomas Kluyver 9d488c9760 Add Python 3.5.0b4
I copied and modified the file for beta 3.
2015-07-30 13:30:52 -07:00
Yamashita, Yuu 3db1ac13d2 Merge pull request #414 from jimmywan/master
Add miniconda-3.10.1 and miniconda3-3.10.1.
2015-07-23 08:03:13 +09:00
Jimmy Wan 880fa46156 Add miniconda-3.10.1 and miniconda3-3.10.1. 2015-07-22 20:36:04 +00:00
Yamashita, Yuu 24ad375a35 Merge branch 'issue411' 2015-07-22 10:49:49 +09:00
Yamashita, Yuu 7f32e96c28 v20150719 2015-07-19 13:07:24 +09:00
Yamashita, Yuu 294738842c pin pip version to 1.5.6 for python 3.1.5 (fixes #351) 2015-07-19 12:33:56 +09:00
Yamashita, Yuu ce671398f8 Ignore user's site-packages on ensurepip/get-pip (#411)
https://www.python.org/dev/peps/pep-0370/
2015-07-18 14:22:58 +09:00
Yamashita, Yuu a3bea25ddc Use original CPython repository as the source of CPython *-dev versions (#409) 2015-07-18 13:23:13 +09:00
Yamashita, Yuu 1a66a9141b Build 3.5-dev from "3.5" branch (#409) 2015-07-18 13:22:36 +09:00
Yamashita, Yuu 78c1d7186d CPython 3.1 branch is no longer maintained (#409) 2015-07-18 13:21:20 +09:00
Yamashita, Yuu 9b60d73ec8 Merge pull request #413 from BanzaiMan/ha-feature-py36
Add `3.6-dev`
2015-07-18 11:48:53 +09:00
Hiro Asari 8a9d2557a0 Add 3.6-dev 2015-07-17 22:14:18 -04:00
Yamashita, Yuu 2a79db00b0 Merge pull request #412 from BanzaiMan/patch-1
Point to the canonical Python repository
2015-07-18 09:47:46 +09:00
Hiro Asari 3e7839c5b7 Point to the canonical Python repository
BitBucket mirror is no longer up to date with the canonical repository.

Fixes https://github.com/yyuu/pyenv/issues/409.
2015-07-17 20:46:59 -04:00
Daniel Hahler 493f036928 shims: handle symlinked scripts, via new PYENV_FILE_ARG
`PYENV_FILE_ARG` is used here to make use of `abs_dirname` later in
`libexec/pyenv`.

Fixes https://github.com/yyuu/pyenv/issues/404
2015-07-08 18:59:22 +02:00
Daniel Hahler af438abeae shims: look for python*
This is required for the shims to handle `#!/usr/bin/env python3` in a
shebang, just like `python` is handled currently: it will set
`PYENV_DIR` to the root of the invoked script, which is required for a
`.python-version` script to get picked up from there.

This was rejected for rbenv, where it does not make much sense
(https://github.com/sstephenson/rbenv/pull/735).

Ref: https://github.com/yyuu/pyenv/pull/368#issuecomment-102806837
2015-07-08 18:59:22 +02:00
Yamashita, Yuu 36c5cbf74f Add Anaconda/Anaconda3 2.3.0 2015-07-08 15:49:58 +09:00
Yamashita, Yuu 608ad6f9d0 Merge pull request #402 from mrjefftang/master
2.7.10 - Stop '/Library/Python/X.X/site-packages' from being added to sys.path
2015-07-08 00:17:54 +09:00
Jeff Tang 7a6eb38a36 add patches to stop '/Library/Python/X.X/site-packages' from being added
to sys.path
2015-07-07 11:14:14 -04:00
Yamashita, Yuu cd40335ba4 Merge pull request #400 from transcranial/master
Add python 3.5.0b3
2015-07-06 07:29:42 +09:00
Leon Chen 26450fd0ab Add python 3.5.0b3 2015-07-05 17:21:31 -04:00
Yamashita Yuu 22ecefd572 Use custom MACOSX_DEPLOYMENT_TARGET if defined (fixes #312) 2015-06-28 13:50:45 +09:00
Yamashita Yuu abae52ae20 Add tests for some of python-build specific features 2015-06-28 13:34:59 +09:00
Yamashita Yuu 114063495f pyenv-prefix should return proper prefix of system version (fixes #391) 2015-06-27 01:07:18 +09:00
Yamashita, Yuu 7b797c3797 Merge pull request #393 from nikolas/patch-1
fix typo in readme
2015-06-23 08:19:50 +09:00
Nik Nyby 8e276a009e fix typo in readme 2015-06-22 18:54:03 -04:00
Yamashita Yuu 4198280142 Fix download URL of portable PyPy 2.6 (fixes #389) 2015-06-10 21:41:20 +09:00
Josh Friend 5cb9c9af2e v20150601 2015-06-01 21:48:44 -04:00
Josh Friend d6230578ec Merge pull request #384 from yyuu/pypy-260
Add PyPy 2.6.0
2015-06-01 21:32:48 -04:00
Josh Friend 62bf3d9b61 Add PyPy 2.5.1 portable
related: #346
2015-06-01 21:25:14 -04:00
Josh Friend 55e6e7143a Add PyPy 2.6.0
fixes #383
2015-06-01 21:24:58 -04:00
Josh Friend 1e78acb701 Add python 3.5.0b2 2015-06-01 07:18:36 -04:00
Yamashita Yuu 648afe05a9 Import changes from ruby-build v20150519 2015-05-27 01:08:12 +09:00
Yamashita Yuu 9aee57d965 Fix test for adding shims in fish 2015-05-27 00:54:19 +09:00
Yamashita Yuu ed684c239c Fix inverted condition for --altinstall of ensurepip (#255) 2015-05-27 00:49:23 +09:00
Yamashita Yuu fe934642c5 Skip installint setuptools by ez_setup.py explicitly (fixes #381)
`pip` will install `setuptools` automatically.
2015-05-26 23:49:46 +09:00
Josh Friend 7c4c1757f7 add 3.5.0 beta1, remove alpha versions 2015-05-25 23:59:48 -04:00
Yamashita Yuu 1b066598ce v20150524 2015-05-24 10:53:17 +09:00
Yamashita Yuu cc94ad39f1 Add 2.7.10 (fixes #380) 2015-05-24 10:40:47 +09:00
Daniel Hahler c754efc44b Merge pull request #378 from blueyed/version-file-read-without-type
pyenv-version-file-read: use sed instead of type/head/awk
2015-05-18 16:37:09 +02:00
Yamashita, Yuu 46ffb0c8df Merge pull request #290 from blueyed/version-handle-missing-better
Improve `pyenv version`, if there is one missing
2015-05-17 12:05:03 +09:00
Yamashita, Yuu 70cce28ba3 Merge pull request #368 from blueyed/pip-rehash-for-versions
pip-rehash: handle versions in commands, like "pip2" and "pip3.4"
2015-05-17 11:35:31 +09:00
Daniel Hahler 9156191168 pyenv-version-file-read: use sed/cut instead of type/head/awk
I was seeing the following occasionally in scripts:

> …/.pyenv/libexec/pyenv-version-file-read: line 12: type: write error: Broken pipe

This patch hopefully improves/fixes this, and it seems better anyway to
just use sed here.
2015-05-16 23:02:00 +02:00
Yamashita, Yuu 5402ce423b Merge pull request #376 from thomasjo/tj-fix-bad-anaconda-urls
Fix broken Anaconda3 2.2.0 URLs
2015-05-12 20:06:11 +09:00
Thomas Johansen 2ea2e7558d Fix broken Anaconda3-2.2.0 URLs 2015-05-12 12:52:41 +02:00
Yamashita, Yuu 9d8da866f1 Merge pull request #375 from kuanyili/anaconda
Add Anaconda/Anaconda3 2.2.0 and Miniconda/Miniconda3 3.9.1 definitions
2015-05-12 07:30:51 +09:00
Kuan-Yi Li 70fa356585 Add Miniconda/Miniconda3 3.9.1 definitions 2015-05-12 01:50:29 +08:00
Kuan-Yi Li 31fb290de2 Add Anaconda/Anaconda3 2.2.0 definitions 2015-05-12 01:19:04 +08:00
Josh Friend e285f2e5b1 use full path when installing a jar 2015-05-04 10:35:34 -04:00
Josh Friend 1d31529b46 v20150404 2015-05-04 08:25:25 -04:00
Josh Friend 6f40dae3d7 Merge pull request #371 from yyuu/fix-py3.1-pip
Fix Pip install on python 3.1.x
2015-05-04 08:18:22 -04:00
Josh Friend d2794f54e5 add a few missing python 3.1.x releases 2015-05-04 08:13:07 -04:00
Josh Friend bc03106cee pin pip version to 1.5.6 for python 3.1 (fixes #351) 2015-05-04 08:12:38 -04:00
Yamashita, Yuu bf93b90282 Merge pull request #370 from joshfriend/jython-2-7-0
Add jython 2.7.0
2015-05-04 13:46:29 +09:00
Josh Friend 7b8bd11416 fix jython pip and add warning about JAVA_HOME for osx/windows users 2015-05-04 00:37:41 -04:00
Josh Friend f623231734 Add jython 2.7.0 2015-05-03 22:24:36 -04:00
Daniel Hahler 481198d255 pip-rehash: handle versions in commands, like "pip2" and "pip3.4"
Fixes https://github.com/yyuu/pyenv/issues/367
2015-04-30 00:49:53 +02:00
Yamashita, Yuu 50d5de4731 Merge pull request #364 from joshfriend/python-3-5-0-a4
Add Python-3.5.0a4
2015-04-21 08:31:21 +09:00
Josh Friend 15977c852d add python3.5.0a4 2015-04-20 18:42:17 -04:00
Daniel Hahler 10d5d9a24f tests: fix desc for "can add shims to PATH more than once"
This seems to have not been merged properly.

A similar issue is with the test for fish, which has been submitted as a
PR for rbenv: https://github.com/sstephenson/rbenv/pull/722.
2015-04-20 00:00:04 +02:00
Yamashita, Yuu be037932ca Merge pull request #360 from yyuu/merge-rbenv
Merge rbenv to have a common ancestor for future merges
2015-04-19 18:00:19 +09:00
Yamashita, Yuu af95960960 Merge pull request #362 from n8henrie/master
Details on multiple Python2 and Python3 versions.
2015-04-19 08:36:33 +09:00
Nathan Henrie 17c153b1c1 Details on multiple Python2 and Python3 versions.
Add detail regarding activating multiple Python2 and Python3 versions simultaneously.
2015-04-17 16:59:04 -06:00
Daniel Hahler 065f5578b1 Merge rbenv parent repository
This merges
4d72eefffc
to build a common ancestor for future merges.

This is branched off f48a5b11d7, which was
the last manual merge.

Discussion / initial idea: https://github.com/yyuu/pyenv/pull/286#issuecomment-66565475

This was done using:

    # Keep our changes for "unmerged, both added"
    for i in $(git status --porcelain | grep '^AA ' | cut -d\  -f2); do
      git checkout --ours $i
      git add $i
    done

    # "git mv" rbenv files to our name, keeping the current contents.
    for i in $(git status --porcelain | grep '^A ' | sed 's/^A  //'); do
      ours=${i//rbenv/pyenv}
      test -f $ours || { echo "Skipping: $i"; continue; }
      git mv -f $i $ours
      git reset HEAD $ours
    done

I've handled the following then manually:

    - rbenv.d/exec/gem-rehash.bash
    - rbenv.d/exec/gem-rehash/rubygems_plugin.rb

This should allow to merge rbenv in the future using:

    git merge rbenv/master -s recursive -X rename-threshold=5%

I am not sure about the rename-threshold, 25% also worked for one file
I've tested.

Conflicts:
	.gitignore
	.travis.yml
	LICENSE
	README.md
	src/Makefile.in
	test/--version.bats
	test/commands.bats
	test/completions.bats
	test/exec.bats
	test/global.bats
	test/help.bats
	test/hooks.bats
	test/init.bats
	test/local.bats
	test/prefix.bats
	test/rehash.bats
	test/run
	test/shell.bats
	test/shims.bats
	test/test_helper.bash
	test/version-file-read.bats
	test/version-file-write.bats
	test/version-file.bats
	test/version-name.bats
	test/version-origin.bats
	test/version.bats
	test/versions.bats
	test/whence.bats
	test/which.bats
2015-04-15 16:23:26 +02:00
Yamashita Yuu 71c9ff565b Added note about where to place pyenv init - in shell configuration file (#313) 2015-04-15 22:41:09 +09:00
Yamashita, Yuu 88270e83e8 Merge pull request #355 from mrjefftang/master
2.7.9 - Stop '/Library/Python/X.X/site-packages' from being added to sys.path
2015-04-15 22:21:08 +09:00
Yamashita, Yuu b09681c9fb Merge pull request #358 from blueyed/fix-src-configure-sed
src/configure: fix sed expression
2015-04-15 22:02:12 +09:00
Daniel Hahler 80eef69c9a src/configure: fix sed expression
This has been fixed for rbenv in
https://github.com/sstephenson/rbenv/commit/050f750.
2015-04-15 05:35:15 +02:00
Jeff Tang bc025641c2 add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path 2015-04-14 15:33:37 -04:00
Yamashita Yuu 5dc3ee95fd Add Jython 2.7 beta4
http://fwierzbicki.blogspot.fi/2015/02/jython-27-beta4-released.html
2015-03-31 11:38:50 +09:00
Yamashita, Yuu 4903223f23 Merge pull request #346 from joshfriend/pypy-251-portable
add pypy-2.5.1 portable version
2015-03-31 11:37:52 +09:00
Josh Friend 1aea75055a fix pypy2.5.1 build folder for i686 2015-03-30 22:07:33 -04:00
Yamashita, Yuu f30085eaf4 Merge pull request #347 from joshfriend/pypy-251-src-fix
fix url and checksum for pypy-2.5.1-src
2015-03-31 10:06:12 +09:00
Yamashita, Yuu 43d311ef58 Merge pull request #345 from joshfriend/fix-require-distro
Fix require_distro
2015-03-31 09:57:24 +09:00
Yamashita, Yuu 239f4a6b51 Merge pull request #344 from joshfriend/python-3-5-0-a3
add python 3.5.0a3
2015-03-31 09:54:30 +09:00
Josh Friend 1463968a3f fix url and checksum for pypy-2.5.1-src 2015-03-30 16:48:17 -04:00
Josh Friend 97c6a4c932 add pypy-2.5.1 portable version 2015-03-30 15:31:03 -04:00
Josh Friend 5131ef521b fix required distros for pypy-2.5.x 2015-03-30 13:31:05 -04:00
Josh Friend 1d7ce651b0 fix distro version check 2015-03-30 13:29:09 -04:00
Josh Friend c335f96eac add python 3.5.0a3 2015-03-30 11:53:52 -04:00
Yamashita, Yuu f0eeac63a3 Merge pull request #341 from joshfriend/fix-pypy-2-5-0
fix pypy-2.5.0-src build directory
2015-03-26 23:20:04 +09:00
Josh Friend 4ebe18a273 fix pypy-2.5.0-src build directory 2015-03-26 10:14:35 -04:00
Yamashita Yuu ab2aa6d13b v20150326 2015-03-26 23:13:55 +09:00
Yamashita, Yuu 431761d125 Merge pull request #340 from joshfriend/pypy-2-5-1
Add pypy-2.5.1
2015-03-26 23:05:50 +09:00
Josh Friend e6e858c33b Add pypy-2.5.1 (fixes #338) 2015-03-26 09:25:04 -04:00
derwolfe e9aa6cf649 doc: make location to add code to more clear 2015-03-18 21:33:15 +01:00
Yamashita Yuu 4e30b1a5e1 Merge branch 'portable-pypy' (fixes #326, #329) 2015-03-12 01:31:05 +09:00
Yamashita Yuu 2beef3c455 Add pypy-portable binary to some pypy/pypy3 versions 2015-03-12 01:28:21 +09:00
Yamashita Yuu 797975b742 Add sha256sum to pypy-portable archives (#329) 2015-03-12 01:22:12 +09:00
Yamashita Yuu 527334b401 Add pypy-portable-2.5 (#329) 2015-03-12 01:12:47 +09:00
Yamashita Yuu 292813eca3 Install pypy-portable binaries on unsupported platforms (#329) 2015-03-11 21:01:32 +09:00
Yamashita Yuu d935a2a994 Merge branch 'portable-pypy' of github.com:olliewalsh/pyenv into portable-pypy 2015-03-11 20:42:56 +09:00
Yamashita, Yuu d9a7117c3b Merge pull request #328 from joshfriend/python-3-5-0-a2
add python 3.5.0a2
2015-03-10 00:47:31 +09:00
Josh Friend 6596657004 add python 3.5.0a2 2015-03-09 11:46:01 -04:00
Yamashita Yuu f48a5b11d7 Import recent changes from rbenv 4d72eefffc 2015-03-07 01:01:32 +09:00
Yamashita Yuu efe461d2b4 v20150226 (#323) 2015-02-26 11:35:10 +09:00
Yamashita, Yuu 4540967250 Merge pull request #324 from joshfriend/python-3-5-0-a1
Add python3.5.0a1
2015-02-26 11:15:22 +09:00
Yamashita, Yuu d14357f64c Merge pull request #323 from joshfriend/python-3-4-3
Add python3.4.3
2015-02-26 11:13:48 +09:00
Josh Friend d6e1de3e2f add python3.5.0a1 2015-02-25 21:11:02 -05:00
Josh Friend 063717e6b5 Add python3.4.3 🍪 2015-02-25 21:02:44 -05:00
Yamashita, Yuu 5a05788e61 Merge pull request #318 from ccwang002/conda_new_ver
Add Miniconda / Miniconda3 3.8.3 release
2015-02-21 21:59:02 +09:00
Liang Bo Wang 48335302d9 Add Miniconda[3] 3.8.3 release 2015-02-21 20:33:54 +08:00
Yamashita Yuu 9146f44db1 v20150204 2015-02-04 10:33:21 +09:00
Yamashita Yuu b9ae43a9df Add PyPy 2.5.0 release (fixes #311) 2015-02-04 09:33:37 +09:00
Yamashita Yuu f6a77549eb Latest pip can't be installed into 3.0.1 (fixes #309) 2015-01-31 16:19:39 +09:00
Yamashita Yuu cbd246acff Symlink pythonX.Y-config to python-config if python-config is missing (fixes #296) 2015-01-31 16:13:26 +09:00
Yamashita Yuu 9d21169ee0 Fix regression of #255 and add test 2015-01-31 15:35:40 +09:00
Yamashita Yuu 7bceb85067 Update README 2015-01-31 15:24:05 +09:00
Yamashita Yuu eeb69b1b79 Add note about --enable-shared and RPATH (fixes #217) 2015-01-31 15:14:58 +09:00
Yamashita Yuu 8abefe1fcb v20150124 2015-01-24 00:45:03 +09:00
Yamashita Yuu b22fcd9759 Add missing changelog of v20141211 2015-01-24 00:43:12 +09:00
Yamashita, Yuu 45df273592 Merge pull request #307 from cloudlite/patch-1
Update README.md - clone through https instead of git
2015-01-20 11:23:45 +09:00
cloudlite dbd50e7bd9 Update README.md - clone through https instead of git
git:// protocol is blocked by a lot of servers, https works fine.
2015-01-19 20:51:18 -05:00
Yamashita Yuu 1c0a5d8264 Add IronPython 2.7.5 2015-01-18 20:24:47 +09:00
Yamashita Yuu 7c7cca8a26 Merge branch 'ruby-build-v20150112' 2015-01-15 23:40:23 +09:00
Yamashita Yuu 123b3af1a0 Import changes from ruby-build v20150112 2015-01-15 23:33:39 +09:00
Yamashita, Yuu ba9c01ce77 Merge pull request #304 from jbrudvik/patch-1
Use better image for Travis build status
2015-01-14 13:44:51 +09:00
Jeremy Brudvik 7535efe031 Use better image for Travis build status 2015-01-13 19:53:29 -08:00
Yamashita, Yuu 995da2df89 Merge pull request #295 from radzinzki/master
Update README.md
2014-12-18 12:43:16 +09:00
Arnav Kumar f28b3ee123 Update README.md
Made it consistent with the rbenv documentation by having the cloning step in the installation clone it directly into the home directory.
2014-12-18 11:41:25 +08:00
Yamashita, Yuu 97b957d5d5 Merge pull request #292 from s1341/master
add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path
2014-12-14 21:30:54 +09:00
srubenst fe2412c95d add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path 2014-12-12 11:49:01 +02:00
Yamashita, Yuu 5114600c4d Merge pull request #289 from blueyed/unset-PYTHON_CFLAGS-in-tests
Unset PYTHON_CFLAGS for build tests
2014-12-12 10:02:10 +09:00
Daniel Hahler 96d3bd6379 Unset PYTHON_CFLAGS and PYTHON_CONFIGURE_OPTS for build tests 2014-12-12 01:36:37 +01:00
Daniel Hahler e8433cfeb3 Use exitcode from pyenv-version-name in pyenv-version, do not halt 2014-12-11 20:37:03 +01:00
Daniel Hahler 7f88eabd0b Improve pyenv version, if there is one missing
Display the other available ones still.

Fixes https://github.com/yyuu/pyenv/issues/291
2014-12-11 18:49:38 +01:00
Yamashita Yuu d320d74a07 v20141211 (fixes #288) 2014-12-11 22:39:38 +09:00
Yamashita Yuu fc49f7e21e Fix building _dev_ versions 2014-12-11 22:35:12 +09:00
Yamashita Yuu be4f5992d6 Add 3.5-dev (#287) 2014-12-11 21:46:22 +09:00
Yamashita Yuu 25a48694be Use 3.4 branch for 3.4-dev (fixes #287) 2014-12-11 21:45:37 +09:00
Yamashita, Yuu 9b7b2a6b40 Merge pull request #286 from joshfriend/ignore-bats
Ignore the bats/ directory cloned by tests
2014-12-11 12:50:24 +09:00
Yamashita, Yuu f59729359a Merge pull request #285 from joshfriend/python-279
Add Python 2.7.9
2014-12-11 12:48:31 +09:00
Josh Friend 93ac0632c7 ignore bats/ directory cloned by tests 2014-12-10 22:20:56 -05:00
Josh Friend 7a21cf9c10 Add release version of 2.7.9 (fixes #284) 2014-12-10 21:51:52 -05:00
Josh Friend 720dee76af remove 2.7.9 release candidate 2014-12-10 18:16:54 -05:00
Yamashita, Yuu db6a41c90f Merge pull request #280 from yyuu/rbenv-7e0e85bd
Import recent changes from rbenv
2014-12-01 22:53:51 +09:00
Yamashita Yuu bfddc69120 Update Makefile. Use same path configuration as travis-ci. 2014-12-01 22:50:04 +09:00
Yamashita Yuu acce3744e7 Add pip-rehash 2014-12-01 22:36:10 +09:00
Yamashita Yuu 5ca423c9f3 Revert a fix for #101 to fix broken tests relating to PYENV_NATIVE_EXT 2014-12-01 20:34:12 +09:00
Yamashita Yuu f0e852553a Import rbenv changes at 7e0e85bdda 2014-12-01 00:29:26 +09:00
Yamashita Yuu fc8597ca38 Rename build definitions of pypy nightly build 2014-11-29 17:22:39 +09:00
Yamashita Yuu e7a68ad467 Update require_distro of pypy-2.4.0 on Linux x86/amd64 2014-11-29 11:21:08 +09:00
Yamashita Yuu 0fd1eaaeb5 Add pypy3-2.4.0-src (#277) 2014-11-29 11:16:44 +09:00
Yamashita Yuu b986f8f93f Add PyPy nightly builds 2014-11-29 10:55:26 +09:00
Yamashita Yuu 60e1abe7fa Add PyPy3 2.4.0 (fixes #277) 2014-11-29 09:48:04 +09:00
Yamashita Yuu afcf4f0c7c Move require_distro out from PyPy build definitions 2014-11-29 09:11:36 +09:00
Makoto Sasaki c0aff27842 v20141127 2014-11-27 14:58:31 +09:00
Makoto Sasaki e172eb2818 Add CPython 2.7.9rc1 (fixes #276) 2014-11-27 14:13:44 +09:00
Ollie Walsh 3a5c2cabb1 Fix portable python url for 2.4.0 2014-11-19 21:01:56 +00:00
Ollie Walsh 871ec77795 Add Portable PyPy binaries from https://github.com/squeaky-pl/portable-pypy 2014-11-19 20:50:34 +00:00
Yamashita Yuu 8761ae8f7c v20141118 2014-11-18 20:05:01 +09:00
Yamashita, Yuu 3d401ebcd2 Merge pull request #271 from s1341/master
add a patch to allow building 2.6.9 on osx 10.9
2014-11-18 19:56:52 +09:00
srubenst 268f965421 add a patch to allow building 2.6.9 on osx 10.9 2014-11-14 11:51:02 +02:00
Yamashita Yuu ff0f8a140b Merge branch 'test-builtin-patches' 2014-11-13 21:56:27 -08:00
Yamashita Yuu 6c2d234e55 Split test files 2014-11-13 21:56:14 -08:00
Yamashita Yuu c6dd3b9468 Add test for built-in python-build's patching feature 2014-11-13 21:53:52 -08:00
Yamashita Yuu 8fee82e456 Fix broken setup_builtin_patches 2014-11-12 11:03:49 -08:00
Yamashita Yuu 7220044b49 v20141106 2014-11-06 09:41:22 -08:00
Daniel Hahler a797bb6d88 Fix "pyenv: version 'system' is not installed" with pyenv which
This is a follow-up to de5c61c.
2014-11-06 17:57:17 +01:00
Yamashita Yuu 665f9d9466 Merge branch 'use-https' (fixes #262) 2014-11-05 09:25:36 -08:00
Eric Mill cb260fb9d0 fix another failing test with https URL 2014-11-05 09:23:06 -08:00
Eric Mill 4f0439cd12 fix one failing test, around mirror URL 2014-11-05 09:22:59 -08:00
Eric Mill 2e387816f1 use https for download URLs
Conflicts:
	plugins/python-build/bin/python-build
2014-11-05 09:22:52 -08:00
Yamashita Yuu ee4182321e Update python versions in README 2014-11-05 09:17:05 -08:00
Yamashita, Yuu 661a2b29d3 Merge pull request #236 from blueyed/doc-mention-pyenv-pip-rehash
README: mention https://github.com/yyuu/pyenv-pip-rehash
2014-11-05 09:14:35 -08:00
Yamashita, Yuu 8c503c6e75 Merge pull request #237 from blueyed/doc-recent-python-versions
doc: use recommended python versions
2014-11-05 09:13:55 -08:00
Yamashita, Yuu 743a637b59 Merge pull request #265 from yyuu/ruby-build-v20141028
Import changes from ruby-build v20141028
2014-11-04 21:15:26 -08:00
Yamashita, Yuu 7fe78245d8 Merge pull request #266 from konstantint/patch-1
Warn about #264 in the README
2014-11-04 09:28:20 -08:00
Konstantin Tretyakov 96c0362b53 Warn about #264 in the README 2014-11-04 18:54:19 +02:00
Yamashita Yuu 2dae281201 Need to chdir before running tests of python-build 2014-11-04 00:14:57 -08:00
Yamashita Yuu 4a52bfaff9 Fix broken tests 2014-11-04 00:04:25 -08:00
Yamashita Yuu b26b83a11f Import changes from ruby-build v20141028 2014-10-29 04:04:10 -07:00
Yamashita, Yuu 35aed218cf Merge pull request #260 from jensraaby/anaconda210
Add Miniconda/Miniconda3 3.7.0 and Anaconda/Anaconda3 2.1.0
2014-10-24 08:16:37 +09:00
Jens Raaby 38ab616344 Add Miniconda/Miniconda3 3.7.0 and Anaconda/Anaconda3 2.1.0
SHA256 values generated with direct downloads from repo.continuum.io
2014-10-23 19:25:41 +01:00
Yamashita Yuu 720870011b Merge branch 'altinstall' (fixes #255)
Allow installing CPython with `make altinstall` instead of
`make install` with following command-line.

```sh
$ env PYTHON_MAKE_INSTALL_PACKAGE="altinstall" pyenv install -v 3.4.2
```
2014-10-19 11:19:17 +09:00
Yamashita Yuu b2ac5df98d Calling create_symlinks after ensurepip is unnecessary (#182, #255)
Install script of setuptools-6.1/pip-1.5.6 will create those links if needed
2014-10-19 10:59:35 +09:00
Yamashita Yuu d9e772eb6e Stop creating symlinks w/ version suffix if altinstall has specified (#182, #255) 2014-10-19 00:34:20 +09:00
Yamashita Yuu eef8ac2701 Use version suffixed executable (e.g. python3.4) for internal use of python (#255) 2014-10-19 00:28:33 +09:00
Yamashita Yuu 45b45bcf25 Pass --altinstall to ensurepip (#255) 2014-10-18 23:56:51 +09:00
Yamashita Yuu ded98e11de Allow users to change the name of install target (#255) 2014-10-18 23:06:19 +09:00
Yamashita, Yuu dc1b5a197f Merge pull request #254 from blueyed/add-Makefile
Add Makefile for 'make test'
2014-10-18 09:30:22 +09:00
Daniel Hahler 79507fbadf Add Makefile for 'make test' 2014-10-16 03:13:39 +02:00
Daniel Hahler de5c61cd59 Fix "version X is not installed" with multiple PYENV_VERSIONs
This was introduced when merging the rbenv upstream change
(https://github.com/sstephenson/rbenv/commit/6bb7f07d2d).
2014-10-16 02:51:07 +02:00
Yamashita Yuu 8e657374a1 Import recent changes from rbenv-versions 2014-10-15 00:46:11 +09:00
Yamashita, Yuu 77bd5bc6c9 Merge pull request #129 from blueyed/optimize-pyenv-which
Optimize pyenv-which: implement remove_from_path in Bash
2014-10-15 00:19:28 +09:00
Daniel Hahler e82f943174 Merge rbenv's "Isolate rbenv-which tests …" (c69d9a11)
This is the remaining part of
c69d9a1128.

    commit c69d9a1128
    Author: Mislav Marohnić <mislav.marohnic@gmail.com>
    Date:   Mon Oct 13 12:39:47 2014 +0200

        Isolate rbenv-which tests from any `.ruby-version` file on the system

        Having a `.ruby-version` file in any of the parent directories of the
        local clone of rbenv could cause the test suite to fail because it
        wasn't expecting a local version to be set.
2014-10-13 21:20:57 +02:00
Daniel Hahler bbf8cb4a95 Add test for PYENV_VERSION=3.4:2.7 2014-10-13 21:15:22 +02:00
Daniel Hahler a1df551bcf Merge tests and remove_from_path from rbenv
This adds the missing parts from the upstream rbenv merge:
f4652fbbf0

- e4cbf04592
- 3ee395f9b5
2014-10-13 21:14:57 +02:00
Yamashita Yuu fc41c87395 Check existence of curses module before start building PyPy (#244) 2014-10-13 02:29:55 +09:00
Yamashita Yuu 6e02ad2fe4 Merge branch 'pypy-shared' 2014-10-12 21:58:08 +09:00
Yamashita Yuu 58e24a64a2 Set PYENV_VERSION on building pypy from source 2014-10-12 21:57:21 +09:00
Makoto Sasaki 77d9e34a49 v20141012 2014-10-12 21:48:56 +09:00
Makoto Sasaki d7f4aa02ed Add CPython 3.2.6 and CPython 3.3.6 (fixes #253) 2014-10-12 20:41:49 +09:00
Yamashita Yuu 42bb40a5d8 Try to set rpath for --shared build of PyPy (#244) 2014-10-12 20:19:37 +09:00
Makoto Sasaki d38f00cd4a v20141011 2014-10-11 20:00:54 +09:00
Makoto Sasaki e9a6a2909c Add Stackless 2.7.7, Stackless 2.7.8, and Stackless 3.4.1 (fixes #252) 2014-10-11 18:06:23 +09:00
Makoto Sasaki 5f95ce1835 Fix build problem of Stackless 3.3.5 (refs #250) 2014-10-10 04:22:47 +09:00
Makoto Sasaki ff995b6654 v20141008 2014-10-08 19:29:20 +09:00
Makoto Sasaki 4d15d21f0f Add CPython 3.4.2 (fixes #251) 2014-10-08 18:47:18 +09:00
Makoto Sasaki 6790e3e18a Add CPython 3.2.6rc1 and CPython 3.3.6rc1 (fixes #248) 2014-10-05 02:07:12 +09:00
Makoto Sasaki 737e0f1b3f Add CPython 3.4.2rc1 (fixes #245) 2014-09-26 00:36:17 +09:00
Yamashita Yuu ab9ee414ad v20140924 2014-09-24 13:57:53 +09:00
Yamashita Yuu c3a755c853 Add PyPy-2.4.0 (fixes #241) 2014-09-23 05:00:27 +09:00
Daniel Hahler 9901c4b84d Use consistent quoting for versions=("$@") across bins 2014-09-11 12:59:40 +02:00
Daniel Hahler 04ce9bcd5c doc: use recommended python versions 2014-09-11 12:56:56 +02:00
Daniel Hahler 4cf93df059 README: mention https://github.com/yyuu/pyenv-pip-rehash 2014-09-11 12:55:39 +02:00
Yamashita, Yuu a43f7f5341 Merge pull request #231 from blueyed/fix-zsh-completion-for-none
Do not quote completions in $reply
2014-09-11 01:31:14 +09:00
Makoto Sasaki af2cb3f943 Add PyPy 2.4-beta1 (fixes #232) 2014-09-10 16:50:19 +09:00
Yamashita, Yuu 9b8b9c5205 Merge pull request #230 from blueyed/version-file-write-no-rm
pyenv-version-file-write: do not use rm, but clobber the file
2014-09-08 13:16:05 +09:00
Daniel Hahler b6aef96cea pyenv-version-file-write: do not use rm, but clobber the file
With e.g. /usr/local/bin/.python-version owned by some user, `pyenv
local foo` would fail, if the user has no permissions for
`/usr/local/bin`, but only the `.python-version` file.
2014-09-07 16:56:40 +02:00
Daniel Hahler bc6be9ed9f Do not quote completions in $reply
With an empty list of completions, zsh would complete a space / advance
the cursor by a space when completing.
2014-09-03 21:01:38 +02:00
Yamashita, Yuu 2297bd3741 Merge pull request #227 from blueyed/doc-multiple-versions
doc: note about using multiple versions
2014-09-03 10:17:30 +09:00
Daniel Hahler 8595df4e18 minor: remove trailing whitespace 2014-09-03 02:51:22 +02:00
Daniel Hahler 200adac02f doc: note about using multiple versions
Add a note about how to activate/use multiple versions to the main
README, to the "Choosing the Python Version" section.
2014-09-03 02:47:57 +02:00
Yamashita Yuu 6509d318f4 v20140825 2014-08-25 10:21:26 +09:00
Makoto Sasaki 474767618d Add Jython 2.7 Beta 3 (fixes #223)
This release of Jython requires JDK 7 or above
2014-08-24 04:19:54 +09:00
Yamashita, Yuu 82aaef7842 Merge pull request #222 from yyuu/macosx-deployment-target
Setting MACOSX_DEPLOYMENT_TARGET on Darwin
2014-08-21 19:21:59 +09:00
Yamashita Yuu 9df0a2916d Setup configure options to build against universal SDK on Darwin 2014-08-21 15:24:36 +09:00
Yamashita Yuu f76309d419 Add tests for MACOSX_DEPLOYMENT_TARGET (#219, #220) 2014-08-21 13:59:04 +09:00
Yamashita Yuu 29d3df661e Fix broken tests 2014-08-21 13:59:04 +09:00
Yamashita Yuu 96b4c0f7e7 Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220) 2014-08-21 13:59:04 +09:00
Yamashita, Yuu f9053406c2 Merge pull request #215 from blueyed/fix-zsh-completion
Fix zsh completion with multiple words
2014-08-11 10:56:26 +09:00
Yamashita Yuu ae4659538d Unset PIP_REQUIRE_VENV during build (fixes #216) 2014-08-11 10:40:56 +09:00
Daniel Hahler 4159055117 Fix zsh completion with multiple words
`${words[2,-2]}` must not be quoted, otherwise completion for multiple
words (e.g. `shell 3.4.1`) fails.
2014-08-10 17:04:26 +02:00
Yamashita Yuu aa62882347 Display the package name of hg as mercurial in message (#212) 2014-08-09 01:06:55 +09:00
Yamashita Yuu b8a7de8a3c v20140705 (fixes #204) 2014-07-06 00:35:50 +09:00
Yamashita Yuu a661e14580 Support SETUPTOOLS_VERSION and PIP_VERSION to allow installing specific version of setuptools/pip (#202) 2014-07-03 10:18:27 +09:00
Makoto Sasaki 22f4218522 Add CPython 2.7.8 (refs #201) 2014-07-02 17:38:33 +09:00
Yamashita Yuu 6f761f8159 Remove exit 0 from initialization code of fish 2014-06-30 23:00:09 +09:00
Yamashita Yuu 0468ffdd49 v20140628 2014-06-28 18:04:17 +09:00
Yamashita Yuu 352c8f49bd Merge branch 'ez_setup_opts' 2014-06-26 23:23:37 +09:00
Yamashita Yuu 72eb7f5c32 Add support for options to ez_setup.py/get-pip.py (#200) 2014-06-26 23:13:27 +09:00
Yamashita, Yuu 59c796c138 Merge pull request #199 from dlitz/pycrypto
Add support for 2.1.3, 2.2.3, 2.3.7
2014-06-22 21:34:05 +09:00
Dwayne Litzenberger a465cb808c Add 2.1.3, 2.2.3, 2.3.7
Just enough to run PyCrypto's test suite.
2014-06-22 02:05:30 -07:00
Makoto Sasaki ade2bf2a0d Add PyPy3 2.3.1 (refs #198) 2014-06-21 08:54:12 +09:00
Makoto Sasaki ed133866d7 Merge pull request #194 from yyuu/pseudo-ensurepip
Use `ez_setup.py` and `get-pip.py` to setup pip
2014-06-16 20:09:40 +09:00
Yamashita Yuu f6a5eb90a1 s/getpip/get_pip/g 2014-06-16 11:13:25 +09:00
Yamashita Yuu d805ec19ca Pass ez_setup.py and get-pip.py via argument instead of STDIN
AFAIK, Jython 2.7b2 could not handle ez_setup.py via STDIN
2014-06-16 11:13:25 +09:00
Yamashita Yuu 3ba7702602 Rename functions
* `build_package_setuptools` -> `build_package_ez_setup`
  * `build_package_pip` -> `build_package_getpip`
2014-06-16 11:13:25 +09:00
Yamashita Yuu 887f2263f0 Enable pseudo _ensurepip_ for existing definitions 2014-06-16 11:13:25 +09:00
Yamashita Yuu d215804fbe Add pseudo ensurepip 2014-06-16 11:06:21 +09:00
Makoto Sasaki 6697437d1a Update setuptools (5.0.1 -> 5.1) (refs #196) 2014-06-16 04:13:51 +09:00
Yamashita, Yuu e9e151c89e Merge pull request #195 from thomasjo/anaconda-2.0.1
Add Anaconda v2.0.1 definitions
2014-06-15 13:52:36 +09:00
Thomas Johansen 0880a92a7f Add Anaconda v2.0.1 definitions 2014-06-15 06:39:02 +02:00
Makoto Sasaki 3169a4894b Update setuptools (5.0 -> 5.0.1) (refs #193) 2014-06-15 08:47:40 +09:00
Makoto Sasaki 21c0d930e9 v20140615 2014-06-15 05:37:34 +09:00
Makoto Sasaki f470c80e5a Update setuptools (4.0.1 -> 5.0) (refs #190) 2014-06-15 03:00:55 +09:00
Yamashita Yuu 2b5ee0c425 v20140614 2014-06-14 14:38:13 +09:00
Yamashita Yuu 5931001cab Iterate over just for actual files 2014-06-12 20:37:40 +09:00
Yamashita Yuu 5c91bc981c Create symlinks for executables with version suffix (#182) 2014-06-11 22:25:34 +09:00
Yamashita Yuu d496c03497 Remove diff --git a/ from patches (#189)
The `diff --git a/` indicates that the patch is generated from `git diff`
and it should be applied with `patch -p1`. Because the patches bundled
with python-build have already re-formated for `patch -p0`, this is not
the desired behaviour.

Just removing `diff --git` from patches will force python-build to apply
those patches with `patch -p0`.
2014-06-11 12:17:20 +09:00
Yamashita Yuu 2ec8f0f0a4 Fix fetch_git with --keep (sstephenson/ruby-build#549) 2014-06-09 22:41:43 +09:00
Makoto Sasaki 00596b4b46 Add PyPy 2.3.1 2014-06-08 09:31:18 +09:00
Makoto Sasaki e9a8adb37f Update Readme(md5sum -> sha256sum) 2014-06-06 01:00:18 +09:00
Yamashita Yuu 6efe6dafe7 Changed versioning scheme; 0.4.0-20140602 -> 20140602 2014-06-04 13:40:16 +09:00
Yamashita, Yuu a01a08c551 Merge pull request #184 from yyuu/ruby-build-v20140524
Import changes from ruby-build v20140524
2014-06-03 23:14:20 +09:00
Yamashita Yuu c2cc649cfa md5sum -> sha256sum 2014-06-03 23:07:29 +09:00
Yamashita Yuu 9dac275567 Import changes from ruby-build v20140524 2014-06-03 11:41:47 +09:00
Makoto Sasaki 3290973990 Update setuptools (4.0 -> 4.0.1) (refs #183) 2014-06-03 08:01:31 +09:00
Yamashita Yuu d378b274d9 v20140602 2014-06-02 11:27:24 +09:00
Makoto Sasaki 08b0d162b4 Update setuptools (3.6 -> 4.0) (refs #181) 2014-06-02 10:32:32 +09:00
Makoto Sasaki b9e698305e Add CPython 2.7.7 (refs #180) 2014-06-02 06:59:24 +09:00
Yamashita, Yuu 01f2a1d2ca Merge pull request #179 from thomasjo/anaconda-2.0
Add Anaconda and Anaconda3 definitions for v2.0.0
2014-05-30 12:30:53 +09:00
Thomas Johansen 4b8146f516 Add Anaconda and Anaconda3 definitions for v2.0.0 2014-05-29 22:24:59 +02:00
Makoto Sasaki 5a69204978 Add CPython 2.7.7rc1 (refs #178) 2014-05-30 04:32:06 +09:00
Yamashita Yuu 801b093b67 Support for xz-compressed Python tarballs (fixes #177) 2014-05-29 21:08:05 +09:00
Makoto Sasaki 2cca695bed Can't install Jython 2.7 Beta 2 2014-05-28 11:25:12 +09:00
Yamashita Yuu 67324465fa Merge branch 'dont_clober_ldflags_cppflags' (fixes #168) 2014-05-23 18:39:43 +09:00
Yamashita Yuu 7612f0391d Don't clober the environment CPPFLAGS and LDFLAGS (refs #168)
Because the variables specified via command-line arguments for the
`./configure` will be favored than one in environment variables,
setting those variables in `PACKAGE_CONFIGURE_OPTS_ARRAY` will hide
existing environment variables.

To avoid the problem, stop using `package_option()` to setup those
variables.
2014-05-21 22:48:11 +09:00
Yamashita Yuu 21f44a130a Check envvars of CPPFLAGS and LDFLAGS during tests 2014-05-21 22:41:28 +09:00
Yamashita Yuu 033529915e v20140520 2014-05-20 12:28:04 +09:00
Yamashita, Yuu e77e60206d Merge pull request #171 from makotosasaki/2
Add CPython 3.4.1
2014-05-20 12:21:23 +09:00
Makoto Sasaki d5506e1404 Add CPython 3.4.1 2014-05-20 09:47:41 +09:00
Yamashita, Yuu f512496588 Merge pull request #169 from makotosasaki/2
Update pip (1.5.5 -> 1.5.6)
2014-05-19 16:49:15 +09:00
Makoto Sasaki 27d4b9b6d2 Update pip (1.5.5 -> 1.5.6) 2014-05-19 16:01:44 +09:00
Yamashita Yuu ef8c8b8ef2 v20140516 2014-05-16 21:07:19 +09:00
Yamashita Yuu 5998c4596b Add miniconda/miniconda3 3.4.2 2014-05-16 20:28:33 +09:00
Yamashita Yuu 8851acda13 Add Jython 2.7 beta2 2014-05-15 13:51:40 +09:00
Yamashita Yuu 1ceb678e86 style 2014-05-15 13:50:58 +09:00
Yamashita Yuu 79e2c96a7e Update setuptools (3.5.1 -> 3.6) 2014-05-12 20:25:05 +09:00
Yamashita Yuu fa0442688a Update GNU Readline (6.2 -> 6.3) 2014-05-12 00:35:09 +09:00
Yamashita Yuu 9e596d641d Add Stackless 2.7.{3,4,5,6} 2014-05-12 00:27:13 +09:00
Yamashita, Yuu 3ab6836c38 Merge pull request #164 from Enucatl/master
Added stackless-3.2.5 and stackless-3.3.5
2014-05-12 00:10:19 +09:00
Matteo Abis 082c19f5a1 Merge branch 'master' of github.com:Enucatl/pyenv 2014-05-11 17:00:53 +02:00
Matteo Abis 3f1a4d0ff9 added stackless 3.2.5 and stackless 3.3.5 2014-05-11 16:54:35 +02:00
Matteo 0df94b1097 Merge pull request #2 from Enucatl/stackless_update
Merge pull request #1 from yyuu/master
2014-05-11 16:51:11 +02:00
Matteo 1e2979d101 Merge pull request #1 from yyuu/master
Updated stable stackless python versions
2014-05-11 16:45:14 +02:00
Yamashita Yuu 72a480f298 Add pypy-2.3-src (refs #162) 2014-05-09 20:13:23 +09:00
Yamashita, Yuu 9d74383461 Merge pull request #162 from fgimian/pypy-2.3
Add PyPy-2.3
2014-05-09 20:07:47 +09:00
Fotis Gimian 2e737a80c0 Add PyPy-2.3 2014-05-09 20:56:34 +10:00
Yamashita Yuu d707546912 Update pip (1.5.4 -> 1.5.5) 2014-05-07 23:08:28 +09:00
Yamashita Yuu 4501d90896 Update setuptools (3.4.4 -> 3.5.1) 2014-05-07 23:07:12 +09:00
Yamashita Yuu 149a915770 Import recent changes from ruby-build 20140420 2014-05-01 13:14:41 +09:00
Yamashita Yuu 0c81002220 Prefer gawk over awk if both are available. 2014-05-01 13:09:55 +09:00
Yamashita Yuu fe87e44870 Fix error messages of Anaconda/Miniconda 2014-04-29 12:56:31 +09:00
Yamashita Yuu 601ac4b3f3 Update setuptools (3.4.3 -> 3.4.4) 2014-04-16 19:00:45 +09:00
Yamashita Yuu 60950d0082 Add IronPython 2.7.4, without setuptools and pip.
The setuptools installation seems broken for IronPython.
2014-04-13 01:07:12 +09:00
Yamashita, Yuu cff2c4527d Merge pull request #155 from uhpnou/master
added anaconda-1.9.2
2014-04-12 12:14:36 +09:00
Giuseppe Lucio Sorrentino 10e6dd8c2d added anaconda-1.9.2 2014-04-11 19:07:24 +02:00
Yamashita Yuu 18ecb4ffbb Merge branch 'ruby-build-20140408' 2014-04-09 21:28:53 +09:00
Yamashita Yuu 986db22da8 Import recent changess from ruby-build v20140408 2014-04-09 21:25:29 +09:00
Yamashita Yuu 07037d9a5d Merge branch 'ironpython' 2014-04-08 23:43:47 +09:00
Yamashita Yuu 8914be846f Add ironpython-dev.
I have not yet confirmed the `setuptools` can work together on GNU/Linux though.
2014-04-08 23:42:58 +09:00
Yamashita Yuu d1f1c4c61c Update setuptool (3.4.1 -> 3.4.3) 2014-04-08 23:08:33 +09:00
Yamashita Yuu 6c70e2a997 Add miniconda/miniconda3 3.3.0 2014-04-06 17:31:09 +09:00
Yamashita Yuu 3cde540ca0 v20140404 2014-04-04 13:16:27 +09:00
Yamashita Yuu 83e820d869 Merge branch 'fix-py26-tk86' 2014-04-03 22:38:34 +09:00
Yamashita Yuu 8e60ad8c6d Fix build of Tkinter with Tcl/Tk 8.6 (fixes #131) 2014-04-03 22:35:35 +09:00
Yamashita, Yuu a841f42d53 Merge pull request #152 from yyuu/readline63
Fix CPython build problem with Readline 6.3 (fixes #126, fixes #149)
2014-04-03 22:18:36 +09:00
Yamashita Yuu 08367dbb83 Update setuptools (3.3 -> 3.4.1) 2014-04-01 17:15:31 +09:00
Yamashita Yuu 6222bb743d Just display warning if .pydistutils.cfg exists. 2014-04-01 00:01:51 +09:00
Yamashita Yuu bce58e9d9a Merge branch 'osx-clang-gcc' (fixes #148)
Conflicts:
	plugins/python-build/share/python-build/2.6-dev
2014-03-30 05:07:41 +09:00
Yamashita Yuu d4e6a4c3d3 Merge branch 'remove-2.6-dev' 2014-03-29 19:16:23 +09:00
Yamashita Yuu 9eef6c536b The 2.6 branch no longer exists in CPython repo 2014-03-29 17:37:53 +09:00
Yamashita Yuu d737ae9f03 Fix build problem of CPython 3.1 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:41:26 +09:00
Yamashita Yuu 2da9bfd1f8 Fix build problem of CPython 3.2 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:37:06 +09:00
Yamashita Yuu 3136fce0c0 Fix build problem of CPython 3.3 with Readline 6.3 (#126, #131, #149)
The patch was taken from CPython 3.3.5
2014-03-29 16:36:56 +09:00
Yamashita Yuu cce1960de0 Fix build problem of CPython 2.6 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:36:36 +09:00
Yamashita Yuu 6641e291ee Fix build problem of CPython 2.7 with Readline 6.3 (#126, #131, #149)
The patch was taken from latest changes in CPython 2.7

* http://hg.python.org/cpython/rev/79b82ebc4fd1
* http://hg.python.org/cpython/rev/5e42e5764ac6
* http://hg.python.org/cpython/rev/0b5b0bfcc7b1
2014-03-29 16:29:21 +09:00
Yamashita Yuu f5fded3b9d Use cc as $CC if require_cc has called (#148) 2014-03-29 13:09:06 +09:00
Yamashita Yuu cac8fd7f60 Use colorize in require_clang and require_java 2014-03-29 13:03:01 +09:00
Yamashita Yuu b55830fb01 Display anaconda_architecture on errors (yyuu/pyenv-virtualenv#18) 2014-03-25 11:44:42 +09:00
Yamashita Yuu 5b9b3f742b Display pypy_architecture on errors 2014-03-25 11:44:35 +09:00
Yamashita Yuu 34065dddbb reads only the first word from file 2014-03-24 19:42:52 +09:00
Yamashita Yuu ea9214bb2e ignores carriage returns 2014-03-24 18:15:40 +09:00
Yamashita Yuu d90cb0ec85 Merge branch 'try-python-module' 2014-03-14 23:03:53 +09:00
Yamashita, Yuu d75e12298a Merge pull request #141 from Zearin/docs
Updated README.md; Commands moved to COMMANDS.md.
2014-03-22 15:58:31 +09:00
Zearin addec6339f COMMANDS.md: Match order of commands from pyenv --help
Also added `help` output for `pyenv {,un}install`, since those sections didn’t exist before.

They should probably be revised at some point.  In the meantime, I think something is better than nothing (in this case).
2014-03-20 09:33:32 -04:00
Zearin abab44df80 COMMANDS.md: Add commands from pyenv --help 2014-03-20 09:24:31 -04:00
Zearin 4afa280066 COMMANDS.md: Minor formatting 2014-03-20 09:20:20 -04:00
Zearin 5c6a812b86 README.md: Add dividers between major sections 2014-03-20 09:19:11 -04:00
Zearin 650c9a3d6e README.md: Minor formatting 2014-03-20 09:17:53 -04:00
Zearin 0933c40179 Move command reference to COMMANDS.md 2014-03-20 09:13:15 -04:00
Yamashita, Yuu 2613e84447 Merge pull request #140 from Zearin/patch-1
README.md: Minor edits and formatting
2014-03-20 12:36:07 +09:00
Tony d1f78c2716 README.md: Minor edits and formatting 2014-03-19 15:00:54 -04:00
Yamashita, Yuu cf89abaacf Merge pull request #136 from chronoslynx/master
fix: anaconda_architecture mispelled MacOSX as MaxOSX
2014-03-18 01:16:03 +09:00
Tim Swihart 545052d5ca MacOSX was mispelled as MaxOSX 2014-03-17 09:06:24 -07:00
Yamashita Yuu 0d51899e9b v0.4.0-20140317 2014-03-17 21:51:40 +09:00
Yamashita Yuu fa32d81579 Update changelog 2014-03-17 21:50:23 +09:00
Yamashita Yuu 164f7bf4a6 Removed beta releases of 3.4.0 (#133) 2014-03-17 18:42:19 +09:00
Yamashita Yuu 7bdd097254 Update setuptools (3.1 -> 3.3) 2014-03-17 17:08:06 +09:00
Yamashita, Yuu 5ae1c803cb Merge pull request #133 from makotosasaki/3.4.0
Add CPython 3.4.0
2014-03-17 16:24:26 +09:00
Makoto Sasaki f536dca41f Add CPython 3.4.0 2014-03-17 16:06:09 +09:00
Yamashita Yuu 8d951d5025 Remove unused functions. 2014-03-14 22:51:34 +09:00
Yamashita Yuu 5c31c45d05 Do not exit with errors even if some of modules are absent 2014-03-14 22:51:32 +09:00
Yamashita Yuu 0851436caa Add /anaconda-(1.9.0|1.9.1)/ and /miniconda3?-(3.0.4|3.0.5)/ 2014-03-14 21:27:31 +09:00
Daniel Hahler 44c20af80e Optimize pyenv-which: implement remove_from_path in Bash
This greatly improves the performance of `pyenv virtualenvwrapper_lazy`,
which happens to call pyenv-which a lot.

For profiling I've initially used:

    % zmodload zsh/zprof
    % eval "$(pyenv init -)"
    % pyenv virtualenvwrapper_lazy

    Before:
    % zprof|grep -E '(pyenv|virtualenv)'
     1)    1         754,07   754,07   58,95%    751,50   751,50   58,75%  pyenv
    21)    1           2,57     2,57    0,20%      2,57     2,57    0,20%  virtualenvwrapper_setup_lazy_loader
     1)    1         754,07   754,07   58,95%    751,50   751,50   58,75%  pyenv
           1/1         2,57     2,57    0,20%      2,57     2,57             virtualenvwrapper_setup_lazy_loader [21]
           1/1         2,57     2,57    0,20%      2,57     2,57             pyenv [1]
    21)    1           2,57     2,57    0,20%      2,57     2,57    0,20%  virtualenvwrapper_setup_lazy_loader

    After:
    % zprof|grep -E '(pyenv|virtualenv)'
     1)    1         383,30   383,30   27,97%    380,88   380,88   27,79%  pyenv
    31)    1           2,42     2,42    0,18%      2,42     2,42    0,18%  virtualenvwrapper_setup_lazy_loader
     1)    1         383,30   383,30   27,97%    380,88   380,88   27,79%  pyenv
           1/1         2,42     2,42    0,18%      2,42     2,42             virtualenvwrapper_setup_lazy_loader [31]
           1/1         2,42     2,42    0,18%      2,42     2,42             pyenv [1]
    31)    1           2,42     2,42    0,18%      2,42     2,42    0,18%  virtualenvwrapper_setup_lazy_loader

Fixes https://github.com/yyuu/pyenv-virtualenvwrapper/issues/13
2014-03-13 19:21:32 +01:00
Yamashita Yuu 65ae0a3261 v0.4.0-20140311 2014-03-11 11:55:44 +09:00
Yamashita Yuu 24df447e44 Update changelog 2014-03-11 11:54:16 +09:00
Yamashita Yuu a380250881 Update setuptools (2.2 -> 3.1) 2014-03-11 11:53:13 +09:00
Yamashita Yuu ff38d6935d Add CPython 3.4.0rc3 2014-03-11 11:44:06 +09:00
Yamashita Yuu 27e1c25cf7 Remove release candidates of CPython 3.3.5 2014-03-11 11:41:01 +09:00
Yamashita Yuu a5c34a6c00 Add CPython 3.3.5 (closes #127) 2014-03-11 11:39:49 +09:00
Yamashita Yuu 6e01f83742 Simplify anaconda/miniconda definitions 2014-03-10 21:16:52 +09:00
Yamashita Yuu 47ce2155b4 Merge branch 'pypy-binary-compatibility' 2014-03-05 20:47:40 +09:00
Yamashita Yuu 0c6b28c9aa Display warning if the PyPy is not built for the distro (#122) 2014-03-05 20:44:20 +09:00
Yamashita, Yuu 4d22259ac3 Merge pull request #125 from shurane/patch-1
Addendum for `pyenv install` usage
2014-03-04 18:46:49 +09:00
Ehtesh Choudhury 7ed908bad1 Addendum for pyenv install usage
This gives users an idea of which versions of python are available. Other version managers ([nvm](https://github.com/creationix/nvm), [rvm](https://rvm.io/rubies/list), etc) tell users how to list available versions as well.
2014-03-03 17:11:23 -05:00
Yamashita, Yuu dcc7185ae1 Merge pull request #123 from makotosasaki/1
Added python 3.3.5rc2
2014-03-03 21:31:40 +09:00
Makoto Sasaki cc423566a8 Added python 3.3.5rc2 2014-03-03 19:52:49 +09:00
Yamashita Yuu e488b31597 Import recent changes from ruby-build 20140225 2014-03-03 11:22:39 +09:00
Yamashita, Yuu 5bbfcf75f6 Merge pull request #121 from makotosasaki/01
Added python 3.3.5rc1 and 3.4.0rc2
2014-02-28 11:26:13 +09:00
Makoto Sasaki 8164af44b4 Added python 3.3.5rc1 and 3.4.0rc2 2014-02-28 08:00:33 +09:00
Yamashita Yuu a1ffc93372 Update pip (1.5.2 -> 1.5.4) 2014-02-25 17:11:40 +09:00
Yamashita, Yuu 9e1bbff8a1 Merge pull request #118 from ebertti/master
Change readme for issue #117
2014-02-21 13:17:37 +09:00
Ezequiel Bertti 6ee219b9c7 add automatic install by pyenv-installer 2014-02-21 00:57:42 -03:00
Yamashita Yuu 5f23e3d7b2 Refactoring.
Remove leading `build_package_` from `build_package_verify_python` and
`build_package_verify_import` since they are not `build_package`
functions.
2014-02-13 23:44:42 +09:00
Yamashita Yuu 854f6f3a46 Exits with error if there is ~/.pydistutils.cfg (#35, #111) 2014-02-13 21:06:13 +09:00
Yamashita Yuu 63ac2b717f Add comments 2014-02-13 21:02:38 +09:00
Yamashita, Yuu 81726b16be Merge pull request #114 from kpot/master
Added python 3.4.0rc1
2014-02-13 19:11:03 +09:00
kpot 4acab71e1e Added python 3.4.0rc1 2014-02-13 16:05:07 +06:00
Yamashita Yuu 8b8128e33b Merge branch 'release-0.4.0-20140211' 2014-02-11 12:13:57 +09:00
Yamashita Yuu e835d447ed v0.4.0-20140211 2014-02-11 12:11:38 +09:00
Yamashita Yuu 7f44afc1c0 Remove 3.3.4rc1 (fixes #112) 2014-02-11 12:06:09 +09:00
Yamashita, Yuu f380967e8d Merge pull request #113 from AustinMatherne/master
Add support for Python 3.3.4
2014-02-11 12:04:34 +09:00
Austin Matherne d640941976 Add support for Python 3.3.4 2014-02-10 20:14:29 -06:00
Yamashita Yuu e58ac666c4 Fix permission of installed definitinos 2014-02-09 11:20:59 +09:00
Yamashita Yuu ce99decad5 Update changelog 2014-02-08 19:33:57 +09:00
Yamashita Yuu 719e6db358 Import recent changes from ruby-build 20140204 2014-02-08 19:31:35 +09:00
Yamashita Yuu e0547de922 Update changelog 2014-02-08 18:51:59 +09:00
Yamashita Yuu 4b9907af1c Update setuptools (2.1.2 -> 2.2) 2014-02-08 18:37:06 +09:00
Yamashita Yuu 1d09851b2b Merge branch 'raspbian' 2014-02-08 01:06:35 +09:00
Yamashita Yuu 800ccaa5e3 Add armv6l and armv7l 2014-02-08 01:02:59 +09:00
Yamashita Yuu 00da261211 Install Raspbian binaries of pypy 2014-02-06 22:26:35 +09:00
Yamashita Yuu b81d0ff0cd Update setuptools (2.1 -> 2.1.2) 2014-02-06 21:20:57 +09:00
Yamashita Yuu 715a7789ba Run python-build tests as script on travis-ci 2014-02-06 12:26:48 +09:00
Yamashita Yuu 6aa6d6b026 Fix broken test 2014-02-06 12:24:17 +09:00
Yamashita Yuu 62f9b7a731 Display error if wget doesn't support SNI (#60) 2014-02-06 12:18:41 +09:00
Yamashita Yuu cc967fddb7 Refactor definitions of pypy 2014-02-04 21:03:51 +09:00
Yamashita Yuu 27ebc8bab7 Merge branch 'anaconda' 2014-02-04 18:33:37 +09:00
Yamashita Yuu 71db79eded Add old Anaconda/Miniconda releases 2014-02-04 13:46:07 +09:00
Yamashita Yuu 3aa263b51f Add Miniconda 3.0.0 2014-02-04 13:04:33 +09:00
Yamashita Yuu 59fbf8d103 Add Anaconda 1.8.0 2014-02-04 12:44:45 +09:00
Yamashita Yuu b21d2c7dea Merge branch 'update-readme' 2014-01-29 18:01:29 +09:00
Yamashita Yuu 20e5404248 Update README about usage with multiple versions (#92) 2014-01-29 18:00:56 +09:00
Yamashita Yuu 56c58e2778 Modernize python versions in README 2014-01-29 17:54:01 +09:00
Yamashita Yuu 3c6ecaf66a Update pip (1.5.1 -> 1.5.2) 2014-01-27 21:55:58 +09:00
Yamashita Yuu 87ca55100b Add 3.3.4rc1 and 3.4.0b3 2014-01-27 21:52:23 +09:00
Yamashita Yuu 589872affb Set proper PYENV_VERSION during pyenv install 2014-01-27 15:04:51 +09:00
Yamashita Yuu 73d5ea7426 v0.4.0-20140123 2014-01-23 19:14:26 +09:00
Yamashita Yuu b992ffca1d Merge branch 'rbenv-pr531' 2014-01-23 11:16:51 +09:00
Yamashita Yuu 9c82314570 Unset GREP_OPTIONS to avoid unexpected grep behavior (fixes #101) 2014-01-23 11:11:56 +09:00
Yamashita Yuu 403154e09e Update pip (1.5 -> 1.5.1) 2014-01-21 16:18:19 +09:00
Yamashita Yuu b44398e954 Add .gitignore 2014-01-21 00:04:02 +09:00
Yamashita Yuu 46a01b1643 Merge branch 'enable-framework' 2014-01-18 10:08:37 +09:00
Yamashita Yuu bf94eb8cbe Add workaround for --enable-framework to work with CPython 2.7.6 2014-01-18 09:59:17 +09:00
Yamashita Yuu b225f2030d Add support for --enable-framework (#55, #99)
```
$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.3.2
```
2014-01-18 01:52:50 +09:00
Yamashita Yuu cbe7d0241b Merge branch 'python-build-test' 2014-01-17 21:28:03 +09:00
Yamashita Yuu e65a10be51 Add bats test for python-build 2014-01-17 21:18:22 +09:00
Yamashita Yuu badc8255ab Do not invoke use_homebrew_readline twice 2014-01-17 21:09:52 +09:00
Yamashita Yuu 385d3337ef Merge branch 'ensurepip' 2014-01-16 18:33:26 +09:00
Yamashita Yuu 558200285b Use ensurepip to install pip if available 2014-01-16 18:10:52 +09:00
Yamashita Yuu 2c26b0870a Setup built-in patches out from stub functions of `{before,after}_install_package}. 2014-01-15 17:20:41 +09:00
Yamashita Yuu 2cea06b88a Sort built-in patches by its name 2014-01-15 17:09:58 +09:00
Yamashita Yuu c977774977 Merge branch 'issue98' 2014-01-15 16:42:14 +09:00
Yamashita Yuu 314937d599 Set PYENV_BIN_PATH in PATH even if the version is system (fixes #98) 2014-01-15 16:41:06 +09:00
Yamashita Yuu 07ae0d8e42 Import changes from ruby-build 20140110.1 2014-01-10 20:05:01 +09:00
Yamashita Yuu 461c5bbc2d Merge branch 'release-0.4.0-20140110.1' 2014-01-10 15:04:36 +09:00
Yamashita Yuu a7f5a19a24 v0.4.0-20140110.1 2014-01-10 15:04:16 +09:00
Yamashita Yuu f344731cf9 Merge branch 'osx-llvm-gcc' 2014-01-10 13:17:16 +09:00
Yamashita Yuu a3f35b7e0d Fallback to use clang if there is gcc not installed 2014-01-10 13:16:37 +09:00
Yamashita Yuu b025dbfdab Add require_cc again 2014-01-10 13:15:56 +09:00
Yamashita Yuu efd9c1cd48 Merge branch 'release-0.4.0-20140110' 2014-01-10 11:28:17 +09:00
Yamashita Yuu 38eb9fe948 v0.4.0-20140110 2014-01-10 11:27:43 +09:00
Yamashita Yuu 6ee7aaf611 Should not recognize cc as clang 2014-01-09 18:18:50 +09:00
Yamashita Yuu 93ba3a4c51 Use same require_gcc as ruby-build 2014-01-08 22:34:10 +09:00
Yamashita Yuu 34087d03ec Add build status badge 2014-01-08 21:47:36 +09:00
Yamashita Yuu f136b219db Update pip (1.4.1 -> 1.5) 2014-01-08 21:44:19 +09:00
Yamashita Yuu 84705cfe61 Update setuptools (2.0.2 -> 2.1) 2014-01-08 21:42:59 +09:00
Yamashita Yuu 2a9f6038e0 Use package_option() to setup configure options 2014-01-08 11:49:48 +09:00
Yamashita Yuu 0e3e603429 Don't check $(uname -s) twice 2014-01-08 10:56:43 +09:00
Yamashita Yuu 71a916faf2 simplicy the check for infinite loop 2014-01-08 10:54:11 +09:00
Yamashita Yuu 8e02b93e39 Call build_package_ldflags_dirs to suppress linker warnings 2014-01-07 12:46:40 +09:00
Yamashita Yuu a7a99c75eb Apply patch only if there are patches exist for the package 2014-01-07 11:52:22 +09:00
Yamashita Yuu bb3b5de179 Add CPython 3.4.0b2 2014-01-06 13:03:40 +09:00
Yamashita Yuu f956502fd8 Merge branch 'avoid-infinite-loop-even-if-pwd-returns-relative-path' 2014-01-03 08:36:05 +09:00
Yamashita Yuu 4c5ffc8d99 Avoid infinite loop in case where pwd returns relative path
The `pwd` may return relative path if the `$PWD` is badly declared
in bash/zsh (e.g. `PWD="." bash`). To avoid the infinite loop in
`find_local_version_file()`, stop finding the version file if the
target paths are same consecutively.
2014-01-03 08:35:39 +09:00
Yamashita Yuu 8dc4e8d6f8 Revert "Merge branch 'golang-workaround'"
This reverts commit 7edceff71c, reversing
changes made to 5dea3c9e63.
2014-01-03 07:39:52 +09:00
Yamashita Yuu 7edceff71c Merge branch 'golang-workaround' 2014-01-03 06:23:03 +09:00
Yamashita Yuu 1587d8a03c Apply readlink to output from pwd may returns "." to get actual path 2014-01-03 05:07:21 +09:00
Yamashita Yuu 5dea3c9e63 Import changes from recent rbenv 2014-01-03 04:58:44 +09:00
Yamashita Yuu 12d4fdb307 Merge branch 'unittest' (#21) 2014-01-03 04:43:44 +09:00
Yamashita Yuu 319721b380 Modify applications and versions for Python 2014-01-03 04:41:23 +09:00
Yamashita Yuu 3dd9332eee Fix broken tests 2014-01-03 04:33:30 +09:00
Yamashita Yuu 88922e2bc0 Remove version-ext-compat plugin to make test success 2014-01-03 02:07:20 +09:00
Yamashita Yuu 0965577b93 Import tests from rbenv with sed -e s/rbenv/pyenv/g 2014-01-03 02:06:36 +09:00
Yamashita Yuu f538169992 Restore OLDIFS expectedly 2014-01-03 01:47:10 +09:00
Yamashita Yuu d03f290b5d s/rbenv/pyenv/ 2014-01-02 22:49:23 +09:00
Yamashita Yuu 8ddf8760d5 Import recent changes from rbenv 0.4.0 2014-01-02 22:45:02 +09:00
Yamashita Yuu 8fa6b4a184 CPython installer requires existing Pyhthon of similar version. 2013-11-19 18:02:59 +09:00
Yamashita Yuu e1a5b326e4 Merge branch 'ruby-build-style-patching' 2014-01-01 13:01:34 +09:00
Yamashita Yuu 8892f3735d Use -p0 for all patches to keep things simple (sstephenson/ruby-build#484)
There is filterdiff(1) available to transform strip level of a patch if
optional level is required.

```
git diff HEAD^ | filterdiff --strip=1 | pyenv install -p 3.3.3
```
2014-01-01 12:25:17 +09:00
Yamashita Yuu 9eedd4ef84 Update setuptools (2.0.1 -> 2.0.2) 2013-12-31 22:19:22 +09:00
Yamashita Yuu b70dcb9f2d Add list_patches() to sort patches by their names 2013-12-26 16:31:43 +09:00
Yamashita Yuu 008a5a1ff9 Force PYTHON_BUILD_PATCH_PATH to be absolute path 2013-12-26 16:30:16 +09:00
Yamashita Yuu 5b7eb42a9f Add -p0 as an option for patch if both PATCH_OPTS and PACKAGE_PATCH_OPTS aren't defined 2013-12-26 15:44:56 +09:00
Yamashita Yuu 35d4cd2259 Remove PACKAGE_PATCH_STRIP. Use PACKAGE_PATCH_OPTS instead. 2013-12-26 14:01:46 +09:00
Yamashita Yuu 5bff9c773a Reliably detect parent shell in pyenv init (fixes #93)
Imported changes from sstephenson/rbenv#453.
2013-12-26 13:48:43 +09:00
Yamashita Yuu 6efb3c327f Revert setuptools version for jython-2.7-beta1 (2.0.1 -> 2.0)
Could not install setuptools 2.0.1 for jython-2.7-beta1 by the
lack of `parser` module.
2013-12-25 20:42:11 +09:00
Yamashita Yuu 1a05d9a8cd Merge branch 'apply-extra-patches' 2013-12-21 01:06:13 +09:00
Yamashita Yuu df51c13323 Use cp -RPp to copy share directories recursively.
We have some patches for CPython in `share/python-build/patches`.
2013-12-21 01:04:19 +09:00
Yamashita Yuu a025866bac Update setuptools (2.0 -> 2.0.1) 2013-12-21 00:50:28 +09:00
Yamashita Yuu 2797f3d80e Update README about PYTHON_PATCH_PATH. 2013-12-21 00:36:32 +09:00
Yamashita Yuu 0d85193f39 Remove -Wl,-rpath=... from LDFLAGS on Darwin to fix build.
We don't need to set `rpath` explicitly because the ld on Darwin
embeds the full paths to each dylib by default
2013-12-20 20:37:47 +09:00
Yamashita Yuu 4d534fed31 Merge branch 'enable-shared' 2013-12-20 18:36:42 +09:00
Yamashita Yuu 43212f64ed Pass rpath to linker if --enable-shared was given (#65, #66, #82) 2013-12-20 18:22:43 +09:00
Yamashita Yuu 75559df89d Search extra patches from given directory then apply it during build (#91)
```
$ env PYTHON_PATCH_PATH="./patches" PYTHON_PATCH_OPTS="-p1" pyenv install 2.7.6
```
2013-12-20 17:17:17 +09:00
Yamashita Yuu 3d5156ed1d v0.4.0-20131217 2013-12-17 11:46:44 +09:00
Yamashita Yuu aa76fd2f9c On Darwin, should not build readline if there is brewed readline 2013-12-16 16:27:45 +09:00
Yamashita Yuu db141f66a4 Restored has_broken_mac_llvm_gcc which is required to build 3.3+ on Darwin 2013-12-16 16:24:25 +09:00
Yamashita Yuu fe07deb193 v0.4.0-20131216 2013-12-16 13:51:48 +09:00
Yamashita Yuu 7159e24aa8 Update ChangeLog 2013-12-16 13:50:52 +09:00
Yamashita Yuu 1cc90d31ae Import changes from ruby-build v20131211 2013-12-16 13:44:03 +09:00
Yamashita, Yuu 76bf3ee0d6 Merge pull request #88 from pwdtnx/fix-prefix-system
Fix pyenv-prefix to trim "/bin" in `pyenv prefix system`
2013-12-12 07:38:10 -08:00
Tanix fd3dd225ba rewrite strip of PYENV_PREFIX_PATH in a single line 2013-12-12 23:05:31 +09:00
Tanix 140808e3d4 Fix pyenv-prefix to trim "/bin" in pyenv prefix system 2013-12-12 22:16:43 +09:00
Yamashita Yuu edb5a32620 Update setuptools (1.4.2 -> 2.0) for Python 2.6+ 2013-12-12 18:20:57 +09:00
Yamashita Yuu 88e2d73d52 Update setuptools (1.4.1 -> 1.4.2) 2013-12-02 15:35:35 +09:00
Yamashita Yuu 7b95fea77e Add PyPy 2.2.1 2013-11-29 12:58:31 +09:00
Yamashita Yuu 20eb5c4913 Update setuptools (1.4 -> 1.4.1) 2013-11-27 20:48:06 +09:00
Yamashita Yuu bc2d2456ae Add CPython 3.4.0b1 2013-11-25 16:07:27 +09:00
Yamashita, Yuu 064531ea1f Merge pull request #83 from thedrow/patch-1
Added a link about the common build problems.
2013-11-20 18:41:33 -08:00
Omer Katz 80b8508dbc Added a link about the common build problems. 2013-11-20 18:16:03 +02:00
Yamashita Yuu 02e073a503 remove useless patch from 2.6-dev 2013-11-20 19:06:40 +09:00
Yamashita Yuu e094d683ed Update setuptools (1.3.2 -> 1.4) 2013-11-19 19:41:44 +09:00
Yamashita Yuu bd1454c69f Remove 3.3.3-rc[12] because 3.3.3 has been released 2013-11-19 19:06:48 +09:00
Yamashita Yuu b726d645c3 http://www.python.org/ -> http://python.org/ 2013-11-19 19:03:19 +09:00
Anthon van der Neut 78441ce084 Released Python 3.3.3 2013-11-19 18:56:02 +09:00
Yamashita Yuu 4953fa4034 Apply built-in patches only if patch is not given via STDIN 2013-11-19 05:58:21 +09:00
Yamashita Yuu 1f76effbfb Import changes from ruby-build v20131225.1 2013-12-27 18:44:54 +09:00
Yamashita Yuu 5e20237f5b v0.4.0-20131116 2013-11-16 19:29:30 +09:00
Yamashita Yuu dd44d0a713 Add CPython 3.3.3 RC1/RC2 2013-11-16 19:04:42 +09:00
Yamashita Yuu a28c040eb9 Add PyPy 2.2 (closes #77) 2013-11-15 12:32:57 +09:00
Yamashita Yuu 6a787dd951 Update setuptools (1.1.7 -> 1.3.2) 2013-11-11 20:44:24 +09:00
Yamashita Yuu 5d9132623f Add CPython 2.7.6 2013-11-11 20:41:53 +09:00
Yamashita Yuu f7193b09fd Merge branch 'ruby-build-v20131030' 2013-11-01 18:30:24 +09:00
Yamashita Yuu 498d226b2f Import changes from ruby-build v20131030 2013-11-01 18:30:00 +09:00
Yamashita Yuu ccc51244e3 Add CPython 2.6.9 2013-11-01 17:13:29 +09:00
Yamashita Yuu 516f49e913 Update setuptoos (1.1.6 -> 1.1.7) 2013-11-01 17:00:16 +09:00
Yamashita Yuu a2ab3bc32c v0.4.0-20131023 2013-10-23 15:19:33 +09:00
Yamashita Yuu ab4a8396e1 Add 3.4.0a4 2013-10-23 15:18:14 +09:00
Yamashita Yuu 733cb397b2 improve messages on failed import 2013-10-15 14:04:38 +09:00
Yamashita Yuu 7f9a2325e5 Add 3.4.0a3 2013-10-04 12:52:05 +09:00
Yamashita Yuu 625b3b7ec1 Update setuptools (1.1.4 -> 1.1.6) 2013-10-04 12:49:41 +09:00
Yamashita Yuu c95d446c53 Merge branch 'improved-fish-support' 2013-09-30 18:02:54 +09:00
Yamashita Yuu 6e749ef12f Import recent changes relating to fish from rbenv 2013-09-30 18:02:12 +09:00
Yamashita Yuu 850dd87332 Merge branch 'appropriate-tar-options' 2013-09-14 17:00:32 +09:00
Yamashita Yuu fb3e9b020e Use appropriciate tar option per compression types (#58) 2013-09-14 16:50:52 +09:00
Yamashita, Yuu 02a348b657 Merge pull request #57 from rluders/patch-1
Ubuntu environment configuration
2013-09-13 03:10:29 -07:00
Ricardo Lüders 5c41dc3901 Ubuntu environment configuration 2013-09-12 21:07:40 -03:00
Yamashita Yuu 74a3c55623 Add CPython 3.4.0a2 2013-09-10 21:32:01 +09:00
Yamashita Yuu bc8c8a6cd9 Update setuptools (1.1 -> 1.1.4) 2013-09-10 21:31:55 +09:00
Yamashita Yuu 99bc72a908 Wipe out CPython-specific scripts from build_package_standard() 2013-09-02 17:13:17 +09:00
Yamashita Yuu aab8bb262d Update setuptools (1.0 -> 1.1) 2013-08-29 12:14:36 +09:00
Yamashita, Yuu f14a4ef8e5 Merge pull request #54 from apbarrero/alternative_install
Installation instructions for any installation directory.
2013-08-28 00:18:45 -07:00
Antonio Perez Barrero 3bf50856ce Installation instructions for any installation directory.
Updated README.md contents so that installation instructions cover
not only the common case for installation directory, i.e. `~/.pyenv`
but any other at the user's choice.
2013-08-28 08:33:18 +02:00
Yamashita, Yuu c3e55aa5ae Merge pull request #53 from stephendavis89/master
Fix spelling error in README
2013-08-27 20:05:12 -07:00
Stephen Davis 704548336a Fix spelling error 2013-08-27 15:27:57 -04:00
Yamashita Yuu 0ea5e12b4a Update changelog 2013-08-23 18:40:12 +09:00
Yamashita Yuu 28fd240de2 Update setuptools (0.9.7 -> 1.0) 2013-08-23 18:36:21 +09:00
Yamashita Yuu 586c0e6d62 Update pip (1.4 -> 1.4.1) 2013-08-23 18:31:22 +09:00
Yamashita, Yuu c920eaa9be Merge pull request #49 from yyuu/fish-support
Fish support (#32)
2013-08-15 20:44:10 -07:00
Yamashita Yuu d2f210d70d Implement sub-command completion for fish shell 2013-08-16 12:24:53 +09:00
Yamashita Yuu 683036298e fish doesn't have builtin command equivalent to bash's hash -r. 2013-08-15 22:56:57 +09:00
Yamashita Yuu 93b536863f Support fish shell 2013-08-15 22:56:53 +09:00
Yamashita Yuu 403f4eb7a7 Preserve original IFSs 2013-08-15 22:29:47 +09:00
Yamashita Yuu 4c71f3c5cd Apply --with-pydebug configure option only for Python 2013-08-08 11:58:01 +09:00
Yamashita Yuu 106e4cae90 Homebrew homepage location changed 2013-08-06 22:57:45 +09:00
Yamashita Yuu 10221d51f1 Add 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5 2013-08-02 00:32:09 +09:00
Yamashita Yuu aff87c3cb3 Rename; pypy-py3k-dev -> pypy3-dev 2013-08-02 00:13:50 +09:00
Yamashita Yuu b0f640db61 Add pypy3-2.1-beta1 2013-08-02 00:13:50 +09:00
Yamashita Yuu af0fed2e34 Add pypy-2.1 2013-08-01 23:58:33 +09:00
Yamashita Yuu e996f2f51a Merge branch 'py24-multiarch-patch' 2013-08-01 23:23:30 +09:00
Yamashita, Yuu 0fe18d0dc1 Merge pull request #45 from Domon/fix-formatting-in-readme
Fix formatting in the Homebrew section of README
2013-08-01 03:16:48 -07:00
Chun-wei Kuo cc6c45d7fb Fix formatting in the Homebrew section of README 2013-08-01 18:01:38 +08:00
Yamashita Yuu 2646c6c159 Add _multiarch_ patch to fix build of CPython 2.4.x 2013-08-01 17:26:37 +09:00
Yamashita Yuu ce66352f6d v0.4.0-20130726 2013-07-26 16:59:51 +09:00
Yamashita Yuu 9e133adf99 Merge branch 'ruby-build-20130628' 2013-07-26 00:05:19 +09:00
Yamashita Yuu b1851f2aff Update README 2013-07-25 17:19:59 +09:00
Yamashita Yuu b943e0abff Import changes from ruby-build v20130628 2013-07-25 17:19:55 +09:00
Yamashita Yuu d6d556911b Merge branch 'fix-build-on-suse' (fixes #36) 2013-07-24 22:57:59 +09:00
Yamashita Yuu b8ecd2d6dd Specify --libdir on configure to fix build on openSUSE (#36) 2013-07-24 18:43:20 +09:00
Yamashita Yuu 1e5ef005fb Update setuptools (0.9.5 -> 0.9.7) 2013-07-24 17:17:48 +09:00
Yamashita Yuu d11db0f0f2 Update pip for Python 2.6+ (1.3 -> 1.4) 2013-07-24 17:09:40 +09:00
Yamashita, Yuu 8e43e72082 Merge pull request #37 from flavio/build_python_2_4
Allow installation of python 2.4.2
2013-07-23 23:37:31 -07:00
Flavio Castelli ae86a253e2 Allow installation of python 2.4 series
Make possible to install python 2.4.2 and 2.4.6.
2013-07-22 14:53:09 +02:00
Yamashita Yuu 0c38147fcb Fix build of native modules of Carbon/ncurses on OS X 10.7 2013-07-20 20:53:38 +09:00
Yamashita Yuu e1ea64b0b9 Merge branch 'issue33' 2013-07-19 22:02:16 +09:00
Yamashita Yuu fa35e792c1 Backport libffi-osx from 2.7.5 to build ctypes on OS X (#33) 2013-07-19 21:47:51 +09:00
Yamashita Yuu f5807424c2 Add patches for 2.5 to fix biuld on OS X 10.7/10.8 (#33) 2013-07-19 18:08:02 +09:00
Yamashita Yuu 4c006959fa fix broken string match in has_broken_mac_llvm_gcc() 2013-07-17 17:02:23 +09:00
Yamashita Yuu f9a19e3f24 s/gcc_llvm/llvm_gcc/g 2013-07-17 16:38:57 +09:00
Yamashita Yuu d5c24f5122 Update setuptools (0.8 -> 0.9.5) 2013-07-17 15:51:19 +09:00
Yamashita Yuu 392e404cc6 Use https instead of http when downloading from pypi 2013-07-08 16:27:01 +09:00
Yamashita Yuu b04e067c83 update setuptools (0.7.7 -> 0.8) 2013-07-08 16:25:24 +09:00
Yamashita Yuu ed2937f4d1 update setuptools (0.7.4 -> 0.7.7) 2013-07-04 17:23:38 +09:00
Yamashita Yuu 8848006540 remove meaningless break (fixes #26) 2013-07-03 11:15:58 +09:00
Yamashita Yuu 7a4fe458b8 Merge branch 'llvm-gcc-4.2-on-osx' 2013-06-29 12:32:35 +09:00
Yamashita Yuu f76faa88b8 add has_broken_mac_gcc_llvm and use clang if true 2013-06-29 12:27:33 +09:00
Yamashita Yuu 9ce760c798 add require_cc() to test existence of CC other than GCC 2013-06-28 12:18:45 +09:00
Yamashita Yuu 152ebe6e61 Download GNU Readline from mirror site of GNU 2013-06-27 12:28:34 +09:00
Yamashita Yuu 1a6eb80bcd should not declare IFS in toplevel 2013-06-21 19:37:58 +09:00
Yamashita Yuu 745bceac22 update setuptools (0.7.2 -> 0.7.4) 2013-06-20 12:31:18 +09:00
Yamashita Yuu 583f3b0e21 fix build of 3.4-dev. append existing 3.4 at the last.
this is because `hg` (which is a dependency of *-dev build) might be
installed in existing pyenv versions.
2013-06-19 18:48:58 +09:00
Yamashita Yuu cc9c72747a v0.4.0-20130613 2013-06-13 20:52:10 +09:00
Yamashita Yuu b473f7a271 add CHANGELOG.md 2013-06-13 20:51:17 +09:00
Yamashita Yuu b726ace943 update README about Homebrew 2013-06-13 20:04:37 +09:00
Yamashita Yuu 499edda1d7 Merge branch 'preparing-removal-of-pyenv-version-ext' 2013-06-13 12:40:13 +09:00
Yamashita Yuu 3bfd91de51 rename to version-ext-compat because pyenv-version-ext must precede
than compatibility plugin.
2013-06-13 12:37:35 +09:00
Yamashita Yuu c7e139186b update README 2013-06-13 12:20:31 +09:00
Yamashita Yuu 7c84490649 ignore pyenv-version-ext-compat plugin 2013-06-13 12:14:17 +09:00
Yamashita Yuu b75ef17db7 add deprecation warning for push/pop commands 2013-06-13 12:13:41 +09:00
Yamashita Yuu daa12e97c6 rename plugin 2013-06-13 12:04:09 +09:00
Yamashita Yuu 1c5eb82e93 Merge branch 'has_broken_mac_readline' (fixes #23) 2013-06-13 11:32:12 +09:00
Yamashita Yuu ff387010b3 use environment variable "${CPP}" if defined 2013-06-12 20:43:19 +09:00
Yamashita Yuu 27dd805acb enable require_gcc to confirm if there is $CC 2013-06-12 16:11:07 +09:00
Yamashita Yuu 5f1761645f fix has_broken_mac_openssl for building Python.
`--with-*-dir` is only effective for Ruby's mkmf.rb.
2013-06-12 16:09:41 +09:00
Yamashita Yuu f8c9282e8c Install GNU Readline on Darwin if the readline is broken (refs #23)
The `has_broken_mac_readline` checks the existence of
`readline/rhconf.h`. This is the same mechanism as setup.py of CPython.
2013-06-12 16:04:20 +09:00
Yamashita Yuu 37f46df390 Merge branch 'setuptools-0.7.2' 2013-06-10 12:50:25 +09:00
Yamashita Yuu 4f8138c70a update setuptools for jython versions (distribute 0.6.45 -> setuptools 0.7.2)
https://bitbucket.org/pypa/setuptools/issue/14/installation-failed-on-jython
2013-06-10 12:48:05 +09:00
Yamashita Yuu db3b4773bc update setuptools (0.7.1 -> 0.7.2) 2013-06-10 12:38:38 +09:00
Yamashita Yuu fe04103e24 update comment about new setuptools and Jython 2013-06-05 14:58:51 +09:00
Yamashita Yuu 7777bb6d58 Merge branch 'new-setuptools' 2013-06-04 20:39:04 +09:00
Yamashita Yuu e9bcd9e0bd replace distribute by new setuptools 2013-06-04 20:31:08 +09:00
Yamashita Yuu 2cc2c22094 add SSLv2 patch for 2.7 and 2.7.1 2013-06-04 20:18:16 +09:00
Yamashita Yuu 319000b448 pyenv-prefix returns wrong prefix if system is given in the middle of arguments. 2013-06-04 17:35:23 +09:00
Yamashita Yuu b4ba76a15a Merge branch 'version-ext-plugin' 2013-06-01 15:27:04 +09:00
Yamashita Yuu 3ff0785fe7 prepare README and install.sh for pyenv-version-ext 2013-06-01 15:26:41 +09:00
Yamashita Yuu 1b7d3b0502 move pyenv-sh-{push,pop} into plugins since they aren't from rbenv 2013-06-01 15:14:18 +09:00
Yamashita Yuu c43711a216 update distribute (0.6.43 -> 0.6.35) 2013-05-31 18:48:42 +09:00
Yamashita Yuu 3c86d811c8 Merge branch 'add-dev-versions' 2013-05-31 17:38:37 +09:00
Yamashita Yuu d94c1d2143 add jython-*-dev 2013-05-31 17:38:18 +09:00
Yamashita Yuu 3fd475e1d5 add stackless-*-dev 2013-05-31 17:16:35 +09:00
Yamashita Yuu 309a6cd65e *EXPERIMENTAL* add pypy-py3k-dev 2013-05-31 14:33:22 +09:00
Yamashita Yuu 924f6dc76d add ${PYPY_OPTS} to specify pypy build options 2013-05-31 14:28:32 +09:00
Yamashita Yuu 56a9a7cebf improve error message of pypy 2013-05-31 14:28:08 +09:00
Yamashita Yuu b8cbb18f7b add pypy-1.[789]-dev 2013-05-31 13:45:37 +09:00
Yamashita Yuu 27caf0ef3d add pypy-1.[567] 2013-05-31 13:39:58 +09:00
Yamashita Yuu b203ccbe74 verify pypy binary after installation 2013-05-31 13:00:48 +09:00
Yamashita Yuu cb962d5a74 Merge branch 'pypy_builder' 2013-05-29 23:32:13 +09:00
Yamashita Yuu 539800cc3b add pypy-*-src to build and install pypy from source 2013-05-29 23:30:22 +09:00
Yamashita Yuu b77ae3e0b5 build and install pypy from source 2013-05-29 23:26:50 +09:00
Yamashita Yuu dfc3f9e13c Set $PYENV_VERSION for existing installation of 3.4
CPython 3.4.x requires "python3.4" to be executable during build
if it is in "$PATH".
2013-05-29 19:36:49 +09:00
Yamashita Yuu f120551ef3 add pypy-2.0.1 and pypy-2.0.2 2013-05-29 15:05:43 +09:00
Yamashita Yuu b03a4cde78 add build_package_verify_py3{0,1,2,3,4} 2013-05-27 19:37:24 +09:00
Yamashita Yuu 71b2081a75 update distribute version (0.6.40 -> 0.6.43) 2013-05-27 16:58:19 +09:00
Yamashita Yuu 5fbc3ae3d5 add ssl patch for 3.1.3 and 3.2 (#22) 2013-05-23 12:07:19 +09:00
Yamashita Yuu 1ce37e53c7 Merge branch 'ruby-build-v20130518' 2013-05-21 16:40:21 +09:00
Yamashita Yuu 9ae12a7c22 add CPython development versions (2.[67]-dev, 3.[1234]-dev) 2013-05-21 16:38:11 +09:00
Yamashita Yuu b3deef5e80 update base version of ruby-build (v20130518) 2013-05-21 11:43:01 +09:00
Yamashita Yuu 28317ecb34 update readme 2013-05-19 02:34:57 +09:00
Yamashita Yuu 78efa7613d setup verification for 2.7.5, 3.2.5 and 3.3.2 2013-05-18 20:52:37 +09:00
Yamashita Yuu 0bf26d8f1d setup download mirror site (#18, #20) 2013-05-17 23:14:57 +09:00
Yamashita Yuu ac70eb701c fix error messages 2013-05-17 19:36:23 +09:00
Yamashita Yuu c834f241a8 check native modules (e.g. ssl, bz2) if they were built 2013-05-17 16:49:27 +09:00
Yamashita, Yuu aa39b392a9 Merge pull request #17 from keitaoouchi/support_2.7.5_3.2.5_3.3.2
Support new versions(2.7.5, 3.2.5, 3.3.2).
2013-05-16 07:36:07 -07:00
keitaoouchi 907ddb614d Support new versions(2.7.4, 3.2.5, 3.3.2). 2013-05-16 23:24:21 +09:00
Yamashita Yuu dd0e3feae3 add install_zip 2013-05-16 22:39:15 +09:00
Yamashita Yuu c24207428c remove useless definition of PYENV_VERSION_PATH 2013-05-16 18:21:37 +09:00
Yamashita Yuu 8b23026d6c add PACKAGE_PATCH_STRIP to support optional strip number of patch 2013-05-16 18:19:10 +09:00
Yamashita Yuu cc9b7aa7dd update distribute version (0.6.38 -> 0.6.40) 2013-05-15 19:47:44 +09:00
Yamashita Yuu 318a41d723 add i786 2013-05-10 21:26:55 +09:00
Yamashita Yuu 5a52177d15 add pypy-2.0 and remove beta versions 2013-05-10 21:15:40 +09:00
Yamashita Yuu 2e8c43215d preserve original file suffix in place of hardcoded ".tar" 2013-05-10 20:26:42 +09:00
Yamashita Yuu 45966deb49 fix pypy installation on x86_64 with glibc which is not strictly equal to 2.13 or 2.15. 2013-05-10 20:23:25 +09:00
Yamashita Yuu 7aa644da5c ignore cache directory 2013-05-10 19:08:14 +09:00
Yamashita Yuu 56379532a6 add comments for Jython about the version of distribute and pip (#15) 2013-05-10 18:31:48 +09:00
Yamashita Yuu 9bf0755c81 update default distribute version (0.6.36 -> 0.6.38) 2013-05-09 14:58:47 +09:00
Yamashita Yuu f01d1d1064 move patches into ./share to fix the install.sh 2013-05-09 00:11:52 +09:00
Yamashita Yuu e9b0ecf021 remove needless declaration of LDFLAGS.
removing this not breaks build on latest Debian sid.
2013-05-08 23:56:33 +09:00
Yamashita Yuu cbc6f38774 fix build problem of ssl modulle of CPython 3.0.1 2013-05-08 20:09:54 +09:00
Yamashita Yuu e220b76c3e fix build problem of ssl module with recent OpenSSL
http://bugs.python.org/issue12012
2013-05-08 19:52:09 +09:00
Yamashita Yuu 8d1bf96267 add workaround for incompatible behaviour of svnversion (#14) 2013-05-08 19:23:03 +09:00
Yamashita Yuu e49922064d Merge branch 'automated-patching' 2013-05-08 18:38:53 +09:00
Yamashita Yuu 95882fce68 remove useless patches 2013-05-08 18:38:34 +09:00
Yamashita Yuu cc20ab3392 find appropriate patch for package automatically 2013-05-08 18:35:30 +09:00
Yamashita Yuu fe50ed29ea bundle patches into python-build repository 2013-05-08 17:49:09 +09:00
Yamashita Yuu e9db2caace fix completion problem on zsh 2013-05-01 13:14:22 +09:00
Yamashita Yuu 2d55aea467 add pypy-2.0-beta2 2013-04-30 01:53:30 +09:00
Yamashita Yuu 521c2c3e06 add jython versions; jython-2.5.4-rc1 and jython-2.7-beta1 2013-04-30 01:46:28 +09:00
Yamashita Yuu 0bc8d8252e fix typo to verify jar's checksum 2013-04-30 01:20:12 +09:00
Yamashita Yuu 80f4022891 Merge branch 'issue15' 2013-04-29 13:08:23 +09:00
Yamashita Yuu 998af2a3ab revert pip version (1.3.1 -> 1.2.1) to avoid AttributeError on Jython. (#15)
AttributeError: 'module' object has no attribute 'O_NOFOLLOW'
2013-04-27 21:05:34 +09:00
Yamashita Yuu 3b820e8c0c revert distribute version (0.6.36 -> 0.6.32) due to the installation
problem with Jython 2.5.[01] (#15)
2013-04-27 20:54:45 +09:00
Yamashita Yuu 8bc19e28e0 update distribute version (0.6.34 -> 0.6.36) 2013-04-25 21:42:59 +09:00
Yamashita Yuu 0d0516ad05 update default pip version (1.2.1 -> 1.3.1) 2013-04-25 21:40:13 +09:00
Yamashita Yuu 6997026064 import recent changes from ruby-build 20130408 2013-04-19 19:26:11 +09:00
Yamashita Yuu dd1b6502c6 add README for python-build.
was copied from [ruby-build](https://github.com/sstephenson/ruby-build).
2013-04-19 18:48:45 +09:00
Yamashita, Yuu d1013e82de Merge pull request #12 from f440/support_2.7.4_3.2.4_3.3.1
Support 2.7.4, 3.2.4, 3.3.1
2013-04-06 21:20:26 -07:00
f440 bb2d058167 Support 2.7.4, 3.2.4, 3.3.1 2013-04-07 12:40:12 +09:00
Yamashita, Yuu 6e58c43d8a Merge pull request #11 from draftcode/build-pydebug
Add an option to build a debug version of Python
2013-03-28 00:53:08 -07:00
draftcode dce4eb636a Add a help string to describe the debug option 2013-03-28 16:41:07 +09:00
draftcode c170255580 Preserve CONFIGURE_OPTS 2013-03-28 16:35:26 +09:00
draftcode 8bf0938e60 Add an option to build a debug version of Python 2013-03-28 12:04:58 +09:00
Yamashita, Yuu aa831836e1 Merge pull request #10 from oza/patch-1
Update README.md
2013-03-07 22:29:10 -08:00
OZAWA Tsuyoshi 0eb1520707 Update README.md 2013-03-08 15:26:15 +09:00
Yamashita Yuu 606346761f s/python-virtualenv/pyenv-virtualenv/g in README.md 2013-03-06 12:48:13 +09:00
Yamashita Yuu 48e1488bc9 remove duplicated LICENSE from python-build. 2013-02-23 19:07:45 +09:00
Yamashita Yuu 0259b6adfb update copyright year 2013-02-23 19:06:58 +09:00
Yamashita Yuu dbb1fb5a06 release 0.2.0 2013-02-18 12:39:35 +09:00
Yamashita Yuu 755c00e67c fix broken installation scripts for Jython and some of CPython.
replaced deprecated method calls of `fetch_url` by `http get`.
2013-02-07 17:48:23 +09:00
Yamashita Yuu ad900ba436 fix some differences between ruby-build (refs #8) 2013-02-07 17:32:10 +09:00
Yamashita Yuu ea7dc5f1e1 fix inverted result of checking version existence (refs #7) 2013-02-07 16:50:20 +09:00
Yamashita Yuu be53bb8951 update README 2013-02-06 22:08:16 +09:00
Yamashita Yuu 167ff2a198 s/Ruby/Python/g; s/RBENV/PYENV/g 2013-02-06 16:05:29 +09:00
Yamashita Yuu ee3c9bef5e fix typo; s/vesions/versions/
also this will fix https://github.com/yyuu/python-virtualenv/issues/1
2013-02-01 12:46:57 +09:00
Yamashita Yuu 6d307c6e11 import recent changes from ruby-build:
* verify checksum of downloaded archives.
* add PYTHON_BUILD_MIRROR_URL to use mirror site.
  But we don't have CloudFront setup as of now :-(
* rbenv 0.4.x style help messages
2013-01-31 13:27:39 +09:00
Yamashita Yuu a0705cb86e fix shell syntax error. add missing `then'. 2013-01-28 12:53:18 +09:00
Yamashita Yuu fca31c4307 import trivial changes from rbenv 0.4.0 2013-01-18 19:10:35 +09:00
Yamashita Yuu 684f7b7f21 add support for .python-version file to store local python version 2013-01-18 19:10:30 +09:00
Yamashita Yuu da06998457 import rbenv-help from rbenv 0.4.0 2013-01-18 19:09:56 +09:00
Yamashita Yuu f466679bd1 import pyenv---version from rbenv 2013-01-17 23:17:41 +09:00
Yamashita Yuu 4a217a0cd1 update distribute to 0.6.34 2013-01-11 13:41:40 +09:00
Yamashita Yuu 5b14236bac fix "system" handling 2012-12-19 23:58:39 +09:00
Yamashita Yuu a16355fe33 fix wrong link to the README in the help message 2012-12-14 18:45:28 +09:00
Yamashita Yuu c9575d7cb0 update distribute and pip versions
* distribute (0.6.28 -> 0.6.32)
* pip (1.1 -> 1.2.1)
2012-12-11 12:19:56 +09:00
Yamashita Yuu 252003f18e add pypy-2.0-beta1 2012-12-11 12:13:18 +09:00
Yamashita Yuu 7509b9fadf update feature list in README 2012-11-06 13:17:04 +09:00
Yamashita Yuu f878896a77 ignore non files 2012-10-23 17:55:55 +09:00
Yamashita Yuu d09af20897 0.1.3git 2012-10-23 15:25:18 +09:00
Yamashita Yuu b520475b22 release 0.1.2 2012-10-23 15:24:41 +09:00
Yamashita Yuu ffa2505450 add install script 2012-10-23 15:23:48 +09:00
Yamashita Yuu d73e945329 "rbx-1.2.4" is a variant of rubies, not a python 2012-10-19 22:14:24 +09:00
Yamashita Yuu 779aacbf07 I am not Sam. 2012-10-19 22:12:31 +09:00
Yamashita Yuu 2ed400bfc6 use default CC to build CPython and Stackless. require_gcc was
imported from ruby-build and is for rubies, not for pythons.
2012-10-16 16:07:19 +09:00
Yamashita Yuu e8ad78f837 add pyenv push and pyenv pop to manage version stack 2012-10-03 12:19:42 +09:00
Yamashita Yuu aede700619 update README 2012-10-03 11:31:10 +09:00
Yamashita Yuu ffa5fb0ea0 add CPython 3.3.0 release 2012-10-02 16:30:59 +09:00
Yamashita Yuu 42079cf3fb fix typo in README 2012-09-28 20:17:26 +09:00
Yamashita Yuu d14eda2c1a ignore plugins other than python-build 2012-09-27 13:00:07 +09:00
Yamashita Yuu 579d44203f add 3.3.0rc2 and 3.3.0rc3 2012-09-27 12:50:42 +09:00
Yamashita, Yuu a7695aa5d3 Merge pull request #1 from f440/master
Fix undiscovered function problem
2012-09-09 05:55:25 -07:00
FUSE Yoshio f3ae8fd904 fix typo in function name 2012-09-09 21:45:44 +09:00
Yamashita Yuu 4174749b24 replace tr by shell's IFS 2012-09-07 20:10:10 +09:00
Yamashita Yuu e89ae3a4a9 show all enabled versions (maybe multiple) in pyenv versions 2012-09-07 19:56:55 +09:00
Yamashita Yuu 13122ca9bf fixed to read multiple versions from PYENV_VERSION environment variable 2012-09-07 19:16:42 +09:00
Yamashita Yuu 34a4a532b2 0.1.2git 2012-09-03 19:40:49 +09:00
Yamashita Yuu d08fcc522e release 0.1.1 2012-09-03 19:40:30 +09:00
Yamashita Yuu f0ff5a416e added 3.3.0rc1 2012-09-03 19:36:04 +09:00
Yamashita Yuu e66ca60340 updated screenshot 2012-08-31 21:05:18 +09:00
Yamashita Yuu 71e5cd962e updated README 2012-08-31 20:59:24 +09:00
Yamashita Yuu da659739d2 fixed pyenv shell. we cannot carry out bash array via envvars. 2012-08-31 20:12:26 +09:00
Yamashita Yuu dff57ae35d s/PYENV_VERSIONS/PYENV_VERSION/ for backward compatibility. 2012-08-31 19:39:29 +09:00
Yamashita Yuu 2856f81bb9 added more pythons 2012-08-31 19:11:29 +09:00
Yamashita Yuu 5224641f1a added CPython 2.5.6 2012-08-31 17:20:31 +09:00
Yamashita Yuu a4c02082cb pypy installation doesn't require gcc 2012-08-31 17:18:47 +09:00
Yamashita Yuu 80c0dce7b2 Merge branch 'version-stack' 2012-08-31 16:50:57 +09:00
Yamashita Yuu de25a84dc2 fixed build error on Mac OS X 2012-08-31 16:50:24 +09:00
Yamashita Yuu 8187bc84e3 search commands from python version stack.
users can use multiple python versions at once.
2012-08-31 16:09:46 +09:00
Yamashita Yuu 880ea61dd8 0.1.1git 2012-08-31 15:59:36 +09:00
Yamashita Yuu 7953f573c6 modify ruby-build for Python and import into pyenv as default plugin. 2012-08-31 15:55:21 +09:00
Yamashita Yuu 2457419b4a created new project.
modified rbenv source for Python and renamed to pyenv.
2012-08-31 15:30:20 +09:00
1652 changed files with 194494 additions and 3012 deletions

2
.agignore Normal file
View file

@ -0,0 +1,2 @@
./versions
./cache

4
.dockerignore Normal file
View file

@ -0,0 +1,4 @@
.git/
.python-version
.vscode/
.idea/

11
.editorconfig Normal file
View file

@ -0,0 +1,11 @@
# Editor configuration, see https://editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
# Makefiles always use tabs for indentation
[Makefile]
indent_style = tab
indent_size = unset # Allow user-defined tab width

1
.gitattributes vendored
View file

@ -1 +0,0 @@
/share/man/man[1-8]/*.[1-8] linguist-generated

1
.github/CODEOWNERS vendored Normal file
View file

@ -0,0 +1 @@
* @pyenv/pyenv-core-maintainers @pyenv/pyenv-core-committers

12
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,12 @@
# These are supported funding model platforms
github: [pyenv] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: pyenv # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

54
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,54 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
### Prerequisites
* [ ] Make sure your problem is not listed in [the common build problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems).
* [ ] Make sure no duplicated issue has already been reported in [the pyenv issues](https://github.com/pyenv/pyenv/issues?q=is%3Aissue). For build errors, a reported issue typically mentions a key error message. This key error message is often not in the 10 last build log lines reported to the console but is rather earlier in the build log -- typically, it's the first error message encountered in the log.
* [ ] Make sure you are reporting a problem in Pyenv and not seeking consultation with Pyenv usage.
* GitHub issues are intended mainly for Pyenv development purposes. If you are seeking help with Pyenv usage, check [Pyenv documentation](https://github.com/pyenv/pyenv?tab=readme-ov-file#simple-python-version-management-pyenv), go to a user community site like [Gitter](https://gitter.im/yyuu/pyenv), [StackOverflow](https://stackoverflow.com/questions/tagged/pyenv), etc, or to [Discussions](https://github.com/orgs/pyenv/discussions).
* [ ] Make sure your problem is not derived from packaging (e.g. [Homebrew](https://brew.sh)).
* Please refer to the package documentation for the installation issues, etc.
* [ ] Make sure your problem is not derived from plugins.
* This repository is maintaining `pyenv` and the default `python-build` plugin only. Please refrain from reporting issues of other plugins here.
### Describe the bug
A clear and concise description of what the bug is.
Do specify what the expected behaviour is if that's not obvious from the bug's nature.
#### Reproduction steps
Listing the commands to run in a new console session and their output is usually sufficient.
Please use a Markdown code block (three backticks on a line by themselves before and after the text) to denote a console output excerpt.
Usually not needed for build errors (since the arguments can already be seen in the debug trace) unless you are using an unusual invocation (e.g. setting environment variables that affect the build).
#### Diagnostic details
- [ ] Platform information (e.g. Ubuntu Linux 24.04):
- [ ] OS architecture (e.g. amd64):
- [ ] pyenv version:
- [ ] Python version:
- [ ] C Compiler information (e.g. gcc 7.3):
- [ ] Please attach the debug trace of the failing command as a [gist](https://gist.github.com/):
* Run `env PYENV_DEBUG=1 <faulty command> 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v <version> 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`).
- [ ] If you have a problem with installing Python, please also attach `config.log` from the build directory
* The build directory is reported after the "BUILD FAILED" message and is usually under `/tmp`.
- [ ] If the build succeeds but the problem is still with the build process (e.g. the resulting Python is missing a feature), please attach
* the debug trace from reinstalling the faulty version with `env PYENV_DEBUG=1 pyenv install -f -k -v <version> 2>&1 | tee trace.log`
* `config.log` from the build directory. When using `pyenv install` with `-k` as per above, the build directory will be under `$PYENV_ROOT/sources`.
- [ ] If the problem happens in another Pyenv invocation, turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv local 3.6.4`, and attach the resulting trace as a gist
- [ ] If the problem happens outside of a Pyenv invocation, get the debug trace like this:
```
export PYENV_DEBUG=1
# for Bash
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
# for Zsh
export PS4='+(%x:%I): %N(%i): '
set -x
<reproduce the problem>
set +x
```

View file

@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Describe the intended use case**
* What your general environment is if it's relevant to the feature request and is not a generic console with a typical Pyenv installation (CI, server with a custom setup, cloud environment, IDE)
* What you are trying to achieve
* What specifically you are doing for that regarding Pyenv
* Where you are stuck
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
[ ] In particular, did you consider [writing a plugin](https://github.com/pyenv/pyenv/blob/master/README.md#pyenv-plugins)? Note that if your plugin has general applicability, you can publish it in the 3rd-party plugin catalog on the Pyenv Wiki as per the link above.
**Additional context**
Add any other context or screenshots about the feature request here.

13
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View file

@ -0,0 +1,13 @@
Make sure you have checked all steps below.
### Prerequisite
* [ ] Please consider implementing the feature as a hook script or plugin as a first step.
* pyenv has some powerful support for plugins and hook scripts. Please refer to [Authoring plugins](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) for details and try to implement it as a plugin if possible.
* [ ] My PR addresses the following pyenv issue (if any)
- Closes https://github.com/pyenv/pyenv/issues/XXXX
### Description
- [ ] Here are some details about my PR
### Tests
- [ ] My PR adds the following unit tests (if any)

44
.github/actions/build-python/action.yml vendored Normal file
View file

@ -0,0 +1,44 @@
name: Build a Python version
description: >
Install python-build's system dependencies for the current runner's OS, build
and check the requested version.
inputs:
python-version:
description: A version as accepted by `pyenv install`.
required: true
runs:
using: composite
steps:
- shell: bash
run: |
#envvars
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
# The two OSes differ only in this step.
- if: runner.os == 'macOS'
shell: bash
run: |
#prerequisites
brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd
- if: runner.os == 'Linux'
shell: bash
run: |
#prerequisites
pyenv install-prerequisites
- shell: bash
run: |
#build
pyenv --debug install ${{ inputs.python-version }} && rc=$? || rc=$?
if [[ $rc -ne 0 ]]; then echo config.log:; cat "${TMPDIR:-/tmp}"/python-build*/*/config.log; false; fi
pyenv global ${{ inputs.python-version }}
pyenv rehash
- shell: bash
run: |
#print version
python --version
python -m pip --version
- shell: python # Prove that actual Python == expected Python
env:
EXPECTED_PYTHON: ${{ inputs.python-version }}
run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON"))

View file

@ -1,6 +1,12 @@
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: 'weekly'
interval: "monthly"
cooldown:
default-days: 7
groups:
github-actions:
patterns:
- "*"

View file

@ -0,0 +1,364 @@
#!/usr/bin/env python3
"""Generate a "Sponsors since <date>" section for release notes.
Queries GitHub Sponsors and OpenCollective for new sponsors since the latest
pyenv release or one month ago, whichever is longer. The output is Markdown
suitable for GitHub Releases.
Requirements:
* Python 3.8+
* The ``gh`` CLI authenticated with the ``read:user`` scope.
* Network access to https://opencollective.com.
"""
import argparse
import calendar
import datetime
import json
import pathlib
import subprocess
import sys
import typing
import urllib.error
import urllib.request
GITHUB_ORG = "pyenv"
OPENCOLLECTIVE_MEMBERS_URL = "https://opencollective.com/pyenv/members.json"
class SponsorDataError(RuntimeError):
"""Raised when a sponsors data source cannot be queried or parsed."""
def parse_date(value: str) -> datetime.date:
return datetime.datetime.fromisoformat(value).date()
def one_month_ago(today: typing.Optional[datetime.date] = None) -> datetime.date:
today = today or datetime.date.today()
year = today.year
month = today.month - 1
if month == 0:
year -= 1
month = 12
try:
return datetime.date(year, month, today.day)
except ValueError:
last_day = calendar.monthrange(year, month)[1]
return datetime.date(year, month, last_day)
def latest_release_date() -> datetime.date:
"""Return the publish date of the latest GitHub release."""
latest_release_error = None
try:
result = subprocess.run(
["gh", "api", f"repos/{GITHUB_ORG}/{GITHUB_ORG}/releases/latest"],
capture_output=True,
text=True,
check=True,
)
data = json.loads(result.stdout)
published = data["published_at"].replace("Z", "+00:00")
return datetime.datetime.fromisoformat(published).date()
except (
subprocess.CalledProcessError,
OSError,
json.JSONDecodeError,
KeyError,
) as exc:
latest_release_error = exc
try:
tag = subprocess.run(
["git", "describe", "--tags", "--abbrev=0"],
capture_output=True,
text=True,
check=True,
).stdout.strip()
date_str = subprocess.run(
["git", "log", "-1", "--format=%cI", tag],
capture_output=True,
text=True,
check=True,
).stdout.strip()
return datetime.datetime.fromisoformat(date_str).date()
except (subprocess.CalledProcessError, OSError) as exc:
detail = ""
if latest_release_error is not None:
detail = f" GitHub release lookup failed first: {latest_release_error}."
raise SponsorDataError(
"Could not determine the latest release date. "
"Pass --since explicitly or run from a clone with release tags."
f"{detail}"
) from exc
def compute_since_date(explicit_since: typing.Optional[datetime.date]) -> datetime.date:
if explicit_since is not None:
return explicit_since
return min(latest_release_date(), one_month_ago())
def github_sponsors(since: datetime.date) -> typing.List[typing.Dict]:
"""Return GitHub Sponsors created on or after *since*."""
query = """
query($org: String!, $after: String) {
organization(login: $org) {
sponsorshipsAsMaintainer(
first: 100,
after: $after,
activeOnly: false,
orderBy: {field: CREATED_AT, direction: DESC}
) {
pageInfo {
hasNextPage
endCursor
}
nodes {
createdAt
sponsorEntity {
... on User { login, name }
... on Organization { login, name }
}
}
}
}
}
"""
since_dt = datetime.datetime.combine(
since, datetime.time.min, tzinfo=datetime.timezone.utc
)
sponsors = []
cursor = None
while True:
command = [
"gh",
"api",
"graphql",
"-F",
f"org={GITHUB_ORG}",
"-f",
f"query={query}",
]
if cursor is not None:
command.extend(["-F", f"after={cursor}"])
result = subprocess.run(
command,
capture_output=True,
text=True,
)
if result.returncode != 0:
detail = result.stderr.strip() or result.stdout.strip() or "no output"
raise SponsorDataError(
"GitHub Sponsors query failed. "
"Check that `gh auth status` shows access to the pyenv org "
"and that the token has the scopes required to read sponsorships. "
f"`gh api graphql` exited {result.returncode}: {detail}"
)
try:
data = json.loads(result.stdout)
except json.JSONDecodeError as exc:
raise SponsorDataError(
"GitHub Sponsors query returned invalid JSON."
) from exc
if "errors" in data:
raise SponsorDataError(
f"GitHub Sponsors query returned errors: {data['errors']}"
)
try:
sponsorships = data["data"]["organization"]["sponsorshipsAsMaintainer"]
except (TypeError, KeyError) as exc:
raise SponsorDataError(
"GitHub Sponsors query returned an unexpected response shape."
) from exc
try:
nodes = sponsorships["nodes"]
page_info = sponsorships["pageInfo"]
except (TypeError, KeyError) as exc:
raise SponsorDataError(
"GitHub Sponsors query returned incomplete pagination data."
) from exc
for node in nodes:
try:
created = datetime.datetime.fromisoformat(
node["createdAt"].replace("Z", "+00:00")
)
entity = node["sponsorEntity"]
login = entity["login"]
except (AttributeError, KeyError, TypeError, ValueError) as exc:
raise SponsorDataError(
"GitHub Sponsors query returned an unexpected sponsor record."
) from exc
if created < since_dt:
return sponsors
sponsors.append({
"login": login,
"name": entity.get("name") or login,
})
try:
has_next_page = page_info["hasNextPage"]
cursor = page_info["endCursor"]
except (TypeError, KeyError) as exc:
raise SponsorDataError(
"GitHub Sponsors query returned incomplete pagination data."
) from exc
if not has_next_page:
return sponsors
def opencollective_sponsors(since: datetime.date, data: typing.Union[str, None]) -> typing.List[typing.Dict]:
"""Return OpenCollective backers active on or after *since*."""
if data is None:
req = urllib.request.Request(
f"{OPENCOLLECTIVE_MEMBERS_URL}?limit=1000",
headers={"User-Agent": f"{GITHUB_ORG}/release-notes-sponsors"},
)
try:
with urllib.request.urlopen(req, timeout=30) as resp:
data = resp.read()
except urllib.error.HTTPError as exc:
raise SponsorDataError(
f"OpenCollective sponsors query failed for {OPENCOLLECTIVE_MEMBERS_URL}: "
f"HTTP {exc.code} {exc.reason}"
) from exc
except urllib.error.URLError as exc:
raise SponsorDataError(
f"OpenCollective sponsors query failed for {OPENCOLLECTIVE_MEMBERS_URL}: "
f"{exc.reason}"
) from exc
try:
members = json.loads(data)
except json.JSONDecodeError as exc:
raise SponsorDataError(
"OpenCollective sponsors query returned invalid JSON."
) from exc
since_dt = datetime.datetime.combine(since, datetime.time.min)
sponsors = []
for member in members:
if member.get("role") != "BACKER":
continue
try:
last_transaction_at = datetime.datetime.strptime(member["lastTransactionAt"], "%Y-%m-%d %H:%M")
profile = member["profile"].rstrip("/")
except (KeyError, TypeError, ValueError) as exc:
raise SponsorDataError(
"OpenCollective sponsors query returned an unexpected member record."
) from exc
if last_transaction_at < since_dt:
continue
slug = profile.split("/")[-1]
if slug == "github-sponsors":
# Listed separately under GitHub Sponsors.
continue
sponsors.append({
"name": member.get("name") or slug,
"profile": profile,
})
return sponsors
def render(
since: datetime.date,
gh_sponsors: typing.List[typing.Dict],
oc_sponsors: typing.List[typing.Dict],
) -> str:
lines = [f"## Sponsors since {since.isoformat()}", ""]
if gh_sponsors:
lines.append("### GitHub Sponsors")
for sponsor in gh_sponsors:
lines.append(
markdown_link(
sponsor["name"],
f"https://github.com/{sponsor['login']}",
)
)
lines.append("")
if oc_sponsors:
lines.append("### Open Collective")
for sponsor in oc_sponsors:
lines.append(markdown_link(sponsor["name"], sponsor["profile"]))
lines.append("")
if not gh_sponsors and not oc_sponsors:
lines.append("*No new sponsors in this period.*")
lines.append("")
return "\n".join(lines)
def markdown_link(text: str, url: str) -> str:
escaped_text = escape_markdown_text(text)
escaped_url = url.replace(")", "%29")
return f"- [{escaped_text}]({escaped_url})"
def escape_markdown_text(text: str) -> str:
escaped = text.replace("\\", "\\\\")
for char in r"`*_{}[]()#+-.!|>":
escaped = escaped.replace(char, f"\\{char}")
return escaped
def main() -> int:
parser = argparse.ArgumentParser(
description="Generate a sponsors section for GitHub release notes."
)
parser.add_argument(
"--since",
type=parse_date,
metavar="YYYY-MM-DD",
help="Include sponsors created on or after this date.",
)
parser.add_argument(
"--output",
metavar="FILE",
help="Write the section to FILE instead of stdout.",
)
parser.add_argument(
"--skip-opencollective",
action="store_true",
help="Skip OpenCollective backers if the members endpoint is unavailable.",
)
parser.add_argument(
"--opencollective-data",
metavar="FILE",
help="Take OpenCollective API reply from FILE.",
)
args = parser.parse_args()
try:
since = compute_since_date(args.since)
oc_sponsors = []
if not args.skip_opencollective:
manual_data = (
pathlib.Path(args.opencollective_data).read_text()) \
if args.opencollective_data \
else None
oc_sponsors = opencollective_sponsors(since, manual_data)
section = render(since, github_sponsors(since), oc_sponsors)
except SponsorDataError as exc:
print(f"error: {exc}", file=sys.stderr)
return 1
if args.output:
with open(args.output, "w", encoding="utf-8") as f:
f.write(section)
else:
print(section, end="")
return 0
if __name__ == "__main__":
sys.exit(main())

58
.github/workflows/add_version.yml vendored Normal file
View file

@ -0,0 +1,58 @@
name: Add versions
on:
workflow_dispatch: {}
schedule:
# Every N hours
- cron: '25 */4 * * *'
permissions:
contents: write
pull-requests: write
jobs:
add_cpython:
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: 3
cache: 'pip'
cache-dependency-path: plugins/python-build/scripts/requirements.txt
- run: pip install -r plugins/python-build/scripts/requirements.txt
- name: check for a release
run: |
python plugins/python-build/scripts/add_cpython.py --verbose >added_versions.lst && rc=$? || rc=$?
#0 means new version found, 1 not found, 2 another error
[[ $rc -gt 1 ]] && false
echo "rc=$rc" >> $GITHUB_ENV
- name: set PR properties
if: env.rc == 0
shell: python
run: |
import os
import sys
versions=[l.rstrip() for l in open("added_versions.lst")]
with open(os.environ['GITHUB_ENV'],'a') as f:
f.write(f'branch_name=auto_add_version/{"_".join(versions)}\n')
f.write(f'pr_name=Add CPython {", ".join(versions)}\n')
os.remove("added_versions.lst")
# https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens
- name: Generate Github token
if: env.rc == 0
uses: actions/create-github-app-token@v3
id: generate-token
with:
app-id: ${{ vars.PYENV_BOT_APP_ID }}
private-key: ${{ secrets.PYENV_BOT_PRIVATE_KEY }}
- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
if: env.rc == 0
with:
branch: ${{ env.branch_name }}
title: ${{ env.pr_name }}
commit-message: ${{ env.pr_name }}
token: ${{ steps.generate-token.outputs.token }}

62
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,62 @@
name: build
on:
push:
branches: [master]
pull_request: {}
permissions:
contents: read
jobs:
discover_build_logic_change:
if: github.event_name == 'pull_request'
runs-on: ubuntu-slim
env:
FULL_OS_MATRIX: '[
"macos-14",
"macos-15",
"macos-15-intel",
"macos-26",
"macos-26-intel",
"ubuntu-22.04",
"ubuntu-22.04-arm",
"ubuntu-24.04",
"ubuntu-24.04-arm"
]'
outputs:
os: ${{ steps.detect.outputs.os }}
steps:
- uses: actions/checkout@v7
- run: git fetch origin "$GITHUB_BASE_REF"
- id: detect
shell: bash
run: |
if [[ -n $(git diff --name-only "origin/$GITHUB_BASE_REF" -- \
plugins/python-build/bin/python-build \
.github/actions/build-python/action.yml \
.github/workflows/build.yml) ]]
then
printf "%s\n" "os<<!" "$FULL_OS_MATRIX" "!" >> "$GITHUB_OUTPUT"
fi
build:
needs: discover_build_logic_change
# Run when the detection job succeeded *or was skipped* -- but not failed
if: ${{ !cancelled() && !failure() }}
strategy:
fail-fast: false
matrix:
os: ${{ fromJson(needs.discover_build_logic_change.outputs.os || '["macos-latest","ubuntu-latest"]') }}
python-version:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/build-python
with:
python-version: ${{ matrix.python-version }}

View file

@ -1,17 +0,0 @@
name: CI
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Install bats
run: git clone --depth 1 --branch v1.10.0 https://github.com/bats-core/bats-core.git bats
- name: Run tests
run: PATH="./bats/bin:$PATH" test/run

View file

@ -1,29 +0,0 @@
---
name: Lint
on:
push:
branches: [master]
pull_request:
branches: [master]
permissions:
contents: read
jobs:
shellcheck:
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Repository checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Differential ShellCheck
uses: redhat-plumbers-in-action/differential-shellcheck@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}

View file

@ -0,0 +1,304 @@
name: modified_scripts
on: [pull_request]
jobs:
discover_modified_scripts:
runs-on: ubuntu-slim
outputs:
versions: ${{steps.modified-versions.outputs.versions}}
versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}}
versions_macos_build_exclude: ${{steps.modified-versions.outputs.versions_macos_build_exclude}}
steps:
- uses: actions/checkout@v7
- run: git fetch origin "$GITHUB_BASE_REF"
- shell: bash
run: >
versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z
| perl -ne 'BEGIN {$\="\n";$/="\0";} chomp;
if (/^(plugins\/python-build\/share\/python-build\/)(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& )
{
print $2.$3;
if ( -e $1.$2.$3.t ) { print $2.$3.t; }
}' \
| sort -u);
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64);
echo "versions<<$EOF" >> $GITHUB_ENV;
echo "$versions" >> $GITHUB_ENV;
echo "$EOF" >> $GITHUB_ENV;
versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$versions")
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64);
echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV;
echo "$versions_cpython_only" >> $GITHUB_ENV;
echo "$EOF" >> $GITHUB_ENV;
- run: pip install packaging
- name: Build exclusions JSON
shell: python
run: |
import os
import json
import random
import re
import subprocess
import packaging.version
result=[]
def exclude_macos_intel(result, python_version):
result.append({'os':'macos-15-intel','python-version':python_version})
result.append({'os':'macos-26-intel','python-version':python_version})
for line in os.environ['versions'].splitlines():
if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+\.\d+)', line):
version = packaging.version.Version(m.group(1))
# Miniconda dropped MacOS x64 support
if version >= packaging.version.Version('25.9.1'):
exclude_macos_intel(result, line)
if m:=re.match(r'anaconda3-(\d+\.\d+)', line):
version = packaging.version.Version(m.group(1))
# Anaconda dropped MacOS x64 support
if version >= packaging.version.Version('2025.12'):
exclude_macos_intel(result, line)
if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+\.\d+)', line):
version = packaging.version.Version(m.group(2))
# GraalPy dropped MacOS x64 support
if version >= packaging.version.Version('25.0.2'):
exclude_macos_intel(result, line)
EOF = str(random.getrandbits(15*8))
with open(os.environ['GITHUB_ENV'],'w') as f:
f.write(f"versions_macos_build_exclude_json<<{EOF}\n")
json.dump(result, f)
f.write(f'\n{EOF}\n')
- id: modified-versions
run: |
echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT
echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT
echo 'versions_macos_build_exclude=${{ env.versions_macos_build_exclude_json }}' >> $GITHUB_OUTPUT
macos_build:
needs: discover_modified_scripts
if: needs.discover_modified_scripts.outputs.versions != '[""]'
strategy:
fail-fast: false
matrix:
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}}
os:
- macos-14
- macos-15
- macos-15-intel
- macos-26
- macos-26-intel
exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- run: |
#envvars
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
- run: |
#prerequisites
brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
export PYENV_BOOTSTRAP_VERSION=pypy2.7-7
echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV
pyenv install $PYENV_BOOTSTRAP_VERSION
fi
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?
if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi
pyenv global ${{ matrix.python-version }}
# Micropython doesn't support --version
- run: |
#print version
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
python -c 'import sys; print(sys.version)'
else
python --version
python -m pip --version
fi
# Micropython doesn't support sys.executable, os.path, older versions even os
- env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: |
#check
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1
python -c 'import sys; assert sys.implementation.name == "micropython"'
else
python -c 'if True:
import os, sys, os.path
correct_dir = os.path.join(
os.environ["PYENV_ROOT"],
"versions",
os.environ["EXPECTED_PYTHON"],
"bin")
assert os.path.dirname(sys.executable) == correct_dir'
fi
# bundled executables in some Anaconda releases cause the post-run step to hang in MacOS
- run: |
pyenv global system
rm -f "$(pyenv root)"/shims/*
macos_build_bundled_dependencies:
needs: discover_modified_scripts
if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]'
strategy:
fail-fast: false
matrix:
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}}
os:
- macos-14
- macos-15
- macos-15-intel
- macos-26
- macos-26-intel
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- run: |
#envvars
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
- run: |
#prerequisites
brew install sqlite3 xz tcl-tk@8 libb2 zstd
"$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?
if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi
pyenv global ${{ matrix.python-version }}
- run: |
#print version
python --version
python -m pip --version
- env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: |
#check
python -c '
import os, sys, os.path
correct_dir = os.path.join(
os.environ["PYENV_ROOT"],
"versions",
os.environ["EXPECTED_PYTHON"],
"bin")
assert os.path.dirname(sys.executable) == correct_dir'
ubuntu_build:
needs: discover_modified_scripts
if: needs.discover_modified_scripts.outputs.versions != '[""]'
strategy:
fail-fast: false
matrix:
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}}
os:
- ubuntu-22.04
- ubuntu-22.04-arm
- ubuntu-24.04
- ubuntu-24.04-arm
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- run: |
#envvars
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
- run: |
#prerequisites
pyenv install-prerequisites
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
export PYENV_BOOTSTRAP_VERSION=pypy2.7-7
echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV
pyenv install $PYENV_BOOTSTRAP_VERSION
fi
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?
if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi
pyenv global ${{ matrix.python-version }}
# Micropython doesn't support --version
- run: |
#print version
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
python -c 'import sys; print(sys.version)'
else
python --version
python -m pip --version
fi
# Micropython doesn't support sys.executable, os.path, older versions even os
- env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: |
#check
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1
python -c 'import sys; assert sys.implementation.name == "micropython"'
else
python -c 'if True:
import os, sys, os.path
correct_dir = os.path.join(
os.environ["PYENV_ROOT"],
"versions",
os.environ["EXPECTED_PYTHON"],
"bin")
assert os.path.dirname(sys.executable) == correct_dir'
fi
# bundled executables in some Anaconda releases cause the post-run step to break
- run: |
pyenv global system
rm -f "$(pyenv root)"/shims/*
ubuntu_build_tar_gz:
needs: discover_modified_scripts
if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]'
strategy:
fail-fast: false
matrix:
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- run: |
#envvars
export PYENV_ROOT="$GITHUB_WORKSPACE"
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_ENV
- run: |
#prerequisites
pyenv install-prerequisites
- run: |
#build
pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$?
if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi
pyenv global ${{ matrix.python-version }}
- run: |
#print version
python --version
python -m pip --version
- env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: |
#check
python -c '
import os, sys, os.path
correct_dir = os.path.join(
os.environ["PYENV_ROOT"],
"versions",
os.environ["EXPECTED_PYTHON"],
"bin")
assert os.path.dirname(sys.executable) == correct_dir'

30
.github/workflows/no-response.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: No Response
# Both `issue_comment` and `scheduled` event types are required for this Action
# to work properly.
on:
issue_comment:
types: [created]
schedule:
# Schedule for ten minutes after the hour, every 2 hours
- cron: '10 */2 * * *'
permissions: {}
jobs:
noResponse:
permissions:
issues: write # to update issues (lee-dohm/no-response)
runs-on: ubuntu-slim
steps:
- uses: lee-dohm/no-response@v0.5.0
with:
token: ${{ github.token }}
daysUntilClose: 30
responseRequiredLabel: need-feedback
closeComment: >
This issue has been automatically closed because there has been no response
to our request for more information from the original author. With only the
information that is currently in the issue, we don't have enough information
to take action. Please reach out if you have or find the answers we need so
that we can investigate further.

45
.github/workflows/pyenv_tests.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: pyenv_tests
on:
push:
branches: [master]
pull_request: {}
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
pyenv_tests:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-22.04-arm
- ubuntu-24.04
- ubuntu-24.04-arm
- macos-14
- macos-15
- macos-15-intel
- macos-26
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- name: Install prerequisites
run: |
if test "$RUNNER_OS" == "macOS"; then
brew install coreutils fish
fi
- name: Run tests
run: |
make test
- env:
PYENV_NATIVE_EXT: 1
run: |
(cd src; ./configure; make)
bats/bin/bats test/{pyenv,hooks,versions}.bats
pyenv_tests_docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- run: |
make test-docker

View file

@ -1,16 +0,0 @@
name: Release
on:
push:
tags: 'v*'
jobs:
homebrew:
name: Bump Homebrew formula
runs-on: ubuntu-latest
steps:
- uses: mislav/bump-homebrew-formula-action@v3.2
if: "!contains(github.ref, '-')" # skip prereleases
with:
formula-name: rbenv
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}

View file

@ -0,0 +1,11 @@
#!/bin/bash
declare -a packages rdepends
packages=("$@")
# have to try one by one, otherwise `brew uses` would only print
# packages that require them all rather than any of them
for package in "${packages[@]}"; do
rdepends+=($(brew uses --installed --include-build --include-test --include-optional --recursive "$package"))
done
brew uninstall "${packages[@]}" "${rdepends[@]}"

8
.gitignore vendored
View file

@ -1,4 +1,3 @@
/plugins
/shims
/version
/versions
@ -7,4 +6,9 @@
/libexec/*.dylib
/src/Makefile
/src/*.o
/gems
/bats
/bats-*/
/default-packages
.idea
*.un~
*.swp

1709
CHANGELOG.md Normal file

File diff suppressed because it is too large Load diff

411
COMMANDS.md Normal file
View file

@ -0,0 +1,411 @@
# Command Reference
Like `git`, the `pyenv` command delegates to subcommands based on its
first argument.
The most common subcommands are:
* [`pyenv help`](#pyenv-help)
* [`pyenv commands`](#pyenv-commands)
* [`pyenv local`](#pyenv-local)
* [`pyenv global`](#pyenv-global)
* [`pyenv shell`](#pyenv-shell)
* [`pyenv install`](#pyenv-install)
* [`pyenv uninstall`](#pyenv-uninstall)
* [`pyenv rehash`](#pyenv-rehash)
* [`pyenv version`](#pyenv-version)
* [`pyenv versions`](#pyenv-versions)
* [`pyenv which`](#pyenv-which)
* [`pyenv whence`](#pyenv-whence)
* [`pyenv exec`](#pyenv-exec)
* [`pyenv root`](#pyenv-root)
* [`pyenv prefix`](#pyenv-prefix)
* [`pyenv latest`](#pyenv-latest)
* [`pyenv hooks`](#pyenv-hooks)
* [`pyenv shims`](#pyenv-shims)
* [`pyenv init`](#pyenv-init)
* [`pyenv completions`](#pyenv-completions)
## `pyenv help`
List all available pyenv commands along with a brief description of what they do. Run `pyenv help <command>` for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme
## `pyenv commands`
Lists all available pyenv commands.
## `pyenv local`
Sets a local application-specific Python version by writing the version
name to a `.python-version` file in the current directory. This version
overrides the [global version](#pyenv-global), and can be overridden
itself with the [`pyenv shell`](#pyenv-shell) command.
$ pyenv local 2.7.6
When run without a version number, `pyenv local` reports the currently
configured local version. You can also unset the local version:
$ pyenv local --unset
Previous versions of pyenv stored local version specifications in a
file named `.pyenv-version`. For backwards compatibility, pyenv will
read a local version specified in an `.pyenv-version` file, but a
`.python-version` file in the same directory will take precedence.
### `pyenv local` (advanced)
You can specify multiple versions as local Python at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv local 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv local 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
You can use the `-f/--force` flag to force setting versions even if some aren't installed.
This is mainly useful in special cases like provisioning scripts.
## `pyenv global`
Sets the global version of Python to be used in all shells by writing
the version name to the `$PYENV_ROOT/version` file. This version can be
overridden with [`pyenv local`](#pyenv-local) or [`pyenv shell`](#pyenv-shell).
$ pyenv global 2.7.6
The special version name `system` tells pyenv to use the system Python
(detected by searching your `$PATH`).
When run without a version number, `pyenv global` reports the
currently configured global version.
### `pyenv global` (advanced)
You can specify multiple versions as global Python at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv global 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv global 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
## `pyenv shell`
Sets a shell-specific Python version by setting the `PYENV_VERSION`
environment variable in your shell. This version overrides
application-specific versions and the global version.
$ pyenv shell pypy-2.2.1
When run without a version number, `pyenv shell` reports the current
value of `PYENV_VERSION`. You can also unset the shell version:
$ pyenv shell --unset
Note that you'll need pyenv's shell integration enabled (step 3 of
the installation instructions) in order to use this command. If you
prefer not to use shell integration, you may simply set the
`PYENV_VERSION` variable yourself:
$ export PYENV_VERSION=pypy-2.2.1
### `pyenv shell` (advanced)
You can specify multiple versions via `PYENV_VERSION` at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv shell 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv shell 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
## `pyenv install`
Install a Python version (using [`python-build`](https://github.com/pyenv/pyenv/tree/master/plugins/python-build)).
Usage: pyenv install [-f] [-kvp] <version>[:<alias>]
pyenv install [-f] [-kvp] <definition-file>[:<alias>]
pyenv install -l|--list
-l/--list List all available versions
-f/--force Install even if the version appears to be installed already
-s/--skip-existing Skip the installation if the version appears to be installed already
python-build options:
-k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
(defaults to $PYENV_ROOT/sources)
-v/--verbose Verbose mode: print compilation status to stdout
-p/--patch Apply a patch from stdin before building
-g/--debug Build a debug version
To list the all available versions of Python, including Anaconda, Jython, pypy, and stackless, use:
$ pyenv install --list
Then install the desired versions:
$ pyenv install 2.7.6
$ pyenv install 2.6.8
$ pyenv versions
system
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
You can also install the latest version of Python in a specific version line by supplying a prefix instead of a complete name:
$ pyenv install 3.10
$ pyenv install 3
See the [`pyenv latest` documentation](#pyenv-latest) for details on prefix resolution.
An older option is to use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do:
pyenv install 3.8:latest
## `pyenv uninstall`
Uninstall Python versions.
Usage: pyenv uninstall [-f|--force] <version> ...
-f Attempt to remove the specified version without prompting
for confirmation. If the version does not exist, do not
display an error message.
## `pyenv rehash`
Installs shims for all Python binaries known to pyenv (i.e.,
`~/.pyenv/versions/*/bin/*`). Run this command after you install a new
version of Python, or install a package that provides binaries.
$ pyenv rehash
## `pyenv version`
Displays the currently active Python version, along with information on
how it was set.
Usage: pyenv version [--bare]
--bare show just the version name. An alias to `pyenv version-name'
$ pyenv version
2.7.6 (set by /home/yyuu/.pyenv/version)
$ pyenv version --bare
2.7.6
## `pyenv versions`
Lists all Python versions known to pyenv, and shows an asterisk next to
the currently active version.
$ pyenv versions
2.5.6
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
3.3.3
jython-2.5.3
pypy-2.2.1
## `pyenv which`
Displays the full path to the executable that pyenv will invoke when
you run the given command.
$ pyenv which python3.3
/home/yyuu/.pyenv/versions/3.3.3/bin/python3.3
Use --nosystem argument in case when you don't need to search command in the
system environment.
## `pyenv whence`
Lists all Python versions with the given command installed.
$ pyenv whence 2to3
2.6.8
2.7.6
3.3.3
## `pyenv exec`
Usage: pyenv exec <command> [arg1 arg2...]
Runs an executable by first preparing PATH so that the selected Python
version's `bin` directory is at the front.
For example, if the currently selected Python version is 3.9.7:
pyenv exec pip install -r requirements.txt
is equivalent to:
PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt
## `pyenv root`
Displays the root directory where versions and shims are kept.
$ pyenv root
/home/user/.pyenv
## `pyenv prefix`
Displays the directories where the given Python versions are installed,
separated by colons. If no version is given, `pyenv prefix` displays the
locations of the currently selected versions.
$ pyenv prefix 3.9.7
/home/user/.pyenv/versions/3.9.7
## `pyenv latest`
Displays the latest installed or known version with the given prefix
Usage: pyenv latest [-k|--known] <prefix>
-k/--known Select from all known versions instead of installed
Only full prefixes are searched: in the actual name, the given prefix must be followed by a dot or a dash.
Prereleases and versions with specific suffixes (e.g. `-src`) are ignored.
## `pyenv hooks`
Lists installed hook scripts for a given pyenv command.
Usage: pyenv hooks <command>
## `pyenv shims`
List existing pyenv shims.
Usage: pyenv shims [--short]
$ pyenv shims
/home/user/.pyenv/shims/2to3
/home/user/.pyenv/shims/2to3-3.9
/home/user/.pyenv/shims/idle
/home/user/.pyenv/shims/idle3
/home/user/.pyenv/shims/idle3.9
/home/user/.pyenv/shims/pip
/home/user/.pyenv/shims/pip3
/home/user/.pyenv/shims/pip3.9
/home/user/.pyenv/shims/pydoc
/home/user/.pyenv/shims/pydoc3
/home/user/.pyenv/shims/pydoc3.9
/home/user/.pyenv/shims/python
/home/user/.pyenv/shims/python3
/home/user/.pyenv/shims/python3.9
/home/user/.pyenv/shims/python3.9-config
/home/user/.pyenv/shims/python3.9-gdb.py
/home/user/.pyenv/shims/python3-config
/home/user/.pyenv/shims/python-config
## `pyenv init`
Configure the shell environment for pyenv
Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [<shell>])"
pyenv init --install [<shell>]
pyenv init --detect-shell [<shell>]
- Initialize shims directory, print PYENV_SHELL variable, completions path
and shell function
--path Print shims path
--install Configure detected shell startup files
--no-push-path Do not push shim to the start of PATH if they're already there
--detect-shell Print shell startup files detected for the current shell
--no-rehash Add no rehash command to output
## `pyenv completions`
Lists available completions for a given pyenv command.
Usage: pyenv completions <command> [arg1 arg2...]

View file

@ -67,9 +67,9 @@ members of the project's leadership.
## Project Maintainers
* Sam Stephenson <<sstephenson@gmail.com>>
* Mislav Marohnić <<mislav.marohnic@gmail.com>>
* Erik Michaels-Ober <<sferik@gmail.com>>
* Yamashita, Yuu <<peek824545201@gmail.com>>
* Daniel Hahler <<git@thequod.de>>
* Josh Friend <<josh@fueledbycaffeine.com>>
## Attribution

103
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,103 @@
General guidance
================
* The usual principles of respecting existing conventions and making sure that your changes
are in line with the overall product design apply when contributing code to Pyenv.
* We are limited to Bash 3.2 features
That's because that's the version shipped with MacOS.
(They didn't upgrade past it and switched to Zsh because later versions
are covered by GPLv3 which has additional restrictions unacceptable for Apple.)
You can still add performance optimizations etc that take advantage of newer Bash features
as long as there is a fallback execution route for Bash 3.
Formatting PRs
==============
We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow.
If a pull request (PR) addresses a single concern (the typical case), we usually squash commits
from it together when merging so its commit history doesn't matter.
If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit.
Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits.
Authoring installation scripts
==============================
Adding new Python release support
---------------------------------
The easiest way to add support for a new Python release is to copy the script from the previous one
and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough.
Do pay attention to other "magic numbers" that may be present in a script --
e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too.
Make sure to also copy any patches for the previous release that still apply to the new one.
Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release.
For prereleases, we only create an entry for the latest prerelease in a specific version line.
When submitting a newer prerelease, replace the older one.
Adding version-specific fixes/patches
-------------------------------------
We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv.
In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical,
to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment).
As such, any such fixes:
* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports
* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities)
* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects.
* E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments.
* As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem
Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases.
<h3>Backporting upstream patches</h3>
Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release.
* Clone Python, check out the tag for the appropriate release and create a branch
* Apply existing patches if there are any (with either `patch` or `git am`) and commit
* Cherry-pick the upstream commit that fixes the problem in a newer release
* Commit and `git format-patch`
* Commit the generated patch file into Pyenv, test your changes and submit a PR
Deprecation policy
------------------
We do not provide official support for EOL releases and environments or otherwise provide any kind of extended support for old Python releases.
We do however accept fixes from interested parties that would allow running older, including EOL, releases in environments that they do not officially support.
In addition to the above requirements for release-specific fixes,
* Such a fix must not add maintenance burden (e.g. add new logic to `python-build` that has to be kept there indefinitely)
* Unless the added logic is useful for both EOL and non-EOL releases. In this case, it will be considered as being primarily an improvement for non-EOL releases.
* Support is provided on a "best effort" basis: we do not actively maintain these fixes but won't actively break them, either, and will accept any corrections.
Since old releases never change, it's pretty safe to assume that the fixes will continue to work until a later version
of an environment introduces further incompatible changes.
Advanced changes / adding new Python flavor support
---------------------------------------------------
An installation script is sourced from `python-build`. All installation scripts are based on the same logic:
1. Select the source to download and other variable parameters as needed.
This includes showing an error if the user's environment (OS, architecture) is not supported by the release.
Binary releases that only officially support specific distro(s) typically show a warning in other distros instead.
2. Run one of the `install_*` shell functions
`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging.
Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `<argument>` in the build sequence corresponds to the `install_*_<argument>` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed.
We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line.

View file

@ -1,3 +1,4 @@
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining

25
MAINTENANCE.md Normal file
View file

@ -0,0 +1,25 @@
Creating a release
==================
The release of the new version of Pyenv is done via GitHub Releases.
Release checklist:
* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes.
Type the would-be tag name in the "Choose a tag" field and press "Generate release notes"
* The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI)
* Add a sponsors section to the release notes by running:
```bash
.github/scripts/generate_release_notes_sponsors.py
```
Paste the output at the end of the release notes.
* This lists new GitHub Sponsors and OpenCollective backers since the last release or within the last month, whichever is longer.
* The GitHub Sponsors query requires the `gh` CLI with the `read:user` scope.
* If OpenCollective is unavailable, pass `--skip-opencollective` and add those backers manually.
* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section)
* Push the version number in `libexec/pyenv---version` and `plugins/python-build/bin/python-build`
* Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases).
* Major version is pushed if there are breaking changes
* Commit the changes locally into `master`
* Create a new tag locally with the same name as specified in the new release window
* Push the changes including the tag
* In the still open new release window, press "Publish release". The now-existing tag will be used.

172
Makefile
View file

@ -1,4 +1,170 @@
release_version := $(shell GIT_CEILING_DIRECTORIES=$(PWD) bin/rbenv --version | cut -d' ' -f2)
TEST_BATS_VERSION = v1.10.0
TEST_BASH_VERSIONS = 3.2.57 4.1.17
share/man/man1/rbenv.1: share/man/man1/rbenv.1.adoc
asciidoctor -b manpage -a version=$(release_version:v%=%) $<
TEST_UNIT_DOCKER_PREFIX = test-unit-docker
TEST_UNIT_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_UNIT_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_UNIT_DOCKER_PREFIX)))
TEST_PYTHON_BUILD_DOCKER_PREFIX = test-python-build-docker
TEST_PYTHON_BUILD_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_PYTHON_BUILD_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_PYTHON_BUILD_DOCKER_PREFIX)))
TEST_BINARY_DOCKER_PREFIX = test-binary-docker
TEST_BINARY_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BINARY_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BINARY_DOCKER_PREFIX)))
TEST_LINK_DOCKER_PREFIX = test-link-docker
TEST_LINK_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_LINK_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_LINK_DOCKER_PREFIX)))
TEST_BATS_IMAGE_PREFIX = test-pyenv-docker-image
TEST_BATS_IMAGE_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BATS_IMAGE_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BATS_IMAGE_PREFIX)))
.PHONY: test-docker
test-docker: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_PYTHON_BUILD_DOCKER_PREFIX) $(TEST_BINARY_DOCKER_PREFIX) $(TEST_LINK_DOCKER_PREFIX)
.PHONY: $(TEST_UNIT_DOCKER_PREFIX)
$(TEST_UNIT_DOCKER_PREFIX): $(TEST_UNIT_DOCKER_TARGETS)
# Run each unit test under bats docker
.PHONY: $(TEST_UNIT_DOCKER_TARGETS)
$(TEST_UNIT_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
$(TEST_UNIT_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
$(TEST_UNIT_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
$(TEST_UNIT_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
$(TEST_UNIT_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
$(TEST_UNIT_DOCKER_TARGETS): $(TEST_UNIT_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
docker run \
--init \
-v $(PWD):/code:ro \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
$${BATS_TEST_FILTER:+-e BATS_TEST_FILTER="$${BATS_TEST_FILTER}"} \
$${BATS_FILE_FILTER:+-e BATS_FILE_FILTER="$${BATS_FILE_FILTER}"} \
$${CI+-e CI="$${CI}"} \
$(INTERACTIVE) \
$(DOCKER_IMAGE):$(DOCKER_TAG) \
test/run
.PHONY: $(TEST_PYTHON_BUILD_DOCKER_PREFIX)
$(TEST_PYTHON_BUILD_DOCKER_PREFIX): $(TEST_PYTHON_BUILD_DOCKER_TARGETS)
# Run each plugin test under bats docker
.PHONY: $(TEST_PYTHON_BUILD_DOCKER_TARGETS)
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
$(TEST_PYTHON_BUILD_DOCKER_TARGETS): $(TEST_PYTHON_BUILD_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
docker run \
--init \
-v $(PWD):/code:ro \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
$${CI+-e CI="$${CI}"} \
$(INTERACTIVE) \
$(DOCKER_IMAGE):$(DOCKER_TAG) \
bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/python-build/test/$${BATS_FILE_FILTER}
.PHONY: $(TEST_BINARY_DOCKER_PREFIX)
$(TEST_BINARY_DOCKER_PREFIX): $(TEST_BINARY_DOCKER_TARGETS)
.PHONY: $(TEST_BINARY_DOCKER_TARGETS)
$(TEST_BINARY_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
$(TEST_BINARY_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
$(TEST_BINARY_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
$(TEST_BINARY_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
$(TEST_BINARY_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
$(TEST_BINARY_DOCKER_TARGETS): $(TEST_BINARY_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
docker run \
--init \
-v $(PWD):/code:ro \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
$${CI+-e CI="$${CI}"} \
$(INTERACTIVE) \
$(DOCKER_IMAGE):$(DOCKER_TAG) \
bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-binary/test/$${BATS_FILE_FILTER}
.PHONY: $(TEST_LINK_DOCKER_PREFIX)
$(TEST_LINK_DOCKER_PREFIX): $(TEST_LINK_DOCKER_TARGETS)
.PHONY: $(TEST_LINK_DOCKER_TARGETS)
$(TEST_LINK_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
$(TEST_LINK_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
$(TEST_LINK_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
$(TEST_LINK_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
$(TEST_LINK_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
$(TEST_LINK_DOCKER_TARGETS): $(TEST_LINK_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
docker run \
--init \
-v $(PWD):/code:ro \
-v /etc/passwd:/etc/passwd:ro \
-v /etc/group:/etc/group:ro \
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
$${CI+-e CI="$${CI}"} \
$(INTERACTIVE) \
$(DOCKER_IMAGE):$(DOCKER_TAG) \
bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-link/test/$${BATS_FILE_FILTER}
# Build all images needed for bats under docker
.PHONY: $(TEST_BATS_IMAGE_PREFIX)
$(TEST_BATS_IMAGE_PREFIX): $(TEST_BATS_IMAGE_TARGETS)
# Build each image needed for bats under docker
.PHONY: $(TEST_BATS_IMAGE_TARGETS)
$(TEST_BATS_IMAGE_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
$(TEST_BATS_IMAGE_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
$(TEST_BATS_IMAGE_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
$(TEST_BATS_IMAGE_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
$(TEST_BATS_IMAGE_TARGETS):
if [ -z "$$(docker images -q '$(DOCKER_IMAGE):$(DOCKER_TAG)')" ]]; then \
docker build \
--quiet \
-f "$(PWD)/test/Dockerfile" \
--build-arg GNU="$(GNU)" \
--build-arg BASH="$(BASH)" \
--build-arg BATS_VERSION="$(TEST_BATS_VERSION)" \
-t $(DOCKER_IMAGE):$(DOCKER_TAG) \
./ ; \
fi
.PHONY: test test-unit test-python-build test-binary test-link
# Do not pass in user flags to build tests.
unexport PYTHON_CFLAGS
unexport PYTHON_CONFIGURE_OPTS
test: test-unit test-python-build test-binary test-link
test-unit: bats
PATH="./bats/bin:$$PATH" test/run
test-python-build: bats
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER}
test-binary: bats
cd plugins/pyenv-binary && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER}
test-link: bats
cd plugins/pyenv-link && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \
$${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER}
.SECONDARY: bats-$(TEST_BATS_VERSION)
bats-$(TEST_BATS_VERSION):
git clone --depth 1 --branch $(TEST_BATS_VERSION) https://github.com/bats-core/bats-core.git bats-$(TEST_BATS_VERSION)
.PHONY: bats
bats: bats-$(TEST_BATS_VERSION)
if [ \( ! -L bats \) -o \( "x$$(readlink bats)" != "xbats-$(TEST_BATS_VERSION)" \) ]; then \
rm -rf bats; ln -s bats-$(TEST_BATS_VERSION) bats; \
fi

973
README.md

File diff suppressed because it is too large Load diff

1
bin/pyenv Symbolic link
View file

@ -0,0 +1 @@
../libexec/pyenv

View file

@ -1 +0,0 @@
../libexec/rbenv

View file

@ -1,13 +0,0 @@
#compdef rbenv
_rbenv() {
local completions
if [ "${#words}" -eq 2 ]; then
completions=(${(f)"$(rbenv help --complete-commands "${words[2]}")"})
_describe 'rbenv commands' completions
else
completions="$(rbenv completions ${words[2,-2]})"
compadd - "${(ps:\n:)completions}"
fi
}

16
completions/pyenv.bash Normal file
View file

@ -0,0 +1,16 @@
_pyenv() {
COMPREPLY=()
local word="${COMP_WORDS[COMP_CWORD]}"
if [ "$COMP_CWORD" -eq 1 ]; then
COMPREPLY=( $(compgen -W "$(pyenv commands)" -- "$word") )
else
local words=("${COMP_WORDS[@]}")
unset words[0]
unset words[$COMP_CWORD]
local completions=$(pyenv completions "${words[@]}")
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
fi
}
complete -F _pyenv pyenv

23
completions/pyenv.fish Normal file
View file

@ -0,0 +1,23 @@
function __fish_pyenv_needs_command
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'pyenv' ]
return 0
end
return 1
end
function __fish_pyenv_using_command
set cmd (commandline -opc)
if [ (count $cmd) -gt 1 ]
if [ $argv[1] = $cmd[2] ]
return 0
end
end
return 1
end
complete -f -c pyenv -n '__fish_pyenv_needs_command' -a '(pyenv commands)'
for cmd in (pyenv commands)
complete -f -c pyenv -n "__fish_pyenv_using_command $cmd" -a \
"(pyenv completions (commandline -opc)[2..-1])"
end

17
completions/pyenv.pwsh Normal file
View file

@ -0,0 +1,17 @@
$scriptblock = {
param($wordToComplete, $commandAst, $cursorPosition)
$words = $commandAst.ToString()
if ( $wordToComplete ) {
$matches = (($words[0..$cursorPosition] -join '') | Select-String -Pattern "\s+" -AllMatches).Matches
if ( $matches ) {
$cursorPosition = $matches[-1].Index - 1
}
}
$words = $words[0..$cursorPosition] -join '' -split "\s+"
if ( $words.Count -ge 2 ) {
pyenv completions $words[1] | where { $_ -match $wordToComplete }
} else {
pyenv commands | where { $_ -match $wordToComplete }
}
}
Register-ArgumentCompleter -Native -CommandName pyenv -ScriptBlock $scriptblock

18
completions/pyenv.zsh Normal file
View file

@ -0,0 +1,18 @@
if [[ ! -o interactive ]]; then
return
fi
compctl -K _pyenv pyenv
_pyenv() {
local words completions
read -cA words
if [ "${#words}" -eq 2 ]; then
completions="$(pyenv commands)"
else
completions="$(pyenv completions ${words[2,-2]})"
fi
reply=(${(ps:\n:)completions})
}

View file

@ -1,16 +0,0 @@
_rbenv() {
COMPREPLY=()
local word="${COMP_WORDS[COMP_CWORD]}"
if [ "$COMP_CWORD" -eq 1 ]; then
COMPREPLY=( $(compgen -W "$(rbenv commands)" -- "$word") )
else
local words=("${COMP_WORDS[@]}")
unset "words[0]"
unset "words[$COMP_CWORD]"
local completions=$(rbenv completions "${words[@]}")
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
fi
}
complete -F _rbenv rbenv

BIN
install_local_python.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

145
libexec/pyenv Executable file
View file

@ -0,0 +1,145 @@
#!/usr/bin/env bash
set -e
if [ "$1" = "--debug" ]; then
export PYENV_DEBUG=1
shift
fi
if [ -n "$PYENV_DEBUG" ]; then
# https://wiki-dev.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
set -x
fi
abort() {
{ if [ "$#" -eq 0 ]; then cat -
else echo "pyenv: $*"
fi
} >&2
exit 1
}
if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
abs_dirname() {
local path
path="$(realpath "$1")"
echo "${path%/*}"
}
else
[ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin"
READLINK=$(type -P readlink)
[ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?"
resolve_link() {
$READLINK "$1"
}
abs_dirname() {
local path="$1"
# Use a subshell to avoid changing the current path
(
while [ -n "$path" ]; do
cd_path="${path%/*}"
if [[ "$cd_path" != "$path" ]]; then
cd "$cd_path"
fi
name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
echo "$PWD"
)
}
fi
if [ -z "${PYENV_ROOT}" ]; then
PYENV_ROOT="${HOME}/.pyenv"
else
PYENV_ROOT="${PYENV_ROOT%/}"
fi
export PYENV_ROOT
if [ -z "${PYENV_DIR}" ]; then
PYENV_DIR="$PWD"
fi
if [ ! -d "$PYENV_DIR" ] || [ ! -e "$PYENV_DIR" ]; then
abort "cannot change working directory to \`$PYENV_DIR'"
fi
PYENV_DIR=$(cd "$PYENV_DIR" && echo "$PWD")
export PYENV_DIR
shopt -s nullglob
_PYENV_INSTALL_PREFIX="$(abs_dirname "$0")"
_PYENV_INSTALL_PREFIX="${_PYENV_INSTALL_PREFIX%/*}"
export _PYENV_INSTALL_PREFIX
for plugin_bin in "${_PYENV_INSTALL_PREFIX}"/plugins/*/bin; do
PATH="${plugin_bin}:${PATH}"
done
# PYENV_ROOT can be set to anything, so it may happen to be equal to the base path above,
# resulting in duplicate PATH entries
if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then
for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do
PATH="${plugin_bin}:${PATH}"
done
fi
export PATH="${_PYENV_INSTALL_PREFIX}/libexec:${PATH}"
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d"
if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then
# Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${_PYENV_INSTALL_PREFIX}/pyenv.d"
fi
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/etc/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks"
for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}"
done
PYENV_HOOK_PATH="${PYENV_HOOK_PATH#:}"
export PYENV_HOOK_PATH
shopt -u nullglob
command="$1"
case "$command" in
"" )
{ pyenv---version
pyenv-help
} | abort
;;
-v | --version )
exec pyenv---version
;;
-h | --help )
exec pyenv-help
;;
* )
command_path="$(command -v "pyenv-$command" || true)"
if [ -z "$command_path" ]; then
if [ "$command" == "shell" ]; then
abort "shell integration not enabled. Run \`pyenv init' for instructions."
else
abort "no such command \`$command'"
fi
fi
shift 1
if [ "$1" = --help ]; then
if [[ "$command" == "sh-"* ]]; then
echo "pyenv help \"$command\""
else
exec pyenv-help "$command"
fi
else
exec "$command_path" "$@"
fi
;;
esac

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Summary: Display the version of rbenv
# Summary: Display the version of pyenv
#
# Displays the version number of this rbenv release, including the
# Displays the version number of this pyenv release, including the
# current revision from git, if available.
#
# The format of the git revision is:
@ -10,14 +10,14 @@
# tagged.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
version="1.3.2"
version="2.8.5"
git_revision=""
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q rbenv; then
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
git_revision="${git_revision#v}"
fi
echo "rbenv ${git_revision:-$version}"
echo "pyenv ${git_revision:-$version}"

48
libexec/pyenv-commands Executable file
View file

@ -0,0 +1,48 @@
#!/usr/bin/env bash
# Summary: List all available pyenv commands
# Usage: pyenv commands [--sh|--no-sh]
set -e
[[ -n $PYENV_DEBUG ]] && set -x
# Provide pyenv completions
if [[ $1 = "--complete" ]]; then
echo --sh
echo --no-sh
exit
fi
if [[ $1 = "--sh" ]]; then
sh=1
shift
elif [[ $1 = "--no-sh" ]]; then
nosh=1
shift
fi
IFS=: paths=($PATH)
shopt -s nullglob
{
if [[ -n $sh ]]; then
for path in "${paths[@]}"; do
for command in "${path}"/pyenv-sh-*; do
echo "${command##*/pyenv-sh-}"
done
done
else
for path in "${paths[@]}"; do
for command in "${path}"/pyenv-*; do
command="${command##*/pyenv-}"
if [[ -n $nosh ]]; then
if [[ ${command:0:3} != "sh-" ]]; then
echo "$command"
fi
else
echo "${command##sh-}"
fi
done
done
fi
} | sort -u

26
libexec/pyenv-completions Executable file
View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Usage: pyenv completions <command> [arg1 arg2...]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
pyenv-help --usage completions >&2
exit 1
fi
# Provide pyenv completions
if [ "$COMMAND" = "--complete" ]; then
exec pyenv-commands
fi
COMMAND_PATH="$(command -v "pyenv-$COMMAND" || command -v "pyenv-sh-$COMMAND")"
# --help is provided automatically
echo --help
if grep -iE "^([#%]|--|//) provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

57
libexec/pyenv-exec Executable file
View file

@ -0,0 +1,57 @@
#!/usr/bin/env bash
#
# Summary: Run an executable with the selected Python version
#
# Usage: pyenv exec <command> [arg1 arg2...]
#
# Runs an executable by first preparing PATH so that the selected Python
# version's `bin' directory is at the front.
#
# For example, if the currently selected Python version is 2.7.6:
# pyenv exec pip install -r requirements.txt
#
# is equivalent to:
# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -r requirements.txt
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-shims --short
fi
PYENV_VERSION="$(pyenv-version-name -f)"
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage exec >&2
exit 1
fi
if [[ -n $_PYENV_SHIM_PATH ]]; then
PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')"
NR_PYENV_SHIM_PATHS_PROGRAM="_PYENV_SHIM_PATHS_${PROGRAM}"
export -- "$NR_PYENV_SHIM_PATHS_PROGRAM=$_PYENV_SHIM_PATH${!NR_PYENV_SHIM_PATHS_PROGRAM:+:${!NR_PYENV_SHIM_PATHS_PROGRAM}}"
unset PROGRAM NR_PYENV_SHIM_PATHS_PROGRAM
unset _PYENV_SHIM_PATH
fi
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
export PYENV_VERSION
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks exec`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
shift 1
if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then
# Only add to $PATH for non-system version.
export PATH="${PYENV_BIN_PATH}:${PATH}"
fi
exec "$PYENV_COMMAND_PATH" "$@"

53
libexec/pyenv-global Executable file
View file

@ -0,0 +1,53 @@
#!/usr/bin/env bash
#
# Summary: Set or show the global Python version(s)
#
# Usage: pyenv global <version> <version2> <..>
#
# Sets the global Python version(s). You can override the global version at
# any time by setting a directory-specific version with `pyenv local'
# or by setting the `PYENV_VERSION' environment variable.
#
# <version> can be specified multiple times and should be a version
# tag known to pyenv. The special version string `system' will use
# your default system Python. Run `pyenv versions' for a list of
# available Python versions.
#
# Example: To enable the python2.7 and python3.7 shims to find their
# respective executables you could set both versions with:
#
# 'pyenv global 3.7.0 2.7.15'
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo system
exec pyenv-versions --bare
fi
versions=("$@")
PYENV_VERSION_FILE="${PYENV_ROOT}/version"
if [ -n "$versions" ]; then
pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}"
else
OLDIFS="$IFS"
# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
IFS=: versions=($(
pyenv-version-file-read "$PYENV_VERSION_FILE" ||
pyenv-version-file-read "${PYENV_ROOT}/global" ||
pyenv-version-file-read "${PYENV_ROOT}/default" ||
echo system
))
set +f
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done
fi

View file

@ -2,7 +2,7 @@
#
# Summary: Display help for a command
#
# Usage: rbenv help [--usage] COMMAND
# Usage: pyenv help [--usage] COMMAND
#
# Parses and displays help contents from a command's source file.
#
@ -13,20 +13,22 @@
# documentation.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
# Provide rbenv completions
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --usage
exec rbenv-commands
exec pyenv-commands
fi
command_path() {
local command="$1"
type -P rbenv-"$command" rbenv-sh-"$command" | head -n1
command -v pyenv-"$command" || command -v pyenv-sh-"$command" || true
}
extract_initial_comment_block() {
LC_ALL= \
LC_CTYPE=C \
sed -ne "
/^#/ !{
q
@ -42,15 +44,9 @@ extract_initial_comment_block() {
}
collect_documentation() {
local awk
awk="$(type -P gawk)" || awk="$(type -P awk)" || true
if [ -z "$awk" ]; then
echo "rbenv: cannot find awk" >&2
return 1
fi
# shellcheck disable=SC2016
"$awk" '
# `tail` prevents "broken pipe" errors due to `head` closing the pipe without reading everything
# https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error/642932#642932
$(type -P gawk awk | tail -n +1 | head -n1) '
/^Summary:/ {
summary = substr($0, 10)
next
@ -127,7 +123,7 @@ print_help() {
if [ -n "$usage" ]; then
echo "$usage"
else
echo "Usage: rbenv ${command}"
echo "Usage: pyenv ${command}"
fi
if [ -n "$help" ]; then
echo
@ -144,62 +140,24 @@ print_usage() {
local command="$1"
local summary usage help
eval "$(documentation_for "$command")"
if [ -n "$usage" ]; then
echo "$usage"
else
echo "Usage: rbenv ${command}"
fi
[ -z "$usage" ] || echo "$usage"
}
if [ "$1" = "--complete-commands" ]; then
command_prefix="${2:-}"
seen=()
shopt -s nullglob
PATH_remain="$PATH"
# traverse PATH to find "rbenv-" prefixed commands
while true; do
path="${PATH_remain%%:*}"
if [ -n "$path" ]; then
for rbenv_command in "${path}/rbenv-"*; do
command_name="${rbenv_command##*/}"
command_name="${command_name#rbenv-}"
command_name="${command_name#sh-}"
[[ $command_name == "${command_prefix}"* ]] || continue
[[ " ${seen[*]} " != *" ${command_name} "* ]] || continue
seen+=("$command_name")
summary=""
eval "$(extract_initial_comment_block < "$rbenv_command" | collect_documentation)"
[ -n "$summary" ] || continue
printf "%s:%s\n" "$command_name" "$summary"
done
fi
[[ $PATH_remain == *:* ]] || break
PATH_remain="${PATH_remain#*:}"
done
exit 0
fi
unset usage
if [ "$1" = "--usage" ]; then
usage="1"
shift
fi
if [ -z "$1" ] || [ "$1" == "rbenv" ]; then
if [ -z "$usage" ] && [ -t 1 ] && type -P man >/dev/null; then
MANPATH="${BASH_SOURCE%/*}/../share/man:$MANPATH" exec man rbenv
fi
echo "Usage: rbenv <command> [<args>...]"
[ -n "$usage" ] && exit
if [ -z "$1" ] || [ "$1" == "pyenv" ]; then
echo "Usage: pyenv <command> [<args>]"
[ -z "$usage" ] || exit
echo
echo "Commands to manage available Ruby versions:"
print_summaries versions install uninstall rehash
echo "Some useful pyenv commands are:"
print_summaries $(exec pyenv-commands | sort -u)
echo
echo "Commands to view or change the current Ruby version:"
print_summaries version local global shell
echo
echo "See \`rbenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/rbenv/rbenv#readme"
echo "See \`pyenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/pyenv/pyenv#readme"
else
command="$1"
if [ -n "$(command_path "$command")" ]; then
@ -209,7 +167,7 @@ else
print_help "$command"
fi
else
echo "rbenv: no such command \`$command'" >&2
echo "pyenv: no such command \`$command'" >&2
exit 1
fi
fi

63
libexec/pyenv-hooks Executable file
View file

@ -0,0 +1,63 @@
#!/usr/bin/env bash
# Summary: List hook scripts for a given pyenv command
# Usage: pyenv hooks <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo exec
echo rehash
echo version-name
echo version-origin
echo which
exit
fi
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage hooks >&2
exit 1
fi
if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then
if [ -n "$PYENV_NATIVE_EXT" ]; then
echo "pyenv: failed to load \`realpath' builtin" >&2
exit 1
fi
READLINK=$(type -P readlink)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$READLINK "$1"
}
realpath() {
local path="$1"
local name
# Use a subshell to avoid changing the current path
(
while [ -n "$path" ]; do
name="${path##*/}"
[ "$name" = "$path" ] || cd "${path%/*}"
path="$(resolve_link "$name" || true)"
done
echo "${PWD}/$name"
)
}
fi
IFS=: hook_paths=($PYENV_HOOK_PATH)
shopt -s nullglob
for path in "${hook_paths[@]}"; do
for script in "$path/$PYENV_COMMAND"/*.bash; do
realpath "$script"
done
done
shopt -u nullglob

514
libexec/pyenv-init Executable file
View file

@ -0,0 +1,514 @@
#!/usr/bin/env bash
# Summary: Configure the shell environment for pyenv
# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [<shell>])"
# pyenv init --install [<shell>]
# pyenv init --detect-shell [<shell>]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo -
echo --path
echo --install
echo --no-push-path
echo --no-rehash
echo --detect-shell
echo bash
echo fish
echo ksh
echo pwsh
echo zsh
exit
fi
mode="help"
while [ "$#" -gt 0 ]; do
case "$1" in
-)
mode="print"
;;
--path)
mode="path"
;;
--install)
mode="install"
;;
--detect-shell)
mode="detect-shell"
;;
--no-push-path)
no_push_path=1
;;
--no-rehash)
no_rehash=1
;;
*)
shell="$1"
;;
esac
shift
done
# If shell is not provided, detect it.
if [ -z "$shell" ]; then
if shell=$(tr '\0' ' ' 2>/dev/null </proc/"$PPID"/cmdline);then
:
else
shell=$(ps p "$PPID" -o 'args=' 2>/dev/null || true)
fi
shell="${shell%% *}"
shell="${shell##-}"
shell="${shell:-$SHELL}"
shell="${shell##*/}"
shell="${shell%%-*}"
fi
function main() {
case "$mode" in
"help")
help_
exit 1
;;
"path")
print_path
print_rehash
exit 0
;;
"print")
init_dirs
print_path
print_env
print_completion
print_rehash
print_shell_function
exit 0
;;
"detect-shell")
detect_profile
print_detect_shell
exit 0
;;
"install")
install_shell_startup_files
exit 0
;;
esac
# should never get here
exit 2
}
function detect_profile() {
case "$shell" in
bash )
if [ -e "${HOME}/.bash_profile" ]; then
profile='~/.bash_profile'
else
profile='~/.profile'
fi
profile_explain="~/.bash_profile if it exists, otherwise ~/.profile"
rc='~/.bashrc'
;;
fish )
profile='~/.config/fish/config.fish'
rc='~/.config/fish/config.fish'
;;
pwsh )
profile='~/.config/powershell/profile.ps1'
rc='~/.config/powershell/profile.ps1'
;;
zsh )
profile='~/.zprofile'
rc='~/.zshrc'
;;
ksh | ksh93 | mksh )
# There are two implementations of Korn shell: AT&T (ksh93) and Mir (mksh).
# Systems may have them installed under those names, or as ksh, so those
# are recognized here. The obsolete ksh88 (subsumed by ksh93) and pdksh
# (subsumed by mksh) are not included, since they are unlikely to still
# be in use as interactive shells anywhere.
profile='~/.profile'
rc='~/.profile'
;;
* )
profile=
rc=
profile_explain='your shell'\''s login startup file'
rc_explain='your shell'\''s interactive startup file'
;;
esac
}
function print_detect_shell() {
echo "PYENV_SHELL_DETECT=$shell"
echo "PYENV_PROFILE_DETECT=$profile"
echo "PYENV_RC_DETECT=$rc"
}
function help_() {
detect_profile
{
case "$shell" in
fish )
echo "# Add pyenv executable to PATH by running"
echo "# the following interactively:"
echo
print_fish_user_path_setup
echo
echo "# Load pyenv automatically by appending"
echo "# the following to ~/.config/fish/config.fish:"
echo
print_fish_shell_setup
echo
;;
pwsh )
echo '# Load pyenv automatically by appending'
echo "# the following to $profile :"
echo
print_pwsh_shell_setup
;;
* )
echo '# Load pyenv automatically by appending'
echo -n "# the following to "
if [[ "$profile" == "$rc" && -z $rc_explain ]]; then
echo "${profile_explain:-$profile} :"
else
echo
echo "# ${profile_explain:-$profile} (for login shells)"
echo "# and ${rc_explain:-$rc} (for interactive shells) :"
fi
echo
print_posix_shell_setup
;;
esac
echo
echo '# Restart your shell for the changes to take effect.'
echo
} >&2
}
function print_posix_shell_setup() {
echo 'export PYENV_ROOT="$HOME/.pyenv"'
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"'
echo 'eval "$(pyenv init - '$shell')"'
}
function print_fish_shell_setup() {
echo 'pyenv init - fish | source'
}
function print_fish_user_path_setup() {
echo 'set -Ux PYENV_ROOT $HOME/.pyenv'
echo 'if functions -q fish_add_path'
echo ' test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin'
echo 'else'
echo ' test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths'
echo 'end'
}
function print_pwsh_shell_setup() {
echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"'
echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {'
echo ' $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }'
echo 'iex ((pyenv init -) -join "`n")'
}
function expand_home_path() {
local path="$1"
printf '%s\n' "${path/#\~/$HOME}"
}
function install_shell_startup_files() {
if [[ -z $HOME ]]; then
echo "pyenv: HOME must be set to configure shell startup files" >&2
return 1
fi
detect_profile
local files=()
local lines=()
local profile_path rc_path setup
case "$shell" in
bash | zsh | ksh | ksh93 | mksh )
rc_path="$(expand_home_path "$rc")"
profile_path="$(expand_home_path "$profile")"
setup="$(print_posix_shell_setup)"
files=("$rc_path")
lines=("$setup")
if [[ $profile_path != "$rc_path" ]]; then
files+=("$profile_path")
lines+=("$setup")
fi
;;
fish )
rc_path="$(expand_home_path "$rc")"
files=("$rc_path")
lines=("$(print_fish_shell_setup)")
;;
pwsh )
rc_path="$(expand_home_path "$rc")"
files=("$rc_path")
lines=("$(print_pwsh_shell_setup)")
;;
* )
echo "pyenv: cannot automatically configure startup files for $shell" >&2
return 1
;;
esac
local index
for ((index = 0; index < ${#files[@]}; index++)); do
check_startup_file "${files[$index]}" || return 1
done
if [[ $shell == fish ]]; then
install_fish_user_paths || return 1
fi
for ((index = 0; index < ${#files[@]}; index++)); do
append_lines "${files[$index]}" "${lines[$index]}"
done
}
function check_startup_file() {
local file="$1"
local grep_status
if [[ ! -e $file ]]; then
return 0
fi
if [[ ! -f $file || ! -r $file ]]; then
echo "pyenv: failed to inspect $file" >&2
return 1
fi
if grep -Fi pyenv "$file" >/dev/null; then
echo "pyenv: cannot automatically apply changes to $file: it appears to already contain Pyenv-related code." >&2
echo "pyenv: review the file's contents and apply changes manually if necessary." >&2
echo "pyenv: run \`pyenv init $shell\` to see the suggested setup." >&2
return 1
else
grep_status=$?
if [[ $grep_status == 1 ]]; then
return 0
fi
echo "pyenv: failed to inspect $file" >&2
return "$grep_status"
fi
}
function install_fish_user_paths() {
local fish_setup
if ! command -v fish >/dev/null; then
echo "pyenv: fish is not available to configure fish universal variables" >&2
return 1
fi
fish_setup="$(print_fish_user_path_setup)"
if ! fish -c "$fish_setup"; then
echo "pyenv: failed to configure fish universal variables" >&2
return 1
fi
}
function append_lines() {
local file="$1"
local lines="$2"
local dir last_char
dir="${file%/*}"
if [[ $dir != "$file" ]]; then
mkdir -p "$dir"
fi
if [[ -s $file ]]; then
last_char="$(tail -c 1 "$file")" || return 1
if [[ -n $last_char ]]; then
echo >> "$file"
fi
fi
printf '%s\n' "$lines" >> "$file"
}
function init_dirs() {
mkdir -p "${PYENV_ROOT}/"{shims,versions}
}
function print_path() {
# if no_push_path is set, guard the PATH manipulation with a check on whether
# the shim is already in the PATH.
if [ -n "$no_push_path" ]; then
case "$shell" in
fish )
echo 'if not contains -- "'"${PYENV_ROOT}/shims"'" $PATH'
print_path_prepend_shims
echo 'end'
;;
pwsh )
echo 'if ( $Env:PATH -notmatch "'"${PYENV_ROOT}/shims"'" ) {'
print_path_prepend_shims
echo '}'
;;
* )
echo 'if [[ ":$PATH:" != *'\':"${PYENV_ROOT}"/shims:\''* ]]; then'
print_path_prepend_shims
echo 'fi'
;;
esac
else
case "$shell" in
fish )
echo 'while set pyenv_index (contains -i -- "'"${PYENV_ROOT}/shims"'" $PATH)'
echo 'set -eg PATH[$pyenv_index]; end; set -e pyenv_index'
print_path_prepend_shims
;;
pwsh )
echo '$Env:PATH="$(($Env:PATH -split '"':'"' | where { -not ($_ -match '"'${PYENV_ROOT}/shims'"') }) -join '"':'"')"'
print_path_prepend_shims
;;
* )
# Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option
# that makes it source `bashrc` under SSH even when not interactive.
# This is inhibited by a guard in Debian's stock `bashrc` but some people remove it
# in order to get proper environment for noninteractive remote commands
# (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason).
# This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367).
# --norc negates this behavior of such a customized Bash.
echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); '
echo 'for i in ${!paths[@]}; do '
echo 'if [[ ${paths[i]} == "'\'\'"${PYENV_ROOT}/shims"\'\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; '
echo 'fi; done; '
echo 'echo "${paths[*]}"'\'')"'
print_path_prepend_shims
;;
esac
fi
}
function print_path_prepend_shims() {
case "$shell" in
fish )
echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH'
;;
pwsh )
echo '$Env:PATH="'"${PYENV_ROOT}"'/shims:$Env:PATH"'
;;
* )
echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"'
;;
esac
}
function print_env() {
case "$shell" in
fish )
echo "set -gx PYENV_SHELL $shell"
;;
pwsh )
echo '$Env:PYENV_SHELL="'"$shell"'"'
;;
* )
echo "export PYENV_SHELL=$shell"
;;
esac
}
function print_completion() {
completion="${_PYENV_INSTALL_PREFIX}/completions/pyenv.${shell}"
if [ -r "$completion" ]; then
case "$shell" in
pwsh )
echo "iex (gc $completion -Raw)"
;;
* )
echo "source '$completion'"
;;
esac
fi
}
function print_rehash() {
if [ -z "$no_rehash" ]; then
case "$shell" in
pwsh )
echo '& pyenv rehash'
;;
* )
echo 'command pyenv rehash'
;;
esac
fi
}
function print_shell_function() {
commands=(`pyenv-commands --sh`)
case "$shell" in
fish )
echo \
'function pyenv
set command $argv[1]
set -e argv[1]
switch "$command"
case '"${commands[*]}"'
source (pyenv "sh-$command" $argv|psub)
case "*"
command pyenv "$command" $argv
end
end'
;;
pwsh )
cat <<EOS
function pyenv {
\$command=""
if ( \$args.Count -gt 0 ) {
\$command, \$args = \$args
}
if ( ("${commands[*]}" -split ' ') -contains \$command ) {
\$shell_cmds = (& (get-command -commandtype application pyenv -totalcount 1) sh-\$command \$args)
if ( \$shell_cmds.Count -gt 0 ) {
iex (\$shell_cmds -join "\`n")
}
} else {
& (get-command -commandtype application pyenv -totalcount 1) \$command \$args
}
}
EOS
;;
ksh | ksh93 | mksh )
echo \
'function pyenv {
typeset command=${1:-}'
;;
* )
echo \
'pyenv() {
local command=${1:-}'
;;
esac
if [ "$shell" != "fish" ] && [ "$shell" != "pwsh" ]; then
IFS="|"
echo \
' [ "$#" -gt 0 ] && shift
case "$command" in
'"${commands[*]:-/}"')
eval "$(pyenv "sh-$command" "$@")"
;;
*)
command pyenv "$command" "$@"
;;
esac
}'
fi
}
main

105
libexec/pyenv-latest Executable file
View file

@ -0,0 +1,105 @@
#!/usr/bin/env bash
# Summary: Print the latest installed or known version with the given prefix
# Usage: pyenv latest [-k|--known] <prefix>
#
# -k/--known Select from all known versions instead of installed
# -b/--bypass (internal) On a resolution failure, do not print an error message
# but rather print the argument unchanged
# -f/--force (internal) Same as -b but also do not return a failure exit code
set -e
[ -n "$PYENV_DEBUG" ] && set -x
while [[ $# -gt 0 ]]
do
case "$1" in
-k|--known)
FROM_KNOWN=1
shift
;;
-b|--bypass)
BYPASS=1
shift
;;
-f|--force)
FORCE=1
BYPASS=1
shift
;;
*)
break
;;
esac
done
prefix=$1
exitcode=0
IFS=$'\n'
if [[ -z $FROM_KNOWN ]]; then
if [[ -d $PYENV_ROOT/versions/$prefix ]]; then
echo "$prefix"
exit $exitcode;
fi
DEFINITION_CANDIDATES=( $(pyenv-versions --bare --skip-envs) )
else
DEFINITION_CANDIDATES=( $(python-build --definitions ) )
fi
if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" 2>/dev/null | grep -qxFe "$prefix"; then
echo "$prefix"
exit $exitcode;
fi
suffix=""
if [[ $prefix =~ ^(.*[0-9])t$ ]]; then
suffix="t"
prefix="${BASH_REMATCH[1]}"
fi
# https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807
prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")"
suffix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$suffix")"
# FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash
DEFINITION_CANDIDATES=(\
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
grep -Ee "^$prefix_re[-.].*$suffix_re\$" || true))
DEFINITION_CANDIDATES=(\
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' \
$(if [[ -z $suffix ]]; then echo "-e /[0-9]t\$/d"; fi)
));
# Compose a sorting key, followed by | and original value
DEFINITION_CANDIDATES=(\
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
awk \
'{ if (match($0,"^[[:alnum:]]+-"))
{ print substr($0,0,RLENGTH-1) "." substr($0,RLENGTH+1) "..|" $0; }
else
{ print $0 "...|" $0; }
}'))
DEFINITION_CANDIDATES=(\
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" \
| sort -t. -k1,1r -k 2,2nr -k 3,3nr -k4,4nr \
| cut -f2 -d $'|' \
|| true))
DEFINITION="${DEFINITION_CANDIDATES[0]}"
if [[ -n "$DEFINITION" ]]; then
echo "$DEFINITION"
else
if [[ -z $BYPASS ]]; then
echo "pyenv: no $([[ -z $FROM_KNOWN ]] && echo installed || echo known) versions match the prefix \`$prefix'" >&2
else
echo "$prefix"
fi
if [[ -z $FORCE ]]; then
exitcode=1
fi
fi
exit $exitcode

74
libexec/pyenv-local Executable file
View file

@ -0,0 +1,74 @@
#!/usr/bin/env bash
#
# Summary: Set or show the local application-specific Python version(s)
#
# Usage: pyenv local [-f|--force] [<version> [...]]
# pyenv local --unset
#
# -f/--force Do not verify that the versions being set exist
#
# Sets the local application-specific Python version(s) by writing the
# version name to a file named `.python-version'.
#
# When you run a Python command, pyenv will look for a `.python-version'
# file in the current directory and each parent directory. If no such
# file is found in the tree, pyenv will use the global Python version
# specified with `pyenv global'. A version specified with the
# `PYENV_VERSION' environment variable takes precedence over local
# and global versions.
#
# <version> can be specified multiple times and should be a version
# tag known to pyenv. The special version string `system' will use
# your default system Python. Run `pyenv versions' for a list of
# available Python versions.
#
# Example: To enable the python2.7 and python3.7 shims to find their
# respective executables you could set both versions with:
#
# 'pyenv local 3.7.0 2.7.15'
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec pyenv-versions --bare
fi
while [[ $# -gt 0 ]]
do
case "$1" in
-f|--force)
FORCE=1
shift
;;
*)
break
;;
esac
done
versions=("$@")
if [ "$versions" = "--unset" ]; then
rm -f .python-version
elif [ -n "$versions" ]; then
pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}"
else
if version_file="$(pyenv-version-file "$PWD")"; then
# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
IFS=: versions=($(pyenv-version-file-read "$version_file"))
set +f
for version in "${versions[@]}"; do
echo "$version"
done
else
echo "pyenv: no local version configured for this directory" >&2
exit 1
fi
fi

66
libexec/pyenv-prefix Executable file
View file

@ -0,0 +1,66 @@
#!/usr/bin/env bash
# Summary: Display prefixes for Python versions
# Usage: pyenv prefix [<version>...]
#
# Displays the directories where the given Python versions are installed,
# separated by colons. If no version is given, `pyenv prefix' displays the
# locations of the currently selected versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo system
exec pyenv-versions --bare
fi
if [ -n "$1" ]; then
OLDIFS="$IFS"
{ IFS=:
export PYENV_VERSION="$*"
}
IFS="$OLDIFS"
elif [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION="$(pyenv-version-name)"
fi
PYENV_PREFIX_PATHS=()
OLDIFS="$IFS"
{ IFS=:
# Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
for version in ${PYENV_VERSION}; do
if [ "$version" = "system" ]; then
if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python --skip-advice 2>/dev/null)" || \
PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 --skip-advice 2>/dev/null)" || \
PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 --skip-advice 2>/dev/null)"; then
shopt -s extglob
# In some distros (Arch), Python can be found in sbin as well as bin
PYENV_PREFIX_PATH="${PYTHON_PATH%/?(s)bin/*}"
PYENV_PREFIX_PATH="${PYENV_PREFIX_PATH:-/}"
else
echo "pyenv: system version not found in PATH" >&2
exit 1
fi
else
version="$(pyenv-latest -f "$version")"
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
fi
if [ -d "$PYENV_PREFIX_PATH" ]; then
PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH")
else
echo "pyenv: version \`${version}' not installed" >&2
exit 1
fi
done
set +f
}
IFS="$OLDIFS"
OLDIFS="$IFS"
{ IFS=:
echo "${PYENV_PREFIX_PATHS[*]}"
}
IFS="$OLDIFS"

206
libexec/pyenv-rehash Executable file
View file

@ -0,0 +1,206 @@
#!/usr/bin/env bash
# Summary: Rehash pyenv shims (run this after installing executables)
set -e
[[ -n "$PYENV_DEBUG" ]] && set -x
SHIM_PATH="${PYENV_ROOT}/shims"
PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim"
# Create the shims directory if it doesn't already exist.
mkdir -p "$SHIM_PATH"
declare last_acquire_error
acquire_lock() {
local ret
# An old lock file is presumed stale. We assume no healthy rehash takes this long.
# The time is picked very small so that a killed rehash holds up new shell sessions
# for as little as possible
find "$PROTOTYPE_SHIM_PATH" -mmin +2 -exec rm -f {} \; 2>/dev/null || true
set -o noclobber
last_acquire_error="$( { ( echo -n > "$PROTOTYPE_SHIM_PATH"; ) 2>&1 1>&3 3>&1-; } 3>&1)" \
&& trap release_lock EXIT \
|| {
# Linux Landlock and MacOS Seatbelt sandbox subsystems return false information in access(),
# making -w "$SHIM_PATH" not catch the fact that the shims dir is not writable in this case.
# Bash doesn't provide access to errno to check for non-EEXIST error code in `echo >'.
# So check for writablity by trying to write to a different file,
# in a way that taxes the usual use case as little as possible.
if [[ -z $tested_for_other_write_errors ]]; then
# if lots of (50+) rehashes run concurrently, another concurrent rehash
# may delete the temporary file in remove_*_shims() before we do so
( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm -f "$t" ) \
&& tested_for_other_write_errors=1 \
|| { echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2
set +o noclobber
exit 1; }
fi
ret=1
}
set +o noclobber
[[ -z "${ret}" ]]
}
remove_prototype_shim() {
rm -f "$PROTOTYPE_SHIM_PATH"
}
release_lock() {
remove_prototype_shim
trap - EXIT
}
if [ ! -w "$SHIM_PATH" ]; then
echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2
exit 1
fi
declare acquired tested_for_other_write_errors
declare start=$SECONDS
PYENV_REHASH_TIMEOUT=${PYENV_REHASH_TIMEOUT:-60}
while (( SECONDS <= start + PYENV_REHASH_TIMEOUT )); do
if acquire_lock; then
acquired=1
break
else
# POSIX sleep(1) doesn't provide subsecond precision, but many others do
sleep 0.1 2>/dev/null || sleep 1
fi
done
if [ -z "${acquired}" ]; then
if [[ -n $tested_for_other_write_errors ]]; then
echo "pyenv: cannot rehash: couldn't acquire lock"\
"$PROTOTYPE_SHIM_PATH for $PYENV_REHASH_TIMEOUT seconds. Last error message:" >&2
echo "$last_acquire_error" >&2
fi
exit 1
fi
unset tested_for_other_write_errors
# The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `pyenv exec`. This file is
# hard-linked for every executable and then removed. The linking
# technique is fast, uses less disk space than unique files, and also
# serves as a locking mechanism.
create_prototype_shim() {
cat > "$PROTOTYPE_SHIM_PATH" <<SH
#!/usr/bin/env bash
set -e
[ -n "\$PYENV_DEBUG" ] && set -x
program="\${0##*/}"
export PYENV_ROOT="$PYENV_ROOT"
SHIM_PATH=\${0%/*}
if [[ \$SHIM_PATH != "$PYENV_ROOT/shims" ]]; then
export _PYENV_SHIM_PATH="\$SHIM_PATH"
fi
exec "$(command -v pyenv)" exec "\$program" "\$@"
SH
chmod +x "$PROTOTYPE_SHIM_PATH"
}
# If the contents of the prototype shim file differ from the contents
# of the first shim in the shims directory, assume pyenv has been
# upgraded and the existing shims need to be removed.
remove_outdated_shims() {
local shim
for shim in "$SHIM_PATH"/*; do
if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then
rm -f "$SHIM_PATH"/*
fi
break
done
}
# The basename of each argument passed to `make_shims` will be
# registered for installation as a shim. In this way, plugins may call
# `make_shims` with a glob to register many shims at once.
make_shims() {
local file shim
for file; do
shim="${file##*/}"
register_shim "$shim"
done
}
if ((${BASH_VERSINFO[0]} > 3)); then
declare -A registered_shims
# Registers the name of a shim to be generated.
register_shim() {
registered_shims["$1"]=1
}
# Install all shims registered via `make_shims` or `register_shim` directly.
install_registered_shims() {
local shim file
for shim in "${!registered_shims[@]}"; do
file="${SHIM_PATH}/${shim}"
[ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file"
done
}
# Once the registered shims have been installed, we make a second pass
# over the contents of the shims directory. Any file that is present
# in the directory but has not been registered as a shim should be
# removed.
remove_stale_shims() {
local shim
for shim in "$SHIM_PATH"/*; do
if [[ ! ${registered_shims["${shim##*/}"]} ]]; then
rm -f "$shim"
fi
done
}
else # Same for bash < 4.
registered_shims=" "
register_shim() {
registered_shims="${registered_shims}${1} "
}
install_registered_shims() {
local shim file
for shim in $registered_shims; do
file="${SHIM_PATH}/${shim}"
[ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file"
done
}
remove_stale_shims() {
local shim
for shim in "$SHIM_PATH"/*; do
if [[ "$registered_shims" != *" ${shim##*/} "* ]]; then
rm -f "$shim"
fi
done
}
fi
shopt -s nullglob
# Create the prototype shim, then register shims for all known
# executables.
create_prototype_shim
remove_outdated_shims
# shellcheck disable=SC2046
make_shims $(pyenv-versions --executables)
# Allow plugins to register shims.
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks rehash`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
install_registered_shims
remove_stale_shims

View file

@ -1,3 +1,3 @@
#!/usr/bin/env bash
# Summary: Display the root directory where versions and shims are kept
echo "$RBENV_ROOT"
echo "$PYENV_ROOT"

29
libexec/pyenv-sh-rehash Executable file
View file

@ -0,0 +1,29 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-rehash --complete
fi
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
# When pyenv shell integration is enabled, delegate to pyenv-rehash,
# then tell the shell to empty its command lookup cache.
case "$shell" in
pwsh)
echo "& (get-command pyenv -commandtype application) rehash"
;;
*)
echo "command pyenv rehash"
esac
case "$shell" in
fish | pwsh )
# no executable cache
;;
* )
echo "hash -r 2>/dev/null || true"
;;
esac

137
libexec/pyenv-sh-shell Executable file
View file

@ -0,0 +1,137 @@
#!/usr/bin/env bash
#
# Summary: Set or show the shell-specific Python version
#
# Usage: pyenv shell <version>...
# pyenv shell -
# pyenv shell --unset
#
# Sets a shell-specific Python version by setting the `PYENV_VERSION'
# environment variable in your shell. This version overrides local
# application-specific versions and the global version.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
#
# When `-` is passed instead of the version string, the previously set
# version will be restored. With `--unset`, the `PYENV_VERSION`
# environment variable gets unset, restoring the environment to the
# state before the first `pyenv shell` call.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec pyenv-versions --bare
fi
versions=("$@")
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
if [ -z "$versions" ]; then
if [ -z "$PYENV_VERSION" ]; then
echo "pyenv: no shell-specific version configured" >&2
exit 1
else
echo 'echo "$PYENV_VERSION"'
exit
fi
fi
if [ "$versions" = "--unset" ]; then
case "$shell" in
fish )
echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"'
echo "set -e PYENV_VERSION"
;;
pwsh )
echo '$Env:PYENV_VERSION, $Env:PYENV_VERSION_OLD = $null, $Env:PYENV_VERSION'
;;
* )
echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"'
echo "unset PYENV_VERSION"
;;
esac
exit
fi
if [ "$versions" = "-" ]; then
case "$shell" in
fish )
cat <<EOS
if set -q PYENV_VERSION_OLD
if [ -n "\$PYENV_VERSION_OLD" ]
set PYENV_VERSION_OLD_ "\$PYENV_VERSION"
set -gx PYENV_VERSION "\$PYENV_VERSION_OLD"
set -gu PYENV_VERSION_OLD "\$PYENV_VERSION_OLD_"
set -e PYENV_VERSION_OLD_
else
set -gu PYENV_VERSION_OLD "\$PYENV_VERSION"
set -e PYENV_VERSION
end
else
echo "pyenv: PYENV_VERSION_OLD is not set" >&2
false
end
EOS
;;
pwsh )
cat <<EOS
if ( Get-Item -Path Env:\PYENV_VERSION* ) {
\$Env:PYENV_VERSION, \$Env:PYENV_VERSION_OLD = \$Env:PYENV_VERSION_OLD, \$Env:PYENV_VERSION
} else {
Write-Error "pyenv: Env:PYENV_VERSION_OLD is not set"
return \$false
}
EOS
;;
* )
cat <<EOS
if [ -n "\${PYENV_VERSION_OLD+x}" ]; then
if [ -n "\$PYENV_VERSION_OLD" ]; then
PYENV_VERSION_OLD_="\$PYENV_VERSION"
export PYENV_VERSION="\$PYENV_VERSION_OLD"
PYENV_VERSION_OLD="\$PYENV_VERSION_OLD_"
unset PYENV_VERSION_OLD_
else
PYENV_VERSION_OLD="\$PYENV_VERSION"
unset PYENV_VERSION
fi
else
echo "pyenv: PYENV_VERSION_OLD is not set" >&2
false
fi
EOS
;;
esac
exit
fi
# Make sure the specified version is installed.
if pyenv-prefix "${versions[@]}" >/dev/null; then
OLDIFS="$IFS"
IFS=: version="${versions[*]}"
IFS="$OLDIFS"
if [ "$version" != "$PYENV_VERSION" ]; then
case "$shell" in
fish )
echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"'
echo "set -gx PYENV_VERSION \"$version\""
;;
pwsh )
echo '$Env:PYENV_VERSION, $Env:PYENV_VERSION_OLD = "'"${version}"'", $Env:PYENV_VERSION'
;;
* )
echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"'
echo "export PYENV_VERSION=\"${version}\""
;;
esac
fi
else
echo "false"
exit 1
fi

View file

@ -1,11 +1,11 @@
#!/usr/bin/env bash
# Summary: List existing rbenv shims
# Usage: rbenv shims [--short]
# Summary: List existing pyenv shims
# Usage: pyenv shims [--short]
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
# Provide rbenv completions
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --short
exit
@ -13,7 +13,7 @@ fi
shopt -s nullglob
for command in "${RBENV_ROOT}/shims/"*; do
for command in "${PYENV_ROOT}/shims/"*; do
if [ "$1" = "--short" ]; then
echo "${command##*/}"
else

40
libexec/pyenv-version Executable file
View file

@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Summary: Show the current Python version(s) and its origin
# Usage: pyenv version [--bare]
#
# --bare show just the version name. An alias to `pyenv version-name'
set -e
[ -n "$PYENV_DEBUG" ] && set -x
exitcode=0
OLDIFS="$IFS"
# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$?
set +f
IFS="$OLDIFS"
unset bare
for arg; do
case "$arg" in
--complete )
echo --bare
exit ;;
--bare ) bare=1 ;;
* )
pyenv-help --usage version >&2
exit 1
;;
esac
done
for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do
if [[ -n $bare ]]; then
echo "$PYENV_VERSION_NAME"
else
echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))"
fi
done
exit $exitcode

46
libexec/pyenv-version-file Executable file
View file

@ -0,0 +1,46 @@
#!/usr/bin/env bash
# Usage: pyenv version-file [<dir>]
# Summary: Detect the file that sets the current pyenv version
set -e
[ -n "$PYENV_DEBUG" ] && set -x
target_dir="$1"
find_local_version_file() {
local root="$1"
# Nonexistent paths are UB as of this writing.
# Relative ones cause a failure but absolute ones don't
[[ $root != /* ]] && root=$(CDPATH= cd -- "$root" && pwd)
# Original Rbenv code supports UNC notation for Cygwin/MinGW
# (https://github.com/rbenv/rbenv/pull/529)
# POSIX.1-2024 still allows to treat //<name> in implementation-specific manner
# (https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16)
# even though few UNIX variants do that
local unc; [[ $root =~ ^//[^/] && ! / -ef // ]] && unc=1
root="${root%/}"
# when testing root, $root is ""
while true; do
# don't test //.python-version if // is special
# as it's pointless and possibly very slow
# if it e.g. leads to a network search
[[ $unc && $root == / ]] && break
if [[ -f $root/.python-version ]]; then
echo "$root/.python-version"
return 0
fi
[[ -n $root ]] || break
root="${root%/*}"
done
return 1
}
if [ -n "$target_dir" ]; then
find_local_version_file "$target_dir"
else
# In tests, PYENV_DIR is not set, ultimately leading to "cd: null directory" in OpenSUSE
# While most `cd` implementations treat an empty argument the same as missing, that's still wrong
find_local_version_file "${PYENV_DIR:=$PWD}" || {
[ "$PYENV_DIR" != "$PWD" ] && find_local_version_file "$PWD"
} || echo "${PYENV_ROOT}/version"
fi

43
libexec/pyenv-version-file-read Executable file
View file

@ -0,0 +1,43 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-read <file>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
VERSION_FILE="$1"
function is_version_safe() {
# As needed, check that the constructed path exists as a child path of PYENV_ROOT/versions
version="$1"
if [[ "$version" == ".." || "$version" == */* ]]; then
# Sanity check the value of version to prevent malicious path-traversal
(
cd "$PYENV_ROOT/versions/$version" &>/dev/null || exit 1
[[ "$PWD" == "$PYENV_ROOT/versions/"* ]]
)
return $?
else
return 0
fi
}
if [ -s "$VERSION_FILE" ]; then
# Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it.
IFS="$IFS"$'\r'
sep=
while read -n 1024 -r version _ || [[ $version ]]; do
if [[ -z "$version" || "$version" == \#* ]]; then
# Skip empty lines and comments
continue
elif ! is_version_safe "$version"; then
# CVE-2022-35861 allowed arbitrary code execution in some contexts and is mitigated by is_version_safe.
echo "pyenv: invalid version \`$version' ignored in \`$VERSION_FILE'" >&2
continue
fi
printf "%s%s" "$sep" "$version"
sep=:
done <"$VERSION_FILE"
[[ $sep ]] && { echo; exit; }
fi
exit 1

View file

@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-write [-f|--force] <file> <version> [...]
#
# -f/--force Don't verify that the versions exist
set -e
[ -n "$PYENV_DEBUG" ] && set -x
while [[ $# -gt 0 ]]
do
case "$1" in
-f|--force)
FORCE=1
shift
;;
*)
break
;;
esac
done
PYENV_VERSION_FILE="$1"
shift || true
versions=("$@")
if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then
pyenv-help --usage version-file-write >&2
exit 1
fi
# Make sure the specified version is installed.
[[ -z $FORCE ]] && pyenv-prefix "${versions[@]}" >/dev/null
# Write the version out to disk.
# Create an empty file. Using "rm" might cause a permission error.
> "$PYENV_VERSION_FILE"
for version in "${versions[@]}"; do
echo "$version" >> "$PYENV_VERSION_FILE"
done

86
libexec/pyenv-version-name Executable file
View file

@ -0,0 +1,86 @@
#!/usr/bin/env bash
# Summary: Show the current Python version
#
# -f/--force (Internal) If a version doesn't exist, print it as is rather than produce an error
set -e
[ -n "$PYENV_DEBUG" ] && set -x
while [[ $# -gt 0 ]]
do
case "$1" in
-f|--force)
FORCE=1
shift
;;
*)
break
;;
esac
done
if [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION_FILE="$(pyenv-version-file)"
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
fi
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks version-name`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then
echo "system"
exit
fi
version_exists() {
local version="$1"
[ -d "${PYENV_ROOT}/versions/${version}" ]
}
versions=()
OLDIFS="$IFS"
{ IFS=:
any_not_installed=0
normalization_done=
# Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
for version in ${PYENV_VERSION}; do
# Remove the explicit 'python-' prefix from versions like 'python-3.12'.
normalised_version="${version#python-}"
[[ $version != "${normalised_version}" ]] && normalization_done=1
if [[ $version == "system" ]] || version_exists "${normalised_version}" ; then
versions+=("${normalised_version}")
elif [[ -n $normalization_done ]] && version_exists "${version}"; then
versions+=("${version}")
elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then
versions+=("${resolved_version}")
elif [[ -n $normalization_done ]] && resolved_version="$(pyenv-latest -b "${version}")"; then
versions+=("${resolved_version}")
else
if [[ -n $FORCE ]]; then
versions+=("${normalised_version}")
else
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
any_not_installed=1
fi
fi
done
set +f
}
IFS="$OLDIFS"
OLDIFS="$IFS"
{ IFS=:
echo "${versions[*]}"
}
IFS="$OLDIFS"
if [ "$any_not_installed" = 1 ]; then
exit 1
fi

21
libexec/pyenv-version-origin Executable file
View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
# Summary: Explain how the current Python version is set
set -e
[ -n "$PYENV_DEBUG" ] && set -x
unset PYENV_VERSION_ORIGIN
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks version-origin`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
if [ -n "$PYENV_VERSION_ORIGIN" ]; then
echo "$PYENV_VERSION_ORIGIN"
elif [ -n "$PYENV_VERSION" ]; then
echo "PYENV_VERSION environment variable"
else
pyenv-version-file
fi

203
libexec/pyenv-versions Executable file
View file

@ -0,0 +1,203 @@
#!/usr/bin/env bash
# Summary: List all Python versions available to pyenv
# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs] [--executables]
#
# Lists all Python versions found in `$PYENV_ROOT/versions/*'.
#
# --bare List just the names, omit `system'
# --skip-aliases Skip symlinks to other versions and to virtual environments
# --skip-envs Skip virtual environments (under <version>/envs)
# --executables Internal. Overrides other options.
# Optimally get a deduplicated list of all executable names in Pyenv-managed
# versions and environments for `pyenv rehash'
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
unset bare skip_aliases skip_envs executables
# Provide pyenv completions
for arg; do
case "$arg" in
--complete )
echo --bare
echo --skip-aliases
echo --skip-envs
exit ;;
--executables ) executables=1; break ;;
--bare ) bare=1 ;;
--skip-aliases ) skip_aliases=1 ;;
--skip-envs ) skip_envs=1 ;;
* )
pyenv-help --usage versions >&2
exit 1
;;
esac
done
versions_dir="${PYENV_ROOT}/versions"
# Fast path for rehash: skip filtering and link resolution
if [[ -n "$executables" ]]; then
if [ -d "$versions_dir" ]; then
shopt -s dotglob nullglob
# MacOS 12+ and FreeBSD 15 support `xargs -r -0' and `basename -a'
# `sort -u` is simpler and a bit faster than `awk '!seen[$0]++'`, with the same result for rehash purposes
printf '%s\0' "$versions_dir"/*/bin/* "$versions_dir"/*/envs/*/bin/* | xargs -0 -r basename -a | sort -u
shopt -u dotglob nullglob
fi
exit 0
fi
if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then
if [ -n "$PYENV_NATIVE_EXT" ]; then
echo "pyenv: failed to load \`realpath' builtin" >&2
exit 1
fi
READLINK=$(type -P readlink)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$READLINK "$1"
}
realpath() {
local path="$1"
local name
# Use a subshell to avoid changing the current path
(
while [ -n "$path" ]; do
name="${path##*/}"
[ "$name" = "$path" ] || cd "${path%/*}"
path="$(resolve_link "$name" || true)"
done
echo "${PWD}/$name"
)
}
fi
if [ -d "$versions_dir" ]; then
versions_dir="$(realpath "$versions_dir")"
fi
if ((${BASH_VERSINFO[0]} > 3)); then
declare -A current_versions
else
current_versions=()
fi
if [ -n "$bare" ]; then
include_system=""
else
hit_prefix="* "
miss_prefix=" "
OLDIFS="$IFS"
IFS=:
# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
if ((${BASH_VERSINFO[0]} > 3)); then
for i in $(pyenv-version-name || true); do
current_versions["$i"]="1"
done
else
current_versions=($(pyenv-version-name || true))
fi
set +f
IFS="$OLDIFS"
include_system="1"
fi
num_versions=0
exists() {
local car="$1"
local cdar
shift
for cdar in "$@"; do
if [ "${car}" == "${cdar}" ]; then
return 0
fi
done
return 1
}
print_version() {
local version="${1:?}"
if [[ -n $bare ]]; then
echo "$version"
return
fi
local path="${2:?}"
if [[ -L "$path" ]]; then
# Only resolve the link itself for printing, do not resolve further.
# Doing otherwise would misinform the user of what the link contains.
version_repr="$version --> $(readlink "$path")"
else
version_repr="$version"
fi
if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then
echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))"
elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then
echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))"
else
echo "${miss_prefix}${version_repr}"
fi
num_versions=$((num_versions + 1))
}
# Include "system" in the non-bare output, if it exists
if [ -n "$include_system" ] && \
(PYENV_VERSION=system pyenv-which python --skip-advice >/dev/null 2>&1 || \
PYENV_VERSION=system pyenv-which python3 --skip-advice >/dev/null 2>&1 || \
PYENV_VERSION=system pyenv-which python2 --skip-advice >/dev/null 2>&1) ; then
print_version system "/"
fi
shopt -s dotglob nullglob
versions_dir_entries=("$versions_dir"/*)
if sort --version-sort </dev/null >/dev/null 2>&1; then
# system sort supports version sorting
OLDIFS="$IFS"
# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting
# which is undesired
set -f
IFS=$'\n'
versions_dir_entries=($(
printf "%s\n" "${versions_dir_entries[@]}" |
sort --version-sort
))
set +f
IFS="$OLDIFS"
fi
for path in "${versions_dir_entries[@]}"; do
if [ -d "$path" ]; then
if [ -n "$skip_aliases" ] && [ -L "$path" ]; then
target="$(realpath "$path")"
[ "${target%/*}" == "$versions_dir" ] && continue
[ "${target%/*/envs/*}" == "$versions_dir" ] && continue
fi
print_version "${path##*/}" "$path"
# virtual environments created by anaconda/miniconda/pyenv-virtualenv
if [[ -z $skip_envs ]]; then
for env_path in "${path}/envs/"*; do
if [ -d "${env_path}" ]; then
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
fi
done
fi
fi
done
shopt -u dotglob nullglob
if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then
echo "Warning: no Python detected on the system" >&2
exit 1
fi

38
libexec/pyenv-whence Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Summary: List all Python versions that contain the given executable
# Usage: pyenv whence [--path] <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --path
exec pyenv-shims --short
fi
if [ "$1" = "--path" ]; then
print_paths="1"
shift
else
print_paths=""
fi
whence() {
local command="$1"
pyenv-versions --bare | while read -r version; do
path="$(pyenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version"
fi
done
}
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage whence >&2
exit 1
fi
result="$(whence "$PYENV_COMMAND")"
[ -n "$result" ] && echo "$result"

126
libexec/pyenv-which Executable file
View file

@ -0,0 +1,126 @@
#!/usr/bin/env bash
#
# Summary: Display the full path to an executable
#
# Usage: pyenv which <command> [--nosystem] [--skip-advice]
#
# Displays the full path to the executable that pyenv will invoke when
# you run the given command.
# Use --nosystem argument in case when you don't need to search command in the
# system environment.
# Internal switch --skip-advice used to skip printing an error message on a
# failed search.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-shims --short
fi
system="system"
SKIP_ADVICE=""
PYENV_COMMAND="$1"
while [[ $# -gt 0 ]]
do
case "$1" in
--skip-advice)
SKIP_ADVICE=1
shift
;;
--nosystem)
system=""
shift
;;
*)
shift
;;
esac
done
remove_from_path() {
local -a paths_to_remove
IFS=: paths_to_remove=($1)
local path_to_remove path_before
local result=":${PATH//\~/$HOME}:"
for path_to_remove in "${paths_to_remove[@]}"; do
while true; do
path_before="$result"
result="${result//:$path_to_remove:/:}"
if [[ ${#path_before} == "${#result}" ]]; then break; fi
done
done
result="${result:1:${#result}-2}"
echo "$result"
}
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage which >&2
exit 1
fi
OLDIFS="$IFS"
# Unquoted $VAR or VAR=() of unquoted value does glob expansion (against the current dir's contents)
# after IFS-splitting which is undesired
set -f
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)})
set +f
IFS="$OLDIFS"
declare -a nonexistent_versions
for version in "${versions[@]}" "$system"; do
if [ "$version" = "system" ]; then
PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')"
NR_CUSTOM_SHIM_PATHS="_PYENV_SHIM_PATHS_$PROGRAM"
SEARCH_PATH="$(remove_from_path "${PYENV_ROOT}/shims${!NR_CUSTOM_SHIM_PATHS:+:${!NR_CUSTOM_SHIM_PATHS}}")"
PYENV_COMMAND_PATH="$(PATH="$SEARCH_PATH" command -v "$PYENV_COMMAND" || true)"
else
# $version may be a prefix to be resolved by pyenv-latest
version_path="$(pyenv-prefix "${version}" 2>/dev/null)" || \
{ nonexistent_versions+=("$version"); continue; }
# resolve $version for hooks
version="$(basename "$version_path")"
PYENV_COMMAND_PATH="$version_path/bin/${PYENV_COMMAND}"
unset version_path
fi
if [ -x "$PYENV_COMMAND_PATH" ]; then
break
fi
done
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks which`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
if [ -x "$PYENV_COMMAND_PATH" ]; then
echo "$PYENV_COMMAND_PATH"
else
if (( ${#nonexistent_versions[@]} )); then
for version in "${nonexistent_versions[@]}"; do
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
done
fi
echo "pyenv: $PYENV_COMMAND: command not found" >&2
if [ -z "$SKIP_ADVICE" ]; then
versions="$(pyenv-whence "$PYENV_COMMAND" || true)"
if [ -n "$versions" ]; then
{ echo
echo "The \`$PYENV_COMMAND' command exists in these Python versions:"
echo "$versions" | sed 's/^/ /g'
echo
echo "Note: See 'pyenv help global' for tips on allowing multiple"
echo " Python versions to be found at the same time."
} >&2
fi
fi
exit 127
fi

View file

@ -1,129 +0,0 @@
#!/usr/bin/env bash
set -e
if [ "$1" = "--debug" ]; then
export RBENV_DEBUG=1
shift
fi
if [ -n "$RBENV_DEBUG" ]; then
# https://web.archive.org/web/20221105082147/https://wiki-dev.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
set -x
fi
abort() {
{ if [ "$#" -eq 0 ]; then cat -
else echo "rbenv: $*"
fi
} >&2
exit 1
}
if [ -z "${RBENV_ROOT}" ]; then
RBENV_ROOT="${HOME}/.rbenv"
else
RBENV_ROOT="${RBENV_ROOT%/}"
fi
export RBENV_ROOT
if [ -z "${RBENV_DIR}" ]; then
RBENV_DIR="$PWD"
else
[[ $RBENV_DIR == /* ]] || RBENV_DIR="$PWD/$RBENV_DIR"
cd "$RBENV_DIR" 2>/dev/null || abort "cannot change working directory to \`$RBENV_DIR'"
RBENV_DIR="$PWD"
cd "$OLDPWD"
fi
export RBENV_DIR
[ -n "$RBENV_ORIG_PATH" ] || export RBENV_ORIG_PATH="$PATH"
canonicalize() {
local readlink resolved_path
if readlink="$(type -P greadlink)" || readlink="$(type -P readlink)"; then
# happy path: GNU & BSD readlink, macOS 12.3+
if resolved_path="$("$readlink" -f "$1" 2>/dev/null)"; then
printf "%s\n" "$resolved_path"
return 0
fi
# likely macOS < 12.3 with old readlink
local path="$1"
while [ -L "$path" ]; do
resolved_path="$("$readlink" "$path" 2>/dev/null)"
[[ $resolved_path == /* ]] || resolved_path="$(cd "${path%/*}/${resolved_path%/*}" && pwd)/${resolved_path##*/}"
path="$resolved_path"
done
printf "%s\n" "$path"
return 0
fi
# fail if the argument is a symlink and was not canonicalized
[ ! -L "$1" ] || return 1
}
shopt -s nullglob
# all this trouble just to find out where rbenv's executables live
rbenv_bin="${BASH_SOURCE:-$0}"
if libexec_dir="$(canonicalize "$rbenv_bin")"; then
libexec_dir="${libexec_dir%/*}"
else
libexec_dir="${rbenv_bin%/*}"
[ "$libexec_dir" != "." ] || libexec_dir="$PWD"
fi
for plugin_bin in "${RBENV_ROOT}/plugins/"*/bin; do
PATH="${plugin_bin}:${PATH}"
done
export PATH="${libexec_dir}:${PATH}"
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${RBENV_ROOT}/rbenv.d"
if [ ! "${libexec_dir%/*}"/rbenv.d -ef "$RBENV_ROOT"/rbenv.d ]; then
# Add rbenv's own `rbenv.d` unless rbenv was cloned to RBENV_ROOT
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${libexec_dir%/*}/rbenv.d"
fi
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:/usr/etc/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks"
for plugin_hook in "${RBENV_ROOT}/plugins/"*/etc/rbenv.d; do
RBENV_HOOK_PATH="${RBENV_HOOK_PATH}:${plugin_hook}"
done
RBENV_HOOK_PATH="${RBENV_HOOK_PATH#:}"
export RBENV_HOOK_PATH
shopt -u nullglob
command="$1"
case "$command" in
"" )
{ rbenv---version
rbenv-help
} | abort
;;
-v | --version )
exec rbenv---version
;;
-h | --help )
exec rbenv-help
;;
* )
command_path="$(type -P "rbenv-$command" || true)"
if [ -z "$command_path" ]; then
if [ "$command" == "shell" ]; then
abort "shell integration not enabled. Run \`rbenv init' for instructions."
else
abort "no such command \`$command'"
fi
fi
shift 1
if [ "$1" = --help ]; then
if [[ "$command" == "sh-"* ]]; then
echo "rbenv help \"$command\""
else
exec rbenv-help "$command"
fi
else
exec "$command_path" "$@"
fi
;;
esac

View file

@ -1,50 +0,0 @@
#!/usr/bin/env bash
# Summary: List all available rbenv commands
# Usage: rbenv commands [--sh|--no-sh]
#
# List names of all rbenv commands, including 3rd-party ones found in the
# PATH or in rbenv plugins. With `--sh`, list only shell commands.
#
# This functionality is mainly meant for scripting. To see usage help for
# rbenv, run `rbenv help`.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --sh
echo --no-sh
exit
fi
exclude_shell=
command_prefix="rbenv-"
if [ "$1" = "--sh" ]; then
command_prefix="rbenv-sh-"
shift
elif [ "$1" = "--no-sh" ]; then
exclude_shell=1
shift
fi
shopt -s nullglob
{
PATH_remain="$PATH"
# traverse PATH to find "rbenv-" prefixed commands
while true; do
path="${PATH_remain%%:*}"
if [ -n "$path" ]; then
for rbenv_command in "${path}/${command_prefix}"*; do
rbenv_command="${rbenv_command##*rbenv-}"
if [[ -z $exclude_shell || $rbenv_command != sh-* ]]; then
echo "${rbenv_command##sh-}"
fi
done
fi
[[ $PATH_remain == *:* ]] || break
PATH_remain="${PATH_remain#*:}"
done
} | sort | uniq

View file

@ -1,26 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv completions <command> [<args>...]
set -e
[ -n "$RBENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
rbenv-help --usage completions >&2
exit 1
fi
# Provide rbenv completions
if [ "$COMMAND" = "--complete" ]; then
exec rbenv-commands
fi
COMMAND_PATH="$(type -P "rbenv-$COMMAND" "rbenv-sh-$COMMAND" | head -n1)"
# --help is provided automatically
echo --help
if grep -iE "^([#%]|--|//) provide rbenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

View file

@ -1,46 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Run an executable with the selected Ruby version
#
# Usage: rbenv exec <command> [<args>...]
#
# Runs an executable by first preparing PATH so that the selected Ruby
# version's `bin' directory is at the front.
#
# For example, if the currently selected Ruby version is 1.9.3-p327:
# rbenv exec bundle install
#
# is equivalent to:
# PATH="$RBENV_ROOT/versions/1.9.3-p327/bin:$PATH" bundle install
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv-shims --short
fi
RBENV_VERSION="$(rbenv-version-name)"
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage exec >&2
exit 1
fi
export RBENV_VERSION
RBENV_COMMAND_PATH="$(rbenv-which "$RBENV_COMMAND")"
RBENV_BIN_PATH="${RBENV_COMMAND_PATH%/*}"
IFS=$'\n' read -d '' -r -a scripts <<<"$(rbenv-hooks exec)" || true
for script in "${scripts[@]}"; do
# shellcheck disable=SC1090
source "$script"
done
shift 1
if [ "$RBENV_VERSION" != "system" ]; then
export PATH="${RBENV_BIN_PATH}:${PATH}"
fi
exec -a "$RBENV_COMMAND" "$RBENV_COMMAND_PATH" "$@"

View file

@ -1,31 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the global Ruby version
#
# Usage: rbenv global <version>
#
# Sets the global Ruby version. You can override the global version at
# any time by setting a directory-specific version with `rbenv local'
# or by setting the `RBENV_VERSION' environment variable.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo system
exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
RBENV_VERSION_FILE="${RBENV_ROOT}/version"
if [ -n "$RBENV_VERSION" ]; then
rbenv-version-file-write "$RBENV_VERSION_FILE" "$RBENV_VERSION"
else
rbenv-version-file-read "$RBENV_VERSION_FILE" || echo system
fi

View file

@ -1,32 +0,0 @@
#!/usr/bin/env bash
# Summary: List hook scripts for a given rbenv command
# Usage: rbenv hooks <command>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo exec
echo rehash
echo version-name
echo version-origin
echo which
exit
fi
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage hooks >&2
exit 1
fi
IFS=: read -r -a hook_paths <<<"$RBENV_HOOK_PATH"
shopt -s nullglob
for path in "${hook_paths[@]}"; do
for script in "$path/$RBENV_COMMAND"/*.bash; do
echo "$script"
done
done
shopt -u nullglob

View file

@ -1,222 +0,0 @@
#!/usr/bin/env bash
# Summary: Configure the shell environment for rbenv
# Usage: rbenv init [<shells>...]
# rbenv init - [--no-rehash] [<shell>]
#
# Modifies shell initialization files to bootstrap rbenv functionality.
# Typically, this will add a line that eval's the output of `rbenv init -`.
# If no shells are named by arguments, the current shell will be detected
# by inspecting the parent process. If a shell is already configured for
# rbenv, the init command does nothing and exits with zero status.
#
# In the `rbenv init -` mode, this outputs a script to be eval'd in the
# current shell. Most importantly, that script prepends the rbenv shims
# directory to the PATH environment variable. To aid interactive shells,
# the script also installs the magic `rbenv()` shell function and loads
# shell completions for rbenv commands.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo -
echo --no-rehash
echo bash
echo fish
echo ksh
echo zsh
exit
fi
print=""
no_rehash=""
shells=()
while [ $# -gt 0 ]; do
case "$1" in
"-" )
print=1
;;
"--no-rehash" )
no_rehash=1
;;
* )
shells+=("$1")
;;
esac
shift
done
if [ "${#shells[@]}" -eq 0 ]; then
shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
shell="${shell%% *}"
shell="${shell##-}"
shell="${shell:-$SHELL}"
shell="${shell##*/}"
shells=("${shell%%-*}")
fi
root="${BASH_SOURCE:-$0}"
root="${root%/*}"
root="${root%/*}"
rbenv_in_path=true
if [ -n "$RBENV_ORIG_PATH" ]; then
PATH="$RBENV_ORIG_PATH" type -P rbenv >/dev/null || rbenv_in_path=""
fi
if [ -z "$print" ]; then
display_path() {
if [ "${1/#$HOME\/}" != "$1" ]; then
# shellcheck disable=SC2088
printf '~/%s' "${1/#$HOME\/}"
else
printf '%s' "$1"
fi
}
rbenv_command=rbenv
if [ -z "$rbenv_in_path" ]; then
rbenv_command="$(display_path "$root/bin/rbenv")"
fi
color_start=""
color_end=""
if [ -t 1 ]; then
color_start=$'\e[33;1m'
color_end=$'\e[m'
fi
write_config() {
if grep -q "rbenv init" "$1" 2>/dev/null; then
printf 'skipping %s%s%s: already configured for rbenv.\n' "$color_start" "$(display_path "$1")" "$color_end"
return 0
fi
mkdir -p "${1%/*}"
# shellcheck disable=SC2016
printf '\n# Added by `rbenv init` on %s\n%s\n' "$(date)" "$2" >> "$1"
printf 'writing %s%s%s: now configured for rbenv.\n' "$color_start" "$(display_path "$1")" "$color_end"
}
status=0
for shell in "${shells[@]}"; do
case "$shell" in
bash )
if [ -f ~/.bashrc ] && [ ! -f ~/.bash_profile ]; then
profile="$HOME/.bashrc"
else
# shellcheck disable=SC2012
profile="$(ls ~/.bash_profile ~/.bash_login ~/.profile 2>/dev/null | head -n1)"
[ -n "$profile" ] || profile="$HOME/.bash_profile"
fi
write_config "$profile" \
"eval \"\$($rbenv_command init - --no-rehash bash)\""
;;
zsh )
# check zshrc for backward compatibility with older rbenv init
if grep -q rbenv "${ZDOTDIR:-$HOME}/.zshrc" 2>/dev/null; then
profile="${ZDOTDIR:-$HOME}/.zshrc"
else
profile="${ZDOTDIR:-$HOME}/.zprofile"
fi
write_config "$profile" \
"eval \"\$($rbenv_command init - --no-rehash zsh)\""
;;
ksh | ksh93 | mksh )
# There are two implementations of Korn shell: AT&T (ksh93) and Mir (mksh).
# Systems may have them installed under those names, or as ksh, so those
# are recognized here. The obsolete ksh88 (subsumed by ksh93) and pdksh
# (subsumed by mksh) are not included, since they are unlikely to still
# be in use as interactive shells anywhere.
write_config "$HOME/.profile" \
"eval \"\$($rbenv_command init - ksh)\""
;;
fish )
write_config "${XDG_CONFIG_HOME:-$HOME/.config}/fish/config.fish" \
"status --is-interactive; and $rbenv_command init - --no-rehash fish | source"
;;
* )
printf 'unsupported shell: "%s"\n' "$shell" >&2
status=1
;;
esac
done
exit $status
fi
mkdir -p "${RBENV_ROOT}/"{shims,versions}
shell="${shells[0]}"
case "$shell" in
fish )
[ -n "$rbenv_in_path" ] || printf "set -gx PATH '%s/bin' \$PATH\n" "$root"
printf "set -gx PATH '%s/shims' \$PATH\n" "$RBENV_ROOT"
printf 'set -gx RBENV_SHELL %s\n' "$shell"
;;
* )
# shellcheck disable=SC2016
[ -n "$rbenv_in_path" ] || printf 'export PATH="%s/bin:${PATH}"\n' "$root"
# shellcheck disable=SC2016
printf 'export PATH="%s/shims:${PATH}"\n' "$RBENV_ROOT"
printf 'export RBENV_SHELL=%s\n' "$shell"
completion="${root}/completions/rbenv.${shell}"
if [ -r "$completion" ]; then
printf "source '%s'\n" "$completion"
fi
;;
esac
if [ -z "$no_rehash" ]; then
echo 'command rbenv rehash 2>/dev/null'
fi
IFS=$'\n' read -d '' -r -a commands <<<"$(rbenv-commands --sh)" || true
case "$shell" in
fish )
cat <<EOS
function rbenv
set command \$argv[1]
set -e argv[1]
switch "\$command"
case ${commands[*]}
rbenv "sh-\$command" \$argv|source
case '*'
command rbenv "\$command" \$argv
end
end
EOS
;;
ksh | ksh93 | mksh )
cat <<EOS
function rbenv {
typeset command
EOS
;;
* )
cat <<EOS
rbenv() {
local command
EOS
;;
esac
if [ "$shell" != "fish" ]; then
IFS="|"
cat <<EOS
command="\${1:-}"
if [ "\$#" -gt 0 ]; then
shift
fi
case "\$command" in
${commands[*]})
eval "\$(rbenv "sh-\$command" "\$@")";;
*)
command rbenv "\$command" "\$@";;
esac
}
EOS
fi

View file

@ -1,45 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the local application-specific Ruby version
#
# Usage: rbenv local <version>
# rbenv local --unset
#
# Sets the local application-specific Ruby version by writing the
# version name to a file named `.ruby-version'.
#
# When you run a Ruby command, rbenv will look for a `.ruby-version'
# file in the current directory and each parent directory. If no such
# file is found in the tree, rbenv will use the global Ruby version
# specified with `rbenv global'. A version specified with the
# `RBENV_VERSION' environment variable takes precedence over local
# and global versions.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
if [ "$RBENV_VERSION" = "--unset" ]; then
rm -f .ruby-version
elif [ -n "$RBENV_VERSION" ]; then
rbenv-version-file-write .ruby-version "$RBENV_VERSION"
else
if version_file="$(rbenv-version-file "$PWD")"; then
rbenv-version-file-read "$version_file"
else
echo "rbenv: no local version configured for this directory" >&2
exit 1
fi
fi

View file

@ -1,42 +0,0 @@
#!/usr/bin/env bash
# Summary: Display prefix for a Ruby version
# Usage: rbenv prefix [<version>]
#
# Displays the directory where a Ruby version is installed. If no
# version is given, `rbenv prefix' displays the location of the
# currently selected version.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo system
exec rbenv-versions --bare
fi
if [ -n "$1" ]; then
export RBENV_VERSION="$1"
elif [ -z "$RBENV_VERSION" ]; then
RBENV_VERSION="$(rbenv-version-name)"
fi
if [ "$RBENV_VERSION" = "system" ]; then
if RUBY_PATH="$(rbenv-which ruby)"; then
RUBY_PATH="${RUBY_PATH%/*}"
RBENV_PREFIX_PATH="${RUBY_PATH%/bin}"
echo "${RBENV_PREFIX_PATH:-/}"
exit
else
echo "rbenv: system version not found in PATH" >&2
exit 1
fi
fi
RBENV_PREFIX_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
if [ ! -d "$RBENV_PREFIX_PATH" ]; then
echo "rbenv: version \`${RBENV_VERSION}' not installed" >&2
exit 1
fi
echo "$RBENV_PREFIX_PATH"

View file

@ -1,180 +0,0 @@
#!/usr/bin/env bash
# Summary: Regenerate rbenv shims
#
# Regenerate shims for every Ruby executable in `$RBENV_ROOT/versions/*/bin'
# and write them to the `$RBENV_ROOT/shims' directory. A shell environment
# properly set up for rbenv will have this shims directory in PATH, which is
# the core mechanism for Ruby version switching.
#
# Running rbenv rehash should only be necessary after installing new Ruby
# versions or gems. Note that this is sometimes done automatically: the
# `rbenv install' command from the ruby-build plugin runs rehash after
# every successful installation, and a RubyGems plugin that ships with
# rbenv runs rehash after every `gem install' command.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
SHIM_PATH="${RBENV_ROOT}/shims"
PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.rbenv-shim"
# Create the shims directory if it doesn't already exist.
mkdir -p "$SHIM_PATH"
# Ensure only one instance of rbenv-rehash is running at a time by
# setting the shell's `noclobber` option and attempting to write to
# the prototype shim file. If the file already exists, print a warning
# to stderr and exit with a non-zero status.
set -o noclobber
{ echo > "$PROTOTYPE_SHIM_PATH"
} 2>| /dev/null ||
{ if [ -w "$SHIM_PATH" ]; then
echo "rbenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
else
echo "rbenv: cannot rehash: $SHIM_PATH isn't writable"
fi
exit 1
} >&2
set +o noclobber
# If we were able to obtain a lock, register a trap to clean up the
# prototype shim when the process exits.
trap remove_prototype_shim EXIT
remove_prototype_shim() {
rm -f "$PROTOTYPE_SHIM_PATH"
}
# Locates rbenv as found in the user's PATH. Otherwise, returns an
# absolute path to the rbenv executable itself.
rbenv_path() {
local found
found="$(PATH="$RBENV_ORIG_PATH" type -P rbenv)"
if [[ $found == /* ]]; then
echo "$found"
elif [[ -n "$found" ]]; then
echo "$PWD/${found#./}"
else
# Assume rbenv isn't in PATH.
echo "${BASH_SOURCE%/*}/rbenv"
fi
}
# The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `rbenv exec`. This file is
# hard-linked for every executable and then removed. The linking
# technique is fast, uses less disk space than unique files, and also
# serves as a locking mechanism.
create_prototype_shim() {
cat > "$PROTOTYPE_SHIM_PATH" <<SH
#!/usr/bin/env bash
set -e
[ -n "\$RBENV_DEBUG" ] && set -x
program="\${0##*/}"
if [ "\$program" = "ruby" ]; then
for arg; do
case "\$arg" in
-e* | -- ) break ;;
*/* )
if [ -f "\$arg" ]; then
export RBENV_DIR="\${arg%/*}"
break
fi
;;
esac
done
fi
export RBENV_ROOT="$RBENV_ROOT"
exec "$(rbenv_path)" exec "\$program" "\$@"
SH
chmod +x "$PROTOTYPE_SHIM_PATH"
}
# If the contents of the prototype shim file differ from the contents
# of the first shim in the shims directory, assume rbenv has been
# upgraded and the existing shims need to be removed.
remove_outdated_shims() {
local shim
for shim in "$SHIM_PATH"/*; do
if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then
rm -f "$SHIM_PATH"/*
fi
break
done
}
# List basenames of executables for every Ruby version
list_executable_names() {
local version file
rbenv-versions --bare --skip-aliases | \
while read -r version; do
for file in "${RBENV_ROOT}/versions/${version}/bin/"*; do
echo "${file##*/}"
done
done
if [ -n "$GEM_HOME" ]; then
for file in "$GEM_HOME"/bin/*; do
echo "${file##*/}"
done
fi
}
# The basename of each argument passed to `make_shims` will be
# registered for installation as a shim. In this way, plugins may call
# `make_shims` with a glob to register many shims at once.
make_shims() {
local file shim
for file; do
shim="${file##*/}"
registered_shims+=("$shim")
done
}
# Registers the name of a shim to be generated.
register_shim() {
registered_shims+=("$1")
}
# Install all the shims registered via `make_shims` or `register_shim` directly.
install_registered_shims() {
local shim file
for shim in "${registered_shims[@]}"; do
file="${SHIM_PATH}/${shim}"
[ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file"
done
}
# Once the registered shims have been installed, we make a second pass
# over the contents of the shims directory. Any file that is present
# in the directory but has not been registered as a shim should be
# removed.
remove_stale_shims() {
local shim
local known_shims=" ${registered_shims[*]} "
for shim in "$SHIM_PATH"/*; do
if [[ "$known_shims" != *" ${shim##*/} "* ]]; then
rm -f "$shim"
fi
done
}
shopt -s nullglob
# Create the prototype shim, then register shims for all known
# executables.
create_prototype_shim
remove_outdated_shims
# shellcheck disable=SC2207
registered_shims=( $(list_executable_names | sort -u) )
# Allow plugins to register shims.
IFS=$'\n' read -d '' -r -a scripts <<<"$(rbenv-hooks rehash)" || true
for script in "${scripts[@]}"; do
# shellcheck disable=SC1090
source "$script"
done
install_registered_shims
remove_stale_shims

View file

@ -1,23 +0,0 @@
#!/usr/bin/env bash
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv-rehash --complete
fi
shell="$(basename "${RBENV_SHELL:-$SHELL}")"
# When rbenv shell integration is enabled, delegate to rbenv-rehash,
# then tell the shell to empty its command lookup cache.
rbenv-rehash
case "$shell" in
fish )
# no rehash support
;;
* )
echo "hash -r 2>/dev/null || true"
;;
esac

View file

@ -1,144 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the shell-specific Ruby version
#
# Usage: rbenv shell <version>
# rbenv shell -
# rbenv shell --unset
#
# Sets a shell-specific Ruby version by setting the `RBENV_VERSION'
# environment variable in your shell. This version overrides local
# application-specific versions and the global version.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
#
# When `-` is passed instead of the version string, the previously set
# version will be restored. With `--unset`, the `RBENV_VERSION`
# environment variable gets unset, restoring the environment to the
# state before the first `rbenv shell` call.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec rbenv-versions --bare
fi
version="$1"
shell="$(basename "${RBENV_SHELL:-$SHELL}")"
if [ -z "$version" ]; then
if [ -z "$RBENV_VERSION" ]; then
echo "rbenv: no shell-specific version configured" >&2
exit 1
else
echo 'echo "$RBENV_VERSION"'
exit
fi
fi
if [ "$version" = "--unset" ]; then
case "$shell" in
fish )
echo 'set -gu RBENV_VERSION_OLD "$RBENV_VERSION"'
echo "set -e RBENV_VERSION"
;;
zsh )
echo "typeset -g RBENV_VERSION_OLD=\"\${RBENV_VERSION-}\""
echo "unset RBENV_VERSION"
;;
* )
echo 'RBENV_VERSION_OLD="${RBENV_VERSION-}"'
echo "unset RBENV_VERSION"
;;
esac
exit
fi
if [ "$version" = "-" ]; then
case "$shell" in
fish )
cat <<EOS
if set -q RBENV_VERSION_OLD
if [ -n "\$RBENV_VERSION_OLD" ]
set RBENV_VERSION_OLD_ "\$RBENV_VERSION"
set -gx RBENV_VERSION "\$RBENV_VERSION_OLD"
set -gu RBENV_VERSION_OLD "\$RBENV_VERSION_OLD_"
set -e RBENV_VERSION_OLD_
else
set -gu RBENV_VERSION_OLD "\$RBENV_VERSION"
set -e RBENV_VERSION
end
else
echo "rbenv: RBENV_VERSION_OLD is not set" >&2
false
end
EOS
;;
zsh )
cat <<EOS
if [ -n "\${RBENV_VERSION_OLD+x}" ]; then
if [ -n "\$RBENV_VERSION_OLD" ]; then
local RBENV_VERSION_OLD_="\$RBENV_VERSION"
export RBENV_VERSION="\$RBENV_VERSION_OLD"
RBENV_VERSION_OLD="\$RBENV_VERSION_OLD_"
unset RBENV_VERSION_OLD_
else
typeset -g RBENV_VERSION_OLD="\$RBENV_VERSION"
unset RBENV_VERSION
fi
else
echo "rbenv: RBENV_VERSION_OLD is not set" >&2
false
fi
EOS
;;
* )
cat <<EOS
if [ -n "\${RBENV_VERSION_OLD+x}" ]; then
if [ -n "\$RBENV_VERSION_OLD" ]; then
RBENV_VERSION_OLD_="\$RBENV_VERSION"
export RBENV_VERSION="\$RBENV_VERSION_OLD"
RBENV_VERSION_OLD="\$RBENV_VERSION_OLD_"
unset RBENV_VERSION_OLD_
else
RBENV_VERSION_OLD="\$RBENV_VERSION"
unset RBENV_VERSION
fi
else
echo "rbenv: RBENV_VERSION_OLD is not set" >&2
false
fi
EOS
;;
esac
exit
fi
# Make sure the specified version is installed.
if rbenv-prefix "$version" >/dev/null; then
if [ "$version" != "$RBENV_VERSION" ]; then
case "$shell" in
fish )
echo 'set -gu RBENV_VERSION_OLD "$RBENV_VERSION"'
echo "set -gx RBENV_VERSION \"$version\""
;;
zsh )
echo "typeset -g RBENV_VERSION_OLD=\"\${RBENV_VERSION-}\""
echo "export RBENV_VERSION=\"$version\""
;;
* )
echo 'RBENV_VERSION_OLD="${RBENV_VERSION-}"'
echo "export RBENV_VERSION=\"$version\""
;;
esac
fi
else
echo "false"
exit 1
fi

View file

@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Summary: Show the current Ruby version and its origin
#
# Shows the currently selected Ruby version and how it was
# selected. To obtain only the version string, use `rbenv
# version-name'.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
version_name="$(rbenv-version-name)"
version_origin="$(rbenv-version-origin)"
if [ "$version_origin" = "${RBENV_ROOT}/version" ] && [ ! -e "$version_origin" ]; then
echo "$version_name"
else
echo "$version_name (set by $version_origin)"
fi

View file

@ -1,34 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv version-file [<dir>]
# Summary: Detect the file that sets the current rbenv version
#
# Detects and prints the location of a `.ruby-version` file that sets the
# version for the current working directory. If no file found, this prints
# the location of the global version file, even if that file does
# not exist.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
target_dir="$1"
find_local_version_file() {
local root="$1"
while ! [[ "$root" =~ ^//[^/]*$ ]]; do
if [ -s "${root}/.ruby-version" ]; then
echo "${root}/.ruby-version"
return 0
fi
[ -n "$root" ] || break
root="${root%/*}"
done
return 1
}
if [ -n "$target_dir" ]; then
find_local_version_file "$target_dir"
else
find_local_version_file "$RBENV_DIR" || {
[ "$RBENV_DIR" != "$PWD" ] && find_local_version_file "$PWD"
} || echo "${RBENV_ROOT}/version"
fi

View file

@ -1,21 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv version-file-read <file>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
VERSION_FILE="$1"
if [ -s "$VERSION_FILE" ]; then
# Read the first word from the specified version file. Avoid reading it whole.
IFS="${IFS}"$'\r'
read -n 1024 -d "" -r version _ <"$VERSION_FILE" || :
if [ "$version" = ".." ] || [[ $version == */* ]]; then
echo "rbenv: invalid version in \`$VERSION_FILE'" >&2
elif [ -n "$version" ]; then
echo "$version"
exit
fi
fi
exit 1

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv version-file-write <file> <version>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
RBENV_VERSION_FILE="$1"
RBENV_VERSION="$2"
if [ -z "$RBENV_VERSION" ] || [ -z "$RBENV_VERSION_FILE" ]; then
rbenv-help --usage version-file-write >&2
exit 1
fi
# Make sure the specified version is installed.
rbenv-prefix "$RBENV_VERSION" >/dev/null
# Write the version out to disk.
echo "$RBENV_VERSION" > "$RBENV_VERSION_FILE"

View file

@ -1,34 +0,0 @@
#!/usr/bin/env bash
# Summary: Show the current Ruby version
set -e
[ -n "$RBENV_DEBUG" ] && set -x
if [ -z "$RBENV_VERSION" ]; then
RBENV_VERSION_FILE="$(rbenv-version-file)"
RBENV_VERSION="$(rbenv-version-file-read "$RBENV_VERSION_FILE" || true)"
fi
IFS=$'\n' read -d '' -r -a scripts <<<"$(rbenv-hooks version-name)" || true
for script in "${scripts[@]}"; do
# shellcheck disable=SC1090
source "$script"
done
if [ -z "$RBENV_VERSION" ] || [ "$RBENV_VERSION" = "system" ]; then
echo "system"
exit
fi
version_exists() {
local version="$1"
[ -d "${RBENV_ROOT}/versions/${version}" ]
}
if version_exists "$RBENV_VERSION"; then
echo "$RBENV_VERSION"
elif version_exists "${RBENV_VERSION#ruby-}"; then
echo "${RBENV_VERSION#ruby-}"
else
echo "rbenv: version \`$RBENV_VERSION' is not installed (set by $(rbenv-version-origin))" >&2
exit 1
fi

View file

@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Summary: Explain how the current Ruby version is set
set -e
[ -n "$RBENV_DEBUG" ] && set -x
unset RBENV_VERSION_ORIGIN
IFS=$'\n' read -d '' -r -a scripts <<<"$(rbenv-hooks version-origin)" || true
for script in "${scripts[@]}"; do
# shellcheck disable=SC1090
source "$script"
done
if [ -n "$RBENV_VERSION_ORIGIN" ]; then
echo "$RBENV_VERSION_ORIGIN"
elif [ -n "$RBENV_VERSION" ]; then
echo "RBENV_VERSION environment variable"
else
rbenv-version-file
fi

View file

@ -1,83 +0,0 @@
#!/usr/bin/env bash
# Summary: List installed Ruby versions
# Usage: rbenv versions [--bare] [--skip-aliases]
#
# Lists all Ruby versions found in `$RBENV_ROOT/versions/*'.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
unset bare
unset skip_aliases
# Provide rbenv completions
for arg; do
case "$arg" in
--complete )
echo --bare
echo --skip-aliases
exit ;;
--bare ) bare=1 ;;
--skip-aliases ) skip_aliases=1 ;;
* )
rbenv-help --usage versions >&2
exit 1
;;
esac
done
canonicalize_dir() {
{ cd "$1" && pwd -P
} 2>/dev/null || echo "$1"
}
versions_dir="${RBENV_ROOT}/versions"
if [ -n "$skip_aliases" ]; then
versions_dir="$(canonicalize_dir "$versions_dir")"
fi
list_versions() {
local path
local target
shopt -s nullglob
for path in "$versions_dir"/*; do
if [ -d "$path" ]; then
if [ -n "$skip_aliases" ] && [ -L "$path" ]; then
target="$(canonicalize_dir "$path")"
[ "${target%/*}" != "$versions_dir" ] || continue
fi
echo "${path##*/}"
fi
done
shopt -u nullglob
}
if [ -n "$bare" ]; then
list_versions
exit 0
fi
sort_versions() {
sed 'h; s/[+-]/./g; s/.p\([[:digit:]]\)/.z.\1/; s/$/.z/; G; s/\n/ /' | \
LC_ALL=C sort -t. -k 1,1 -k 2,2n -k 3,3n -k 4,4n -k 5,5n | awk '{print $2}'
}
versions="$(
if RBENV_VERSION=system rbenv-which ruby >/dev/null 2>&1; then
echo system
fi
list_versions | sort_versions
)"
if [ -z "$versions" ]; then
echo "Warning: no Ruby detected on the system" >&2
exit 1
fi
current_version="$(rbenv-version-name || true)"
while read -r version; do
if [ "$version" == "$current_version" ]; then
echo "* $(rbenv-version 2>/dev/null)"
else
echo " $version"
fi
done <<<"$versions"

View file

@ -1,38 +0,0 @@
#!/usr/bin/env bash
# Summary: List all Ruby versions that contain the given executable
# Usage: rbenv whence [--path] <command>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --path
exec rbenv-shims --short
fi
if [ "$1" = "--path" ]; then
print_paths="1"
shift
else
print_paths=""
fi
whence() {
local command="$1"
rbenv-versions --bare | while read -r version; do
path="$(rbenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version"
fi
done
}
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage whence >&2
exit 1
fi
result="$(whence "$RBENV_COMMAND")"
[ -n "$result" ] && echo "$result"

View file

@ -1,74 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Display the full path to an executable
#
# Usage: rbenv which <command>
#
# Displays the full path to the executable that rbenv will invoke when
# you run the given command.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv-shims --short
fi
remove_from_path() {
local path_to_remove="$1"
local path_before
local result=":${PATH//\~/$HOME}:"
while [ "$path_before" != "$result" ]; do
path_before="$result"
result="${result//:$path_to_remove:/:}"
done
result="${result%:}"
echo "${result#:}"
}
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage which >&2
exit 1
fi
RBENV_VERSION="${RBENV_VERSION:-$(rbenv-version-name)}"
if [ "$RBENV_VERSION" = "system" ]; then
PATH="$(remove_from_path "${RBENV_ROOT}/shims")" \
RBENV_COMMAND_PATH="$(command -v "$RBENV_COMMAND" || true)"
else
RBENV_COMMAND_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}/bin/${RBENV_COMMAND}"
fi
if [[ ! -x "$RBENV_COMMAND_PATH" && -n "$GEM_HOME" && -x "${GEM_HOME}/bin/${RBENV_COMMAND}" ]]; then
RBENV_COMMAND_PATH="${GEM_HOME}/bin/${RBENV_COMMAND}"
fi
IFS=$'\n' read -d '' -r -a scripts <<<"$(rbenv-hooks which)" || true
for script in "${scripts[@]}"; do
# shellcheck disable=SC1090
source "$script"
done
if [ -x "$RBENV_COMMAND_PATH" ]; then
echo "$RBENV_COMMAND_PATH"
elif [ "$RBENV_VERSION" != "system" ] && [ ! -d "${RBENV_ROOT}/versions/${RBENV_VERSION}" ]; then
echo "rbenv: version \`$RBENV_VERSION' is not installed (set by $(rbenv-version-origin))" >&2
exit 1
else
echo "rbenv: $RBENV_COMMAND: command not found" >&2
versions="$(rbenv-whence "$RBENV_COMMAND" || true)"
if [ -n "$versions" ]; then
{ echo
echo "The \`$1' command exists in these Ruby versions:"
echo "$versions" | sed 's/^/ /g'
echo
} >&2
fi
exit 127
fi

550
man/man1/pyenv.1 Normal file
View file

@ -0,0 +1,550 @@
.TH PYENV 1 "24 Apr 2023" "PYENV"
.SH NAME
pyenv \- Simple Python version management
.SH SYNOPSIS
.B pyenv
\fI\,<command> \/\fR[\fI\,<args>\/\fR]
.SH DESCRIPTION
pyenv lets you easily switch between multiple versions of Python\. It's simple, unobtrusive, and follows the UNIX tradition of single\-purpose tools that do one thing well\.
.P
To start using pyenv
.IP "1." 3
\fBAppend\fR the following to \fB$HOME/.bashrc\fR
.P
.RS 15
.nf
if command -v pyenv 1>/dev/null 2>&1; then\n
eval "$(pyenv init - bash)" \n
fi
.fi
.RE
.RS 3
.P
.nh
Appending this line enables shims. Please make sure this line is placed toward the end of the shell configuration file since it manipulates \fBPATH\fR during the initialization\.
.hy
.TP 13
.B Debian note:
Modify only your \fB~/\.bashrc\fR file instead of creating
.br
\fB~/\.bash_profile\fR
.P
.RS 0
\fBZsh note\fR: Modify your \fB~/\.zshrc\fR file instead of \fB~/\.bashrc\fR
.P
\fBWarning\fR: If you configured your system so that \fBBASH_ENV\fR variable points to \fB\.bashrc\fR\. You should almost certainly put the above mentioned line into \fB\.bash_profile\fR, and \fBnot\fR into \fB\.bashrc\fR. Otherwise you may observe strange behaviour, such as \fBpyenv\fR getting into an infinite loop. See #264
.UR https://github\.com/pyenv/pyenv/issues/264
.UE
for details.
.RE
.RE
.IP "2." 3
\fBRestart your shell so the path changes take effect\.\fR You can now begin using pyenv\.
.P
.RS 15
exec "$SHELL"\fR
.RE
.IP "3." 3
\fBInstall Python versions into \fB$(pyenv root)/versions\fR\.\fR For example, to download and install Python 3\.6\.12, run:
.P
.RS 15
.B pyenv install 3.6.12\fR
.RE
.P
\fBNOTE:\fR If you need to pass configure option to build, please use \fBCONFIGURE_OPTS\fR environment variable. If you are having trouble installing a python version, please visit the wiki page about Common Build Problems
.UR https://github\.com/pyenv/pyenv/wiki/Common\-build\-problems
.UE
.P
\fBProxy note\fR: If you use a proxy, export \fBHTTP_PROXY\fR and \fBHTTPS_PROXY\fR environment variables.
.P
.SS "Stop using pyenv"
The simplicity of pyenv makes it easy to temporarily disable it, or uninstall from the system\.
To \fBdisable\fR pyenv managing your Python versions, simply remove the \fBpyenv init\fR line from your shell startup configuration\. This will remove pyenv shims directory from PATH, and future invocations like \fBpython\fR will execute the system Python version, as before pyenv\.
.IP "" 0
.P
\fBpyenv\fR will still be accessible on the command line, but your Python apps won't be affected by version switching\.
.IP "" 0
.SH COMMAND LINE OPTIONS
Like \fBgit\fR, the \fBpyenv\fR command delegates to subcommands based on its first argument\.
.SS "Some useful pyenv commands are:"
.TP 5
.B commands
List all available pyenv commands
.TP
.B exec
Run an executable with the selected Python version
.TP
.B global
Set or show the global Python version(s)
.TP
.B help
Display help for a command
.TP
.B hooks
List hook scripts for a given pyenv command
.TP
.B init
Configure the shell environment for pyenv
.TP
.B install
Install a Python version using python\-build
.TP
.B local
Set or show the local application\-specific Python version(s)
.TP
.B prefix
Display prefix for a Python version
.TP
.B rehash
Rehash pyenv shims (run this after installing executables)
.TP
.B root
Display the root directory where versions and shims are kept
.TP
.B shell
Set or show the shell\-specific Python version
.TP
.B shims
List existing pyenv shims
.TP
.B uninstall
Uninstall Python versions
.TP
.B version
Show the current Python version(s) and its origin
.TP
.B version\-file
Detect the file that sets the current pyenv version
.TP
.B version\-name
Show the current Python version
.TP
.B version\-origin
Explain how the current Python version is set
.TP
.B versions
List all Python versions available to pyenv
.TP
.B whence
List all Python versions that contain the given executable
.TP
.B which
Display the full path to an executable
.PP
See `pyenv help <command>' for information on a specific command.
For full documentation, see \fBCOMMAND REFERENCE\fR section
.SH OPTIONS
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-v, \-\-version
Show version of program.
.SH COMPARISON
.P
.B "pyenv does\|\.\|\.\|\.
.P
.IP \(bu 4
Let you \fBchange the global Python version\fR on a per\-user basis\.
.IP \(bu 4
Provide support for \fBper\-project Python versions\fR\.
.IP \(bu 4
Allow you to \fBoverride the Python version\fR with an environment variable\.
.IP \(bu 4
Search commands from \fBmultiple versions of Python at a time\fR\. This may be helpful to test across Python versions with tox
.IP "" 0
.P
.B "In contrast with pythonbrew and pythonz, pyenv does not\|\.\|\.\|\."
.IP \(bu 4
\fBDepend on Python itself\.\fR pyenv was made from pure shell scripts\. There is no bootstrap problem of Python\.
.IP \(bu 4
\fBNeed to be loaded into your shell\.\fR Instead, pyenv's shim approach works by adding a directory to your \fB$PATH\fR\.
.IP \(bu 4
\fBManage virtualenv\.\fR Of course, you can create virtualenv yourself, or pyenv\-virtualenv to automate the process\.
.SH "How It Works"
At a high level, pyenv intercepts Python commands using shim executables injected into your \fBPATH\fR, determines which Python version has been specified by your application, and passes your commands along to the correct Python installation\.
.SS "Understanding PATH"
When you run a command like \fBpython\fR or \fBpip\fR, your operating system searches through a list of directories to find an executable file with that name\. This list of directories lives in an environment variable called \fBPATH\fR, with each directory in the list separated by a colon:
.IP "" 4
.nf
/usr/local/bin:/usr/bin:/bin
.fi
.IP "" 0
.P
Directories in \fBPATH\fR are searched from left to right, so a matching executable in a directory at the beginning of the list takes precedence over another one at the end\. In this example, the \fB/usr/local/bin\fR directory will be searched first, then \fB/usr/bin\fR, then \fB/bin\fR\.
.SS "Understanding Shims"
pyenv works by inserting a directory of \fIshims\fR at the front of your \fBPATH\fR:
.IP "" 4
.nf
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
.fi
.IP "" 0
.P
Through a process called \fIrehashing\fR, pyenv maintains shims in that directory to match every Python command (\fBpython\fR,\fBpip\fR,etc...) across every installed version of Python
.P
Shims are lightweight executables that simply pass your command along to pyenv\. So with pyenv installed, when you run, say, \fBpip\fR, your operating system will do the following:
.IP \(bu 4
Search your \fBPATH\fR for an executable file named \fBpip\fR
.IP \(bu 4
Find the pyenv shim named \fBpip\fR at the beginning of your \fBPATH\fR
.IP \(bu 4
Run the shim named \fBpip\fR, which in turn passes the command along to pyenv
.IP "" 0
.SS "Choosing the Python Version"
When you execute a shim, pyenv determines which Python version to use by reading it from the following sources, in this order:
.IP "1." 4
The \fBPYENV_VERSION\fR environment variable (if specified)\. You can use the \fBpyenv shell\fR command to set this environment variable in your current shell session\.
.IP "2." 4
The application\-specific \fB\.python\-version\fR file in the current directory (if present)\. You can modify the current directory's \fB\.python\-version\fR file with the \fBpyenv local\fR command\.
.IP "3." 4
The first \fB\.python\-version\fR file found (if any) by searching each parent directory, until reaching the root of your filesystem\.
.IP "4." 4
The global \fB$(pyenv root)/version\fR file\. You can modify this file using the \fBpyenv global\fR command\. If the global version file is not present, pyenv assumes you want to use the "system" Python\. (In other words, whatever version would run if pyenv weren't in your \fBPATH\fR\.)
.IP "" 0
.P
.nh
\fBNOTE:\fR You can activate multiple versions at the same time, including multiple versions of Python2 or Python3 simultaneously\. This allows for parallel usage of Python2 and Python3, and is required with tools like \fBtox\fR\. For example, to set your path to first use your \fBsystem\fR Python and Python3 (set to 2\.7\.9 and 3\.4\.2 in this example), but also have Python 3\.3\.6, 3\.2, and 2\.5 available on your \fBPATH\fR, one would first \fBpyenv install\fR the missing versions, then set \fBpyenv global system 3\.3\.6 3\.2 2\.5\fR\. At this point, one should be able to find the full executable path to each of these using \fBpyenv which\fR, e\.g\. \fBpyenv which python2\.5\fR (should display \fB$(pyenv root)/versions/2\.5/bin/python2\.5\fR), or \fBpyenv which python3\.4\fR (should display path to system Python3)\. You can also specify multiple versions in a \fB\.python\-version\fR file, separated by newlines or any whitespace\.
hy
.SS "Locating the Python Installation"
Once pyenv has determined which version of Python your application has specified, it passes the command along to the corresponding Python installation\.
.P
Each Python version is installed into its own directory under
.nf
\fB$(pyenv root)/versions\fR\.
.fi
.P
For example, you might have these versions installed:
.IP \(bu 4
\fB$(pyenv root)/versions/2\.7\.8/\fR
.IP \(bu 4
\fB$(pyenv root)/versions/3\.4\.2/\fR
.IP \(bu 4
\fB$(pyenv root)/versions/pypy\-2\.4\.0/\fR
.IP "" 0
.P
As far as pyenv is concerned, version names are simply the directories in \fB$(pyenv root)/versions\fR\.
.SS "Managing Virtual Environments"
There is a pyenv plugin named pyenv\-virtualenv which comes with various features to help pyenv users to manage virtual environments created by virtualenv or Anaconda\. Because the \fBactivate\fR script of those virtual environments are relying on mutating \fB$PATH\fR variable of user's interactive shell, it will intercept pyenv's shim style command execution hooks\. We'd recommend to install pyenv\-virtualenv as well if you have some plan to play with those virtual environments\.
.SH "Advanced Configuration"
Skip this section unless you must know what every line in your shell profile is doing\.
.P
\fBpyenv init\fR is the only command that crosses the line of loading extra commands into your shell\. Coming from rvm, some of you might be opposed to this idea\. Here's what \fBpyenv init\fR actually does:
.IP "1." 4
\fBSets up your shims path\.\fR This is the only requirement for pyenv to function properly\. You can do this by hand by prepending \fB$(pyenv root)/shims\fR to your \fB$PATH\fR\.
.IP "2." 4
\fBRehashes shims\.\fR From time to time you'll need to rebuild your shim files\. Doing this on init makes sure everything is up to date\. You can always run \fBpyenv rehash\fR manually\.
You can disable this functionality by adding \fB--no-rehash\fR to the end of your \fBpyenv init\fR command line.
.IP "3." 4
\fBInstalls the sh dispatcher\.\fR This bit is also optional, but allows pyenv and plugins to change variables in your current shell, making commands like \fBpyenv shell\fR possible\. The sh dispatcher doesn't do anything crazy like override \fBcd\fR or hack your shell prompt, but if for some reason you need \fBpyenv\fR to be a real script rather than a shell function, you can safely skip it\.
.IP "" 0
.P
To see exactly what happens under the hood for yourself, run \fB"pyenv init \-"\fR\.
.SH "Uninstalling Python Versions"
As time goes on, you will accumulate Python versions in your \fB$(pyenv root)/versions\fR directory\.
.P
To remove old Python versions, \fBpyenv uninstall\fR command to automate the removal process\.
.P
Alternatively, simply \fBrm \-rf\fR the directory of the version you want to remove\. You can find the directory of a particular Python version with the \fBpyenv prefix\fR command,
.P
e\.g\. \fBpyenv prefix 2\.6\.8\fR\.
.SH "Command Reference"
.P
The most common subcommands are:
.SS "pyenv commands"
Lists all available pyenv commands\.
.SS "pyenv local"
Sets a local application\-specific Python version by writing the version name to a \fB\.python\-version\fR file in the current directory\. This version overrides the global version, and can be overridden itself by setting the \fBPYENV_VERSION\fR environment variable or with the \fBpyenv shell\fR command\.
.IP "" 4
.nf
$ pyenv local 2\.7\.6
.fi
.IP "" 0
.P
When run without a version number, \fBpyenv local\fR reports the currently configured local version\. You can also unset the local version:
.IP "" 4
.nf
$ pyenv local \-\-unset
.fi
.IP "" 0
.P
Previous versions of pyenv stored local version specifications in a file named \fB\.pyenv\-version\fR\. For backwards compatibility, pyenv will read a local version specified in an \fB\.pyenv\-version\fR file, but a \fB\.python\-version\fR file in the same directory will take precedence\.
.P
You can specify multiple versions as local Python at once\.
.P
Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3,
.IP "" 4
.nf
$ pyenv local 2\.7\.6 3\.3\.3
$ pyenv versions
system
* 2\.7\.6 (set by /Users/yyuu/path/to/project/\.python\-version)
* 3\.3\.3 (set by /Users/yyuu/path/to/project/\.python\-version)
$ python \-\-version
Python 2\.7\.6
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.P
or, if you prefer 3\.3\.3 over 2\.7\.6,
.IP "" 4
.nf
$ pyenv local 3\.3\.3 2\.7\.6
$ pyenv versions
system
* 2\.7\.6 (set by /Users/yyuu/path/to/project/\.python\-version)
* 3\.3\.3 (set by /Users/yyuu/path/to/project/\.python\-version)
venv27
$ python \-\-version
Python 3\.3\.3
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.SS "pyenv global"
Sets the global version of Python to be used in all shells by writing the version name to the \fB~/\.pyenv/version\fR file\. This version can be overridden by an application\-specific \fB\.python\-version\fR file, or by setting the \fBPYENV_VERSION\fR environment variable\.
.IP "" 4
.nf
$ pyenv global 2\.7\.6
.fi
.IP "" 0
.P
The special version name \fBsystem\fR tells pyenv to use the system Python (detected by searching your \fB$PATH\fR)\.
.P
When run without a version number, \fBpyenv global\fR reports the currently configured global version\.
.P
You can specify multiple versions as global Python at once\.
.P
Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3,
.IP "" 4
.nf
$ pyenv global 2\.7\.6 3\.3\.3
$ pyenv versions
system
* 2\.7\.6 (set by /Users/yyuu/\.pyenv/version)
* 3\.3\.3 (set by /Users/yyuu/\.pyenv/version)
$ python \-\-version
Python 2\.7\.6
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.P
or, if you prefer 3\.3\.3 over 2\.7\.6,
.IP "" 4
.nf
$ pyenv global 3\.3\.3 2\.7\.6
$ pyenv versions
system
* 2\.7\.6 (set by /Users/yyuu/\.pyenv/version)
* 3\.3\.3 (set by /Users/yyuu/\.pyenv/version)
venv27
$ python \-\-version
Python 3\.3\.3
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.SS "pyenv shell"
Sets a shell\-specific Python version by setting the \fBPYENV_VERSION\fR environment variable in your shell\. This version overrides application\-specific versions and the global version\.
.IP "" 4
.nf
$ pyenv shell pypy\-2\.2\.1
.fi
.IP "" 0
.P
When run without a version number, \fBpyenv shell\fR reports the current value of \fBPYENV_VERSION\fR\. You can also unset the shell version:
.IP "" 4
.nf
$ pyenv shell \-\-unset
.fi
.IP "" 0
.P
Note that you'll need pyenv's shell integration enabled (step 3 of the installation instructions) in order to use this command\. If you prefer not to use shell integration, you may simply set the \fBPYENV_VERSION\fR variable yourself:
.IP "" 4
.nf
$ export PYENV_VERSION=pypy\-2\.2\.1
.fi
.IP "" 0
.P
You can specify multiple versions via \fBPYENV_VERSION\fR at once\.
.P
Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3,
.IP "" 4
.nf
$ pyenv shell 2\.7\.6 3\.3\.3
$ pyenv versions
system
* 2\.7\.6 (set by PYENV_VERSION environment variable)
* 3\.3\.3 (set by PYENV_VERSION environment variable)
$ python \-\-version
Python 2\.7\.6
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.P
or, if you prefer 3\.3\.3 over 2\.7\.6,
.IP "" 4
.nf
$ pyenv shell 3\.3\.3 2\.7\.6
$ pyenv versions
system
* 2\.7\.6 (set by PYENV_VERSION environment variable)
* 3\.3\.3 (set by PYENV_VERSION environment variable)
venv27
$ python \-\-version
Python 3\.3\.3
$ python2\.7 \-\-version
Python 2\.7\.6
$ python3\.3 \-\-version
Python 3\.3\.3
.fi
.IP "" 0
.SS "pyenv install"
Install a Python version
.IP "" 4
.nf
Usage: pyenv install [\-f] [\-kvp] <version>
pyenv install [\-f] [\-kvp] <definition\-file>
pyenv install \-l|\-\-list
\-l, \-\-list List all available versions
\-f, \-\-force Install even if the version appears to be installed
already
\-s, \-\-skip\-existing Skip the installation if the version appears to be
installed already
python\-build options:
\-k, \-\-keep Keep source tree in $PYENV_BUILD_ROOT after installation
(defaults to $PYENV_ROOT/sources)
\-v, \-\-verbose Verbose mode: print compilation status to stdout
\-p, \-\-patch Apply a patch from stdin before building
\-g, \-\-debug Build a debug version
.fi
.IP "" 0
.P
To list the all available versions of Python, including Anaconda, Jython, pypy, and stackless, use:
.IP "" 4
.nf
$ pyenv install \-\-list
.fi
.IP "" 0
.P
Then install the desired versions:
.IP "" 4
.nf
$ pyenv install 2\.7\.6
$ pyenv install 2\.6\.8
$ pyenv versions
system
2\.6\.8
* 2\.7\.6 (set by /home/yyuu/\.pyenv/version)
.fi
.IP "" 0
.SS "pyenv uninstall"
Uninstall Python versions\.
.IP "" 4
.nf
Usage: pyenv uninstall [\-f|\-\-force] <version> ...
\-f Attempt to remove the specified version without prompting
for confirmation\. If the version does not exist, do not
display an error message\.
.fi
.IP "" 0
.SS "pyenv rehash"
Installs shims for all Python binaries known to pyenv (i\.e\., \fB~/\.pyenv/versions/*/bin/*\fR)\. Run this command after you install a new version of Python, or install a package that provides binaries\.
.IP "" 4
.nf
$ pyenv rehash
.fi
.IP "" 0
.SS "pyenv version"
Displays the currently active Python version, along with information on how it was set\.
.IP "" 4
.nf
$ pyenv version
2\.7\.6 (set by /home/yyuu/\.pyenv/version)
.fi
.IP "" 0
.SS "pyenv versions"
Lists all Python versions known to pyenv, and shows an asterisk next to the currently active version\.
.IP "" 4
.nf
$ pyenv versions
2\.5\.6
2\.6\.8
* 2\.7\.6 (set by /home/yyuu/\.pyenv/version)
3\.3\.3
jython\-2\.5\.3
pypy\-2\.2\.1
.fi
.IP "" 0
.SS "pyenv which"
Displays the full path to the executable that pyenv will invoke when you run the given command\.
.IP "" 4
.nf
$ pyenv which python3\.3
/home/yyuu/\.pyenv/versions/3\.3\.3/bin/python3\.3
.fi
.IP "" 0
.SS "pyenv whence"
Lists all Python versions with the given command installed\.
.IP "" 4
.nf
$ pyenv whence 2to3
2\.6\.8
2\.7\.6
3\.3\.3
.fi
.IP "" 0
.SH "Environment variables"
You can affect how pyenv operates with the following settings:
.TP 28
.B name (default)
.B description
.TP 28
.B PYENV_VERSION
Specifies the Python version to be used. Also see \fBpyenv shell\fR
.TP
.B PYENV_ROOT (\fB~/.pyenv\fR)
Defines the directory under which Python versions and shims reside. Also see \fBpyenv root\fR
.TP
.B PYENV_DEBUG
Outputs debug information.
.br
Also as: \fBpyenv --debug <subcommand>\fR
.TP
.B PYENV_HOOK_PATH
Colon\-separated list of paths searched for pyenv hooks\.
.TP
.B PYENV_DIR (\fB$PWD\fR)
Directory to start searching for \fB\.python\-version\fR files\.
.TP
.B HTTP_PROXY,HTTPS_PROXY
Proxy Variables
.TP
.B CONFIGURE_OPTS
Pass configure options to build.
.TP
.B PYTHON_BUILD_ARIA2_OPTS
Used to pass additional parameters to \fBaria2\fR
.UR https://aria2\.github\.io/
.UE
If the \fBaria2c\fR binary is available on PATH, pyenv uses \fBaria2c\fR instead of \fBcurl\fR or \fBwget\fR to download the Python Source code\. If you have an unstable internet connection, you can use this variable to instruct \fBaria2\fR to accelerate the download\.
In most cases, you will only need to use \fB\-x 10 \-k 1M\fR as value to \fBPYTHON_BUILD_ARIA2_OPTS\fR environment variable
.SH "License"
The \fBMIT\fR License

7
plugins/.gitignore vendored Normal file
View file

@ -0,0 +1,7 @@
/*
!/.gitignore
!/version-ext-compat
!/python-build
!/pyenv-binary
!/pyenv-link
/python-build/test/build

View file

@ -0,0 +1,94 @@
# pyenv-binary (experimental)
Package an installed Python version into a relocatable archive that can be
installed on another machine.
This is experimental and intentionally decoupled: it does not change
`pyenv install` or any other command. You drive it explicitly through
`pyenv binary`. Run `pyenv binary <command> --help` for details on a command.
## Portability
An archive is portable across machines that share its build platform (OS,
architecture and a compatible libc) and have the recorded system libraries. It
is not portable across, say, glibc and musl, or to an older glibc; the platform
and dependency metadata exist to catch that.
## Commands
### `pyenv binary package [-v|--verbose] <version>[:<entry>] --archive-base-url <url>`
Installs `<version>` from source under a separate name, packages that install
with `save`, then emits a python-build definition for it with
`generate-installer`. With no explicit entry, the name is generated from the
current platform, platform version and architecture. An explicit entry keeps
the existing custom-build workflow.
Pass `-v` to show build progress from `pyenv install`.
```sh
pyenv binary package 3.12.7 \
--archive-base-url https://example.com/binaries
# On Debian 12 x86_64, writes 3.12.7-debian-12-x86_64.tar.gz,
# its .meta file and a `3.12.7-debian-12-x86_64' definition.
pyenv binary package 3.12.7:company-python \
--archive-base-url https://example.com/binaries
```
The archive, metadata and definition land in the current directory, named after
the entry. Host the archive under `<url>` and drop the definition into
python-build's definition directory.
### `pyenv binary package-name <version>`
Prints the automatically generated entry name without building anything. Linux
uses the distribution name and version, macOS uses the macOS version, and other
systems use the name and release reported by `uname`. All names include the
architecture.
```sh
pyenv binary package-name 3.12.7
# 3.12.7-debian-12-x86_64
```
### `pyenv binary save <version> [<output-dir>] [--name <name>]`
Packs an installed version into `<version>-<platform>.tar.gz` (relative paths)
and writes `<version>-<platform>.meta` describing the build platform (OS, arch,
distro and libc version) and the system libraries the build links against. Use
`--name` to set a different base name for both files.
```sh
pyenv binary save 3.12.7 ./dist
```
### `pyenv binary generate-installer <metadata-file> --archive-url <url> [-o <output>]`
Reads a `.meta` file and emits a python-build definition. Drop it into
python-build's definition directory and `pyenv install <name>` installs the
archive like any other version. The archive location is a parameter, so you can
host it anywhere (it does not have to be a pyenv location); the archive itself
must sit next to the `.meta` file so its checksum can be baked into the
definition.
The definition refuses to install on a different OS/architecture, or an older
glibc, than the archive was built for, and checks that the system libraries it
needs are present.
```sh
pyenv binary generate-installer ./dist/3.12.7-linux-x86_64.meta \
--archive-url https://example.com/3.12.7-linux-x86_64.tar.gz \
-o "$(pyenv root)/plugins/python-build/share/python-build/3.12.7-linux-x86_64"
pyenv install 3.12.7-linux-x86_64
```
### `pyenv binary relocate <prefix>`
Rewrites the rpaths of a Python tree unpacked into `<prefix>` so the interpreter
and its extension modules load the bundled libraries from there rather than from
the path the archive was built at. Uses `patchelf`. The generated definition
calls this; you rarely run it by hand.
Relocation is implemented for Linux; macOS is not wired up yet.

View file

@ -0,0 +1,65 @@
#!/usr/bin/env bash
#
# Summary: Package an installed Python version as a relocatable binary (experimental)
#
# Usage: pyenv binary <command> [<args>]
#
# `pyenv binary` packages an already-installed Python version into a relocatable
# archive that can be installed on another machine. It is experimental and does
# not touch `pyenv install' or any other command.
#
# Run `pyenv binary' to list its commands, or `pyenv binary <command> --help'
# for command-specific help.
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
libexec="${BASH_SOURCE%/*}/../libexec"
# The pyenv launcher only puts a plugin's bin on PATH, but `pyenv-help' looks a
# command up there. Add our libexec so the subcommands, and the help text they
# print, can be found.
export PATH="${libexec}:${PATH}"
list_commands() {
local path
for path in "$libexec"/pyenv-binary-*; do
[ -e "$path" ] && echo "${path##*/pyenv-binary-}"
done
}
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
shift
if [ -z "$1" ]; then
list_commands
else
command_path="${libexec}/pyenv-binary-$1"
shift
[ -x "$command_path" ] && exec "$command_path" --complete "$@"
fi
exit
fi
subcommand="$1"
if [ -z "$subcommand" ]; then
{ pyenv-help binary
echo
echo "Commands:"
list_commands | sed 's/^/ /'
} >&2
exit 1
fi
shift
command_path="${libexec}/pyenv-binary-${subcommand}"
if [ ! -x "$command_path" ]; then
echo "pyenv-binary: no such command \`${subcommand}'" >&2
exit 1
fi
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
exec pyenv-help "binary-${subcommand}"
fi
exec "$command_path" "$@"

View file

@ -0,0 +1,224 @@
#!/usr/bin/env bash
#
# Summary: Generate a python-build definition for a saved binary archive
#
# Usage: pyenv binary generate-installer <metadata-file> --archive-url <url> [-o <output>]
#
# Reads a metadata file written by `pyenv binary save' and emits a python-build
# definition. Dropped into python-build's definition directory, it installs the
# archive like any other version: `pyenv install' downloads it from <url>,
# checks the platform and the required system libraries, unpacks it, then
# rewrites rpaths so the copy runs from its prefix.
#
# The archive must sit next to the metadata file so its checksum can be baked
# into the definition; `pyenv binary save' writes the two together.
#
# <metadata-file> A .meta file written by `pyenv binary save'.
# The corresponding binary package written by `pyenv binary save'
# needs to be present alongside it.
# --archive-url <url> The URL for the resulting installation script to download
# the package from.
# -o <output> Write the definition here (default: stdout).
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --archive-url
echo -o
exit
fi
metadata=""
archive_url=""
output=""
while [ $# -gt 0 ]; do
case "$1" in
--archive-url )
[ $# -ge 2 ] || { echo "pyenv-binary: --archive-url needs a value" >&2; exit 1; }
archive_url="$2"; shift 2 ;;
-o )
[ $# -ge 2 ] || { echo "pyenv-binary: -o needs a value" >&2; exit 1; }
output="$2"; shift 2 ;;
-* )
echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;;
* )
[ -z "$metadata" ] || { echo "pyenv-binary: unexpected argument \`$1'" >&2; exit 1; }
metadata="$1"; shift ;;
esac
done
if [ -z "$metadata" ] || [ -z "$archive_url" ]; then
pyenv-help --usage binary-generate-installer >&2
exit 1
fi
version="" os="" arch="" distro="" libc="" build_prefix="" archive=""
deps=""
while IFS='=' read -r key value; do
case "$key" in
version ) version="$value" ;;
os ) os="$value" ;;
arch ) arch="$value" ;;
distro ) distro="$value" ;;
libc ) libc="$value" ;;
build_prefix ) build_prefix="$value" ;;
archive ) archive="$value" ;;
dep ) deps="${deps:+$deps }$value" ;;
esac
done < "$metadata"
# Fail here if the metadata is incomplete, rather than bake a blank into the
# definition where a missing arch would give a confusing platform error.
for field in version os arch archive; do
if [ -z "${!field}" ]; then
echo "pyenv-binary: metadata is missing \`${field}'" >&2
exit 1
fi
done
# Mach-O load commands contain the prefix where Python was built.
if [ "$os" = "Darwin" ] && [ -z "$build_prefix" ]; then
echo "pyenv-binary: metadata is missing \`build_prefix'" >&2
exit 1
fi
# The glibc floor only applies on Linux; require it there so the definition can
# tell whether the target is new enough to run the binaries.
if [ "$os" = "Linux" ] && [ -z "$libc" ]; then
echo "pyenv-binary: metadata is missing \`libc'" >&2
exit 1
fi
# python-build downloads the archive itself, so the checksum has to be baked in.
# The archive sits next to the metadata `save' wrote it alongside.
archive_path="$(dirname "$metadata")/${archive}"
if [ ! -r "$archive_path" ]; then
echo "pyenv-binary: cannot read the archive \`${archive_path}' to checksum it" >&2
exit 1
fi
if command -v sha256sum >/dev/null 2>&1; then
sha256="$(sha256sum "$archive_path")"; sha256="${sha256%% *}"
elif command -v shasum >/dev/null 2>&1; then
sha256="$(shasum -a 256 "$archive_path")"; sha256="${sha256%% *}"
elif command -v openssl >/dev/null 2>&1; then
sha256="$(openssl dgst -sha256 "$archive_path")"; sha256="${sha256##* }"
else
echo "pyenv-binary: need sha256sum, shasum or openssl to checksum the archive" >&2
exit 1
fi
emit() {
# The values known now go in as %q-quoted assignments so a stray quote or space
# in the URL or metadata cannot break the definition or inject into it. The body
# below is a quoted here-doc, verbatim.
{
printf '# python-build definition for prebuilt Python %s (%s/%s%s).\n' \
"$version" "$os" "$arch" "${distro:+, $distro}"
echo "# Generated by \`pyenv binary generate-installer'."
echo
printf 'EXPECT_OS=%q\n' "$os"
printf 'EXPECT_ARCH=%q\n' "$arch"
printf 'EXPECT_LIBC=%q\n' "$libc"
printf 'BUILD_PREFIX=%q\n' "$build_prefix"
printf 'VERSION=%q\n' "$version"
printf 'ARCHIVE_URL=%q\n' "$archive_url"
printf 'SHA256=%q\n' "$sha256"
printf 'DEPS=%q\n' "$deps"
}
cat <<'EOF'
os="$(uname -s)"
arch="$(uname -m)"
if [ "$os" != "$EXPECT_OS" ] || [ "$arch" != "$EXPECT_ARCH" ]; then
echo "pyenv-binary: this archive is for ${EXPECT_OS}/${EXPECT_ARCH}, not ${os}/${arch}" >&2
exit 1
fi
# Refuse a target whose glibc is older than the one the archive was built on;
# the dynamic loader would reject the binaries.
case "$EXPECT_LIBC" in
"glibc "* )
build_libc="${EXPECT_LIBC#glibc }"
target_libc="$(getconf GNU_LIBC_VERSION 2>/dev/null || true)"
case "$target_libc" in
"glibc "* )
target_libc="${target_libc#glibc }"
older="$(printf '%s\n%s\n' "$build_libc" "$target_libc" | sort -V | head -n1)"
if [ "$older" = "$target_libc" ] && [ "$target_libc" != "$build_libc" ]; then
echo "pyenv-binary: archive needs glibc ${build_libc} or newer, but this system has ${target_libc}" >&2
exit 1
fi
;;
esac
;;
esac
# Required system libraries must already be present on the target. Linux lists
# the soname first; FreeBSD lists it in the resolved path, so normalize that
# path before matching exact names.
cache=""
if command -v ldconfig &>/dev/null; then
case "$os" in
FreeBSD )
cache="$(ldconfig -r 2>/dev/null)" &&
cache="$(printf '%s\n' "$cache" | awk -F ' *=> *' '{ sub(/^.*\//, "", $2); print $2 }')" \
|| cache=""
;;
* )
cache="$(ldconfig -p 2>/dev/null)" || cache=""
;;
esac
fi
if [ -n "$cache" ]; then
missing=""
for dep in $DEPS; do
printf '%s\n' "$cache" | awk -v d="$dep" '$1 == d { found = 1 } END { exit !found }' \
|| missing="${missing} ${dep}"
done
if [ -n "$missing" ]; then
echo "pyenv-binary: missing required system libraries:${missing}" >&2
exit 1
fi
elif [ -n "$DEPS" ]; then
echo "pyenv-binary: cannot check required system libraries (ldconfig cache unavailable)" >&2
fi
case "$os" in
Darwin )
for tool in otool install_name_tool; do
if ! command -v "$tool" >/dev/null 2>&1; then
echo "pyenv-binary: need ${tool} to relocate the binary" >&2
exit 1
fi
done
;;
* )
if ! command -v patchelf >/dev/null 2>&1; then
echo "pyenv-binary: need patchelf to relocate the binary" >&2
exit 1
fi
;;
esac
build_package_relocate() {
if [ "$os" = "Darwin" ]; then
pyenv binary relocate "$PREFIX_PATH" "$BUILD_PREFIX"
else
pyenv binary relocate "$PREFIX_PATH"
fi
}
install_package "Python-${VERSION}-binary" "${ARCHIVE_URL}#${SHA256}" copy relocate
EOF
}
if [ -n "$output" ]; then
emit > "$output"
echo "Wrote definition to ${output}"
else
emit
fi

View file

@ -0,0 +1,83 @@
#!/usr/bin/env bash
#
# Summary: Create an installable binary package from a Python version
#
# Usage: pyenv binary package [-v|--verbose] <version>[:<entry>] --archive-base-url <url>
#
# Installs <version> from source under a separate entry name, saves it as a
# binary package, then emits a python-build definition for that package.
# The archive, metadata and definition are written to the current directory
# as <entry>.tar.gz, <entry>.meta and <entry>.
#
# <version> A version `pyenv install' knows how to build.
# <entry> The optional name to build under and install the
# binary as. If omitted, a name is generated from the
# current platform, platform version and architecture.
# -v,--verbose Show build progress from `pyenv install'.
# --archive-base-url <url>
# Where the archive will be hosted; the definition
# downloads it from <url>/<entry>.tar.gz.
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --archive-base-url
echo --verbose
exec pyenv-install --list --bare
fi
spec=""
archive_base_url=""
verbose=""
while [ $# -gt 0 ]; do
case "$1" in
--archive-base-url )
[ $# -lt 2 ] && { echo "pyenv-binary: --archive-base-url needs a value" >&2; exit 1; }
archive_base_url="$2"; shift ;;
-v|--verbose)
verbose=1 ;;
-* )
echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;;
* )
[ -z "$spec" ] || { echo "pyenv-binary: unexpected argument \`$1'" >&2; exit 1; }
spec="$1"
;;
esac
shift
done
if [ -z "$spec" ] || [ -z "$archive_base_url" ]; then
pyenv-help --usage binary-package >&2
exit 1
fi
case "$spec" in
*?:?* ) entry="${spec##*:}" ;;
* ) entry="$(pyenv-binary-package-name "$spec")"; spec="${spec}:${entry}" ;;
esac
case "$entry" in
# `pyenv install' reads a trailing `:latest' as part of the version rather than
# as an alias, so nothing would end up installed under that name.
latest )
echo "pyenv-binary: \`latest' cannot be used as an entry name" >&2
exit 1
;;
# The entry becomes a directory name under versions/. `pyenv install' does not
# validate the alias, and `save' only checks once the build is done, so refuse
# a name that could point elsewhere before compiling anything.
*/* | .. | . )
echo "pyenv-binary: invalid entry name \`${entry}'" >&2
exit 1
;;
esac
# `pyenv install' puts a `<version>:<alias>' build under versions/<alias>.
pyenv-install ${verbose:+--verbose} "$spec"
pyenv-binary-save "$entry" "$PWD" --name "$entry"
pyenv-binary-generate-installer "${entry}.meta" \
--archive-url "${archive_base_url%/}/${entry}.tar.gz" -o "$entry"

View file

@ -0,0 +1,73 @@
#!/usr/bin/env bash
#
# Summary: Generate a binary package name for the current platform
#
# Usage: pyenv binary package-name <version>
#
# Prints a package name containing the Python version, platform name,
# platform version and architecture.
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ "$1" = "--complete" ]; then
exec pyenv-install --list --bare
fi
if [ $# -ne 1 ]; then
pyenv-help --usage binary-package-name >&2
exit 1
fi
version="$1"
case "$version" in
*/* | .. | . | *[[:cntrl:]]* )
echo "pyenv-binary: invalid version name \`${version}'" >&2
exit 1
;;
esac
version="$(pyenv-latest -f -k "$version")"
os="$(uname -s)"
arch="$(uname -m)"
distro=""
distro_version=""
case "$os" in
Linux )
if type -p lsb_release >/dev/null; then
distro="$(lsb_release -si)"
distro_version="$(lsb_release -sr)"
elif [ -r /etc/os-release ]; then
distro="$(. /etc/os-release && printf '%s' "${ID:-}")"
distro_version="$(. /etc/os-release && printf '%s' "${VERSION_ID:-}")"
fi
;;
Darwin )
distro="macos"
distro_version="$(sw_vers -productVersion)"
;;
* )
distro="$os"
distro_version="$(uname -r)"
;;
esac
slug() {
printf '%s' "$1" |
tr '[:upper:] ' '[:lower:]-' |
tr -cd 'a-z0-9._-'
}
distro="$(slug "$distro")"
distro_version="$(slug "$distro_version")"
arch="$(slug "$arch")"
if [ -z "$distro" ] || [ -z "$distro_version" ] || [ -z "$arch" ]; then
echo "pyenv-binary: could not determine the package platform" >&2
exit 1
fi
printf '%s-%s-%s-%s\n' "$version" "$distro" "$distro_version" "$arch"

View file

@ -0,0 +1,137 @@
#!/usr/bin/env bash
#
# Summary: Rewrite an unpacked Python's library paths so it runs from its prefix
#
# Usage: pyenv binary relocate <prefix> [<build-prefix>]
#
# Rewrites the library paths of a Python tree that was unpacked into <prefix>
# so the interpreter and its extension modules load the bundled libraries from
# their new location rather than the path it was built at. Requires patchelf on
# Linux and FreeBSD, or otool and install_name_tool on macOS.
#
# The definition that `pyenv binary generate-installer' produces calls this
# after `install_package ... copy' has laid the tree down.
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ "$1" = "--complete" ]; then
exit
fi
prefix="$1"
if [ -z "$prefix" ]; then
pyenv-help --usage binary-relocate >&2
exit 1
fi
if [ "$(uname -s)" = "Darwin" ]; then
build_prefix="${2%/}"
if [ -z "$build_prefix" ]; then
echo "pyenv-binary: need the original build prefix to relocate a macOS binary" >&2
exit 1
fi
for tool in otool install_name_tool; do
if ! command -v "$tool" >/dev/null 2>&1; then
echo "pyenv-binary: need ${tool} to relocate the binary" >&2
exit 1
fi
done
relocate_macho() {
local file="$1" new_rpath="$2"
local load_commands install_ids rpaths dependency install_id rpath replacement
load_commands="$(otool -L "$file")"
install_ids="$(otool -D "$file" 2>/dev/null || true)"
rpaths="$(otool -l "$file")"
install_id="$(printf '%s\n' "$install_ids" | sed -n '2s/^[[:space:]]*//p')"
while IFS= read -r dependency; do
case "$dependency" in
"$build_prefix"/lib/* )
if [ "$dependency" != "$install_id" ]; then
replacement="@rpath/${dependency#"$build_prefix"/lib/}"
install_name_tool -change "$dependency" "$replacement" "$file"
fi
;;
esac
done < <(printf '%s\n' "$load_commands" | tail -n +2 | sed -E \
's/^[[:space:]]*//; s/[[:space:]]+\(compatibility version.*$//')
case "$install_id" in
"$build_prefix"/lib/* )
replacement="@rpath/${install_id#"$build_prefix"/lib/}"
install_name_tool -id "$replacement" "$file"
;;
esac
while IFS= read -r rpath; do
if [ "$rpath" = "$build_prefix/lib" ]; then
install_name_tool -rpath "$rpath" "$new_rpath" "$file"
fi
done < <(printf '%s\n' "$rpaths" | awk '
/cmd LC_RPATH/ { found = 1; next }
found && /^[[:space:]]*path / {
sub(/^[[:space:]]*path /, "")
sub(/ \(offset [0-9]+\)$/, "")
print
found = 0
}
')
}
found=0
for file in "$prefix"/bin/*; do
[[ -f $file && -x $file && ! -L $file ]] || continue
otool -L "$file" >/dev/null 2>&1 || continue
relocate_macho "$file" '@executable_path/../lib'
found=1
done
if [ "$found" -eq 0 ]; then
echo "pyenv-binary: found no interpreter to relocate under \`${prefix}/bin'" >&2
exit 1
fi
for file in "$prefix"/lib/*.dylib; do
[[ -f $file && ! -L $file ]] || continue
relocate_macho "$file" '@loader_path'
done
while IFS= read -r so; do
relocate_macho "$so" '@loader_path/../..'
done < <(find "$prefix" -type f -path '*/lib/python*/lib-dynload/*.so')
exit
fi
# patchelf can add an rpath and write one of any length; chrpath can only shorten
# an existing one, which is not enough to relocate every build, so require it.
if ! command -v patchelf >/dev/null 2>&1; then
echo "pyenv-binary: need patchelf to relocate the binary" >&2
exit 1
fi
# The interpreter loads libpython from ../lib. Patch every ELF binary in bin/ so
# this holds whatever the interpreter is named (python3, python2.7, ...); the
# scripts alongside it (pip, idle) are not ELF, so `--print-rpath' fails on them
# and they are skipped. A tree with no interpreter at all did not unpack the way
# we expect, so treat that as an error rather than quietly relocating nothing.
found=0
for file in "$prefix"/bin/*; do
[[ -f $file && -x $file && ! -L $file ]] || continue
patchelf --print-rpath "$file" >/dev/null 2>&1 || continue
patchelf --set-rpath "$prefix/lib" "$file"
found=1
done
if [ "$found" -eq 0 ]; then
echo "pyenv-binary: found no interpreter to relocate under \`${prefix}/bin'" >&2
exit 1
fi
# The extension modules CPython built are the only other objects with an rpath
# into the old prefix, so point them at lib/ as well. Anything a wheel installed
# carries an rpath of its own, often into a bundled library directory beside it,
# and would stop loading if we overwrote it. Each match is an ELF object we expect
# to patch, so let a failure stop us rather than swallow it.
while IFS= read -r so; do
patchelf --set-rpath "$prefix/lib" "$so"
done < <(find "$prefix" -path '*/lib-dynload/*.so')

View file

@ -0,0 +1,157 @@
#!/usr/bin/env bash
#
# Summary: Save an installed Python version as a relocatable archive
#
# Usage: pyenv binary save <version> [<output-dir>] [--name <name>]
#
# Packs an installed version into a relocatable .tar.gz (relative paths) and
# writes a metadata file listing the build platform and the system libraries
# it links against, so an installer can check compatibility before unpacking.
#
# <version> An installed version, as listed by `pyenv versions --bare'.
# <output-dir> Where to write the archive and metadata (default: `.').
# --name <name> Use <name> as the archive and metadata base name instead of
# <version>-<platform>.
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --name
exec pyenv-versions --bare
fi
version=""
output_dir=""
package_name=""
while [ $# -gt 0 ]; do
case "$1" in
--name )
[ $# -ge 2 ] && [ -n "$2" ] || { echo "pyenv-binary: --name needs a value" >&2; exit 1; }
package_name="$2"; shift 2 ;;
-* )
echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;;
* )
if [ -z "$version" ]; then
version="$1"
elif [ -z "$output_dir" ]; then
output_dir="$1"
else
echo "pyenv-binary: unexpected argument \`$1'" >&2
exit 1
fi
shift ;;
esac
done
output_dir="${output_dir:-$PWD}"
if [ -z "$version" ]; then
echo "Usage: pyenv binary save <version> [<output-dir>] [--name <name>]" >&2
exit 1
fi
# A version is a single directory name under versions/. With no slash allowed,
# the only remaining names that could point elsewhere are `.' and `..'.
case "$version" in
*/* | .. | . )
echo "pyenv-binary: invalid version name \`${version}'" >&2
exit 1
;;
esac
case "$package_name" in
*/* | .. | . | *[[:cntrl:]]* )
echo "pyenv-binary: invalid package name \`${package_name}'" >&2
exit 1
;;
esac
prefix="${PYENV_ROOT}/versions/${version}"
if [ ! -d "${prefix}/bin" ]; then
echo "pyenv-binary: version \`${version}' is not installed" >&2
exit 1
fi
os="$(uname -s)"
arch="$(uname -m)"
platform="$(printf '%s' "$os" | tr '[:upper:]' '[:lower:]')-${arch}"
# Record the distro and libc version. Platform and arch alone are too coarse to
# judge compatibility: a build is only portable to a matching libc (e.g. a
# glibc 2.36 build will not load on an older glibc, nor on musl at all).
distro=""
libc=""
if [ -r /etc/os-release ]; then
distro="$( . /etc/os-release && printf '%s %s' "${ID:-}" "${VERSION_ID:-}" )"
elif [ "$os" = "Darwin" ]; then
distro="macos $(sw_vers -productVersion 2>/dev/null)"
fi
if [ "$os" = "Linux" ]; then
libc="$(getconf GNU_LIBC_VERSION 2>/dev/null || true)"
fi
if [ "$os" != "Darwin" ] && ! LC_ALL=C readelf --version &>/dev/null; then
echo "pyenv-binary: need readelf to inspect shared libraries" >&2
exit 1
fi
# List the external shared libraries the install links against: those that
# resolve outside its own prefix, so they must already exist on the target.
# The interpreter plus every bundled shared object are inspected.
system_deps() {
local f needed
{
for f in "${prefix}"/bin/python*; do
[ -e "$f" ] && printf '%s\n' "$f"
done
# CPython ships its extension modules as *.so (and *.dylib on macOS). A
# bare *.so.* is unusual for CPython itself, but the odd build carries a
# versioned copy alongside, so match it too rather than miss a dependency.
find "${prefix}" -type f \( -name '*.so' -o -name '*.so.*' -o -name '*.dylib' \)
} | sort -u | while IFS= read -r f; do
if [ "$os" = "Darwin" ]; then
otool -L "$f" 2>/dev/null | tail -n +2 | awk -v pfx="${prefix}/" \
'$1 !~ /^@/ && substr($1, 1, length(pfx)) != pfx { print $1 }'
else
# GNU binutils 2.44 writes "(NEEDED) ... [name]"; FreeBSD 15.1 writes
# "NEEDED ... [name]". readelf(1) documents -d, not its text format.
needed="$(LC_ALL=C readelf -dW "$f" 2>/dev/null | awk \
'$2 == "(NEEDED)" || $2 == "NEEDED" { sub(/^.*\[/, ""); sub(/\].*$/, ""); print }' | tr '\n' ' ')"
# Linux and FreeBSD ldd write resolved libraries as
# "name => /absolute/path (address)"; entries without "=>" are ignored.
LC_ALL=C ldd "$f" 2>/dev/null | awk -v needed="$needed" -v pfx="${prefix}/" '
BEGIN {
split(needed, deps, " ")
for (i in deps) direct[deps[i]] = 1
}
$1 in direct && $2 == "=>" && $3 ~ /^\// && substr($3, 1, length(pfx)) != pfx { print $1 }
'
fi
done | sort -u
}
mkdir -p "$output_dir"
package_name="${package_name:-${version}-${platform}}"
archive="${package_name}.tar.gz"
metadata="${package_name}.meta"
tar -C "$(dirname "$prefix")" -czf "${output_dir}/${archive}" "$(basename "$prefix")"
{
echo "# pyenv-binary metadata"
echo "version=${version}"
echo "os=${os}"
echo "arch=${arch}"
echo "platform=${platform}"
[ -n "$distro" ] && echo "distro=${distro}"
[ -n "$libc" ] && echo "libc=${libc}"
echo "build_prefix=${prefix}"
echo "archive=${archive}"
system_deps | while IFS= read -r dep; do
[ -n "$dep" ] && echo "dep=${dep}"
done
} > "${output_dir}/${metadata}"
echo "Saved ${archive} and ${metadata} to ${output_dir}"

View file

@ -0,0 +1,212 @@
#!/usr/bin/env bats
load test_helper
create_meta() {
local os="${1-Linux}"
local arch="${2-x86_64}"
local libc="${3-glibc 2.17}"
local build_prefix="${4-}"
local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz"
local meta="${BATS_TEST_TMPDIR}/sample.meta"
rm -rf "${BATS_TEST_TMPDIR}/archive"
mkdir -p "${BATS_TEST_TMPDIR}/archive/3.12.7/bin"
printf '#!/bin/sh\n' > "${BATS_TEST_TMPDIR}/archive/3.12.7/bin/python"
chmod +x "${BATS_TEST_TMPDIR}/archive/3.12.7/bin/python"
tar -C "${BATS_TEST_TMPDIR}/archive" -czf "$archive" 3.12.7
{
echo "version=3.12.7"
echo "os=${os}"
echo "arch=${arch}"
[ -z "$libc" ] || echo "libc=${libc}"
[ -z "$build_prefix" ] || echo "build_prefix=${build_prefix}"
echo "archive=${archive##*/}"
} > "$meta"
echo "$meta"
}
@test "completion lists the options" {
run pyenv-binary-generate-installer --complete
assert_success "--archive-url
-o"
}
@test "fails with no arguments" {
create_stub pyenv-help "echo usage"
run pyenv-binary-generate-installer
assert_failure "usage"
}
@test "fails without an archive url" {
create_stub pyenv-help "echo usage"
run pyenv-binary-generate-installer "$(create_meta)"
assert_failure "usage"
}
@test "fails when --archive-url has no value" {
run pyenv-binary-generate-installer "$(create_meta)" --archive-url
assert_failure "pyenv-binary: --archive-url needs a value"
}
@test "rejects a second positional argument" {
run pyenv-binary-generate-installer "$(create_meta)" extra --archive-url http://x/a.tar.gz
assert_failure "pyenv-binary: unexpected argument \`extra'"
}
@test "fails for a metadata file that cannot be read" {
run pyenv-binary-generate-installer /no/such.meta --archive-url http://x/a.tar.gz
assert_failure
}
@test "fails when macOS metadata is missing the build prefix" {
run pyenv-binary-generate-installer "$(create_meta Darwin arm64 '')" \
--archive-url http://x/a.tar.gz
assert_failure "pyenv-binary: metadata is missing \`build_prefix'"
}
@test "quotes the macOS build prefix in the generated definition" {
local out="${BATS_TEST_TMPDIR}/definition"
pyenv-binary-generate-installer \
"$(create_meta Darwin arm64 '' '/build prefix/$name')" \
--archive-url http://example.com/a.tar.gz -o "$out"
run grep '^BUILD_PREFIX=' "$out"
assert_success 'BUILD_PREFIX=/build\ prefix/\$name'
}
@test "fails when required metadata is missing" {
local field meta
for field in version os arch archive; do
meta="$(create_meta)"
#cannot use -i: GNU sed requires -i[suf], BSD sed required -i <suf>
sed "/^${field}=/d" "$meta" > "${meta}.tmp"; mv "${meta}"{.tmp,}
run pyenv-binary-generate-installer "$meta" --archive-url http://x/a.tar.gz
assert_failure "pyenv-binary: metadata is missing \`${field}'"
done
}
@test "fails when Linux metadata is missing libc" {
run pyenv-binary-generate-installer "$(create_meta Linux x86_64 '')" \
--archive-url http://x/a.tar.gz
assert_failure "pyenv-binary: metadata is missing \`libc'"
}
@test "refuses a host whose glibc is older than the archive" {
local out="${BATS_TEST_TMPDIR}/definition"
pyenv-binary-generate-installer "$(create_meta Linux x86_64 'glibc 99.0')" \
--archive-url http://example.com/a.tar.gz -o "$out"
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
create_stub getconf 'echo "glibc 2.31"'
run bash "$out"
assert_failure "pyenv-binary: archive needs glibc 99.0 or newer, but this system has 2.31"
}
@test "checks required libraries in the FreeBSD ldconfig cache" {
local out="${BATS_TEST_TMPDIR}/definition"
local meta="$(create_meta FreeBSD amd64 '')"
printf 'dep=libc.so.7\ndep=libmissing.so.1\n' >> "$meta"
pyenv-binary-generate-installer "$meta" \
--archive-url http://example.com/a.tar.gz -o "$out"
create_stub uname 'case "$1" in -s) echo FreeBSD;; -m) echo amd64;; esac'
create_stub ldconfig '[ "$1" = "-r" ] && echo "0:-lc.7=>/lib/libc.so.7"'
run bash "$out"
assert_failure "pyenv-binary: missing required system libraries: libmissing.so.1"
}
@test "checks for patchelf before installing the archive" {
local out="${BATS_TEST_TMPDIR}/definition"
pyenv-binary-generate-installer "$(create_meta)" \
--archive-url http://example.com/a.tar.gz -o "$out"
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
create_stub getconf 'echo "glibc 2.31"'
PATH="$(path_without patchelf)" run bash "$out"
assert_failure "pyenv-binary: need patchelf to relocate the binary"
}
@test "checks for otool before installing a macOS archive" {
local out="${BATS_TEST_TMPDIR}/definition"
pyenv-binary-generate-installer \
"$(create_meta Darwin arm64 '' /build/3.12.7)" \
--archive-url http://example.com/a.tar.gz -o "$out"
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_path_executable install_name_tool true
PATH="$(path_without otool)" run bash "$out"
assert_failure "pyenv-binary: need otool to relocate the binary"
}
@test "checks for install_name_tool before installing a macOS archive" {
local out="${BATS_TEST_TMPDIR}/definition"
pyenv-binary-generate-installer \
"$(create_meta Darwin arm64 '' /build/3.12.7)" \
--archive-url http://example.com/a.tar.gz -o "$out"
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_path_executable otool true
PATH="$(path_without install_name_tool)" run bash "$out"
assert_failure "pyenv-binary: need install_name_tool to relocate the binary"
}
@test "the generated macOS definition preserves both relocation arguments" {
local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz"
local cache="${BATS_TEST_TMPDIR}/cache"
local definition="${BATS_TEST_TMPDIR}/definition"
local prefix="${BATS_TEST_TMPDIR}/install"
pyenv-binary-generate-installer \
"$(create_meta Darwin arm64 '' '/build prefix/$name')" \
--archive-url http://example.com/3.12.7.tar.gz -o "$definition"
mkdir -p "$cache"
cp "$archive" "${cache}/Python-3.12.7-binary.tar.gz"
create_stub pyenv 'printf "argc=%s\narg1=%s\narg2=%s\narg3=%s\narg4=%s\n" "$#" "$1" "$2" "$3" "$4"'
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_stub sw_vers 'echo 15.5'
create_stub ldconfig true
create_path_executable otool true
create_path_executable install_name_tool true
PYTHON_BUILD_CACHE_PATH="$cache" run \
"${BATS_TEST_DIRNAME}/../../python-build/bin/python-build" "$definition" "$prefix"
assert_success
assert_line "argc=4"
assert_line "arg1=binary"
assert_line "arg2=relocate"
assert_line "arg3=${prefix}"
assert_line 'arg4=/build prefix/$name'
assert_line "Installed Python-3.12.7-binary to ${prefix}"
}
@test "fails when the archive is not beside the metadata" {
local meta="$(create_meta)"
rm "${BATS_TEST_TMPDIR}/3.12.7.tar.gz"
run pyenv-binary-generate-installer "$meta" --archive-url http://x/a.tar.gz
assert_failure "pyenv-binary: cannot read the archive \`${BATS_TEST_TMPDIR}/3.12.7.tar.gz' to checksum it"
}
@test "the generated definition is installable with python-build" {
ldconfig -p &>/dev/null || skip "ldconfig with -p is not present"
local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz"
local cache="${BATS_TEST_TMPDIR}/cache"
local definition="${BATS_TEST_TMPDIR}/definition"
local prefix="${BATS_TEST_TMPDIR}/install"
pyenv-binary-generate-installer "$(create_meta)" \
--archive-url http://example.com/3.12.7.tar.gz -o "$definition"
mkdir -p "$cache"
cp "$archive" "${cache}/Python-3.12.7-binary.tar.gz"
create_stub pyenv 'echo "pyenv $*"'
create_path_executable patchelf "exit 0"
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
PYTHON_BUILD_CACHE_PATH="$cache" run \
"${BATS_TEST_DIRNAME}/../../python-build/bin/python-build" "$definition" "$prefix"
assert_success
assert_line "pyenv binary relocate ${prefix}"
assert_line "Installed Python-3.12.7-binary to ${prefix}"
assert [ -x "${prefix}/bin/python" ]
}

View file

@ -0,0 +1,59 @@
#!/usr/bin/env bats
load test_helper
_setup() {
create_stub pyenv-latest '[ "$1" = "-f" ] && [ "$2" = "-k" ] && shift 2 && echo "$*"'
}
@test "completion lists installable versions" {
create_stub pyenv-install \
'[ "$*" = "--list --bare" ] && echo 3.13.14'
run pyenv-binary-package-name --complete
assert_success "3.13.14"
}
@test "fails without a version" {
create_stub pyenv-help 'echo usage'
run pyenv-binary-package-name
assert_failure "usage"
}
@test "rejects a second argument" {
create_stub pyenv-help 'echo usage'
run pyenv-binary-package-name 3.13.14 extra
assert_failure "usage"
}
@test "generates a package name for Linux" {
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
create_stub lsb_release 'case "$1" in -si) echo Debian;; -sr) echo 12;; esac'
run pyenv-binary-package-name 3.13.14
assert_success "3.13.14-debian-12-x86_64"
}
@test "generates a package name for macOS" {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_stub sw_vers 'echo 15.5'
run pyenv-binary-package-name 3.13.14
assert_success "3.13.14-macos-15.5-arm64"
}
@test "resolves a version prefix when generating a package name" {
create_stub pyenv-latest '[ "$*" = "-f -k 3" ] && echo 3.14.7'
create_stub uname \
'case "$1" in -s) echo FreeBSD;; -m) echo amd64;; -r) echo 14.2-RELEASE-p3;; esac'
run pyenv-binary-package-name 3
assert_success "3.14.7-freebsd-14.2-release-p3-amd64"
}
@test "rejects an invalid version name" {
run pyenv-binary-package-name ../3.13.14
assert_failure "pyenv-binary: invalid version name \`../3.13.14'"
}

View file

@ -0,0 +1,131 @@
#!/usr/bin/env bats
load test_helper
# Make the build deterministic: `pyenv-install' just creates the prefix, and
# the platform tools report a fixed Linux target so the real `save' and
# `generate-installer' behave the same on any test host.
stub_build_environment() {
create_stub pyenv-install 'echo "${0##*/} $*"; mkdir -p "${PYENV_ROOT}/versions/${1##*:}/bin"'
create_stub pyenv-latest 'while (($#)); do case "$1" in -f|-k);; *)break;; esac; shift; done; echo "$*"'
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
create_stub getconf 'echo "glibc 2.17"'
create_stub readelf true
}
@test "-v|--verbose runs pyenv install verbosely" {
stub_build_environment
create_stub pyenv-binary-save true
create_stub pyenv-binary-generate-installer true
for opt in "" -v --verbose; do
run pyenv-binary-package $opt 3.12.7:3.12.7-test \
--archive-base-url http://example.com/binaries
assert_success "pyenv-install ${opt:+--verbose }3.12.7:3.12.7-test"
done
}
@test "completions" {
create_stub pyenv-install 'echo "${0##*/} $*"'
run pyenv-binary-package --complete
assert_success <<!
--archive-base-url
--verbose
pyenv-install --list --bare
!
}
@test "fails with no arguments" {
create_stub pyenv-help "echo usage"
run pyenv-binary-package
assert_failure "usage"
}
@test "fails without an archive base url" {
create_stub pyenv-help "echo usage"
run pyenv-binary-package 3.12.7:3.12.7-test
assert_failure "usage"
}
@test "fails when --archive-base-url has no value" {
run pyenv-binary-package 3.12.7:3.12.7-test --archive-base-url
assert_failure "pyenv-binary: --archive-base-url needs a value"
}
@test "rejects a second positional argument" {
run pyenv-binary-package 3.12.7:3.12.7-test extra --archive-base-url http://x/b
assert_failure "pyenv-binary: unexpected argument \`extra'"
}
@test "generates an entry name for a bare version" {
stub_build_environment
create_stub lsb_release 'case "$1" in -si) echo Debian;; -sr) echo 12;; esac'
cd "${BATS_TEST_TMPDIR}"
run pyenv-binary-package 3.12.7 --archive-base-url http://example.com/binaries
assert_success
assert [ -d "${PYENV_ROOT}/versions/3.12.7-debian-12-x86_64" ]
assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.tar.gz" ]
assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.meta" ]
run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64"
assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-debian-12-x86_64.tar.gz"
}
@test "rejects an entry name containing a slash" {
run pyenv-binary-package "3.12.7:foo/bar" --archive-base-url http://x/b
assert_failure "pyenv-binary: invalid entry name \`foo/bar'"
}
@test "rejects \`latest' as an entry name" {
run pyenv-binary-package 3.12:latest --archive-base-url http://x/b
assert_failure "pyenv-binary: \`latest' cannot be used as an entry name"
}
@test "packages on macOS" {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_stub pyenv-install 'echo install'
create_stub pyenv-binary-save 'echo save'
create_stub pyenv-binary-generate-installer 'echo generate-installer'
run pyenv-binary-package 3.12.7:3.12.7-test --archive-base-url http://x/b
assert_success "install
save
generate-installer"
}
@test "writes the archive, metadata and definition under the entry name (integration)" {
stub_build_environment
cd "${BATS_TEST_TMPDIR}"
run pyenv-binary-package 3.12.7:3.12.7-test \
--archive-base-url http://example.com/binaries
assert_success
assert [ -d "${PYENV_ROOT}/versions/3.12.7-test" ]
assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.tar.gz" ]
assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.meta" ]
run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-test"
assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-test.tar.gz"
}
@test "correctly joins archive base url with a trailing slash" {
stub_build_environment
create_stub pyenv-binary-save true
create_stub pyenv-binary-generate-installer <<'!'
echo -n "${0##*/} "
while (($#)); do
case $1 in
--archive-url)
echo "$1 ${2:?}"
break
;;
esac
shift
done
!
run pyenv-binary-package 3.12.7:3.12.7-test \
--archive-base-url http://example.com/binaries/
assert_success
assert_line "pyenv-binary-generate-installer --archive-url http://example.com/binaries/3.12.7-test.tar.gz"
}

View file

@ -0,0 +1,221 @@
#!/usr/bin/env bats
load test_helper
_setup() {
create_stub pyenv-help "echo usage"
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
}
stub_patchelf() {
create_path_executable patchelf <<STUB
if [ "\$1" = "--print-rpath" ]; then
exit 0
fi
echo "\$*" >> "${BATS_TEST_TMPDIR}/patchelf.log"
STUB
}
create_interpreter() {
mkdir -p "${BATS_TEST_TMPDIR}/prefix/bin"
printf '#!/bin/sh\n' > "${BATS_TEST_TMPDIR}/prefix/bin/python2.7"
chmod +x "${BATS_TEST_TMPDIR}/prefix/bin/python2.7"
}
create_macos_tree() {
local prefix="${BATS_TEST_TMPDIR}/prefix"
local lib="${prefix}/lib/python3.12"
mkdir -p "${prefix}/bin" "${lib}/lib-dynload" "${lib}/site-packages/numpy"
printf '#!/bin/sh\n' > "${prefix}/bin/python3.12"
chmod +x "${prefix}/bin/python3.12"
touch "${prefix}/lib/libpython3.12.dylib"
touch "${lib}/lib-dynload/_ssl.cpython-312-darwin.so"
touch "${lib}/site-packages/numpy/_multiarray.so"
}
stub_macos_tools() {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_path_executable install_name_tool \
'echo "$*" >> "${BATS_TEST_TMPDIR}/install-name-tool.log"'
create_path_executable otool <<'STUB'
file="${!#}"
echo "$*" >> "${BATS_TEST_TMPDIR}/otool.log"
old="/build prefix/3.12.7"
case "$1" in
-L )
echo "${file}:"
case "$file" in
*/bin/python3.12 )
if [ -n "$OTOOL_RELOCATED" ]; then
echo " @rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)"
else
echo " ${old}/lib/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)"
fi
echo " ${old}-other/lib/libother.dylib (compatibility version 1.0.0, current version 1.0.0)"
echo " /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1.0.0)"
echo " /opt/homebrew/lib/libintl.8.dylib (compatibility version 1.0.0, current version 1.0.0)"
echo " @loader_path/liblocal.dylib (compatibility version 1.0.0, current version 1.0.0)"
;;
*/lib/libpython3.12.dylib )
if [ -n "$OTOOL_RELOCATED" ]; then
echo " @rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)"
else
echo " ${old}/lib/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)"
fi
;;
esac
;;
-D )
case "$file" in
*/lib/libpython3.12.dylib )
echo "${file}:"
if [ -n "$OTOOL_RELOCATED" ]; then
echo '@rpath/libpython3.12.dylib'
else
echo "${old}/lib/libpython3.12.dylib"
fi
;;
* )
exit 1
;;
esac
;;
-l )
if [ -n "$OTOOL_RELOCATED" ]; then
case "$file" in
*/bin/* ) rpath='@executable_path/../lib' ;;
*/lib/*.dylib ) rpath='@loader_path' ;;
* ) rpath='@loader_path/../..' ;;
esac
else
rpath="${old}/lib"
fi
cat <<EOF
cmd LC_RPATH
path ${rpath} (offset 12)
cmd LC_RPATH
path /opt/homebrew/lib (offset 12)
cmd LC_RPATH
path @loader_path/vendor (offset 12)
EOF
;;
esac
STUB
}
@test "completion produces nothing" {
run pyenv-binary-relocate --complete
assert_success ""
}
@test "fails without a prefix" {
run pyenv-binary-relocate
assert_failure "usage"
}
@test "fails when patchelf is not available" {
PATH="$(path_without patchelf)" run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix"
assert_failure "pyenv-binary: need patchelf to relocate the binary"
}
@test "fails without the original build prefix on macOS" {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix"
assert_failure "pyenv-binary: need the original build prefix to relocate a macOS binary"
}
@test "fails when otool is not available on macOS" {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_path_executable install_name_tool true
PATH="$(path_without otool)" run \
pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" /build/3.12.7
assert_failure "pyenv-binary: need otool to relocate the binary"
}
@test "fails when install_name_tool is not available on macOS" {
create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac'
create_path_executable otool true
PATH="$(path_without install_name_tool)" run \
pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" /build/3.12.7
assert_failure "pyenv-binary: need install_name_tool to relocate the binary"
}
@test "fails when the prefix has no interpreter" {
create_path_executable patchelf "exit 0"
mkdir -p "${BATS_TEST_TMPDIR}/prefix"
run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix"
assert_failure "pyenv-binary: found no interpreter to relocate under \`${BATS_TEST_TMPDIR}/prefix/bin'"
}
@test "relocates an executable interpreter" {
stub_patchelf
create_interpreter
run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix"
assert_success
run cat "${BATS_TEST_TMPDIR}/patchelf.log"
assert_output "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${BATS_TEST_TMPDIR}/prefix/bin/python2.7"
}
@test "relocates the extension modules but not what a wheel installed" {
local lib="${BATS_TEST_TMPDIR}/prefix/lib/python3.12"
stub_patchelf
create_interpreter
mkdir -p "${lib}/lib-dynload" "${lib}/site-packages/numpy"
touch "${lib}/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so"
# A wheel points its extensions at the libraries it bundles alongside them, so
# its rpath is its own business and must survive relocation.
touch "${lib}/site-packages/numpy/_multiarray.so"
run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix"
assert_success
run cat "${BATS_TEST_TMPDIR}/patchelf.log"
assert_line "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${lib}/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so"
refute_line "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${lib}/site-packages/numpy/_multiarray.so"
}
@test "relocates macOS load commands without changing unrelated entries" {
local prefix="${BATS_TEST_TMPDIR}/prefix"
local old="/build prefix/3.12.7"
local lib="${prefix}/lib/python3.12"
create_macos_tree
stub_macos_tools
run pyenv-binary-relocate "$prefix" "$old"
assert_success
run cat "${BATS_TEST_TMPDIR}/install-name-tool.log"
assert_output <<EOF
-change ${old}/lib/libpython3.12.dylib @rpath/libpython3.12.dylib ${prefix}/bin/python3.12
-rpath ${old}/lib @executable_path/../lib ${prefix}/bin/python3.12
-id @rpath/libpython3.12.dylib ${prefix}/lib/libpython3.12.dylib
-rpath ${old}/lib @loader_path ${prefix}/lib/libpython3.12.dylib
-rpath ${old}/lib @loader_path/../.. ${lib}/lib-dynload/_ssl.cpython-312-darwin.so
EOF
run grep -F "${lib}/site-packages/numpy/_multiarray.so" "${BATS_TEST_TMPDIR}/otool.log"
assert_failure
}
@test "skips already relocated macOS load commands" {
local prefix="${BATS_TEST_TMPDIR}/prefix"
create_macos_tree
stub_macos_tools
export OTOOL_RELOCATED=1
run pyenv-binary-relocate "$prefix" "/build prefix/3.12.7"
assert_success
assert [ ! -e "${BATS_TEST_TMPDIR}/install-name-tool.log" ]
}
@test "fails when install_name_tool cannot modify a selected file" {
local prefix="${BATS_TEST_TMPDIR}/prefix"
create_macos_tree
stub_macos_tools
create_path_executable install_name_tool 'exit 1'
run pyenv-binary-relocate "$prefix" "/build prefix/3.12.7"
assert_failure ""
}

View file

@ -0,0 +1,155 @@
#!/usr/bin/env bats
load test_helper
create_version() {
mkdir -p "${PYENV_ROOT}/versions/$1/bin"
}
platform() {
echo "$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)"
}
@test "fails with no version given" {
run pyenv-binary-save
assert_failure "Usage: pyenv binary save <version> [<output-dir>] [--name <name>]"
}
@test "fails for a version that is not installed" {
run pyenv-binary-save 9.9.9
assert_failure "pyenv-binary: version \`9.9.9' is not installed"
}
@test "rejects a version name containing a slash" {
run pyenv-binary-save "foo/bar"
assert_failure "pyenv-binary: invalid version name \`foo/bar'"
}
@test "rejects the parent directory reference" {
run pyenv-binary-save ".."
assert_failure "pyenv-binary: invalid version name \`..'"
}
@test "packages an installed version" {
create_version "3.12.7"
local out="${BATS_TEST_TMPDIR}/dist"
local archive="${out}/3.12.7-$(platform).tar.gz"
run pyenv-binary-save "3.12.7" "$out"
assert_success "Saved 3.12.7-$(platform).tar.gz and 3.12.7-$(platform).meta to $out"
assert [ -f "$archive" ]
assert [ -f "${out}/3.12.7-$(platform).meta" ]
run tar -tzf "$archive"
assert_success
assert_line 0 "3.12.7/"
}
@test "uses an explicit package name" {
create_version "3.12.7"
local out="${BATS_TEST_TMPDIR}/dist"
run pyenv-binary-save "3.12.7" "$out" --name "custom"
assert_success "Saved custom.tar.gz and custom.meta to $out"
assert [ -f "${out}/custom.tar.gz" ]
run grep '^archive=' "${out}/custom.meta"
assert_success "archive=custom.tar.gz"
}
@test "fails when --name has no value" {
run pyenv-binary-save "3.12.7" --name
assert_failure "pyenv-binary: --name needs a value"
}
@test "rejects an invalid package name" {
create_version "3.12.7"
run pyenv-binary-save "3.12.7" --name "foo/bar"
assert_failure "pyenv-binary: invalid package name \`foo/bar'"
}
@test "records the platform in the metadata" {
create_version "3.12.7"
local out="${BATS_TEST_TMPDIR}/dist"
pyenv-binary-save "3.12.7" "$out" >/dev/null
run cat "${out}/3.12.7-$(platform).meta"
assert_success
assert_line "version=3.12.7"
assert_line "platform=$(platform)"
assert_line "archive=3.12.7-$(platform).tar.gz"
}
@test "records the original installation prefix" {
create_version "3.12.7"
local out="${BATS_TEST_TMPDIR}/dist"
pyenv-binary-save "3.12.7" "$out" >/dev/null
run grep '^build_prefix=' "${out}/3.12.7-$(platform).meta"
assert_success "build_prefix=${PYENV_ROOT}/versions/3.12.7"
}
@test "fails when readelf is not available" {
create_version "3.12.7"
create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac'
PATH="$(path_without readelf)" run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist"
assert_failure "pyenv-binary: need readelf to inspect shared libraries"
assert [ ! -e "${BATS_TEST_TMPDIR}/dist/3.12.7-$(platform).tar.gz" ]
}
@test "records only direct libraries resolved outside the prefix" {
create_version "3.12.7"
touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12"
create_path_executable uname <<'STUB'
case "$1" in
-s) echo Linux ;;
-m) echo x86_64 ;;
esac
STUB
create_path_executable ldd <<'STUB'
prefix="${PYENV_ROOT}/versions/3.12.7"
cat <<EOF
linux-vdso.so.1 (0x00007ffd1adfe000)
libpython3.12.so.1.0 => ${prefix}/lib/libpython3.12.so.1.0 (0x00007f4a3c000000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4a3bc00000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4a3b800000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4a3c200000)
EOF
STUB
create_path_executable readelf <<'STUB'
cat <<EOF
0x0000000000000001 (NEEDED) Shared library: [libpython3.12.so.1.0]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
EOF
STUB
run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist"
assert_success
run grep '^dep=' "${BATS_TEST_TMPDIR}/dist/"*.meta
assert_output "dep=libm.so.6"
}
@test "records only the libraries otool resolves outside the prefix" {
create_version "3.12.7"
touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12"
create_path_executable uname <<'STUB'
case "$1" in
-s) echo Darwin ;;
-m) echo arm64 ;;
esac
STUB
create_path_executable otool <<'STUB'
prefix="${PYENV_ROOT}/versions/3.12.7"
cat <<EOF
${2}:
@rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)
${prefix}/lib/libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1345.0.0)
EOF
STUB
run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist"
assert_success
run grep '^dep=' "${BATS_TEST_TMPDIR}/dist/"*.meta
assert_output "dep=/usr/lib/libSystem.B.dylib"
}

Some files were not shown because too many files have changed in this diff Show more