1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-08 11:33:49 -05:00

Compare commits

...

2856 Commits

Author SHA1 Message Date
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)
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)
Co-authored-by: binbjz <binbjz@gmail.com>
2025-02-14 09:48:24 +03:00
Ivan Pozdeev
5051a42b2c 2.5.3 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)
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)
* 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)
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 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) 2025-02-02 18:57:19 +03:00
threadflow
8d93ccae39 Fix OpenSSL version parsing in python-build script (#3181) 2025-02-02 04:50:48 +03:00
Ivan Pozdeev
734d6323d8 2.5.1 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
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-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
No Response / noResponse (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)
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.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) 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
2025-01-08 23:51:11 +03:00
Jay Bazuzi
850a74c5cd README: Add recommended curl arguments to suggested installer invocation (#3155)
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.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
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
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-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
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 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.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) 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
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) 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
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.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) 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
* 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 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.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) 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
Co-authored-by: binbjz <zhaobin@avenir.hk>
2024-12-21 16:48:25 +03:00
Ivan Pozdeev
a1edb81e8e 2.4.23
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.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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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 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.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) 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
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
`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)
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.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) 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
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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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-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.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (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
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
2024-11-27 23:30:12 +03:00
Noelle Leigh
61c0f25ef5 README: Fix Markdown in "Notes about python releases" (#3112)
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
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
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
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
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
2024-11-17 23:49:36 +03:00
Michael Goerz
b0d6a67881 Add miniforge3-24.9.2-0 (#3106)
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
2024-11-13 23:57:14 +03:00
Ivan Pozdeev
d64d1aa1e0 MAINTENANCE.md: easier way to make a release
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
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 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-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) 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
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
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
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 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-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) 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-10-16 20:14:36 +03:00
Ivan Pozdeev
050f88c78b 2.4.15
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
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)
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-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) 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-10-10 20:43:13 +03:00
Edgar Ramírez Mondragón
6a7ecfe409 Add CPython 3.13.0 (#3081)
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
2024-10-08 01:16:53 +03:00
David Poznik
d201daeb33 Make "y/N" prompt consistent with others (#3080)
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
2024-10-05 02:17:45 +03:00
tuzi3040
468dc81107 CI: replace set-output with GITHUB_OUTPUT (#3079)
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
`::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
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
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) 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-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
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
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 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-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) 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
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
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
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
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
2024-09-08 22:13:47 +03:00
Ivan Pozdeev
2e658d3e35 2.4.12
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
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
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
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
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
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 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 2024-08-05 01:54:31 +03:00
Edgar Ramírez Mondragón
6511ce26cd Add CPython 3.13.0rc1 (#3029) 2024-08-03 14:11:56 +03:00
Michael Goerz
9b09a7efc9 Add miniforge3-24.3.0-0 (#3028) 2024-07-31 12:41:59 +03:00
Ivan Pozdeev
f17809c4b9 2.4.8 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)
[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 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 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)
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)
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) 2024-06-30 20:55:53 +03:00
Ivan Pozdeev
9546f729f7 2.4.4 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
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
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
Mislav Marohnić
c8ba27fd07 Merge pull request #1069 from viclim/fix-issue-1065
Ignore empty `.ruby-version` files
2018-02-26 10:53:46 +01:00
Victor Lim
9daf81f16e Fix https://github.com/rbenv/rbenv/issues/1065
Command `rbenv version-name > .ruby-version` will create an empty `.ruby-version` file
before running `rbenv-version-file`. This causes `rbenv-version-file` to return empty
string which in turn causes `rbenv-version-name` to return `system`.

Ensure size of `.ruby-version` is non-zero as a workaround.
2018-02-26 16:49:37 +08: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
Mislav Marohnić
b943955dbf Merge pull request #981 from mhinz/shell-descriptive-error
Better error message for `rbenv shell`
2017-12-07 05:00:44 +01:00
Marco Hinz
643023d98f Add tests for shell integration 2017-12-07 02:32:35 +01:00
Marco Hinz
af53c790cc Better error message for rbenv shell
Shell integration is not enabled by default. This means that, from all the
commands from `rbenv commands`, only "shell" won't work right away.

Replace "no such command" with a more descriptive message that points to
`rbenv init` instead.
2017-12-07 02:32:34 +01: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
Mislav Marohnić
6aa70b6541 Merge pull request #1013 from blueyed/shellcheck
Fix some issues reported by shellcheck
2017-11-30 11:43:18 +01:00
Daniel Hahler
5f8a4c4d62 Fix some issues reported by shellcheck 2017-11-29 16:20:51 +01:00
Mislav Marohnić
eda952ab08 Merge branch 'cdpath-enable' 2017-11-29 15:53:41 +01:00
Mislav Marohnić
b80ea43e25 Quote directory name in variable assignment 2017-11-29 15:51:03 +01:00
Mislav Marohnić
c310bc5f83 Merge pull request #968 from maxnordlund/patch-1
Fix fish subcommand completion
2017-11-29 15:47:19 +01:00
Mislav Marohnić
eab68688dc Merge pull request #959 from zenspider/fix-dash-u
Fixed `rbenv init -` output to work w/ no args and bash's `set -u`.
2017-11-29 15:40:23 +01:00
Mislav Marohnić
5183e32887 Merge pull request #982 from MartinNowak/issue759
partly resolve #759
2017-11-29 15:37:22 +01:00
Mislav Marohnić
e2f469a7cd Merge pull request #1002 from blueyed/fix-which-tests-PATH
test/which.bats: do not export PATH
2017-11-29 15:25:03 +01:00
Mislav Marohnić
33a5c2495d Merge pull request #1003 from blueyed/version-file-skip-dirs
rbenv-version-file: ensure that the version file is a file
2017-11-29 15:23:58 +01:00
Mislav Marohnić
66b9f6fb2b Merge pull request #1024 from andyone/master
Fixed support for commas for all environment variables in configure script
2017-11-29 15:20:00 +01: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
Daniel Hahler
a9ca72ab8e test/which.bats: do not export PATH
Otherwise `sed` might not be found later in bats/libexec/bats-exec-test,
in case `/usr/bin` gets removed.
2017-11-20 04:22:05 +01: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
Ryan Davis
1a8b5e04a9 Fixed rbenv init - output to work w/ no args and bash's set -u. 2017-11-06 13:59:04 -08: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
Mislav Marohnić
2d7cefe782 Merge pull request #1034 from MinhThienDX/master
Fix URL fragment target
2017-09-04 18:57:27 +02:00
MinhThienDX
650c9d3452 Fix URL fragment target 2017-09-04 23:51:22 +07: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
Jeremy Daer
4ebd1bd12c Merge pull request #1009 from jeremy/homebrew-install-clarification
Clarify Homebrew/git install guidance
2017-08-23 14:47:56 -10: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
Anton Novojilov
dbaa8c83b6 Fixed support of build env vars for dynamic bash extension configure script 2017-08-07 13:12:37 +02: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
Mislav Marohnić
615f8443fe Merge pull request #1011 from kenaniah/patch-1
Properly escapes commas in c flags
2017-06-25 02:48:23 +02: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
Kenaniah Cerny
fc706daf60 properly escapes commas in cflags 2017-06-18 20:57:52 -07: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
Mislav Marohnić
6cd487db81 rbenv 1.1.1 2017-06-15 16:55:33 +02:00
Jeremy Daer
e3e99cc906 Clarify Homebrew/git install guidance
* Move Homebrew to the top, common case for new devs
* Note that `brew install rbenv` includes ruby-build by default
* Be clear that `rbenv init` instructions are needed for shell setup
* Be explicit about starting a new shell to pick up PATH/init changes
* Use rbenv-doctor to conclusively demonstrate correct setup
* Separate upgrade instructions for Homebrew vs Git installs

Related: https://github.com/rbenv/ruby-build/pull/1106
2017-06-14 09:02:50 -07: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
95b1b05cbe rbenv-version-file: ensure that the version file is a file
Forwarded from https://github.com/pyenv/pyenv/pull/606.
2017-06-05 15:40:59 +02: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
Mislav Marohnić
755c820724 Merge pull request #986 from jeffkowalski/fix_init
Prefer 'set' over 'setenv' for fish shell
2017-05-17 00:34:20 +02:00
Mislav Marohnić
b4330a48b1 Merge pull request #999 from jacob-on-github/patch-1
Make homebrew installation instructions more clear
2017-05-17 00:12:52 +02:00
Jeff Kowalski
a81da8d864 Revert quoting change in previous commit; adjust test to match code
Revert back to original quoting style used before previous commit.
Adjust init.bats to reflect changes for successful tests.
2017-05-16 13:36:06 -07:00
jacob-on-github
4e27113494 Update README.md
I work on a team that has followed the Homebrew installations. More than once we've missed the `rbenv init` instruction and it has caused headaches down the road. This formatting makes it harder to miss.
2017-05-16 14:29:46 -05: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
Jeff Kowalski
be2e606fbd Prefer 'set' over 'setenv' for fish shell
The setenv function in fish shell has changed dramatically in
75600b6b53
It now conforms to the csh version, which takes at most two arguments.
In this init script, the form
    setenv PATH prepend_something $PATH
had been used, which had too many arguments.
Since setenv isn't a native command in fish, a suitable replacement is
to use the "set -gx" command, which can consume multiple arguments.
2017-04-06 23:55:48 -07:00
Tim Pope
9d93605e18 Don't unset CDPATH 2017-04-05 17:39:39 -04:00
Tim Pope
1f1e291385 Enforce absolute RBENV_DIR
This prevents CDPATH from becoming an issue.

Closes #866.
2017-04-05 16:54:03 -04: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
Martin Nowak
db39044ef6 partly resolve #759
- some versions of bash (e.g. 4.3.11) complain about clobbering
  /dev/null, use bash's explicit >| operator to ignore noclober
- not sure if the original #759 report has the same cause
- https://github.com/rbenv/rbenv/issues/759#issuecomment-289326891
2017-03-27 02:06:13 +02: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
Max Nordlund
fab5cf912f Fix pyenv -> rbenv typo 2017-02-10 09:31:13 +01:00
Yamashita, Yuu
235eea3003 Merge pull request #831 from maxnordlund/patch-1
Fix fish subcommand completion
2017-02-10 17:24:11 +09:00
Max Nordlund
9f52b56aa8 Fix fish subcommand completion
This allows subcommand style plugins to properly autocomplete.
Existing commands are not affected. 

Example, say you have support for `rbenv foo bar --flag`, then
this allows the last `--flag` argument to be properly completed.
2017-02-10 09:12:30 +01: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
Mislav Marohnić
4f8925abe7 Merge pull request #958 from jasonkarns/rbenv-variable-namespace
Conforms OLD_RBENV_VERSION to RBENV_* convention
2016-12-20 14:34:32 +01:00
Jason Karns
8eb97549e1 Conforms OLD_RBENV_VERSION to RBENV_* convention
Keeping rbenv-controlled variables to RBENV_* "namespace" helps with
discoverability (and tools like rbenv-env) but also consistency and a
very minor degree of safety/isolation from env impact.
2016-12-19 17:21:45 -05: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
Mislav Marohnić
e60ad4a090 rbenv 1.1.0 2016-11-25 21:11:08 +01:00
Mislav Marohnić
6ced4e25de Merge pull request #873 from dmerand/patch-1
Fish shell "." is deprecated in favor of "source"
2016-11-25 20:32:54 +01:00
Mislav Marohnić
2207c27cb4 Merge branch 'shell-undo' 2016-11-25 20:26:24 +01:00
Mislav Marohnić
c4d97ad392 Finalize rbenv shell - implementation
This ensures that OLD_RBENV_VERSION is never exported. This makes the
implementation a little bit more complex, since more logic needs to be
pushed down into eval'd code.
2016-11-25 20:24:16 +01:00
Mislav Marohnić
1b751261ce Merge pull request #914 from yyuu/sh-help-stderr
Help message should not be written to stdout for `sh-` commands
2016-11-25 19:06:01 +01: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
Mislav Marohnić
c7dcaf1259 Merge pull request #924 from jlduran/add-freebsd-to-configure-c-extensions
src/configure: Add FreeBSD
2016-09-27 15:17:33 -04: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
Mislav Marohnić
d0779fc8fb Expand literal tilde in PATH
The literal tilde in a PATH entry (e.g. `~/.rbenv/shims`) doesn't seem
to be supported by system `which` utility, but *does* seem to be
supported by `command -v` (used in `rbenv-which`) and `type -p`.

Therefore, we must strip away `~/.rbenv/shims` from PATH when looking up
executables for system Ruby, lest we risk infinite loop. We do so by
substituting any occurence of `~` in PATH with the value of `HOME`.
2016-09-09 10:29:12 +02: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
Jose Luis Duran
99342d642f src/configure: Add FreeBSD 2016-08-08 17:24:07 -03: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
Mislav Marohnić
0c7224af95 Merge pull request #919 from yyuu/system-in-bin
Add a workaround system executable in `/bin`
2016-08-03 03:58:31 -09:00
Yamashita, Yuu
93ece2ac16 Rewrite with using here document syntax 2016-08-03 06:31:27 +00:00
Yamashita, Yuu
36138f4901 Rewrite with using here document syntax 2016-08-03 06:29:59 +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
83e874a165 Add explicit shebang to executable for testing 2016-08-03 01:33:35 +00:00
Yamashita, Yuu
8eefa41a4d Remove useless touch line 2016-08-03 00:58:05 +00:00
Mislav Marohnić
57a902f36a Merge pull request #922 from jlduran/update-src-shobj-conf
Update `shobj-conf`
2016-08-02 19:04:10 +02:00
Jose Luis Duran
07fd1ae66b Update shobj-conf
Update the `shobj-conf` script imported from bash to support new OSs.
2016-08-02 11:36:37 -03:00
Yamashita, Yuu
b8885e4fe2 Keep using original PATH ordering in test_helper 2016-08-02 00:23:47 +00:00
Yamashita, Yuu
a456528be8 Keep original ordering of PATH configuration 2016-08-02 00:21:28 +00:00
Yamashita, Yuu
6030ea51e4 Add a workaround for system executables in /bin 2016-08-01 00:32:50 +00:00
Yamashita, Yuu
2485257424 Add a test to confirm the prefix doesn't work fine with /bin/ruby 2016-08-01 00:31:11 +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
26ac59fd1d Write help message to stdout 2016-07-04 00:56: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
7860ad5268 Help message should not be written to stdout for sh- commands (yyuu/pyenv#650) 2016-07-01 00:08:19 +00: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
Mislav Marohnić
9fdce5d069 Merge pull request #898 from mikelikesbikes/silence-stdout-when-cding
Properly unset CDPATH
2016-04-25 09:56:25 +02:00
Mike Busch
d246e20764 unset CDPATH if it's set by the user 2016-04-22 10:17:40 -05: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
Donald Merand
121159c089 Merge branch 'patch-1' of https://github.com/dmerand/rbenv into patch-1 2016-02-20 10:28:19 -05:00
Donald Merand
8b0b51a166 convert references to '.' to 'source' for fish shell 2016-02-20 10:27:39 -05:00
Sam Stephenson
29b4da7737 Adopt Contributor Covenant 1.4 2016-02-19 12:28:40 -06:00
Donald Merand
b81f0a2c42 Fish shell "." is deprecated in favor of "source"
Per [the fish documentation for "source"](file:///usr/local/Cellar/fish/2.2.0/share/doc/fish/commands.html#source) - ". (a single period) is an alias for the source command. The use of . is deprecated in favour of source, and . will be removed in a future version of fish."
2016-02-17 15:48:00 -05: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
Mislav Marohnić
ad7dfa63ab Merge pull request #870 from davidcelis/patch-1
Update `rbenv init` instructions
2016-02-15 10:23:29 +13:00
David Celis
35ca51fe88 Update rbenv init instructions
The README details `eval`ing `rbenv init -`, but for some shells (such as fish) there's a difference in what should be run. It turns out that `rbenv init` on its own will print correct instructions, so we should point users to running that command instead.
2016-02-14 09:08:00 -08: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
Mislav Marohnić
d6ab394efd Merge pull request #863 from ErikAGriffin/patch-1
Updated Mac OSX brew install command
2016-02-01 22:48:28 +11:00
Erik Griffn
d29ba1f80e Updated Mac OSX brew install command
It seems rbenv now comes with ruby-build.  I have not investigated fully, but the previously shown command: `brew install rbenv ruby-build` caused issues on my machine.  After uninstalling both and simply running `brew install rbenv` everything worked fine.
2016-02-01 11:17:56 +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
Aaron Patterson
6a912bf104 add support for rbenv shell -
`rbenv shell -` allows you to switch to the previously activated ruby
version.  Similar to `cd -` or `git checkout -`.

This tries to implement `rbenv shell -` as proposed in #854.  However,
adding support seemed to break the "shell change version" test.  I'm not
very good at Bash programming, can someone tell me what is wrong with
what I'm doing?  I'd like to add a bit more functionality to this, but
I'm really just cargo cult programming Bash.

Thank you!

fix tests
2016-01-12 15:32:59 -08:00
Mislav Marohnić
c38833179b Merge pull request #852 from jasonkarns/extract-hook-helper
Extract hook helper
2016-01-04 18:48:10 +01:00
Jason Karns
565798d617 Test IFS handling in version-name/version-origin hooks 2016-01-04 09:14:28 -05:00
Jason Karns
0f7a2cad8d Use create_hook helper
Use extracted create_hook helper in tests for:

- exec
- hooks
- rehash
- version-name
- version-origin
- which
2016-01-04 09:14:25 -05:00
Jason Karns
5ccba5d7cc Extract common create_hook helper 2016-01-04 09:14:04 -05:00
Jason Karns
2cc2ec160e Remove redundant test
Spaces in hook path is tested in test/hooks.bats
2016-01-04 09:13:58 -05:00
Yamashita, Yuu
5c5205e172 Remove broken 3.4.4rc1 (fixes #515) 2016-01-01 02:12:55 +00:00
Mislav Marohnić
a95ccd09a2 Simplify fallback to global version file 2015-12-29 14:44:32 +01:00
Mislav Marohnić
e199a3d8f7 Merge pull request #850 from jasonkarns/remove-legacy-global-version-file
Remove support for legacy global version files
2015-12-29 14:40:37 +01:00
Mislav Marohnić
fec0f56d0b Merge pull request #849 from jasonkarns/remove-legacy-version-file-handling
Remove all handling/support of .rbenv-version files
2015-12-29 14:34:08 +01:00
Jason Karns
fe809ea90d Remove support for legacy global version files
`default` was made legacy back in 2011 with
5be66da9f4 (the command was renamed from
`rbenv-default` to `rbenv-global`, and so the global file was renamed
from `$RBENV_ROOT/default` to `$RBENV_ROOT/global` (the latter taking
precedence)

`global` was then made legacy about a month later in Sep 2011 when the
preferred filename was changed to `$RBENV_ROOT/version`.
2015-12-28 22:05:00 -05:00
Jason Karns
f880dc6d6f Remove support for legacy version file 2015-12-28 21:34:07 -05:00
Jason Karns
3c9674453f fix local --unset test 2015-12-28 21:33:50 -05:00
Mislav Marohnić
22f4980a21 🔥 deprecated ruby-local-exec
It was useless for a while now. I should have nuked it prior to the
1.0.0 release but I forgot :(
2015-12-25 00:26:46 +01:00
Mislav Marohnić
abbcde665c Fix ToC level
[ci skip]
2015-12-24 20:02:37 +01:00
Mislav Marohnić
c9c9415154 Update ToC 2015-12-24 20:01:36 +01:00
Mislav Marohnić
3997a394d9 rbenv 1.0.0 2015-12-24 19:12:47 +01:00
Mislav Marohnić
e0b85397c8 Point out that it's not necessary to sudo gem install
Closes #532
2015-12-24 19:12:47 +01:00
Mislav Marohnić
e554cd86c3 Strip leading : from RBENV_HOOK_PATH 2015-12-24 19:12:47 +01:00
Mislav Marohnić
38692f97fe vim ignores, the-silver-searcher ignores 2015-12-24 18:18:44 +01:00
Mislav Marohnić
7e5680a0d8 Add configure + make step to installation instructions
This compiles the `realpath` dynamic extension for bash which speeds up
symlink resolution. If the extension doesn't compile due to
cross-platform issues, rbenv will still work normally, although not as fast.
2015-12-24 18:04:17 +01:00
Mislav Marohnić
d51f6d4376 Merge branch 'detect-shell-from-script'
Closes #730
2015-12-24 13:24:54 +01:00
Mislav Marohnić
a9a9636d1e Tweak sanitizing shell name
Handles situation when the output is `/bin/shell- args...`. First strip
away the arguments, then the trailing dash.
2015-12-24 13:23:01 +01:00
Daniel Hahler
32030e2ed9 Fix shell version when invoked from a script
When invoked from a shell script, `$(rbenv init -)` did not get the
shell name correct.
It needs to look at the `args` value from `ps`.

Ref: https://github.com/yyuu/pyenv/issues/373
2015-12-24 13:21:22 +01:00
Mislav Marohnić
f9d8b551dc Add test for detecting shell when rbenv init is called from script
References #730
2015-12-24 13:20:49 +01:00
Mislav Marohnić
2c7960102c Simplify reference to realpath.dylib within rbenv-versions
The `../libexec` dance isn't necessary here. It was only necessary in
main `rbenv` command because that one might have been pointed to
directly via a symlink.
2015-12-24 03:54:32 +01:00
Mislav Marohnić
1a0be6f0ad Improve git --version git revision lookup
It doesn't try to chdir into RBENV_ROOT anymore because that might be
a location of an unrelated rbenv install that might have a different
version than the current one that is installed e.g. via a package
manager such as Homebrew.

Now just tries the repo where the source files (`libexec/*`) are
located, and if that isn't a valid rbenv repo, bail out early.
2015-12-24 03:52:33 +01:00
Mislav Marohnić
6481cbb172 Merge branch 'version-hooks'
Closes #739
2015-12-23 17:42:44 +01:00
Mislav Marohnić
6e30032278 Simplify version-name, version-origin hook tests
No need for helper function that's gonna be used just once.
2015-12-23 17:39:14 +01:00
Mislav Marohnić
4fde4ecbaf Ensure RBENV_VERSION_ORIGIN is not inherited from environment
It's only supposed to be set from `version-origin` hooks, but not
inherited from environment in case it was set.
2015-12-23 17:26:53 +01:00
Mislav Marohnić
40c1d27445 Merge remote-tracking branch 'origin/master' into version-hooks 2015-12-23 17:22:43 +01:00
Jason Karns
97f0499f43 add version-name/version-origin to hooks completion 2015-12-23 17:22:31 +01:00
Jason Karns
c3a5f91ed0 create hook: version-origin
Expose a `version-origin` hook.

It is invoked *before* the traditional `rbenv-version-file` lookup. Because `version-origin` is traditionally run immediately after `version-name`, then any plugin hooks that alter `version-name` would have done so. Thus, running `version-origin` prior to printing the origin gives those plugins a chance to alter the `version-origin` to match.

If any of the hooks set `$RBENV_VERSION_ORIGIN`, then it is used as the return value. Otherwise, the existing logic continues to return "environment variable" or "filename" as appropriate.

This change, in conjunction with the `version-name` hook, makes a clean seam by which plugins can inject their own ruby version setting logic. Using this seam, as opposed to altering `$RBENV_COMMAND_PATH` from the `which` hook, means that the version name and origin are set more reliably and so `version`, `version-name`, `version-origin` and `which` all work as expected. Indeed, even PS1 works now.
2015-12-23 17:22:31 +01:00
Jason Karns
258e4413b1 create hook: version-name
Expose a `version-name` hook.

It is invoked *after* the traditional `RBENV_VERSION` lookup. Which means hook scripts can interrogate `$RBENV_VERSION_FILE` and/or `$RBENV_VERSION` (or use the executables).

The hooks are then run, giving plugins a chance to alter `RBENV_VERSION`. Once the hooks have run, we now have (in `$RBENV_VERSION`) the actual version we want to use (or it's empty which defaults to `system` per normal). Lastly, the same logic remains for checking if the version exists, or trimming the `ruby-` prefix.

Prime example: the ruby-bundler-ruby-version plugin can select a ruby by using the `ruby` directive from the `Gemfile` if a local `.ruby-version` doesn't exist.
2015-12-23 17:22:30 +01:00
Mislav Marohnić
a62a75369e Merge branch 'rbenv-local-respects-ancestry' 2015-12-23 15:30:18 +01:00
Mislav Marohnić
ba072adcb9 Have rbenv local read version from parent directories as well
Fixes #807
2015-12-23 15:21:24 +01:00
Mislav Marohnić
ca25259900 Allow explicit target directory argument to rbenv-version-file
Can be used for `.ruby-version` file lookup in the ancestry of a
specific directory. In this mode of operation, global version files
aren't taken into consideration, and the command fails unless a local
version file was found.
2015-12-23 15:19:54 +01: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
Mislav Marohnić
90373d78b9 Add test for not including current directory in PATH search
Confirms #836
2015-12-14 11:59:01 +01:00
Mislav Marohnić
dc23ef10b6 Merge pull request #836 from eagletmt/fix-path
Remove leading `:`
2015-12-12 15:22:36 +01:00
Kohei Suzuki
3c7a13d81f Remove leading : 2015-12-12 15:28:34 +09: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
Mislav Marohnić
20755cfc15 Merge pull request #833 from chulkilee/fix-url
update urls to rbenv
2015-12-07 20:47:06 +01:00
Chulki Lee
df4c16ecb4 update urls to rbenv 2015-12-07 11:03:07 -08: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
Mislav Marohnić
f0e8bdcdaf Merge pull request #830 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2015-11-25 19:49:54 +01:00
ReadmeCritic
f85c41b14f Update README URLs based on HTTP redirects 2015-11-25 10:08:28 -08:00
Mislav Marohnić
75a1dd25cd Merge pull request #828 from jasonkarns/formatting
indentation
2015-11-24 17:22:33 +01: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
Jason Karns
a1ef9efc80 use PWD var over pwd command 2015-11-23 09:13:31 -05:00
Jason Karns
87dd5fe2c0 indentation 2015-11-23 09:13:31 -05: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
Mislav Marohnić
5fb9c84e14 Merge pull request #822 from jasonkarns/completion
Add --help and tab completion to rbenv-versions
2015-11-20 18:37:54 +01:00
Mislav Marohnić
d138f5f5e4 Merge pull request #826 from jasonkarns/fail-helper
Extract `fail` helper function
2015-11-20 18:29:34 +01:00
Jason Karns
3ddedc021a Extract abort helper function
fail helper prints message to stderr and exits 1
(prefixes 'rbenv: ' if given a string arg)
2015-11-20 10:25:46 -05:00
Mislav Marohnić
a22adc77eb Merge pull request #827 from jasonkarns/fix-exec-test
Fix leftover .ruby-version file from exec.bats
2015-11-20 16:00:49 +01:00
Jason Karns
a3ff3adc39 create local .ruby-version file in test dir
This new test was creating an (intentionally invalid) .ruby-version file
in current working directory; typically the rbenv project dir.
Immediately after test runs, I had a leftover .ruby-version file.

The version-file tests create and cd into the RBENV_TEST_DIR as part of
setup(). I'm using the same directory for this test fix, but am only
using it for this particular test. None of the other exec tests seem to
need to be in a temp test dir, so no use putting it in setup().
2015-11-20 09:51:44 -05:00
Jason Karns
2dcb9d0611 completions for rbenv-init 2015-11-20 09:20:01 -05:00
Jason Karns
a6cb4b6317 consistent completions for rbenv-help 2015-11-20 09:15:06 -05:00
Jason Karns
2f917312f1 completions for rbenv-completions 2015-11-20 09:12:53 -05:00
Jason Karns
d1f8081d1c completions for rbenv-versions 2015-11-20 09:12:47 -05:00
Mislav Marohnić
63671a1479 Merge pull request #824 from jasonkarns/help-completion
Handle --help flag for subcommands
2015-11-20 14:28:39 +01:00
Jason Karns
d7ca2aba2a add --help to subcommand completions
ensure subcommand exists, then include --help in its completion output
2015-11-19 12:05:19 -05:00
Jason Karns
2c4dd63f77 handle --help for subcommands
If subcommand is provided (and exists) and its first arg is -h/--help,
go ahead and intercept the call; redirecting to rbenv-help <subcommand>

This means subcommands and plugins need not handle --help flag
themselves
2015-11-19 12:05:18 -05:00
Jason Karns
06e4f1b682 explicit --version flag
Without it, it falls back to `--version` being executed as a subcommand,
which works but isn't obvious
2015-11-19 11:14:59 -05:00
Mislav Marohnić
825de5d2e3 Fix argument handling in main rbenv command
- Explicitly asking for help with `-h` or `--help` exits with 0 status
  and displays help on stdout.

- Not providing any arguments to rbenv results in failure status and
  displays version and help on stderr.
2015-11-19 01:52:48 +01: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
Mislav Marohnić
8f87f43e22 Fix broken version-dependent test
Broken in dcca61c0bc
2015-11-14 12:21:16 +00:00
Mislav Marohnić
c30e096a54 Merge branch 'which-fixes' 2015-11-14 10:42:41 +00:00
Mislav Marohnić
3405c4d03c Fix error message when command is not found for "system" version
If `foo` didn't exist and `RBENV_VERSION=system rbenv which foo` was
called, the error message used to be misleading:

    rbenv: version `system' is not installed

Instead, have the error message simply say that the command was not found.

Fixes #770
2015-11-13 23:10:09 -05:00
Mislav Marohnić
09b18cf6f5 Add test for version-origin when version not found in rbenv-exec 2015-11-13 23:09:12 -05:00
Mislav Marohnić
fcedf169fb Merge pull request #819 from blueyed/fix-path_without
tests: fix path_without to handle /bin properly
2015-11-13 18:01:53 -05:00
Mislav Marohnić
14655a43c8 Merge pull request #821 from jasonkarns/help-completion
add completion block for rbenv-help
2015-11-13 17:37:09 -05:00
Jason Karns
8c3cab61c7 add completion block for rbenv-help 2015-11-13 15:06:29 -05:00
Daniel Hahler
6296bf3f8b tests: fix path_without to handle /bin properly
I was seeing /bin being left.  This patch fixes it by anchoring the search
pattern with ':' on both sides.
2015-11-12 21:20:00 +01: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
Mislav Marohnić
c18a3f9042 Merge pull request #814 from m-o-e/never-use-hardlinks
Never use hardlinks. Never.
2015-10-29 17:25:26 +01:00
moe
f6c1e5220a Never use hardlinks. Never. 2015-10-28 21:35:39 +01:00
Mislav Marohnić
d740406daf Merge pull request #812 from sstephenson/skip-aliases
Add `rbenv versions --skip-aliases` option
2015-10-27 21:11:24 +01:00
Mislav Marohnić
7026e529c7 Fix realpath fallback in rbenv hooks
The symlinks weren't correctly resolved if they were pointing to a
single path component, such as `ln -s foo bar`.
2015-10-27 21:05:10 +01:00
Mislav Marohnić
e80886e9be Add rbenv versions --skip-aliases option
Useful in combination with `--bare` to list just the unique version
numbers without the extra directory entries that are symlinks to other
version numbers in the same directory.
2015-10-27 21:05:10 +01:00
Mislav Marohnić
6e02b944f7 Use $BASH_SOURCE instead of $0
BASH_SOURCE might be more reliable.
2015-10-27 20:55:23 +01:00
Mislav Marohnić
bb129a782b Merge branch 'bundler-hook-recursion'
Closes #809, references #806
2015-10-27 10:54:13 +01:00
Roman Sandler
d508822f9a Make sure the alias statement only executes if there is not already an alias in place 2015-10-27 10:53:51 +01:00
Mislav Marohnić
6913fee89a If there is .bashrc but no .bash_profile, recommend the former
This is for Linux desktop platforms that have Terminal application
configured to start shells in interactive but not login mode. Creating a
`~/.bash_profile` would also cause `~/.profile` to not run, which might
be a problem on Ubuntu which ships with a default `~/.profile`.
2015-10-26 15:45:52 +01:00
Mislav Marohnić
074161f9c1 Merge pull request #806 from sstephenson/bundle-rehash
Avoid running `rbenv rehash` multiple times during `bundle install`
2015-10-25 18:36:20 +01:00
Mislav Marohnić
2b0f16757a Only rehash if bundle install actually created new executables
This avoids running `rbenv rehash` after installing libraries that don't
have executables, or after a no-op `bundle install` that didn't install
anything.
2015-10-25 18:31:50 +01:00
Mislav Marohnić
7b289bcee6 Avoid running rbenv rehash multiple times during bundle install
This is an attempt to work around the fact that Rubygems post_install
hooks may happen multiple times per single `bundle install` and ideally
we want `rbenv rehash` to run only once if new gems have been installed.
However, due to Bundler parallelism using `fork` on platforms that
support it, it's impossible for the child processes to communicate with
the master process to signal it to run `rbenv rehash` in the end.

This hooks into Bundler `install` command and runs `rbenv rehash` after
all gems have finished installing, but only if the install location was
system gems location and not a custom path (such as per-project
`vendor/bundle`).

This is limited because we can't tell whether any gems have been
installed at all, let alone do those gems have executables. However it's
better than having multiple `rbenv rehash` being run in parallel and
outputting confusing error messages as a result.
2015-10-25 17:47:01 +01:00
Mislav Marohnić
8dcd715ede Merge branch 'edge-version' 2015-10-25 17:01:04 +01:00
Mislav Marohnić
dcca61c0bc Improve rbenv --version git checkout discovery
When `rbenv --version` is called, this now happens:

1. It changes into the directory where `libexec/rbenv--version` resides
   and checks if it's a checkout of the rbenv repo (as opposed to
   Homebrew checkout or something else). Then it reads the git revision.

2. If that failed, change to `$RBENV_ROOT` directory and repeat step 1.
2015-10-25 16:54:38 +01: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
Mislav Marohnić
0f44c57d08 Fix eval'ing multiline sh-* command output with bash 2015-10-12 01:33:17 +02:00
Mislav Marohnić
efb187f26f Merge pull request #663 from kevinburke/use-command
Use `command` to run rbenv rehash
2015-10-11 04:04:46 +02:00
Mislav Marohnić
c101052a7f Fix eval'ing multiline sh-* command output with fish 2015-10-10 21:48:40 +02:00
Mislav Marohnić
51a1ee06e4 Merge commit '5c1094a' from #529
Closes #529
2015-10-10 19:17:18 +02:00
Mislav Marohnić
8a0555f8ef Init RBENV_TEST_DIR properly and only once during test setup 2015-10-10 19:02:11 +02:00
Mislav Marohnić
55f692ba9c Merge commit 'refs/pull/562/head' of https://github.com/sstephenson/rbenv 2015-10-10 18:42:36 +02:00
Mislav Marohnić
3a265c1af9 Unset XDG_CONFIG_HOME and related variables during tests
If set by the user's environment, `git config --global` writes will go
to that destination instead of temporary $HOME. We definitely don't want
that.

Fixes #742
2015-10-10 18:39:23 +02:00
Mislav Marohnić
c43928a8e4 Merge pull request #731 from blueyed/init-no-basename-for-shell
rbenv-init: do not use basename for $shell
2015-10-10 18:33:52 +02:00
Mislav Marohnić
c6cf4e18b8 Merge pull request #682 from evaryont/patch-1
Include gems dir in .gitignore
2015-10-10 17:22:55 +02: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
Mislav Marohnić
9e664b5d27 Suggest that rbenv should be loaded at end of shell rc file
Closes #725
2015-09-12 15:27:32 -07: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
Mislav Marohnić
3b6faa8531 Merge pull request #756 from blueyed/version-origin-with-non-installed
Display version origin with non-installed versions
2015-07-17 11:33:56 -07:00
Daniel Hahler
e3982fae38 Display version origin with non-installed versions
This is useful as an indicator where it is coming from.
2015-07-17 17:10:33 +02: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
Mislav Marohnić
83ac0fbd94 Merge pull request #747 from sstephenson/uninstall-instructions
Provide uninstall instructions in the README
2015-06-10 00:22:47 +02:00
Mislav Marohnić
46fbc5414a Provide uninstall instructions in the README 2015-06-09 23:31:01 +02:00
Mislav Marohnić
43b28caa94 Fix discovering .ruby-version files in root directory
It's not that this is a preferred way to set a global version (one
should use `rbenv global <version>` instead), but this fixes the
function purely for correctness: all parent directories should be
scanned, even the root directory.

Fixes #745
2015-06-09 17:24:15 +02: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
Daniel Hahler
4ea7d0849b rbenv-init: do not use basename for $shell
This can be done using bash directly.
2015-05-10 16:17:35 +02: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
Mislav Marohnić
5b9e4f0584 Merge pull request #722 from blueyed/fix-test-for-fish-issue-369
Fix test for adding shims in fish
2015-04-20 11:51:51 +02: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
Daniel Hahler
06c1959e78 Fix test for adding shims in fish
Commit e2173df4 (for issue #369) did not handle the fish test properly.

This renames it and fixes the assertion.
2015-04-19 23:53:19 +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
Kevin Burke
0cd078bae6 Merge branch 'master' into use-command 2015-03-31 18:57:44 -07: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
Mislav Marohnić
7ad01b2b48 Document rbenv environment variables
Closes #699, fixes #666 [ci skip]
2015-03-13 01:14:24 -07:00
Mislav Marohnić
8c6b764a4c Merge pull request #706 from mhw/realpath-configure-fix
Fix pattern replacement to allow flags with commas.
2015-03-12 22:18:23 -07: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
Mark H. Wilkinson
050f750563 Fix pattern replacement to allow flags with commas. 2015-03-11 13:14:52 +00: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
Mislav Marohnić
4d72eefffc Merge branch 'fast-travis' 2015-02-28 12:56:49 +13:00
Mislav Marohnić
b6ac87c220 Faster bats clone 2015-02-27 02:17:31 +13:00
Mislav Marohnić
6b908bf39f Opt into fast Travis CI builds 2015-02-27 02:08:38 +13:00
Mislav Marohnić
f87d8762eb Merge pull request #698 from asymmetric/dead-readme-links
Remove dead links to History and License from README
2015-02-27 02:06:16 +13:00
Lorenzo Manacorda
c54fa3731f Remove dead links to Version history and License
Cfr. #688
2015-02-26 11:39:31 +01: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
Mislav Marohnić
4d0c289287 Merge pull request #688 from sstephenson/readme-no-history
Remove history, license information from README
2015-02-25 11:50:39 +13:00
Mislav Marohnić
52bb0dcfcf Merge pull request #687 from sstephenson/remove-prefix-warning
Remove warning about extraneous "ruby-" prefix in `.ruby-version`
2015-02-25 11:49:52 +13: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
Mislav Marohnić
98953c2e14 Merge pull request #696 from aprescott/patch-1
Update README to make rbenv version consistent with previous `versions` output
2015-02-18 11:36:34 +13:00
Adam Prescott
9ae8ba8a29 Update README to make rbenv version consistent with previous versions output
The `rbenv versions` info highlights 1.9.3-p327 as the current version, and
making `rbenv version` sample output match that helps make it clearer.
2015-02-16 10:56:38 -05:00
Mislav Marohnić
1a7f49d2f0 Merge pull request #695 from lyrixx/patch-1
[README] Updated link to bundler.io
2015-02-15 19:05:52 -08:00
Grégoire Pineau
70c6d3f67e [README] Updated link to bundler.io 2015-02-16 04:03:08 +01: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
Mislav Marohnić
b155380a06 Remove license information from README
The license information is already present in the LICENSE file.
2015-01-29 02:10:28 -08:00
Mislav Marohnić
cd60df52af Remove rbenv version history from README
We won't maintain it anymore. Instead, the changelogs can be obtained
from the project's Releases page: https://github.com/sstephenson/rbenv/releases
2015-01-29 02:09:05 -08:00
Mislav Marohnić
6820704c91 Remove warning about extraneous "ruby-" prefix in .ruby-version
When we started to support reading `.ruby-version` files, we made a
commitment to not support fuzzy version matching. Treating "ruby-2.1.5"
as "2.1.5" is a sort of fuzzy matching, so we put in place a warning
telling you to remove the extraneous "ruby-" prefix popularly used by
other Ruby version managers to denote MRI. (Their logic is that MRI is
"ruby" and other rubies are not "ruby", apparently.)

However, people are often not able to remove the prefix in their
projects because they want to support other coworkers and tools that
sadly still require the prefix, like RubyMine.

So to restore sanity for a big portion of our users, the warning is gone.
2015-01-29 01:55:58 -08: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
No GUI
55341f4436 Include gems dir in .gitignore
Since communal-gems is maintainer-approved, thought it would be useful to include the directory it uses in the ignore list.

(This also helps me, since I install rbenv as submodule and without this entry, the submodule is perpetually marked dirty.)
2015-01-20 13:21:22 -07: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
Kevin Burke
c9a96c9f79 Use command to run rbenv rehash
In the event that `eval "$(rbenv init -)"` is called from a function named
rbenv (which I do to get rbenv to load lazily in my shell), evaluating the
phrase `rbenv rehash` will cause the outer function to run again (causing an
infinite loop).

This change makes it clear you want the command named rbenv and not a function
which may exist in the environment.
2014-11-28 21:16:14 -08: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
Mislav Marohnić
7e0e85bdda Avoid JRuby warning during rehash Rubygems plugin
As it seems, JRuby 1.7 complains on stderr every time you invoke `system`:

    warning: executable? does not in this environment and will return a dummy value

It doesn't seem to complain when backtics are used. It's safe to use
backticks here because `rbenv rehash` doesn't output anything on stdout,
and the exit status of the command is irrelevant.
2014-10-19 18:06:09 +02:00
Mislav Marohnić
d1a0398fdb Merge pull request #638 from sstephenson/gem-rehash
Bring rbenv-gem-rehash functionality to core
2014-10-19 14:51:45 +02:00
Mislav Marohnić
67f429c41d Bring automatic gem-rehash functionality to rbenv core
This bakes in the functionality of rbenv-gem-rehash plugin.

The Rubygems hook is improved:

- It will not rehash for gems installed in locations that rbenv otherwise
  doesn't search for binstubs; for instance in case of
  `bundle --path vendor/bundle`.
- It rescues exceptions and makes them non-lethal by warning on stderr.
2014-10-19 14:35:43 +02:00
Mislav Marohnić
632263568e Add rbenv's own rbenv.d directory to hook paths
This allows rbenv source code to ship with built-in hooks.
2014-10-19 14:35:36 +02:00
Mislav Marohnić
bf39d88d11 Add tests for rbenv PATH and RBENV_HOOK_PATH handling 2014-10-19 14:35:36 +02:00
Mislav Marohnić
07d675350f Merge pull request #636 from sstephenson/speedup-rehash
Speed up `rbenv rehash`
2014-10-16 12:29:51 +02:00
Mislav Marohnić
39cde6fc95 Merge pull request #528 from sstephenson/dylib
Speed up rbenv by dynamically loading compiled command
2014-10-15 18:19:54 +02:00
Mislav Marohnić
1381c2ca79 Simplify the shims registration implementation in rbenv-rehash
It doesn't need to be a bash array and we don't need a separate index of
shims registered. Simply keep everything in a space-separated string and
use that as an index as well.

This assumes that executable names *never* have spaces in them.
2014-10-15 05:46:18 +02:00
Mislav Marohnić
89d4e8a0e0 Speed up rehash process when there are many Ruby versions
On my system that has 25 versions under rbenv, this speeds up rehash
almost 3-fold:

- before: 391 ms
- after:  134 ms

This is achieved by removing duplicate names of executables before
registering them as shims. Since most Rubies will share a lot of the
same executable names ("ruby", "rake", "bundle", ...), this is a
considerable reduction in number of shims registered.
2014-10-15 05:46:18 +02:00
Mislav Marohnić
a8df5d587c Avoid changing directories during rehash process 2014-10-15 05:46:18 +02:00
Mislav Marohnić
e2173df4aa Revert "Don't duplicate shims in PATH"
Too many of our users have a shell initialization set up that
inadvertently duplicates some or most of the entries in their PATH,
bringing the system paths again in front of rbenv's shims. If this was a
nested shell (a typical scenario when starting up tmux), `rbenv init`
would get eval'd again but this time, shims won't get added to the front
of the PATH and would only stay and the end of the path, effectively
rendering them useless.

I tried to argue that this is a user problem rather than rbenv's, but I
can't fix everybody shell init when they report bugs. Instead, let's
revert to simpler times in rbenv where we just roll along with the
duplication and don't ask any questions.

This reverts commit 03fa148e81.

Fixes #369
2014-10-15 01:43:24 +02:00
Mislav Marohnić
e851250da6 Speed up obtaining exec/which/whence completions
Delegate to `rbenv-shims` instead of `rbenv shims` and therefore skip
going through the main `rbenv` executable again that would set up a lot
of the environment that was already set.
2014-10-15 01:24:45 +02:00
Mislav Marohnić
c69d9a1128 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.

Fixes #533
2014-10-13 12:39:47 +02:00
Mislav Marohnić
f4652fbbf0 Merge branch 'speedup-which'
Closes #560
2014-10-13 12:30:34 +02:00
Mislav Marohnić
3ee395f9b5 Clean up PATH sanitization in rbenv-which 2014-10-13 12:27:19 +02:00
Daniel Hahler
e4cbf04592 Improve performance of rbenv-which when RBENV_VERSION=system
This implements removing of the shims path element via bash
substitution, instead of jumping around in all the `$PATH` elements.
2014-10-13 12:26:43 +02:00
Mislav Marohnić
6bb7f07d2d Avoid rbenv-exec calling out to rbenv-version-name twice
Running any shim (and thus `rbenv-exec`) would always execute
`rbenv-version-name` twice: once in `rbenv-exec` and another time in
`rbenv-which`, even though RBENV_VERSION variable would have already
been populated at this point.

Now RBENV_VERSION is respected within `rbenv-which`.
2014-10-13 12:26:43 +02:00
Mislav Marohnić
51bd975820 Merge branch 'blank-versions'
Fixes #626
2014-10-13 11:51:46 +02:00
Mislav Marohnić
294cff3fd4 Fall back to cc as default compiler when gcc is not available 2014-10-13 04:12:35 +02:00
Mislav Marohnić
a6e0785b84 Create configure script to generate a cross-platform Makefile
The previous Makefile only worked on OS X. The dynamically generated
Makefile (from `Makefile.in`) should now work on multiple platforms
(tested on OS X and Ubuntu).
2014-10-13 04:12:35 +02:00
Mislav Marohnić
302b317b89 Fix shobj-conf on Darwin
The `shobj-conf` script imported from bash seems to not support the
latest OS X. This makes sure that `SHOBJ_LDFLAG=-dynamiclib` is output
for Darwin10+ (latest version is Darwin 13.0).
2014-10-13 04:12:35 +02:00
Mislav Marohnić
8facb3b3a7 Import shobj-conf script from bash
Given the `-o <HOST-OS>` parameter, the script generates environment
variables with information how to compile dynamically loadable libraries
for that system.

Imported from bash-3.2.48
2014-10-13 04:12:35 +02:00
Mislav Marohnić
b5622bee3a Try without -current_version
Seems to only work on OS X; fails on Travis
https://travis-ci.org/sstephenson/rbenv/jobs/16384866
2014-10-13 04:12:35 +02:00
Mislav Marohnić
3f74da0e73 Fail hard if RBENV_NATIVE_EXT is set but extensions failed to load 2014-10-13 04:12:35 +02:00
Mislav Marohnić
68b92a7f5d Test compiled native extensions on Travis CI 2014-10-13 04:12:35 +02:00
Mislav Marohnić
8bac958994 Stop using abs_dirname() in rbenv-init
It's slow and not necessary since we expect `$0` to already be expanded.

In tests this change forces us to deal with some relative paths, but
it's not a big deal. The `rbenv init -` output in the most common case
will be the same as before:

    source '/home/myuser/.rbenv/libexec/../completions/rbenv.bash'
2014-10-13 04:12:34 +02:00
Mislav Marohnić
5287e2ebf4 Avoid slow abs_dirname() by loading realpath extension
This speeds up every `rbenv` invocation significantly.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
284588f9b4 Fix hooks tests on OS X by expanding BATS_TMPDIR
With `realpath` extension, hooks tests on OS X will output
`/private/tmp` instead of `/tmp` because the latter is an actual symlink
to the former.

Avoid this mistmach in output assertions by expanding BATS_TMPDIR if
`realpath` extension is compiled.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
16c7eb4135 Speed up realpath() with dynamically loaded C extension
On systems that support both C compiling and dynamic loading, we can
speed up `realpath()` (where most time in rbenv is spent) by replacing
it with a dynamically loaded bash builtin.

When `make -C src` is called in the project's root,
`libexec/rbenv-realpath.dylib` will be created. If it exists, rbenv will
attempt to load it as a builtin command. If it fails, execution will
fall back to the old `realpath()` shell function.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
9bcef4b875 Add tests for non-directory types under RBENV_ROOT/versions/ 2014-10-13 04:02:46 +02:00
Mislav Marohnić
f237a11f4f Have versions emit a warning when no Ruby version was found 2014-10-13 04:02:04 +02:00
Mislav Marohnić
13a474c4e9 Get rid of explicit exit in fish branch of rbenv-init
Allows for code to be added to the end of the script which will not
mysteriously fail to run for fish shell.
2014-06-03 00:39:34 +07:00
Mislav Marohnić
fe0b2436b8 Merge pull request #581 from LawnGnome/solaris-gawk
Prefer gawk over awk if both are available.

Fixes rbenv-help on Solaris 11.1
2014-04-19 15:29:31 +02:00
Adam Harvey
808527b5d0 Prefer gawk over awk if both are available. 2014-04-18 10:40:56 +10:00
Mislav Marohnić
f71e22768c Merge pull request #567 from genezys/patch-1
Remove carriage return characters in version file

Fixes #566
2014-03-21 17:22:03 +01:00
Vincent Robert
b025dfcf58 Add \r to IFS instead of removing it manually 2014-03-21 01:36:39 +01:00
Vincent Robert
f205ec8359 Move carriage return test to version-file-read 2014-03-21 01:32:29 +01:00
Vincent Robert
f50cee2ac7 Simplify bash expression 2014-03-20 16:52:45 +01:00
Vincent Robert
3be9773c4f Add test for carriage return in ruby-version file 2014-03-20 16:27:13 +01:00
Vincent Robert
2fd3b18d39 Remove carriage return characters in version file
When created on Windows, .rbenv-version or .ruby-version files may have CR characters that will prevent rbenv from correctly parsing the Ruby version. Discard those characters when reading the file.
2014-03-20 11:30:27 +01:00
Daniel Hahler
024bee1a6f Use mktemp -d for RBENV_TEST_DIR
This prevents the tests from removing an existing directory.

Fixes #561 (https://github.com/sstephenson/rbenv/issues/561)
2014-03-13 20:42:34 +01:00
kou1okada
5c1094adb9 Response enhancement for in the case of the working directory under the UNC path.
finding_local_version_file is extremely slow, when working directory is under the UNC path.
Because //host/.rbenv-version and //.rbenv-version do not exist, but testing them is so slow.
It's the reason to make a serious delay of the response, when the Ruby runs with a current working directory under the UNC path under Cygwin environment.

A response of before applying this patch.
//somehost/somedir $ time ruby -e "exit"

real    0m13.922s
user    0m0.168s
sys     0m0.287s

A response of after applying this patch.
//somehost/somedir $ time ruby -e "exit"

real    0m0.721s
user    0m0.153s
sys     0m0.319s
2014-01-09 15:31:29 +09:00
Mislav Marohnić
14bc162ca6 Merge branch 'openbsd'
Closes #524
2014-01-02 22:44:19 +01:00
Mislav Marohnić
1a6bada94c Fix detecting parent shell on OpenBSD and Cygwin
It seems that "comm" header can't be relied on cross-platform, but that
"ucomm" is more portable. I have no idea whether it's the right value to
use here, but it seems to be doing the job.

Also strip trailing whitespace because OpenBSD 5.4 `ps` output is padded
with spaces for some reason.

Fixes #489
2014-01-02 22:36:03 +01:00
Mislav Marohnić
eda535a942 Fix detecting completions support on OpenBSD
The non-extended regex pattern didn't work on OpenBSD so this switches
grep to extended pattern mode that seems to work consistenty on all
systems.
2014-01-02 22:33:54 +01:00
Mislav Marohnić
1e1c9cb0dc Fix emulating the scenario where system Ruby is missing on OpenBSD
On other systems, we expected to find system Ruby in `/usr/bin`, but in
OpenBSD 5.4 it will be found in `/usr/local/bin`.

This replaces the limited USRBIN_ALT hack with a more generic
`path_without` function that will ensure that the given executable is
not present in the resulting PATH even if it's found in multiple
system paths.
2014-01-02 22:30:21 +01:00
Mislav Marohnić
3dc0005032 Fix test suite running on OpenBSD
The error was "bash: no such file or directory" and it was due to bash
being located in `/usr/local/bin` on OpenBSD 5.4 instead of `/bin` like
on other systems.

Fixed by keeping `/usr/local/bin` in PATH during the test run.
2014-01-02 22:17:38 +01:00
Mislav Marohnić
6d0bf9b39f Merge pull request #521 from wmoxam/master
Fix rbenv on OpenBSD

Fixes #519
2014-01-01 15:31:08 -08:00
wmoxam
2f5d9a6f90 Fixes rbenv on OpenBSD and any other systems that don't support head -c 2013-12-31 01:44:36 -05:00
Mislav Marohnić
783618b89c Force TAP output from Bats on CI
In Travis CI environment, Bats thinks it's outputting to an interactive
terminal, so it switches to "pretty" format and ANSI escape codes which
don't look well in the final output.
2013-12-25 18:14:10 +01:00
Jeffrey 'jf' Lim
4f2f6f8575 Fix test suite when no system Ruby exists
Some tests assumed that the `ruby` executable will be found in system PATH.

Fixes #512, closes #514
2013-12-25 18:14:10 +01:00
Mislav Marohnić
59aca30267 Merge pull request #491 from peterhoeg/master
ignore cache directory used by ruby-build
2013-12-17 10:15:09 -08:00
Sam Stephenson
605e691bff Merge pull request #504 from jonathandean/master
Remove Neckbeard reference in favor of Advanced
2013-12-14 13:57:54 -08:00
Jonathan Dean
09ec276a85 Change 'Advanced Configuration' reference to 'How rbenv hooks into your shell' 2013-12-14 16:38:25 -05:00
Jonathan Dean
590b19a1b1 Remove Neckbeard reference in favor of Advanced 2013-12-13 14:06:44 -05:00
Mislav Marohnić
be5e1a4ded Improve rbenv init instructions for fish
Fish user config file `~/.config/fish/config.fish` loads for every
instance of fish shell, not just interactive ones. Since it's
unnecessary and dangerous to eval `rbenv init -` output in
non-interactive shells, wrap the invocation in a conditional that checks
if the current shell is interactive.

Fixes #501
2013-12-06 16:45:22 +01:00
Peter Hoeg
8650de0c0c ignore cache directory used by ruby-build 2013-11-25 11:59:23 +08:00
Mislav Marohnić
95a039aaaa Revert "rbenv exec: avoid mutating PATH"
It was supposed to fix shelling out to Ruby but it in fact broke another
kind of shelling out to Ruby: invoking the `ruby` binary directly with
the `-S` flag.

Fixes #480

This reverts commit db143bb654.
2013-11-03 12:18:28 +02:00
Mislav Marohnić
f1fdb9bbc8 Avoid invoking hash -r in fish
It doesn't exist as a builtin, and it doesn't seem there is a way to
detect support for a shell builtin that is portable. So, just detect
fish and don't the rehash command at all.

Fixes #478
2013-10-31 20:18:14 +02:00
Mislav Marohnić
44e76bea23 Merge pull request #372 from sstephenson/exec-next
Change `exec` semantics to allow using rbenv from a ruby process
2013-10-29 18:53:33 -07:00
Mislav Marohnić
a898e2a534 Merge branch 'no-process-substitution' 2013-10-30 02:50:31 +01:00
Mislav Marohnić
681435e0b4 Simplify version-file-read to avoid process substitution
Process substitution seems to be causing problems with some versions of
bash on specific systems.

Fixes #401
2013-10-30 02:33:49 +01:00
Mislav Marohnić
d2eace00c9 Add more tests for version-file-read 2013-10-30 02:33:23 +01:00
Mislav Marohnić
3300587c6b strip initial - from the name of shell process
Avoids the case where shell detection would result in
`basename "-bash"` invocation, triggering the error:

    basename: illegal option -- b

fixes #462
2013-10-07 14:19:37 +02:00
Mislav Marohnić
878bd87328 reliably detect parent shell in rbenv init
`$SHELL` variable is a terrible way of detecting the current shell
because it's not even supposed to reflect the current shell; it's meant
for keeping the value of the default shell for programs to start.

If an explicit `<shell>` argument wasn't passed to `rbenv init`, it
tries to detect the shell by getting the name of its parent process. If
this fails, it falls back on the value of `$SHELL` as before.

Furthermore, `rbenv init` will set the RBENV_SHELL variable in the
current shell to the value of the detected shell so that `sh-shell` and
`sh-rehash` commands don't have to repeat the detection.
2013-10-07 03:24:45 +02:00
Gunes
ff23666d56 typo: remove "v" (version prefix) 2013-10-03 22:18:43 +02:00
Mislav Marohnić
f4fade3d26 better error message for rbenv prefix system
Have `rbenv prefix` handle the case where system Ruby is not installed,
i.e. `rbenv which ruby` doesn't find ruby in PATH.

Fixes #362
2013-10-03 21:42:52 +02:00
Mislav Marohnić
16c3e0ddac tweak installation instructions
Provide an `rbenv install` example and explanation lower down, so that
both folk that are following git install and Homebrew install will
finish at the same section and learn how to use ruby-build.

Also remove step 6 of manual install process: `rbenv rehash`. It's
unnecessary at that point, even if they already did `rbenv install`
(which rehashes automatically).

Fixes #455, closes #456
2013-10-03 20:52:13 +02:00
Mislav Marohnić
0d216c2d82 remove rbenv install example; clarify manual compile
It can be confusing if people mistake the example as instructions to
install ruby-build with.
2013-10-03 20:17:10 +02:00
Mislav Marohnić
a1fb5b1153 better Ubuntu Desktop installation instructions
Don't suggest that they add to their `.profile` anymore because:

1. They would have to restart the desktop session for their change to be
   reflected, or source the file manually;
2. An error in `.profile` may prevent logging in;
3. The `rbenv()` shell function and shell completions won't be available
   in Terminal since it doesn't start bash in login mode by default.

Therefore, suggest that they use `.bashrc` instead. This will be
immediately reflected in a new Terminal tab. If bash is started in login
mode somehow, the default `.profile` is set up to source `.bashrc` anyway.

Also, don't suggest restarting the shell environment with
`exec $SHELL -l`, since we don't know what was the original mode that
their shell was started in. (OS X Terminal.app will be login mode,
Ubuntu Terminal has non-login mode by default.) Mode can be checked with:

* bash: `shopt -q login_shell`
* zsh: `[[ $options[login] = "on" ]]`

But since this is gnarly, let's just avoid it altogether and go the
easy route.

Closes #305, fixes #373, reverts #286
2013-10-03 20:07:22 +02:00
Mislav Marohnić
e97326845c Ubuntu fix: don't use . in place of source
If `rbenv init -` outputs `.` in place of `source` and that gets eval'd
by the desktop manager via `~/.profile`, it chokes and prevents the user
from logging in.

Fixes #457
2013-10-03 16:12:24 +02:00
Mislav Marohnić
71a6d791c2 Merge branch 'shell-fixes' 2013-09-28 16:15:13 +02:00
Mislav Marohnić
5ae2cac088 fix rbenv() function in ksh and dash
ksh syntax becomes:

    function rbenv {
      typeset command

`typeset` only declares a local variable if there's an explicit
`function` declaration; otherwise the variable leaks.

Other shells use this syntax:

    rbenv() {
      local command

This is for dash compatibility, which supports neither `function` nor
`typeset`.

references #205, fixes #408
2013-09-28 16:12:53 +02:00
Mislav Marohnić
31fab8cdae cleanup in fish
Use process subtitution syntax:

    . (rbenv init -|psub)

instead of:

    eval (rbenv init -)

because the latter doesn't work well with newlines.
2013-09-28 16:12:43 +02:00
Yamashita Yuu
5bfec84432 add fish shell support 2013-09-28 16:11:02 +02:00
Jeffrey 'jf' Lim
caa4a8e228 fix rehash when paths have spaces in them
fixes #450
2013-09-26 01:42:34 +02:00
Mislav Marohnić
bdcc2e1790 check if completion script is readable
fixes #444
2013-09-09 09:53:50 +02:00
Ryan Bigg
749f21e482 Install a more recent version of Ruby in README instructions 2013-09-09 10:41:04 +10:00
Aaron Stone
1cc75362d6 Clarify the search precedence for .ruby-version files.
Closes #432 [ci skip]
2013-08-07 22:37:21 +02:00
Ryan Bigg
a2adc61c6f Merge pull request #428 from almog/master
Homebrew homepage moved to a new location
2013-07-24 15:33:14 -07:00
Almog Kurtser
c7208bf1ff Homebrew homepage location changed 2013-07-25 00:02:05 +03:00
Mislav Marohnić
db143bb654 rbenv exec: avoid mutating PATH
Enables shelling out from a ruby process started with rbenv to a ruby
process with a different RBENV_VERSION. Fixes #121

This removes the workaround created for #15 and solves `ruby -S` support
by setting RUBYPATH. PATH is never changed.

To illustrate how RUBYPATH changes in various configurations:

    PATH=~/bin:~/.rbenv/shims:/usr/bin:/bin
    RBENV_VERSION=1.8 ruby -S rake
    #=> executes ~/.rbenv/versions/1.8/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/1.8/bin:/usr/bin:/bin

    RBENV_VERSION=2.0 ruby -S rake
    #=> executes ~/.rbenv/versions/2.0/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/2.0/bin:/usr/bin:/bin

    RBENV_VERSION=system ruby -S rake
    #=> executes /usr/bin/rake
    #=> RUBYPATH=~/bin:/rbenv_shims_were_here:/usr/bin:/bin

    RBENV_VERSION=1.8 ruby -S rake
    #=> executes ~/.rbenv/versions/1.8/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/1.8/bin:/usr/bin:/bin
2013-06-20 20:41:22 +02:00
Mislav Marohnić
8b043038b8 ensure cleaner PATH in test environment 2013-06-20 20:41:22 +02:00
Marc Huffnagle
5130b41f5b suggest cloning rbenv via https instead of git:// 2013-06-07 19:25:29 +02:00
James FitzGibbon
81bb14e181 bail out early if readlink is not available
readlink comes from GNU coreutils.  On systems without it, rbenv used to
spin out of control when it didn't have readlink or greadlink available
because it would re-exec the frontend script over and over instead of the
worker script in libexec.

Fixes #389
2013-06-07 19:16:38 +02:00
Mislav Marohnić
e93ab45dc3 work around bug in git 1.8.2.1 in tests
Making empty commits in tests blocked by opening the default text
editor, waiting for a message which we specified to be empty.

http://thread.gmane.org/gmane.comp.version-control.git/225529
2013-06-07 19:13:54 +02:00
Mislav Marohnić
060f141b21 test that IFS in hooks is correct
closes #379
2013-04-16 14:01:43 +02:00
Ian Yang
6ca591ab75 restore original IFS for hooks 2013-04-16 14:01:43 +02:00
Mislav Marohnić
bc1049f5ae improve versions tests by cd'ing into a clean slate 2013-04-16 12:52:42 +02:00
Mislav Marohnić
05568496c1 Merge branch 'test-coverage' for MAXIMUM COVERAGE 2013-04-08 23:17:03 +02:00
Mislav Marohnić
ab9ebb9d0d add tests for help and rbenv --version 2013-04-08 23:16:35 +02:00
Mislav Marohnić
ab197ef51e add tests for version commands 2013-04-08 23:16:35 +02:00
Mislav Marohnić
7fc5f46bbb undo assert_output_lines in tests
It was a dumb idea and it wasn't even implemented perfectly.
2013-04-08 23:16:35 +02:00
Mislav Marohnić
969af1567a add tests for rehash, whence, which 2013-04-08 23:02:30 +02:00
Mislav Marohnić
7a10b64cf7 better emulate ruby -S behavior in testing
Per https://github.com/ruby/ruby/blob/7d3db3c/ruby.c#L1383-1391
2013-04-02 02:48:27 +02:00
Mislav Marohnić
f6db678b20 un-indent shebang for test executables 2013-04-02 02:48:04 +02:00
Mislav Marohnić
97290b2442 simplify iterating through arglist 2013-04-02 02:41:28 +02:00
Mislav Marohnić
b8504ed2a9 saner assertions for multiline output 2013-04-02 00:27:27 +02:00
Alisdair Sullivan
497911d6c0 improve detection of completion support for commands
Enable JavasCript, Lua and Erlang scripts to provide completions
2013-04-01 16:39:51 +02:00
Mislav Marohnić
4d96d0a6c6 add tests for completions 2013-04-01 16:22:02 +02:00
Mislav Marohnić
9b58b6642e test completions for exec 2013-04-01 03:45:15 +02:00
Mislav Marohnić
45f651ab00 hack around the hack around bash echo 2013-04-01 03:12:15 +02:00
Mislav Marohnić
400fe31061 fix exec fails for invalid version 2013-04-01 03:01:37 +02:00
Mislav Marohnić
4b6ab0389b add tests for exec 2013-04-01 02:58:58 +02:00
Mislav Marohnić
baf7656d2f fix iterating through paths that have spaces in them
Fixes #344, #196
2013-04-01 01:04:19 +02:00
Sam Stephenson
382db59cd0 Merge pull request #367 from shoyan/master
replace tab with spaces
2013-03-23 08:47:10 -07:00
Shohei Yamasaki
2bbf49b2f5 replace tab with spaces 2013-03-23 22:37:25 +09:00
Mislav Marohnić
6a6ae8ae46 tests for rbenv-init 2013-03-20 13:43:57 +01:00
Tim Pope
03fa148e81 Don't duplicate shims in PATH 2013-03-20 13:16:02 +01:00
Mislav Marohnić
ea3203dbab fix resolving symlinks in rbenv-hooks 2013-03-08 14:35:46 -05:00
Mislav Marohnić
a81ace2ccb add hook lookup tests 2013-03-07 23:55:02 -05:00
Mislav Marohnić
a7da06998e use C on Travis for even less overhead 2013-03-07 16:14:25 -05:00
Mislav Marohnić
5e5e3e0588 skip Ruby stuff on Travis 2013-03-07 16:09:02 -05:00
Mislav Marohnić
bc369fb1ab configure Travis 2013-03-07 16:05:34 -05:00
Mislav Marohnić
bb6bccb782 tests galore 2013-03-07 15:07:32 -05:00
Mislav Marohnić
1fe59e41ea error message when rehash fails on non-writable directory
Fixes #238
2013-03-07 00:13:50 -05:00
Tim Pope
0d1f1d09f0 Fix multiple argument completion with zsh
This changes the zsh completion to omit the final, incomplete command
line argument when invoking rbenv completions, making it consistent with
the bash completion.  Since no built-in completion cares about the
argument list, this inconsistency only affected plugins.
2013-02-23 23:54:10 +01:00
YanhaoYang
13f36e0416 rbenv(): preserve multiline output of sh-* commands 2013-02-22 15:42:31 +01:00
Sam Stephenson
e3f72ebae2 Guard against exported CDPATH (fixes #316) 2013-01-25 12:02:11 -06:00
Sam Stephenson
98f45695db Suppress shell warnings when hashing is disabled by set +h 2013-01-25 11:50:37 -06:00
Sam Stephenson
3cb95b4d2d Add rbenv --debug <command> as a shortcut for setting RBENV_DEBUG=1 2013-01-23 19:07:37 -06:00
Sam Stephenson
892aea138e Export PS4 when RBENV_DEBUG is set for more informative debug output 2013-01-23 19:07:37 -06:00
Sam Stephenson
045f6c1bce Merge pull request #314 from jalcine/feature/ignoring-thy-sources
Ignoring Your Sources
2013-01-09 15:36:22 -08:00
Jacky Alciné
1d4261a997 Added 'sources' to the Git ignores. 2013-01-09 16:45:08 -05:00
Sam Stephenson
da80bced53 Merge pull request #310 from leocassarani/rbenv-help-mawk
Fix incorrect formatting of rbenv-help output under MAWK
2013-01-05 13:51:57 -08:00
Leo Cassarani
1d687ac734 Fix incorrect formatting of rbenv-help output under MAWK
In systems that use the MAWK interpreter (the default AWK installed with
Ubuntu), the output of `rbenv help <command>` would have no line breaks.
The issue is fixed by changing `gsub` to `sub` in the snippet of awk
commands that are used to extract documentation comments.

I suspect the bug is something to do with the way the '^' and '$'
characters are interpreted by different AWK interpreters (per-line vs
per-string anchors).

If I understand correctly, the purpose of trim() is to remove all line
breaks from the start and end of each sections of a command's
documentation, in which case `sub` should serve the same purpose.
2013-01-05 16:55:19 +00:00
Ryan Bigg
bef7a12964 Merge pull request #308 from eddorre/master
Small update to the README.
2013-01-04 15:17:13 -08:00
Carlos Rodriguez
14ff078b85 Removed double 'at' from README 2013-01-04 15:14:36 -08:00
Mislav Marohnić
cd940bd797 typo in docs 2013-01-04 23:26:01 +01:00
Mislav Marohnić
093809eac6 spellcheck 2013-01-04 23:17:52 +01:00
Sam Stephenson
c56f72794e Fix ruby-local-exec wiki page link in the changelog 2013-01-04 12:40:20 -06:00
Sam Stephenson
9375e99f92 rbenv 0.4.0 2013-01-04 12:27:26 -06:00
Sam Stephenson
b66eeaf2f7 Link up the "Why choose rbenv?" wiki page 2013-01-04 12:25:00 -06:00
Mislav Marohnić
c6855e01a9 zshenv -> zshrc. update Ubuntu/zsh installation notices 2013-01-04 17:58:38 +01:00
Sam Stephenson
7f975a37f9 Deprecate ruby-local-exec 2013-01-04 10:12:29 -06:00
Sam Stephenson
41cfa5f3d0 Link to the binstubs wiki page 2013-01-04 09:19:18 -06:00
Sam Stephenson
9c45206c28 Remove unused doc directory 2013-01-03 21:22:17 -06:00
Sam Stephenson
308aa42b67 Rewrite "How It Works" with @trevorturk 2013-01-03 21:18:05 -06:00
Sam Stephenson
5174d14d5c It's all about the apps 2013-01-03 12:49:03 -06:00
Sam Stephenson
6fe338e563 New tagline 2013-01-03 12:40:54 -06:00
Sam Stephenson
266d896871 Prioritize rbenv local over rbenv global and rbenv shell 2013-01-03 10:40:28 -06:00
Sam Stephenson
7e85ae7bd2 "Usage" -> "Command Reference" 2013-01-03 10:25:31 -06:00
Sam Stephenson
9a284a3da4 Update the uninstallation section 2013-01-03 10:20:52 -06:00
Sam Stephenson
871f0e26df Tone down the RVM incompatibility notice 2013-01-03 10:09:22 -06:00
Sam Stephenson
e56885f4c9 "binary" -> "executable" 2013-01-03 10:06:12 -06:00
Sam Stephenson
149f4b4607 "per-project" -> "application-specific" 2013-01-03 10:00:10 -06:00
Sam Stephenson
80750f730f Merge pull request #302 from sstephenson/ruby-version
Support for .ruby-version files
2013-01-03 07:32:02 -08:00
Jeremy Kemper
253f6ee1d9 -information in readme pitch 2013-01-02 19:01:47 -07:00
Jeremy Kemper
bac149e824 Riff on the readme pitch 2013-01-02 19:00:04 -07:00
Sam Stephenson
3ec34448fa Rewrite the readme pitch 2013-01-02 18:56:33 -06:00
Sam Stephenson
919c4240fc Clarify that .rbenv-version is removed when migrating 2013-01-02 12:51:47 -06:00
Sam Stephenson
44c2378f2a Shims include the full path to rbenv
This makes it possible to execute rbenv shims without rbenv's bin
directory in the path.
2013-01-01 13:27:39 -06:00
Sam Stephenson
377b176260 Document .ruby-version 2012-12-31 09:58:28 -06:00
Sam Stephenson
d2a8ca7d89 Tweak the ruby- prefix warning 2012-12-31 09:58:10 -06:00
Sam Stephenson
d4faae187a Read both .ruby-version and .rbenv-version, but write (and migrate to) .ruby-version 2012-12-30 21:20:29 -06:00
Sam Stephenson
5e52fae7c1 Accept "ruby-" version prefix but print a warning to stderr 2012-12-30 19:01:30 -06:00
Sam Stephenson
b974bf54dc Prefer .ruby-version to .rbenv-version for reading local versions 2012-12-30 18:35:20 -06:00
Sam Stephenson
4b6c91e827 Usage consistency 2012-12-30 16:00:53 -06:00
Sam Stephenson
51467dc4a3 Include install and uninstall in help if ruby-build is installed 2012-12-30 15:30:37 -06:00
Sam Stephenson
eb79a3edaa Merge pull request #292 from sstephenson/help
help system where each command holds its own docs
2012-12-29 20:05:42 -08:00
Sam Stephenson
37eca782cc Documentation tweaks 2012-12-29 22:05:04 -06:00
Sam Stephenson
19666f2598 Wrap documentation comments at 70 columns 2012-12-29 21:50:38 -06:00
Mislav Marohnić
3436bddaea new-style documentation for most commands 2012-12-29 23:34:53 +01:00
Mislav Marohnić
5cc6b0e3d3 allow indented lines in help text
Before, lines of help that were indented were stripped away.
2012-12-29 22:48:28 +01:00
Mislav Marohnić
2b21e22e97 display help for commands that have Summary but not Usage
A command doesn't have to specify Usage docs if it doesn't accept any
arguments. The default usage for a command will be printed as:

    Usage: rbenv ${command}
2012-12-29 22:14:54 +01:00
Sam Stephenson
57df945738 Don't print version before help summary (bare rbenv already does this) 2012-12-29 12:19:06 -06:00
Sam Stephenson
e2e474c59d Add rbenv help --usage 2012-12-29 12:12:47 -06:00
Sam Stephenson
4c19dc22d7 Improve syntax for inline documentation and allow for multi-line usage 2012-12-29 12:06:20 -06:00
Sam Stephenson
ef44b4ccac Merge branch 'master' into help 2012-12-29 11:23:23 -06:00
Mislav Marohnić
8ee2f2657a avoid prepending system ruby to PATH
System ruby is already on PATH (that's the definition of system ruby) and by
duplicating its path by putting it in front, we can break the user's
environment.

Fixes #275
2012-12-29 00:17:16 +01:00
Sam Stephenson
f635c8715c Add zsh support for completion of full command line 2012-12-28 13:25:24 -06:00
Sam Stephenson
3ceeb72ac6 Merge remote-tracking branch 'griff/morecompletion' 2012-12-28 12:43:30 -06:00
Sam Stephenson
e0b8938fef Merge pull request #299 from sstephenson/automatic-local-exec
Automatic local exec
2012-12-28 09:05:24 -08:00
Sam Stephenson
811ca05916 Run hash -r after rbenv rehash when shell integration is enabled
Fixes #119
2012-12-28 10:59:10 -06:00
Sam Stephenson
df9bbd7ab3 Speed up rbenv-rehash with a simpler indexing approach 2012-12-27 17:16:57 -06:00
Sam Stephenson
339e331f1d Ensure outdated shims are removed first when rehashing 2012-12-27 13:42:25 -06:00
Sam Stephenson
283e67b57e When the ruby shim is invoked with a script, set RBENV_DIR to the script's dirname 2012-12-27 13:41:55 -06:00
Sam Stephenson
6c1fb9ffd0 Fall back to $PWD if a local version file can't be found in $RBENV_DIR 2012-12-27 13:39:36 -06:00
Oscar Del Ben
c3fe192243 use ruby-build
Fixes #294
2012-12-20 16:56:56 +01:00
Sam Stephenson
1ebcbd92e2 Tweak rbenv --version output 2012-12-13 11:26:39 -06:00
Mislav Marohnić
3060578e3b use typeset instead of local in rbenv() function
This is to insure portability to ksh.

Fixes #205, references #209
2012-12-13 06:01:26 +01:00
Mislav Marohnić
b8715bfee6 foundation for a help system where each command holds its own docs
Docs are comprised from "Usage", "Summary" and "Help" sections, where
"Help" can span multiple commented lines. If it is missing, "Summary" is
shown in its place.

References #204, references #206
2012-12-13 05:48:28 +01:00
Sam Stephenson
7fe9231e64 Fix rbenv prefix for system version
Should be `/usr` or `/usr/local`, not `/usr/bin` or `/usr/local/bin`
2012-12-12 21:40:57 -06:00
Sam Stephenson
9289af0132 Don't include system in rbenv versions --bare output 2012-12-12 21:40:57 -06:00
Mislav Marohnić
1f7722088d make shell return an error code in case of failure
Fixes #274
2012-12-13 02:58:41 +01:00
Mislav Marohnić
e548877ead have versions also list "system" if it exists
Closes #263
2012-12-13 01:52:52 +01:00
Mislav Marohnić
21391c8d2f put up a note why version-file-read is tricky 2012-12-13 01:45:06 +01:00
Roy Liu
99551dd1ec fix rbenv-which with system ruby
Don't have `command -v` abort the whole script prematurely.
2012-12-13 01:00:24 +01:00
Mislav Marohnić
b5a26936e8 rbenv --version 2012-12-13 00:40:29 +01:00
Ruben Verborgh
cf28136003 speed up rbenv-init
Use `rbenv-commands` instead of `rbenv commands`. The latter
unnecessarily goes through `rbenv` executable.

Fixes #254
2012-12-13 00:18:32 +01:00
Mislav Marohnić
349236c932 tweak docs & add syntax highlighting to instructions 2012-12-12 23:46:10 +01:00
Guillermo Iguaran
0ce6fad14e Merge pull request #287 from mislav/versions-fix
fix `versions` in case current version doesn't exist
2012-12-12 14:12:39 -08:00
Joe Atzberger
0a9e2baef1 fix documentation about manually compiling Ruby
./configure doesn't exist by default in repo: use autoconf to create it.
2012-12-12 23:10:18 +01:00
Mislav Marohnić
da562ad74c replace build system with generated table of contents
Gets rid of `doc/README.mdtoc` and its build script. Since GitHub.com
renders anchors for each heading, all we have to do is put a simple
table of contents into `README.md` itself, and everything will get
linked up nicely.

Pros of this approach:
* We don't have to point out to people not to edit `README.md` anymore
* We don't have to run the build script each time README gets edited

Cons of this change:
* The "chapter" numbers are lost. They were silly anyway.

`doc/mdtoc` renders a Markdown table of contents for a Markdown file.
`doc/filter-toc` filters that down to only headings after ToC.
This script can be used to easily insert ToC into the current document
when editing `README.md` with, e.g., Vim:

    :read !doc/filter-toc %
2012-12-12 23:06:44 +01:00
Guillermo Iguaran
d45dc17f25 Merge pull request #286 from candeira/ubuntu-install-instructions
fix install instructions for ubuntu & other linux
2012-12-12 07:27:21 -08:00
Javier Candeira
7f1aefa09b fix install instructions for ubuntu (using version 12.04, but should work for all versions) 2012-12-12 16:15:28 +11:00
Guillermo Iguaran
2162054659 Merge pull request #288 from mislav/usage-fix
fix obsolete usage instruction
2012-12-11 15:37:57 -08:00
Mislav Marohnić
0ff3ca8a12 fix obsolete usage instruction 2012-12-12 00:32:27 +01:00
Mislav Marohnić
47c8a0e0b8 fix versions in case current version doesn't exist
`rbenv-versions` tries to read the current version to display a marker
next to it, but if that fails the whole script aborts.

This change makes it so that the failures from `rbenv-version-name` are
tolerated. It also makes the `--bare` mode never call it in the first
place, because it doesn't need to display a marker.
2012-12-12 00:25:02 +01:00
Guillermo Iguaran
2a347226df Merge pull request #225 from dentarg/master
Fixed broken link to RVM in documentation
2012-12-11 13:19:53 -08:00
Ryan Bigg
962452d6d1 Merge pull request #188 from tundramonkey/master
Added in short note on Uninstalling Rubies under new 2.4 section in README
2012-12-11 13:13:44 -08:00
Guillermo Iguaran
2df165c49e Sync doc/README.mdtoc with the actual README
All the changes to documentation should be done in doc/README.mdtoc
2012-12-11 16:06:02 -05:00
Guillermo Iguaran
fc3a634e22 Update README: use last version of jruby in examples 2012-12-11 15:56:03 -05:00
Guillermo Iguaran
01a9141780 Merge pull request #278 from mattdbridges/master
Just trying to keep the README.md up to date with Ruby versions
2012-12-11 12:54:11 -08:00
Guillermo Iguaran
f783b9ec0d Merge pull request #258 from baer/patch-1
Installation Step 1 is a one liner
2012-12-11 12:52:36 -08:00
Matt Bridges
b745a51f30 Update README.md
Changing Ruby versions references to latest versions to keep somewhat up-to-date.
2012-11-17 01:57:23 -06:00
Brian Olsen
02332d78f3 Added bash support for completion of full command line 2012-10-05 04:28:25 +02:00
Eric
183c780698 Installation Step 1 is a one liner
Not a big change, just thought it's always good to make it easier for a beginner
2012-08-28 12:37:15 -06:00
Patrik Ragnarsson
406c8e0303 Fixed broken link to RVM in documentation 2012-05-12 22:38:56 +02:00
Sam Stephenson
6778c8e905 Merge pull request #217 from alecchen/master
remove "+=" operator in rbenv-rehash to support bash-3.0
2012-04-23 07:45:44 -07:00
Alec Chen
3a94daeaf8 remove "+=" operator to support bash-3.0 2012-04-23 22:11:19 +08:00
Sam Stephenson
e5c64db280 Merge pull request #203 from cldwalker/options_help
help for versions and commands, including their options
2012-03-23 13:43:25 -07:00
Gabriel Horner
d3700dfd70 help for versions and commands, including their options 2012-03-23 16:21:53 -04:00
Sam Stephenson
975b45dbfe Merge pull request #184 from jvirtanen/fix/typos
Fix typos in documentation
2012-02-18 08:53:30 -08:00
Sam Stephenson
a49b07975c Merge pull request #189 from amarshall/master
Prevent $command from leaking outside of function
2012-02-18 08:52:12 -08:00
Daryl Manning
5e57ab95ce Changed doc/README.mdtoc and built README.md and changed nomenclature to 'ruby versions' as requested. 2012-02-09 16:20:53 +11:00
Andrew Marshall
9c43fa9161 Prevent $command from leaking outside of function 2012-02-04 18:05:43 -05:00
Daryl Manning
9b286ecbfd And better codify the rbenv command just for good measure. 2012-02-03 17:54:07 +11:00
Daryl Manning
b7e9569ccb Embrassing typo in the anchor link neme != name. 2012-02-03 17:52:09 +11:00
Daryl Manning
e922131422 Added in section 2.4 on uninstalling rubies from .rbenv/versions to the README. 2012-02-03 17:48:20 +11:00
Jussi Virtanen
34813ef32c Fix typos in documentation 2012-01-29 11:35:01 +02:00
Sam Stephenson
e899f1d31c Merge pull request #183 from terceiro/new-hooks-dir
Add /usr/lib/rbenv/hooks to hook search path
2012-01-26 16:25:24 -08:00
Antonio Terceiro
d1bfeee334 Add /usr/lib/rbenv/hooks to hook search path
This will help with the packaging of rbenv plugin that contain hooks in
Debian.
2012-01-26 20:23:31 -02:00
Sam Stephenson
9ea1f7d53e Merge pull request #179 from johnwilliams/master
rbenv-init arguments should be allowed in any order
2012-01-17 07:41:55 -08:00
John Williams
f40bc773d2 Allow init arguments to be in any order. 2012-01-17 08:50:40 -06:00
Sam Stephenson
5d0a6630b9 Account for path entries with spaces in remove_from_path 2011-12-30 13:40:22 -06:00
Sam Stephenson
114b81c9a4 Use if instead of inline && so rbenv rehash exits with a zero status 2011-12-26 20:12:16 -06:00
Sam Stephenson
b10bdb1e78 rbenv 0.3.0 2011-12-25 21:32:48 -05:00
Sam Stephenson
ee5ad02d42 Add --no-rehash option to rbenv-init (#170) 2011-12-25 20:59:24 -05:00
Sam Stephenson
cd2094ff71 Remove deprecated set-default and set-local commands 2011-12-25 20:39:11 -05:00
Sam Stephenson
5052a4161c Update readme screenshot to use global instead of set-default (fixes #165) 2011-12-25 16:53:59 -05:00
Sam Stephenson
7fbcde8af0 Properly expand RBENV_DIR and ensure it exists 2011-12-25 16:41:15 -05:00
Sam Stephenson
b670849ebd Merge remote-tracking branch 'mlafeldt/rbenv-rehash'
Conflicts:
	libexec/rbenv-rehash
2011-12-24 18:03:10 -05:00
Sam Stephenson
288c6b3f09 Go with paren-style function definition 2011-12-24 17:49:22 -05:00
Sam Stephenson
802d70568c Merge pull request #168 from mgrubb/topic/portability-fixes
Made ksh portability changes
2011-12-24 14:48:34 -08:00
Sam Stephenson
c4721169e3 Merge pull request #163 from richoH/features/completion_only_in_interactive_shells
Only run compctl if it's an interactive shell
2011-12-24 14:44:41 -08:00
Sam Stephenson
efe600f6de Ensure shims don't disappear when rehashed 2011-12-24 15:16:37 -05:00
Michael Grubb
7e83e07cf3 Made ksh portability changes
Added specific message for ksh in identifying the proper shell
initialization file.

Changed rbenv functiond definition to be more portable.
Shell functions should be defined by using the function command or
using the parenthesis grammar, but using both is not portable:

rbenv() {...  -or-
function rbenv { ...
2011-12-15 14:54:38 -06:00
richo
65f0be0c20 Bail on completion init if we're not an interactive shell
Based on the approach by @imajes
2011-12-11 01:57:56 +11:00
Joshua Peek
adf9c97616 Merge pull request #146 from pervel/patch-1
Quoting the argument to greadlink to make it work with paths containing spaces
2011-11-22 07:33:27 -08:00
Per Velschow
dfc7645609 Quoting the argument to greadlink to make it work with paths containing spaces. 2011-11-18 21:21:16 +01:00
Mathias Lafeldt
9dde161b65 rbenv-rehash: use $OLDPWD to restore previous working directory
$OLDPWD is a standard shell variable that contains the previous working
directory as set by the "cd" command. No need to save $PWD to some
custom variable.

(We could also have used "cd -" but it prints out $OLDPWD too.)
2011-11-14 22:30:47 +01:00
Mathias Lafeldt
0324b118ee rbenv-rehash: remove superfluous trap signals
A trap on the special signal EXIT is executed before the shell
terminates. EXIT actually covers SIGINT and SIGTERM as well, and
we don't need any extra traps for them.

See bash(1) and "help trap" in bash.
2011-11-14 22:30:47 +01:00
Sam Stephenson
4cc6665d0a Zsh users need to modify ~/.zshenv, not ~/.zshrc 2011-11-14 12:52:10 -06:00
Joshua Peek
be7dcc0ad8 Add rbenv root
Prints $RBENV_ROOT (defaults to ~/.rbenv)
2011-11-10 10:54:30 -06:00
Sam Stephenson
01a0ad0b69 rbenv 0.2.1 2011-10-01 12:26:19 -05:00
Sam Stephenson
2bbe2099eb Missing word 2011-10-01 12:20:58 -05:00
Sam Stephenson
e49be969ab Ensure RBENV_DIR is always an absolute path
Otherwise, `RBENV_DIR=bin rbenv version-file` loops indefinitely
2011-10-01 12:15:20 -05:00
Sam Stephenson
fb0ec9e157 Be explicit about ~ 2011-10-01 11:05:31 -05:00
Sam Stephenson
525c960dea Merge pull request #108 from audionerd/patch-1
Fix command to modify ~/.bash_profile in user's home directory
2011-10-01 09:01:04 -07:00
Eric Skogen
ddd4db1b05 Fix command to modify ~/.bash_profile in user's home directory (~/, instead of in-place) 2011-09-30 21:54:09 -05:00
Sam Stephenson
7a929b8a84 Indentation 2011-09-28 13:41:10 -05:00
Sam Stephenson
2cd12e3fa6 rbenv 0.2.0 2011-09-28 13:38:03 -05:00
Sam Stephenson
4965a1d1f7 Style 2011-09-28 13:35:17 -05:00
Sam Stephenson
dc1f583903 "Zsh" is the canonical capitalization 2011-09-28 13:29:37 -05:00
Sam Stephenson
500c6de37c fill-region 2011-09-28 13:27:42 -05:00
Joshua Peek
88e59647ae Installation edits 2011-09-28 13:05:29 -05:00
Sam Stephenson
53d45707ca Add Homebrew to the readme 2011-09-28 12:19:47 -05:00
Sam Stephenson
828051e651 Move intro line above the fold 2011-09-28 12:19:46 -05:00
Joshua Peek
149e61a649 Don't exit out of piped loop
Can cause the stdin of cat to close too soon causing:

  echo: write error: Broken pipe

Fixes #97
2011-09-28 12:08:34 -05:00
Sam Stephenson
4712db8edd Add version history 2011-09-28 12:01:44 -05:00
Sam Stephenson
7ba843c585 Add upgrade instructions 2011-09-28 11:20:36 -05:00
Sam Stephenson
26a08c6d12 Add upgrade instructions 2011-09-28 11:20:15 -05:00
Sam Stephenson
72b62e13aa Make rbenv help a little nicer 2011-09-28 10:59:02 -05:00
Sam Stephenson
09d912895f Fix markdown indentation 2011-09-28 10:51:09 -05:00
Sam Stephenson
ada26ab92e Document rbenv which and rbenv whence 2011-09-28 10:48:04 -05:00
Sam Stephenson
058e2cb7a6 Add rbenv shell to help 2011-09-28 10:21:57 -05:00
Sam Stephenson
a3d3005859 Document rbenv shell 2011-09-28 10:13:28 -05:00
Sam Stephenson
c954d57555 Add /plugins to .gitignore 2011-09-28 09:46:17 -05:00
Sam Stephenson
0a4ffcd15f Global version file is now ${RBENV_ROOT}/version
This is the last time it'll change. Promise.
2011-09-28 09:45:58 -05:00
Sam Stephenson
65bf6279fa Always set RBENV_DIR in ruby-local-exec 2011-09-27 15:53:08 -05:00
Sam Stephenson
07815769ae RBENV_DIR sets the directory from which .rbenv-version files are scanned 2011-09-27 15:50:39 -05:00
Sam Stephenson
a3deeba0a0 Merge pull request #102 from sstephenson/plugins
Plugin bundles
2011-09-23 10:55:45 -07:00
Sam Stephenson
10084ae020 Automatically add ${RBENV_ROOT}/plugins/*/etc/rbenv.d to $RBENV_HOOK_PATH 2011-09-23 10:47:45 -05:00
Sam Stephenson
8ce5e84c21 Automatically add ${RBENV_ROOT}/plugins/*/bin to $PATH 2011-09-23 10:44:00 -05:00
Sam Stephenson
f9fb3c934e rbenv-plugin-scripts -> rbenv-hooks; RBENV_PLUGIN_PATH -> RBENV_HOOK_PATH 2011-09-23 10:43:06 -05:00
Joshua Peek
eae5e5e092 realpath plugin scripts 2011-09-22 19:15:00 -05:00
Joshua Peek
a238099e38 Include /usr/local/etc hooks 2011-09-22 19:08:03 -05:00
Sam Stephenson
7d9989ff58 Merge pull request #96 from sstephenson/plugin-config
Plugin Config
2011-09-21 11:09:32 -07:00
Sam Stephenson
699cd8c203 Quote script path and remove unnecessary semicolon 2011-09-21 13:05:08 -05:00
Sam Stephenson
096743acde Add support for RBENV_PLUGIN_PATH environment variable 2011-09-21 13:00:23 -05:00
Sam Stephenson
0c7c62dc04 Show usage if no arguments are passed to rbenv-plugin-scripts 2011-09-21 12:43:22 -05:00
Joshua Peek
2b5fb40b99 Not exec specific 2011-09-21 12:39:26 -05:00
Joshua Peek
96b98ed039 Use plugin-scripts 2011-09-21 12:38:58 -05:00
Joshua Peek
789ace54ec Add bin to list plugin scripts 2011-09-21 12:36:07 -05:00
Sam Stephenson
d289998250 Merge pull request #92 from carsomyr/master
Restore the current working directory in rbenv-rehash
2011-09-21 09:47:11 -07:00
Joshua Peek
5cf661517b Merge pull request #91 from javierjulio/docs-rbenv-install-command-for-ruby-build
Using simpler rbenv-install command in ruby-build section
2011-09-20 16:03:29 -07:00
Javier Julio
c6c6ebaf40 Updating command sample to "rbenv install", no dash 2011-09-20 10:59:27 -04:00
Roy Liu
94d87211f9 Restore the current working directory in rbenv-rehash 2011-09-19 10:45:12 -04:00
Javier Julio
919fc872c8 Using simpler rbenv-install command in ruby-build section 2011-09-17 17:38:09 -04:00
Sam Stephenson
305db1c35b Fix rbenv-completions for shell commands. Closes #90. 2011-09-16 14:18:29 -05:00
Sam Stephenson
568cd4b23e Strip trailing slashes from RBENV_ROOT (#83) 2011-09-14 12:45:44 -05:00
Sam Stephenson
b4f8906b24 Update zsh completion adapter 2011-09-13 13:12:04 -05:00
Sam Stephenson
465a1472ba Completion for which 2011-09-13 13:02:55 -05:00
Sam Stephenson
3644840d4b Show usage for rbenv which without an argument 2011-09-13 13:01:31 -05:00
Sam Stephenson
03d664e048 Completion for whence 2011-09-13 12:59:59 -05:00
Sam Stephenson
61830048d5 Extract rbenv-shims 2011-09-13 12:55:19 -05:00
Sam Stephenson
69d596f56f Completion for commands 2011-09-13 12:48:49 -05:00
Sam Stephenson
4923838981 Completion for exec 2011-09-13 12:46:06 -05:00
Sam Stephenson
f1ca8906c0 Completions for global, local, prefix, shell 2011-09-13 12:38:34 -05:00
Sam Stephenson
43520db389 Fix rbenv prefix system 2011-09-13 12:37:29 -05:00
Sam Stephenson
d50ce90a36 Add --unset to local completion 2011-09-13 12:33:46 -05:00
Sam Stephenson
6da85246c6 Proof-of-concept external completions 2011-09-13 10:13:27 -05:00
Sam Stephenson
eefd5ea47d Merge pull request #82 from sstephenson/shims-set-root
Shims set RBENV_ROOT
2011-09-12 18:45:01 -07:00
Joshua Peek
964c12fe27 Ensure shims set RBENV_ROOT 2011-09-12 11:05:45 -05:00
Sam Stephenson
0632325a43 Set RBENV_DEBUG=1 to see what's going on under the hood 2011-09-12 10:11:59 -05:00
Sam Stephenson
2e3e141d2e RBENV_ROOT defaults to ~/.rbenv 2011-09-11 12:05:56 -05:00
Sam Stephenson
c36950a7cb RBENV_HOME -> RBENV_ROOT 2011-09-11 12:04:59 -05:00
Sam Stephenson
8f6b0bc1d4 Use RBENV_ROOT to search for rbenv-exec plugins 2011-09-11 12:00:02 -05:00
Sam Stephenson
7ac964353f RBENV_HOME -> RBENV_ROOT 2011-09-11 11:58:57 -05:00
Sam Stephenson
c6ce8fafd8 Merge remote-tracking branch 'alexrinass/systemwide' 2011-09-11 11:28:54 -05:00
Sam Stephenson
6fa81ef28d Add rbenv local --unset 2011-09-11 10:16:22 -05:00
Sam Stephenson
e5c0fd22e1 Exit with 0 status when a version file is read successfully 2011-09-11 10:16:08 -05:00
Sam Stephenson
96679b7715 Don't leak local variables 2011-09-10 20:13:42 -05:00
Sam Stephenson
ed9f69fe23 Fix zsh autocompletion. Closes #47. 2011-09-10 20:10:07 -05:00
Sam Stephenson
fb6eee26d4 Only shift if an argument is passed. Fixes #78. 2011-09-10 20:10:07 -05:00
Sam Stephenson
1ba2ce0cb6 Fix quoting in rbenv function 2011-09-10 20:10:07 -05:00
Sam Stephenson
76929320c8 Make rbenv-sh-shell consistent with rbenv-local 2011-09-10 20:10:07 -05:00
Joshua Peek
5ad45afe5e Merge pull request #81 from eric/empty_path_to_remove_in_which
Deal with an empty result from expand_path
2011-09-09 15:05:34 -07:00
Eric Lindvall
b81b64453b Deal with an empty result from expand_path 2011-09-09 15:00:59 -07:00
Sam Stephenson
db2a94d4bc rbenv-version-name returns system for empty version files. Closes #62, #65, #77. 2011-09-09 15:52:31 -05:00
Sam Stephenson
579a398e4e Merge pull request #56 from mybuddymichael/gitignore
Ignore /global instead of /default
2011-09-09 13:25:23 -07:00
Joshua Peek
783a5700c4 reset isn't standard 2011-09-09 10:45:23 -05:00
Joshua Peek
63f29341d5 Merge pull request #80 from lordzork/master
rbenv-sh-shell enhancements
2011-09-09 08:44:59 -07:00
Timothy King
555472210b Adds sh-shell subcommand to unset RBENV_VERSION 2011-09-09 08:22:03 -04:00
Timothy King
39497042bc Adds error handling to rbenv-sh-shell 2011-09-09 08:18:14 -04:00
Sam Stephenson
837bfc5aa9 Fix rbenv-version-file-read for version files without trailing newlines 2011-09-07 14:46:33 -05:00
Joshua Peek
042794b651 use -> shell 2011-09-07 10:26:11 -05:00
Joshua Peek
d14529461b Version autocomplete use command 2011-09-06 22:07:21 -05:00
Joshua Peek
c928ba7a21 Include sh commands in default listing 2011-09-06 22:07:05 -05:00
Joshua Peek
75f65a980b Merge pull request #57 from sstephenson/sh
SH dispatch
2011-09-06 19:58:26 -07:00
Alexander Rinass
5130f0464a Support install locations other than $HOME/.rbenv.
Define RBENV_HOME env variable in libexec/rbenv and let all script delegates use this variable to determine rbenv's install location.
2011-08-25 09:28:01 +02:00
Joshua Peek
bff38d7e71 use command 2011-08-23 11:35:06 -05:00
Joshua Peek
f9225d9cb4 Define lightweight rbenv shell function to dispatch commands 2011-08-23 11:34:42 -05:00
Joshua Peek
5a4bee6eb5 List sh commands separately 2011-08-23 11:34:03 -05:00
Michael Hanson
a6727bf9ed Ignore /global instead of /default 2011-08-22 07:05:15 -07:00
Sam Stephenson
aade3ad781 Sync mdtoc source 2011-08-18 15:53:48 -05:00
Sam Stephenson
af36d449bf Exit after printing usage in rbenv-version-file-write 2011-08-18 15:28:35 -05:00
Sam Stephenson
5be66da9f4 Rename rbenv-default to rbenv-global 2011-08-18 14:35:00 -05:00
Sam Stephenson
53d55eb08c Update completions 2011-08-18 14:13:20 -05:00
Sam Stephenson
506bc3634f Extract rbenv-version-file{,-read,-write} 2011-08-18 14:11:40 -05:00
Sam Stephenson
1d5c6531a2 Improve deprecation notice 2011-08-18 14:09:48 -05:00
Sam Stephenson
20425c297f Avoid passive voice 2011-08-18 12:57:36 -05:00
Sam Stephenson
174e101799 Merge remote-tracking branch 'gma/drop-set-prefix' into drop-set-prefix 2011-08-18 12:50:06 -05:00
Sam Stephenson
113e037646 Move the nullglob declaration further up so a '*' shim isn't created when no Ruby versions are present. Fixes #45. 2011-08-17 17:53:37 -05:00
Sam Stephenson
1411fa5a16 Add experimental ruby-local-exec 2011-08-17 17:35:23 -05:00
Sam Stephenson
7bbfecd9af Working on 0.2.0-pre now 2011-08-17 17:35:04 -05:00
Sam Stephenson
09291712ed Merge pull request #43 from mudge/patch-1
Solaris doesn't support readlink so use greadlink if available instead.
2011-08-16 14:43:08 -07:00
Paul Mucur
b7e19b4953 Solaris doesn't support readlink so use greadlink if available instead.
Taken from Ryan Tomayko's "GNU is killing Solaris", c.f. http://tomayko.com/writings/gnu-is-killing-solaris
2011-08-16 22:26:57 +01:00
Sam Stephenson
49ecbe147f rbenv 0.1.2 2011-08-16 00:16:17 -05:00
Sam Stephenson
b45bce80ca Source the zsh autocompletion script in rbenv-init 2011-08-16 00:13:12 -05:00
Sam Stephenson
3cd08f7c09 Merge remote-tracking branch 'GutenYe/zsh' 2011-08-16 00:09:38 -05:00
Sam Stephenson
71b5965540 Use read instead of egrep for reading version files. Closes #41. 2011-08-16 00:01:03 -05:00
Guten
1700206da8 add zsh completion 2011-08-16 12:43:58 +08:00
Sam Stephenson
6d6b1d6002 Run rbenv rehash on init 2011-08-15 01:18:04 -05:00
Sam Stephenson
dd8a005c7d Atomic rehash 2011-08-15 01:16:13 -05:00
Sam Stephenson
3efdf6a243 Guard against nonexistent entries in $PATH 2011-08-14 14:16:26 -05:00
Sam Stephenson
bd1e56ff37 rbenv 0.1.1 2011-08-14 13:51:51 -05:00
Sam Stephenson
e43a2039a5 Sync mdtoc source 2011-08-14 13:48:41 -05:00
Sam Stephenson
8dd666992e Merge pull request #35 from sj26/master
--help / -h should work as expected
2011-08-14 11:38:21 -07:00
Joshua Peek
01ddcd7f1d Merge pull request #24 from chrisledet/master
Use $HOME when specifying installation prefix
2011-08-14 11:24:36 -07:00
Samuel Cochran
a14095f299 Add "-h" and "--help" which work as expected 2011-08-14 21:30:13 +08:00
Graham Ashton
1ed231cb21 Report default or local version.
If no argument is passed to the default or local sub commands, report
the currently configured version.
2011-08-13 08:26:54 +01:00
Graham Ashton
7a0cde9a4e Remove set- prefix from local and default commands. 2011-08-13 08:26:54 +01:00
Joshua Peek
83ced494fa Merge pull request #26 from ndreas/master
/usr/bin/env bash -e does not work on some platforms
2011-08-12 09:55:23 -07:00
Sam Stephenson
8685c899ba Let's not bruise any egos 2011-08-12 10:51:58 -05:00
Andreas Johansson
6938692ca2 Fix argument that cannot be sent to bash via env
/usr/bin/env seems to have problems with arguments to bash on some
platforms. To bypass this, use set -e instead.
2011-08-12 11:33:45 +02:00
Chris Ledet
b4c100e149 use HOME variable when specifying the install dir 2011-08-11 22:19:33 -04:00
Sam Stephenson
398e963312 Merge pull request #18 from cdmwebs/master
Typo in rbenv-help
2011-08-11 14:48:55 -07:00
Chris Moore
aae721c5f1 fix typo in rbenv help 2011-08-11 17:43:57 -04:00
Sam Stephenson
5c11f14c9b rbenv 0.1.0 2011-08-11 14:48:40 -05:00
Sam Stephenson
dfe9889327 Fix ruby-build link 2011-08-11 14:41:24 -05:00
Sam Stephenson
192dc23998 Try a different image url 2011-08-11 14:29:52 -05:00
Sam Stephenson
6c468d6166 Don't highlight the anchors 2011-08-11 14:26:53 -05:00
Sam Stephenson
bfa71017ae Add TOC header 2011-08-11 14:25:08 -05:00
Sam Stephenson
066d63c0df Use mdtoc for the readme 2011-08-11 14:21:15 -05:00
Sam Stephenson
7c8da88df6 Add a screenshot 2011-08-11 14:12:01 -05:00
Sam Stephenson
06bf3a351a Add a note about rvm compatibility 2011-08-11 13:28:02 -05:00
Sam Stephenson
f8f49fd565 Document rbenv-rehash 2011-08-11 13:25:54 -05:00
Sam Stephenson
77964fb83e Simplify 2011-08-11 13:25:47 -05:00
Sam Stephenson
b4a91648eb Hard-wrap 2011-08-11 13:11:37 -05:00
Sam Stephenson
e8d010f33c Fix italics 2011-08-11 12:53:20 -05:00
Sam Stephenson
a804b5eb21 Add LICENSE and README.md 2011-08-11 12:51:35 -05:00
Sam Stephenson
71493e8065 Typo 2011-08-10 09:31:53 -05:00
Sam Stephenson
5394347500 A few tweaks to the help text 2011-08-10 09:23:43 -05:00
Ryan Baumann
f2f8ef88a5 Implement some basic command line help 2011-08-10 09:53:34 -04:00
Sam Stephenson
3f3992d95a Merge pull request #15 from ryanfb/version_origin
Split rbenv-version into rbenv-version-name and rbenv-version-origin
2011-08-09 13:48:20 -07:00
Ryan Baumann
bd0e1a73f9 Split rbenv-version into rbenv-version-name and rbenv-version-origin, update versions, prefix, and which appropriately 2011-08-09 16:41:35 -04:00
Sam Stephenson
2a495dc9ac Prepend $PATH with the command's dirname before execing for compatibility with ruby -S 2011-08-05 10:13:30 -05:00
Sam Stephenson
2fa7432060 Fix expansion quoting 2011-08-04 01:16:16 -05:00
Sam Stephenson
9f18fe5031 Automatically create a default of system if it's missing instead of raising an error 2011-08-04 01:08:47 -05:00
Sam Stephenson
cd24495045 Silence the warning, too 2011-08-04 01:02:04 -05:00
Sam Stephenson
1235cbd0ef rbenv-versions doesn't require a default to be present 2011-08-04 01:00:08 -05:00
Sam Stephenson
f84dc27c58 Autocreate ~/.rbenv skeleton in rbenv-init 2011-08-04 00:48:37 -05:00
Sam Stephenson
4ee92fca43 Bare rbenv init prints a message; rbenv init - prints the init script 2011-08-04 00:45:40 -05:00
Sam Stephenson
00b8b4db33 Don't need to test if the shims directory is present since rbenv-rehash creates it 2011-08-03 23:53:52 -05:00
Joshua Peek
917b3687cb Export $PATH on init 2011-08-03 23:46:24 -05:00
Joshua Peek
4714b5bd4e Merge pull request #13 from sstephenson/init
init command
2011-08-03 21:26:58 -07:00
Joshua Peek
271bfea97d Don't rehash on init for now 2011-08-03 23:26:37 -05:00
Joshua Peek
70e1f61337 Quote path 2011-08-03 23:20:19 -05:00
Joshua Peek
df61a76ab0 Add init command 2011-08-03 23:16:28 -05:00
Sam Stephenson
fffb29d695 Speed up rbenv-rehash by using hard links 2011-08-03 22:57:27 -05:00
Sam Stephenson
7ce04a6e03 Merge branch 'system' 2011-08-03 22:29:57 -05:00
Sam Stephenson
f904d1b92f Complete versions for rbenv set-local and rbenv prefix too 2011-08-03 22:28:30 -05:00
Sam Stephenson
ccf7c29fc4 Simplify _rbenv_versions 2011-08-03 22:22:45 -05:00
Sam Stephenson
e4a040f1e0 Defer to rbenv commands 2011-08-03 22:20:25 -05:00
Sam Stephenson
3b13dc9c14 Add rbenv-commands 2011-08-03 22:20:01 -05:00
Jamis Buck
5d8c40444d iterate over all matching plugins, not just the first 2011-08-03 20:55:03 -06:00
Sam Stephenson
df034f5d35 Defer to rbenv versions instead of reading ~/.rbenv/versions manually 2011-08-03 21:50:03 -05:00
Sam Stephenson
f7c463bed9 Rename helpers 2011-08-03 21:43:40 -05:00
Sam Stephenson
4e79ba15f7 Match style 2011-08-03 20:44:29 -05:00
Sam Stephenson
2099355ad5 Pull in @telemachus' Bash autocompletion defintion from https://gist.github.com/1122379 2011-08-03 20:41:06 -05:00
Sam Stephenson
c3089c8439 Merge pull request #11 from telemachus/param-expansion
Use parameter expansion for basename + dirname
2011-08-03 17:57:52 -07:00
Peter Aronoff
67d3d6b12d Use parameter expansion for basename + dirname
These are built-ins, and they're used elsewhere in the code.
2011-08-03 20:04:42 -04:00
Jamis Buck
b6ebc2f08b look for plugins to extend rehash and which 2011-08-03 11:17:28 -06:00
Sam Stephenson
e0e2d93639 Add support for RBENV_VERSION=system 2011-08-03 08:39:56 -05:00
Jamis Buck
a9837f3a06 look for plugin scripts to extend functionality 2011-08-03 07:28:50 -06:00
Sam Stephenson
4668a2e2ed rbenv-whence requires a command argument 2011-08-03 00:06:23 -05:00
Sam Stephenson
a62bd23ba2 Show which versions of Ruby have a command installed when rbenv-which fails 2011-08-02 23:53:23 -05:00
Sam Stephenson
d257b562e5 Add rbenv-whence to show you which versions of Ruby have a given command 2011-08-02 23:48:07 -05:00
Sam Stephenson
652135db7f Add --bare option to rbenv-versions 2011-08-02 23:19:37 -05:00
Sam Stephenson
86362408f1 rbenv-path -> rbenv-prefix 2011-08-02 23:11:10 -05:00
Sam Stephenson
735a2bc4e7 Consistent style 2011-08-02 23:05:24 -05:00
Joshua Peek
044eb6c802 Merge branch 'master' into libexec 2011-08-02 19:49:57 -05:00
Joshua Peek
643817fa1c Fix permissions on rehash 2011-08-02 19:49:41 -05:00
Joshua Peek
d65141c7b5 Merge branch 'master' into libexec
Conflicts:
	bin/rbenv
	libexec/rbenv-shim
2011-08-02 19:41:03 -05:00
Joshua Peek
15356aebc6 Merge pull request #9 from sstephenson/cp-shim
Copies bins into shims/ instead of symlinking
2011-08-02 17:39:07 -07:00
Joshua Peek
eccdec3740 Merge branch 'master' into cp-shim
Conflicts:
	bin/rbenv-shim
2011-08-02 19:38:35 -05:00
Joshua Peek
6df306d8f8 Quote $@ 2011-08-02 19:37:18 -05:00
Sam Stephenson
55ce7850ad Merge pull request #4 from telemachus/env
Use /usr/bin/env rather than /bin/bash
2011-08-02 17:20:33 -07:00
Joshua Peek
ce8d3278a4 Use $shim var 2011-08-02 18:55:14 -05:00
Joshua Peek
06228d3583 Copies bins into shims/ instead of symlinking
Fixes #6
2011-08-02 18:50:44 -05:00
Peter Aronoff
ad2c605d3f Use /usr/bin/env rather than /bin/bash 2011-08-02 19:11:41 -04:00
Joshua Peek
43624943ee Move subcommands into libexec/ 2011-08-02 18:01:46 -05:00
Sam Stephenson
8f9a34d9b1 Merge pull request #2 from sstephenson/shebang-flag
Shebang -e flag
2011-08-02 15:46:01 -07:00
Joshua Peek
c957d83b3a Shebang -e flag 2011-08-02 17:43:43 -05:00
Jamis Buck
41c5ac5a33 the initial case has an empty directory, so force rm to avoid errors 2011-08-03 04:26:53 +08:00
Sam Stephenson
e9881119d8 Ignore local files 2011-08-02 15:25:37 -05:00
Sam Stephenson
355e7c1c96 Create ~/.rbenv/shims if it doesn't exist 2011-08-02 15:23:26 -05:00
Sam Stephenson
8246dc8d8a Avoid globals 2011-08-02 12:21:30 -05:00
Sam Stephenson
fb31290b9d More argument quoting 2011-08-02 12:21:09 -05:00
Sam Stephenson
4acefd6ef9 Properly quote arguments with spaces 2011-08-02 09:38:36 -05:00
Sam Stephenson
0c66f62c17 Style 2011-08-01 16:43:19 -05:00
Sam Stephenson
b5d030bee7 -e 2011-08-01 16:39:00 -05:00
Sam Stephenson
6ec91083d8 Add rbenv-set-local 2011-08-01 16:22:35 -05:00
Sam Stephenson
af6b06743b Extract rbenv-path 2011-08-01 16:22:26 -05:00
Sam Stephenson
1da746543f Add missing set -e 2011-08-01 15:56:52 -05:00
Sam Stephenson
99035a49a9 Initial commit 2011-08-01 15:50:26 -05:00
1260 changed files with 41257 additions and 3256 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

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']

26
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,26 @@
Too many issues will kill our team's development velocity, drastically.
Make sure you have checked all steps below.
### Prerequisite
* [ ] 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). You should look for closed issues, too.
* [ ] Make sure you are not asking us to help solving your specific issue.
* GitHub issues is opened mainly for development purposes. If you want to ask someone to help solving your problem, go to some community site like [Gitter](https://gitter.im/yyuu/pyenv), [StackOverflow](https://stackoverflow.com/questions/tagged/pyenv), etc.
* [ ] 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.
### Description
- [ ] Platform information (e.g. Ubuntu Linux 16.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:
* 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`.

16
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,16 @@
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.
* [ ] Please consider contributing the patch upstream to [rbenv](https://github.com/rbenv/rbenv), since we have borrowed most of the code from that project.
* We occasionally import the changes from rbenv. In general, you can expect changes made in rbenv will be imported to pyenv too, eventually.
* Generally speaking, we prefer not to make changes in the core in order to keep compatibility with rbenv.
* [ ] 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)

10
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
groups:
github-actions:
patterns:
- "*"

43
.github/workflows/macos_build.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: macos_build
on: [pull_request, push]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
macos_build:
strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
runs-on: macos-14
steps:
- uses: actions/checkout@v4
# Normally, we would use the superbly maintained...
# - uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}
# ... but in the repo, we want to test pyenv builds on macOS
- run: |
brew install openssl readline sqlite3 xz zlib
# https://github.com/pyenv/pyenv#installation
- run: pwd
- env:
PYENV_ROOT: /Users/runner/work/pyenv/pyenv
run: |
echo $PYENV_ROOT
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
bin/pyenv --debug install ${{ matrix.python-version }}
bin/pyenv global ${{ matrix.python-version }}
bin/pyenv rehash
- run: python --version
- run: python -m pip --version
- shell: python # Prove that actual Python == expected Python
env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON"))

View File

@@ -0,0 +1,269 @@
name: modified_scripts
on: [pull_request]
jobs:
discover_modified_scripts:
runs-on: ubuntu-latest
outputs:
versions: ${{steps.modified-versions.outputs.versions}}
steps:
- uses: actions/checkout@v4
- 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 $1.$2; }' \
| 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:]]' <<<"$version")
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;
- 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
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-13", "macos-14"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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 openssl@1.1 readline sqlite3 xz zlib
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 }}
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-13", "macos-14"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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 zlib
"$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline
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 }}
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/*
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-24.04"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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
sudo apt-get update -q; sudo apt-get install -yq make build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
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 install -v ${{ matrix.python-version }}
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
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)}}
os: ["ubuntu-latest"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- 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_PATH
- run: |
#prerequisites
sudo apt-get update -q; sudo apt-get install -yq make build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev
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 install -v ${{ matrix.python-version }}
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

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 hour
- cron: '10 * * * *'
permissions: {}
jobs:
noResponse:
permissions:
issues: write # to update issues (lee-dohm/no-response)
runs-on: ubuntu-latest
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.

49
.github/workflows/pyenv_tests.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: pyenv_tests
on: [pull_request, push]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
pyenv_tests:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-24.04
- ubuntu-22.04
- macos-14
- macos-13
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
# Normally, we would use the superbly maintained...
# - uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}
# ... but in the repo, we want to test pyenv builds on Ubuntu
# - run: |
# sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
# libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
# xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# https://github.com/pyenv/pyenv#installation
- run: |
if test "$RUNNER_OS" == "macOS"; then
brew install coreutils fish
elif [[ $(lsb_release -sr | awk -F. '{print $1}') -ge 20 ]]; then
# Ubuntu 18 has fish 2 which lacks many features that facilitate testing
sudo apt install fish -yq
fi
- run: pwd
- env:
PYENV_ROOT: /home/runner/work/pyenv/pyenv
run: |
echo $PYENV_ROOT
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
- run: |
make test
- env:
PYENV_NATIVE_EXT: 1
run: |
(cd src; ./configure; make)
bats/bin/bats test/{pyenv,hooks,versions}.bats

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[@]}"

45
.github/workflows/ubuntu_build.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: ubuntu_build
on: [pull_request, push]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
ubuntu_build:
strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Normally, we would use the superbly maintained...
# - uses: actions/setup-python@v2
# with:
# python-version: ${{ matrix.python-version }}
# ... but in the repo, we want to test pyenv builds on Ubuntu
- run: |
sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# https://github.com/pyenv/pyenv#installation
- run: pwd
- env:
PYENV_ROOT: /home/runner/work/pyenv/pyenv
run: |
echo $PYENV_ROOT
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
bin/pyenv --debug install ${{ matrix.python-version }}
bin/pyenv global ${{ matrix.python-version }}
bin/pyenv rehash
- run: python --version
- run: python -m pip --version
- shell: python # Prove that actual Python == expected Python
env:
EXPECTED_PYTHON: ${{ matrix.python-version }}
run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON"))

10
.gitignore vendored
View File

@@ -1,6 +1,12 @@
/build
/cache
/shims /shims
/version /version
/versions /versions
/sources /sources
/cache
/libexec/*.dylib
/src/Makefile
/src/*.o
/bats/
/default-packages
.idea
*.un~

View File

@@ -1,6 +0,0 @@
install: git clone --depth 1 https://github.com/sstephenson/bats.git
script: script/test
language: c
notifications:
email:
on_success: never

1
.vimrc Normal file
View File

@@ -0,0 +1 @@
set wildignore+=versions/*,cache/*

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,11 @@
# Command Reference # Command Reference
Like `git`, the `pyenv` command delegates to subcommands based on its Like `git`, the `pyenv` command delegates to subcommands based on its
first argument. first argument.
The most common subcommands are: The most common subcommands are:
* [`pyenv help`](#pyenv-help)
* [`pyenv commands`](#pyenv-commands) * [`pyenv commands`](#pyenv-commands)
* [`pyenv local`](#pyenv-local) * [`pyenv local`](#pyenv-local)
* [`pyenv global`](#pyenv-global) * [`pyenv global`](#pyenv-global)
@@ -16,6 +17,18 @@ The most common subcommands are:
* [`pyenv versions`](#pyenv-versions) * [`pyenv versions`](#pyenv-versions)
* [`pyenv which`](#pyenv-which) * [`pyenv which`](#pyenv-which)
* [`pyenv whence`](#pyenv-whence) * [`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` ## `pyenv commands`
@@ -78,6 +91,10 @@ or, if you prefer 3.3.3 over 2.7.6,
Python 3.3.3 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` ## `pyenv global`
Sets the global version of Python to be used in all shells by writing Sets the global version of Python to be used in all shells by writing
@@ -185,14 +202,15 @@ or, if you prefer 3.3.3 over 2.7.6,
## `pyenv install` ## `pyenv install`
Install a Python version (using `python-build`). Install a Python version (using [`python-build`](https://github.com/pyenv/pyenv/tree/master/plugins/python-build)).
Usage: pyenv install [-f] [-kvp] <version> Usage: pyenv install [-f] [-kvp] <version>
pyenv install [-f] [-kvp] <definition-file> pyenv install [-f] [-kvp] <definition-file>
pyenv install -l|--list pyenv install -l|--list
-l/--list List all available versions -l/--list List all available versions
-f/--force Install even if the version appears to be installed already -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: python-build options:
@@ -202,12 +220,38 @@ Install a Python version (using `python-build`).
-p/--patch Apply a patch from stdin before building -p/--patch Apply a patch from stdin before building
-g/--debug Build a debug version -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
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
To install the latest major release for Python 3 try:
pyenv install 3:latest
## `pyenv uninstall` ## `pyenv uninstall`
Uninstall a specific Python version. Uninstall Python versions.
Usage: pyenv uninstall [-f|--force] <version> Usage: pyenv uninstall [-f|--force] <version> ...
-f Attempt to remove the specified version without prompting -f Attempt to remove the specified version without prompting
for confirmation. If the version does not exist, do not for confirmation. If the version does not exist, do not
@@ -254,6 +298,8 @@ you run the given command.
$ pyenv which python3.3 $ pyenv which python3.3
/home/yyuu/.pyenv/versions/3.3.3/bin/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` ## `pyenv whence`
@@ -264,23 +310,96 @@ Lists all Python versions with the given command installed.
2.7.6 2.7.6
3.3.3 3.3.3
## `pyenv exec`
## `pyenv install` Usage: pyenv exec <command> [arg1 arg2...]
Part of [Python-build](https://github.com/yyuu/pyenv/tree/master/plugins/python-build), this installs versions of python Runs an executable by first preparing PATH so that the selected Python
version's `bin` directory is at the front.
$ pyenv install 2.7.6 For example, if the currently selected Python version is 3.9.7:
$ pyenv install 2.6.8
$ pyenv versions
system
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
pyenv exec pip install -r requirements.txt
is equivalent to:
## `pyenv install --list` PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt
List available remote versions of Python, including Anaconda, Jython, pypy, and stackless ## `pyenv root`
$ pyenv install --list 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] [-q|--quiet] <prefix>
-k/--known Select from all known versions instead of installed
-q/--quiet Do not print an error message on resolution failure
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>])"
- Initialize shims directory, print PYENV_SHELL variable, completions path
and shell function
--path Print shims path
--no-push-path Do not push shim to the start of PATH if they're already there
--no-rehash Add no rehash command to output
## `pyenv completions`
Lists available completions for a given pyenv command.
Usage: pyenv completions <command> [arg1 arg2...]

80
CONDUCT.md Normal file
View File

@@ -0,0 +1,80 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting one of the project maintainers listed below. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Project Maintainers
* Yamashita, Yuu <<peek824545201@gmail.com>>
* Daniel Hahler <<git@thequod.de>>
* Josh Friend <<josh@fueledbycaffeine.com>>
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

109
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,109 @@
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.
* Be extra careful when submitting logic specific for the Apple Silicon platform
As of this writing, Github Actions do not support it and only one team member has the necessary hardware.
So we may be unable to test your changes and may have to take your word for it.
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.

35
Dockerfile Normal file
View File

@@ -0,0 +1,35 @@
FROM ubuntu:18.04
LABEL maintainer="Chris L. Barnes <chrislloydbarnes@gmail.com>"
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y \
&& apt-get install -y \
make \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
wget \
curl \
llvm \
libncurses5-dev \
libncursesw5-dev \
xz-utils \
tk-dev \
libffi-dev \
liblzma-dev \
python-openssl \
git \
&& rm -rf /var/lib/apt/lists/*
ENV PYENV_ROOT "/pyenv"
ENV PATH "$PYENV_ROOT/bin:$PATH"
COPY . /pyenv
RUN eval "$(pyenv init -)"

17
MAINTENANCE.md Normal file
View File

@@ -0,0 +1,17 @@
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)
* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section)
* Push the version number in `libexec/pyenv---version`
* 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.

View File

@@ -1,8 +1,29 @@
test: build/bats/bin/bats .PHONY: test test-build test-unit test-plugin
build/bats/bin/bats --tap test
cd plugins/python-build && $(PWD)/build/bats/bin/bats --tap test
build/bats/bin/bats: # Do not pass in user flags to build tests.
git clone https://github.com/sstephenson/bats.git build/bats unexport PYTHON_CFLAGS
unexport PYTHON_CONFIGURE_OPTS
.PHONY: test test: test-unit test-plugin
test-unit: bats
PATH="./bats/bin:$$PATH" test/run
test-plugin: bats
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test
PYTHON_BUILD_ROOT := $(CURDIR)/plugins/python-build
PYTHON_BUILD_OPTS ?= --verbose
PYTHON_BUILD_VERSION ?= 3.8-dev
PYTHON_BUILD_TEST_PREFIX ?= $(PYTHON_BUILD_ROOT)/test/build/tmp/dist
test-build:
$(RM) -r $(PYTHON_BUILD_TEST_PREFIX)
$(PYTHON_BUILD_ROOT)/bin/python-build $(PYTHON_BUILD_OPTS) $(PYTHON_BUILD_VERSION) $(PYTHON_BUILD_TEST_PREFIX)
[ -e $(PYTHON_BUILD_TEST_PREFIX)/bin/python ]
$(PYTHON_BUILD_TEST_PREFIX)/bin/python -V
[ -e $(PYTHON_BUILD_TEST_PREFIX)/bin/pip ]
$(PYTHON_BUILD_TEST_PREFIX)/bin/pip -V
bats:
git clone --depth 1 --branch v1.2.0 https://github.com/bats-core/bats-core.git bats

835
README.md
View File

@@ -1,25 +1,22 @@
# Simple Python Version Management: pyenv # Simple Python Version Management: pyenv
[![Build Status](https://travis-ci.org/yyuu/pyenv.png)](https://travis-ci.org/yyuu/pyenv) [![Join the chat at https://gitter.im/yyuu/pyenv](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/yyuu/pyenv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
pyenv lets you easily switch between multiple versions of Python. It's pyenv lets you easily switch between multiple versions of Python. It's
simple, unobtrusive, and follows the UNIX tradition of single-purpose simple, unobtrusive, and follows the UNIX tradition of single-purpose
tools that do one thing well. tools that do one thing well.
This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
[ruby-build](https://github.com/sstephenson/ruby-build), and modified for Python. [ruby-build](https://github.com/rbenv/ruby-build), and modified for Python.
<img src="http://gyazo.com/9c829fafdf5e58880c820349c4e9197e.png?1346414267" width="849" height="454" /> ### What pyenv _does..._
* Lets you **change the global Python version** on a per-user basis.
### pyenv _does..._ * Provides support for **per-project Python versions**.
* Allows you to **override the Python version** with an environment
* Let you **change the global Python version** on a per-user basis.
* Provide support for **per-project Python versions**.
* Allow you to **override the Python version** with an environment
variable. variable.
* Search commands from **multiple versions of Python at a time**. * Searches for commands from **multiple versions of Python at a time**.
This may be helpful to test across Python versions with [tox](http://pypi.python.org/pypi/tox). This may be helpful to test across Python versions with [tox](https://pypi.python.org/pypi/tox).
### In contrast with pythonbrew and pythonz, pyenv _does not..._ ### In contrast with pythonbrew and pythonz, pyenv _does not..._
@@ -27,9 +24,9 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
* **Depend on Python itself.** pyenv was made from pure shell scripts. * **Depend on Python itself.** pyenv was made from pure shell scripts.
There is no bootstrap problem of Python. There is no bootstrap problem of Python.
* **Need to be loaded into your shell.** Instead, pyenv's shim * **Need to be loaded into your shell.** Instead, pyenv's shim
approach works by adding a directory to your `$PATH`. approach works by adding a directory to your `PATH`.
* **Manage virtualenv.** Of course, you can create [virtualenv](http://pypi.python.org/pypi/virtualenv) * **Manage virtualenv.** Of course, you can create [virtualenv](https://pypi.python.org/pypi/virtualenv)
yourself, or [pyenv-virtualenv](https://github.com/yyuu/pyenv-virtualenv) yourself, or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)
to automate the process. to automate the process.
@@ -38,25 +35,492 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
## Table of Contents ## Table of Contents
* **[Installation](#installation)**
* [Getting Pyenv](#a-getting-pyenv)
* [Linux/UNIX](#linuxunix)
* [Automatic Installer](#1-automatic-installer-recommended)
* [Basic GitHub Checkout](#2-basic-github-checkout)
* [MacOS](#macos)
* [Homebrew in macOS](#homebrew-in-macos)
* [Windows](#windows)
* [Set up your shell environment for Pyenv](#b-set-up-your-shell-environment-for-pyenv)
* [Restart your shell](#c-restart-your-shell)
* [Install Python build dependencies](#d-install-python-build-dependencies)
* [Upgrade Notes](#e-upgrade-notes)
* **[Usage](#usage)**
* [Install additional Python versions](#install-additional-python-versions)
* [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version)
* [Switch between Python versions](#switch-between-python-versions)
* [Making multiple versions available](#making-multiple-versions-available)
* [Uninstall Python versions](#uninstall-python-versions)
* [Other operations](#other-operations)
* [Upgrading](#upgrading)
* [Upgrading with Homebrew](#upgrading-with-homebrew)
* [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout)
* [Uninstalling pyenv](#uninstalling-pyenv)
* [Pyenv plugins](#pyenv-plugins)
* **[How It Works](#how-it-works)** * **[How It Works](#how-it-works)**
* [Understanding PATH](#understanding-path) * [Understanding PATH](#understanding-path)
* [Understanding Shims](#understanding-shims) * [Understanding Shims](#understanding-shims)
* [Choosing the Python Version](#choosing-the-python-version) * [Understanding Python version selection](#understanding-python-version-selection)
* [Locating the Python Installation](#locating-the-python-installation) * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations)
* **[Installation](#installation)** * [Advanced Configuration](#advanced-configuration)
* [Basic GitHub Checkout](#basic-github-checkout) * [Using Pyenv without shims](#using-pyenv-without-shims)
* [Upgrading](#upgrading) * [Environment variables](#environment-variables)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Neckbeard Configuration](#neckbeard-configuration)
* [Uninstalling Python Versions](#uninstalling-python-versions)
* **[Command Reference](#command-reference)**
* **[Development](#development)** * **[Development](#development)**
* [Contributing](#contributing)
* [Version History](#version-history) * [Version History](#version-history)
* [License](#license) * [License](#license)
---- ----
## Installation
### A. Getting Pyenv
----
#### Linux/Unix
<details>
The Homebrew option from the [MacOS section below](#macos) would also work if you have Homebrew installed.
##### 1. Automatic installer (Recommended)
```bash
curl -fsSL https://pyenv.run | bash
```
For more details visit our other project:
https://github.com/pyenv/pyenv-installer
##### 2. Basic GitHub Checkout
This will get you going with the latest version of Pyenv and make it
easy to fork and contribute any changes back upstream.
* **Check out Pyenv where you want it installed.**
A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else):
```
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
```
* Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't
worry if it fails; Pyenv will still work normally:
```
cd ~/.pyenv && src/configure && make -C src
```
</details>
#### MacOS
<details>
The options from the [Linux section above](#linuxunix) also work but Homebrew is recommended for basic usage.
##### [Homebrew](https://brew.sh) in macOS
1. Update homebrew and install pyenv:
```sh
brew update
brew install pyenv
```
If you want to install (and update to) the latest development head of Pyenv
rather than the latest release, instead run:
```sh
brew install pyenv --head
```
3. Then follow the rest of the post-installation steps, starting with
[Set up your shell environment for Pyenv](#b-set-up-your-shell-environment-for-pyenv).
4. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_
If you're going to build Homebrew formulae from source that link against Python
like Tkinter or NumPy
_(This is only generally the case if you are a developer of such a formula,
or if you have an EOL version of MacOS for which prebuilt bottles are no longer provided
and you are using such a formula)._
To avoid them accidentally linking against a Pyenv-provided Python,
add the following line into your interactive shell's configuration:
* Bash/Zsh:
~~~bash
alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew'
~~~
* Fish:
~~~fish
alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew"
~~~
</details>
#### Windows
<details>
Pyenv does not officially support Windows and does not work in Windows outside
the Windows Subsystem for Linux.
Moreover, even there, the Pythons it installs are not native Windows versions
but rather Linux versions running in a virtual machine --
so you won't get Windows-specific functionality.
If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork --
which does install native Windows Python versions.
</details>
### B. Set up your shell environment for Pyenv
----
The below setup should work for the vast majority of users for common use cases.
See [Advanced configuration](#advanced-configuration) for details and more configuration options.
#### Bash
<details>
Stock Bash startup files vary widely between distributions in which of them source
which, under what circumstances, in what order and what additional configuration they perform.
As such, the most reliable way to get Pyenv in all environments is to append Pyenv
configuration commands to both `.bashrc` (for interactive shells)
and the profile file that Bash would use (for login shells).
1. First, add the commands to `~/.bashrc` by running the following in your terminal:
```bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
```
2. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well.
If you have none of these, create a `~/.profile` and add the commands there.
* to add to `~/.profile`:
``` bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init - bash)"' >> ~/.profile
```
* to add to `~/.bash_profile`:
```bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile
```
**Bash warning**: There are some systems where the `BASH_ENV` variable is configured
to point to `.bashrc`. On such systems, you should almost certainly put the
`eval "$(pyenv init - bash)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you
may observe strange behaviour, such as `pyenv` getting into an infinite loop.
See [#264](https://github.com/pyenv/pyenv/issues/264) for details.
</details>
#### Zsh
<details>
```zsh
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
```
If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`.
</details>
#### Fish
<details>
1. If you have Fish 3.2.0 or newer, execute this interactively:
~~~ fish
set -Ux PYENV_ROOT $HOME/.pyenv
fish_add_path $PYENV_ROOT/bin
~~~
2. Otherwise, execute the snippet below:
~~~ fish
set -Ux PYENV_ROOT $HOME/.pyenv
set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths
~~~
3. Now, add this to `~/.config/fish/config.fish`:
~~~ fish
pyenv init - fish | source
~~~
</details>
### C. Restart your shell
----
for the `PATH` changes to take effect.
```sh
exec "$SHELL"
```
### D. Install Python build dependencies
----
[**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment)
before attempting to install a new Python version.
You can now begin using Pyenv.
### E. Upgrade Notes
----
**if you have upgraded from pyenv version 2.0.x-2.2.x**
<details>
The startup logic and instructions have been updated for simplicity in 2.3.0.
The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works.
* Define environment variable `PYENV_ROOT` to point to the path where
Pyenv will store its data. `$HOME/.pyenv` is the default.
If you installed Pyenv via Git checkout, we recommend
to set it to the same location as where you cloned it.
* Add the `pyenv` executable to your `PATH` if it's not already there
* run `eval "$(pyenv init -)"` to install `pyenv` into your shell as a shell function, enable shims and autocompletion
* You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration
</details>
----
## Usage
![Terminal output example](/install_local_python.gif)
### Install additional Python versions
To install additional Python versions, use [`pyenv install`](COMMANDS.md#pyenv-install).
For example, to download and install Python 3.10.4, run:
```sh
pyenv install 3.10.4
```
Running `pyenv install -l` gives the list of all available versions.
----
<details> <summary> Notes about python releases </summary>
**NOTE:** Most Pyenv-provided Python releases are source releases and are built
from source as part of installation (that's why you need Python build dependencies preinstalled).
You can pass options to Python's `configure` and compiler flags to customize the build,
see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables)
for details.
**NOTE:** If you are having trouble installing a Python version,
please visit the wiki page about
[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems).
**NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy`
environment variables.
**NOTE:** If you'd like a faster interpreter at the cost of longer build times,
see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance).
</details>
----
#### Prefix auto-resolution to the latest version
All Pyenv subcommands except `uninstall` automatically resolve full prefixes to the latest version in the corresponding version line.
`pyenv install` picks the latest known version, while other subcommands pick the latest installed version.
E.g. to install and then switch to the latest 3.10 release:
```sh
pyenv install 3.10
pyenv global 3.10
```
You can run [`pyenv latest -k <prefix>`](COMMANDS.md#pyenv-latest) to see how `pyenv install` would resolve a specific prefix, or [`pyenv latest <prefix>`](COMMANDS.md#pyenv-latest) to see how other subcommands would resolve it.
See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details.
<details> <summary> Python versions with extended support </summary>
For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments.
Though we don't actively maintain those patches, since existing releases never change,
it's safe to assume that they will continue working until there are further incompatible changes
in a later version of those environments.
* *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3
* *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3
* *2.7.18* : MacOS 10.15+ and Apple Silicon
</details>
----
### Switch between Python versions
To select a Pyenv-installed Python as the version to use, run one
of the following commands:
* [`pyenv shell <version>`](COMMANDS.md#pyenv-shell) -- select just for current shell session
* [`pyenv local <version>`](COMMANDS.md#pyenv-local) -- automatically select whenever you are in the current directory (or its subdirectories)
* [`pyenv global <version>`](COMMANDS.md#pyenv-shell) -- select globally for your user account
E.g. to select the above-mentioned newly-installed Python 3.10.4 as your preferred version to use:
~~~bash
pyenv global 3.10.4
~~~
Now whenever you invoke `python`, `pip` etc., an executable from the Pyenv-provided
3.10.4 installation will be run instead of the system Python.
Using "`system`" as a version name would reset the selection to your system-provided Python.
See [Understanding shims](#understanding-shims) and
[Understanding Python version selection](#understanding-python-version-selection)
for more details on how the selection works and more information on its usage.
----
#### Making multiple versions available
You can select multiple Python versions at the same time by specifying multiple arguments.
E.g. if you wish to use the latest installed CPython 3.11 and 3.12:
~~~bash
pyenv global 3.11 3.12
~~~
Whenever you run a command provided by a Python installation, these versions will be searched for it in the specified order.
[Due to the shims' fall-through behavior]((#understanding-python-version-selection)), `system` is always implicitly searched afterwards.
----
### Uninstall Python versions
As time goes on, you will accumulate Python versions in your
`$(pyenv root)/versions` directory.
To remove old Python versions, use [`pyenv uninstall <versions>`](COMMANDS.md#pyenv-uninstall).
Alternatively, you can simply `rm -rf` the directory of the version you want
to remove. You can find the directory of a particular Python version
with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`.
Note however that plugins may run additional operations on uninstall
which you would need to do by hand as well. E.g. Pyenv-Virtualenv also
removes any virtual environments linked to the version being uninstalled.
----
### Other operations
Run `pyenv commands` to get a list of all available subcommands.
Run a subcommand with `--help` to get help on it, or see the [Commands Reference](COMMANDS.md).
Note that Pyenv plugins that you install may add their own subcommands.
## Upgrading
### Upgrading with Homebrew
If you've installed Pyenv using Homebrew, upgrade using:
```sh
brew upgrade pyenv
```
To switch from a release to the latest development head of Pyenv, use:
```sh
brew uninstall pyenv
brew install pyenv --head
```
then you can upgrade it with `brew upgrade pyenv` as usual.
### Upgrading with Installer or Git checkout
If you've installed Pyenv with Pyenv-installer, you likely have the
[Pyenv-Update](https://github.com/pyenv/pyenv-update) plugin that would
upgrade Pyenv and all installed plugins:
```sh
pyenv update
```
If you've installed Pyenv using Pyenv-installer or Git checkout, you can also
upgrade your installation at any time using Git.
To upgrade to the latest development version of pyenv, use `git pull`:
```sh
cd $(pyenv root)
git pull
```
To upgrade to a specific release of Pyenv, check out the corresponding tag:
```sh
cd $(pyenv root)
git fetch
git tag
git checkout v0.1.0
```
## Uninstalling pyenv
The simplicity of pyenv makes it easy to temporarily disable it, or
uninstall from the system.
1. To **disable** Pyenv managing your Python versions, simply remove the
`pyenv init` invocations from your shell startup configuration. This will
remove Pyenv shims directory from `PATH`, and future invocations like
`python` will execute the system Python version, as it was before Pyenv.
`pyenv` will still be accessible on the command line, but your Python
apps won't be affected by version switching.
2. To completely **uninstall** Pyenv, remove _all_ Pyenv configuration lines
from your shell startup configuration, and then remove
its root directory. This will **delete all Python versions** that were
installed under the `` $(pyenv root)/versions/ `` directory:
```sh
rm -rf $(pyenv root)
```
If you've installed Pyenv using a package manager, as a final step,
perform the Pyenv package removal. For instance, for Homebrew:
```
brew uninstall pyenv
```
## Pyenv plugins
Pyenv provides a simple way to extend and customize its functionality with plugins --
as simple as creating a plugin directory and dropping a shell script on a certain subpath of it
with whatever extra logic you need to be run at certain moments.
The main idea is that most things that you can put under `$PYENV_ROOT/<whatever>` you can also put
under `$PYENV_ROOT/plugins/your_plugin_name/<whatever>`.
See [_Plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Plugins) on how to install and use plugins
as well as a catalog of some useful existing plugins for common needs.
See [_Authoring plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) on writing your own plugins.
----
## How It Works ## How It Works
@@ -68,7 +532,7 @@ to the correct Python installation.
### Understanding PATH ### Understanding PATH
When you run a command like `python` or `pip`, your operating system When you run a command like `python` or `pip`, your shell (bash / zshrc / ...)
searches through a list of directories to find an executable file with searches through a list of directories to find an executable file with
that name. This list of directories lives in an environment variable that name. This list of directories lives in an environment variable
called `PATH`, with each directory in the list separated by a colon: called `PATH`, with each directory in the list separated by a colon:
@@ -87,7 +551,7 @@ then `/bin`.
pyenv works by inserting a directory of _shims_ at the front of your pyenv works by inserting a directory of _shims_ at the front of your
`PATH`: `PATH`:
~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin $(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Through a process called _rehashing_, pyenv maintains shims in that Through a process called _rehashing_, pyenv maintains shims in that
directory to match every Python command across every installed version directory to match every Python command across every installed version
@@ -103,227 +567,194 @@ operating system will do the following:
pyenv pyenv
### Choosing the Python Version ### Understanding Python version selection
When you execute a shim, pyenv determines which Python version to use by When you execute a shim, pyenv determines which Python version to use by
reading it from the following sources, in this order: reading it from the following sources, in this order:
1. The `PYENV_VERSION` environment variable (if specified). You can use 1. The `PYENV_VERSION` environment variable (if specified). You can use
the [`pyenv shell`](#pyenv-shell) command to set this environment the [`pyenv shell`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-shell) command to set this environment
variable in your current shell session. variable in your current shell session.
2. The application-specific `.python-version` file in the current 2. The application-specific `.python-version` file in the current
directory (if present). You can modify the current directory's directory (if present). You can modify the current directory's
`.python-version` file with the [`pyenv local`](#pyenv-local) `.python-version` file with the [`pyenv local`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-local)
command. command.
3. The first `.python-version` file found (if any) by searching each parent 3. The first `.python-version` file found (if any) by searching each parent
directory, until reaching the root of your filesystem. directory, until reaching the root of your filesystem.
4. The global `~/.pyenv/version` file. You can modify this file using 4. The global `$(pyenv root)/version` file. You can modify this file using
the [`pyenv global`](#pyenv-global) command. If the global version the [`pyenv global`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global) command.
file is not present, pyenv assumes you want to use the "system" 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 Python (see below).
`PATH`.)
**NOTE:** You can activate multiple versions at the same time, e.g. `pyenv A special version name "`system`" means to use whatever Python is found on `PATH`
global 3.4.2 2.7.8`. This allows for parallel usage of python2 and python3, after the shims `PATH` entry (in other words, whatever would be run if Pyenv
and is required with tools like `tox`. shims weren't on `PATH`). Note that Pyenv considers those installations outside
its control and does not attempt to inspect or distinguish them in any way.
So e.g. if you are on MacOS and have OS-bundled Python 3.8.9 and Homebrew-installed
Python 3.9.12 and 3.10.2 -- for Pyenv, this is still a single "`system`" version,
and whichever of those is first on `PATH` under the executable name you
specified will be run.
### Locating the Python Installation **NOTE:** 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 `tox`. For example, to instruct
Pyenv to first use your system Python and Python3 (which are e.g. 2.7.9 and 3.4.2)
but also have Python 3.3.6, 3.2.1, and 2.5.2 available, you first `pyenv install`
the missing versions, then set `pyenv global system 3.3.6 3.2.1 2.5.2`.
Then you'll be able to invoke any of those versions with an appropriate `pythonX` or
`pythonX.Y` name.
You can also specify multiple versions in a `.python-version` file by hand,
separated by newlines. Lines starting with a `#` are ignored.
[`pyenv which <command>`](COMMANDS.md#pyenv-which) displays which real executable would be
run when you invoke `<command>` via a shim.
E.g. if you have 3.3.6, 3.2.1 and 2.5.2 installed of which 3.3.6 and 2.5.2 are selected
and your system Python is 3.2.5,
`pyenv which python2.5` should display `$(pyenv root)/versions/2.5.2/bin/python2.5`,
`pyenv which python3` -- `$(pyenv root)/versions/3.3.6/bin/python3` and
`pyenv which python3.2` -- path to your system Python due to the fall-through (see below).
Shims also fall through to anything further on `PATH` if the corresponding executable is
not present in any of the selected Python installations.
This allows you to use any programs installed elsewhere on the system as long as
they are not shadowed by a selected Python installation.
### Locating Pyenv-provided Python installations
Once pyenv has determined which version of Python your application has Once pyenv has determined which version of Python your application has
specified, it passes the command along to the corresponding Python specified, it passes the command along to the corresponding Python
installation. installation.
Each Python version is installed into its own directory under Each Python version is installed into its own directory under
`~/.pyenv/versions`. `$(pyenv root)/versions`.
For example, you might have these versions installed: For example, you might have these versions installed:
* `~/.pyenv/versions/2.7.8/` * `$(pyenv root)/versions/2.7.8/`
* `~/.pyenv/versions/3.4.2/` * `$(pyenv root)/versions/3.4.2/`
* `~/.pyenv/versions/pypy-2.4.0/` * `$(pyenv root)/versions/pypy-2.4.0/`
As far as pyenv is concerned, version names are simply the directories in
`~/.pyenv/versions`.
As far as Pyenv is concerned, version names are simply directories under
`$(pyenv root)/versions`.
---- ----
## Installation ## Advanced Configuration
If you're on Mac OS X, consider [installing with Homebrew](#homebrew-on-mac-os-x).
### The automatic installer
Visit my other project:
https://github.com/yyuu/pyenv-installer
### Basic GitHub Checkout
This will get you going with the latest version of pyenv and make it
easy to fork and contribute any changes back upstream.
1. **Check out pyenv where you want it installed.**
A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else).
$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv
2. **Define environment variable `PYENV_ROOT`** to point to the path where
pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access
to the `pyenv` command-line utility.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
3. **Add `pyenv init` to your shell** to enable shims and autocompletion.
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
**General warning**: There are some systems, where the `BASH_ENV` variable is configured
to point to `.bashrc`. On such systems you should almost certainly put the abovementioned line
`eval "$(pyenv init -)` into `.bash_profile`, and **not** into `.bashrc`. Otherwise you
may observe strange behaviour, such as `pyenv` getting into an infinite loop.
See [#264](https://github.com/yyuu/pyenv/issues/264) for details.
4. **Restart your shell so the path changes take effect.**
You can now begin using pyenv.
$ exec $SHELL
5. **Install Python versions into `$PYENV_ROOT/versions`.**
For example, to install Python 2.7.8, download and unpack the source, then run:
$ pyenv install 2.7.8
**NOTE:** If you need to pass configure option to build, please use
```CONFIGURE_OPTS``` environment variable.
**NOTE:** If you are having trouble installing a python version,
please visit the wiki page about
[Common Build Problems](https://github.com/yyuu/pyenv/wiki/Common-build-problems)
6. **Rebuild the shim binaries.**
You should do this any time you install a new Python binary.
(Examples: installing a new Python version, or installing a package that provides a binary.)
$ pyenv rehash
This can be automated for pip using
[pyenv-pip-rehash](https://github.com/yyuu/pyenv-pip-rehash), which invokes
`pyenv rehash` after (un)installing packages using pip.
#### Upgrading
If you've installed pyenv using the instructions above, you can
upgrade your installation at any time using git.
To upgrade to the latest development version of pyenv, use `git pull`:
$ cd ~/.pyenv
$ git pull
To upgrade to a specific release of pyenv, check out the corresponding tag:
$ cd ~/.pyenv
$ git fetch
$ git tag
v0.1.0
$ git checkout v0.1.0
### Homebrew on Mac OS X
You can also install pyenv using the [Homebrew](http://brew.sh)
package manager for Mac OS X.
$ brew update
$ brew install pyenv
To upgrade pyenv in the future, just use `upgrade` instead of `install`.
After installation, you'll still need to add `eval "$(pyenv init -)"` to your
profile (as stated in the caveats). You'll only ever have to do this
once.
### Neckbeard Configuration
Skip this section unless you must know what every line in your shell Skip this section unless you must know what every line in your shell
profile is doing. profile is doing.
Also see the [Environment variables](#environment-variables) section
for the environment variables that control Pyenv's behavior.
`pyenv init` is the only command that crosses the line of loading `pyenv init` is the only command that crosses the line of loading
extra commands into your shell. Coming from rvm, some of you might be extra commands into your shell. Coming from RVM, some of you might be
opposed to this idea. Here's what `pyenv init` actually does: opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does:
1. **Sets up your shims path.** This is the only requirement for pyenv to 1. **Finds current shell.**
function properly. You can do this by hand by prepending `pyenv init` figures out what shell you are using, as the exact commands of `eval "$(pyenv init -)"` vary depending on shell. Specifying which shell you are using (e.g. `eval "$(pyenv init - bash)"`) is preferred, because it reduces launch time significantly.
`~/.pyenv/shims` to your `$PATH`.
2. **Installs autocompletion.** This is entirely optional but pretty 2. **Sets up the shims path.** This is what allows Pyenv to intercept
useful. Sourcing `~/.pyenv/completions/pyenv.bash` will set that and redirect invocations of `python`, `pip` etc. transparently.
up. There is also a `~/.pyenv/completions/pyenv.zsh` for Zsh It prepends `$(pyenv root)/shims` to your `$PATH`.
users. It also deletes any other instances of `$(pyenv root)/shims` on `PATH`
which allows to invoke `eval "$(pyenv init -)"` multiple times without
getting duplicate `PATH` entries.
3. **Rehashes shims.** From time to time you'll need to rebuild your 3. **Installs autocompletion.** This is entirely optional but pretty
useful. Sourcing `<pyenv installation prefix>/completions/pyenv.bash` will set that
up. There are also completions for Zsh and Fish.
4. **Rehashes shims.** From time to time you'll need to rebuild your
shim files. Doing this on init makes sure everything is up to shim files. Doing this on init makes sure everything is up to
date. You can always run `pyenv rehash` manually. date. You can always run `pyenv rehash` manually.
4. **Installs the sh dispatcher.** This bit is also optional, but allows 5. **Installs `pyenv` into the current shell as a shell function.**
pyenv and plugins to change variables in your current shell, making This bit is also optional, but allows
commands like `pyenv shell` possible. The sh dispatcher doesn't do pyenv and plugins to change variables in your current shell.
This is required for some commands like `pyenv shell` to work.
The sh dispatcher doesn't do
anything crazy like override `cd` or hack your shell prompt, but if anything crazy like override `cd` or hack your shell prompt, but if
for some reason you need `pyenv` to be a real script rather than a for some reason you need `pyenv` to be a real script rather than a
shell function, you can safely skip it. shell function, you can safely skip it.
To see exactly what happens under the hood for yourself, run `pyenv init -`. `eval "$(pyenv init --path)"` only does items 2 and 4.
To see exactly what happens under the hood for yourself, run `pyenv init -`
or `pyenv init --path`.
`eval "$(pyenv init -)"` is supposed to run at any interactive shell's
startup (including nested shells -- e.g. those invoked from editors)
so that you get completion and convenience shell functions.
`eval "$(pyenv init --path)"` can be used instead of `eval "$(pyenv init -)"`
to just enable shims, without shell integration. It can also be used to bump shims
to the front of `PATH` after some other logic has prepended stuff to `PATH`
that may shadow Pyenv's shims.
* In particular, in Debian-based distributions, the stock `~/.profile`
prepends per-user `bin` directories to `PATH` after having sourced `~/.bashrc`.
This necessitates appending a `pyenv init` call to `~/.profile` as well as `~/.bashrc`
in these distributions because the system's Pip places executables for
modules installed by a non-root user into those per-user `bin` directories.
### Uninstalling Python Versions ### Using Pyenv without shims
As time goes on, you will accumulate Python versions in your If you don't want to use `pyenv init` and shims, you can still benefit
`~/.pyenv/versions` directory. from pyenv's ability to install Python versions for you. Just run
`pyenv install` and you will find versions installed in
`$(pyenv root)/versions`.
To remove old Python versions, `pyenv uninstall` command to automate You can manually execute or symlink them as required,
the removal process. or you can use [`pyenv exec <command>`](COMMANDS.md#pyenv-exec)
whenever you want `<command>` to be affected by Pyenv's version selection
as currently configured.
Alternatively, simply `rm -rf` the directory of the version you want `pyenv exec` works by prepending `$(pyenv root)/versions/<selected version>/bin`
to remove. You can find the directory of a particular Python version to `PATH` in the `<command>`'s environment, the same as what e.g. RVM does.
with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`.
### Environment variables
You can affect how Pyenv operates with the following environment variables:
name | default | description
-----|---------|------------
`PYENV_VERSION` | | Specifies the Python version to be used.<br>Also see [`pyenv shell`](COMMANDS.md#pyenv-shell)
`PYENV_ROOT` | `~/.pyenv` | Defines the directory under which Python versions and shims reside.<br>Also see [`pyenv root`](COMMANDS.md#pyenv-root)
`PYENV_DEBUG` | | Outputs debug information.<br>Also as: `pyenv --debug <subcommand>`
`PYENV_HOOK_PATH` | [_see wiki_][hooks] | Colon-separated list of paths searched for pyenv hooks.
`PYENV_DIR` | `$PWD` | Directory to start searching for `.python-version` files.
See also [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables)
for environment variables that can be used to customize the build.
---- ----
## Command Reference
See [COMMANDS.md](COMMANDS.md).
----
## Development ## Development
The pyenv source code is [hosted on GitHub](https://github.com/yyuu/pyenv). The pyenv source code is [hosted on
It's clean, modular, and easy to understand--even if you're not a shell hacker. GitHub](https://github.com/pyenv/pyenv). It's clean, modular,
and easy to understand, even if you're not a shell hacker.
Please feel free to submit Pull Requests and report bugs on the Tests are executed using [Bats](https://github.com/bats-core/bats-core):
[issue tracker](https://github.com/yyuu/pyenv/issues).
bats test
bats/test/<file>.bats
### Contributing
Feel free to submit pull requests and file bugs on the [issue
tracker](https://github.com/pyenv/pyenv/issues).
See [CONTRIBUTING.md](CONTRIBUTING.md) for more details on submitting changes.
### Version History ### Version History
@@ -333,26 +764,8 @@ See [CHANGELOG.md](CHANGELOG.md).
### License ### License
(The MIT license) [The MIT License](LICENSE)
* Copyright (c) 2013 Yamashita, Yuu
* Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining [pyenv-virtualenv]: https://github.com/pyenv/pyenv-virtualenv#readme
a copy of this software and associated documentation files (the [hooks]: https://github.com/pyenv/pyenv/wiki/Authoring-plugins#pyenv-hooks
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -1,23 +0,0 @@
#!/usr/bin/env bash
#
# `python-local-exec` is a drop-in replacement for the standard Python
# shebang line:
#
# #!/usr/bin/env python-local-exec
#
# Use it for scripts inside a project with an `.pyenv-version`
# file. When you run the scripts, they'll use the project-specified
# Python version, regardless of what directory they're run from. Useful
# for e.g. running project tasks in cron scripts without needing to
# `cd` into the project first.
set -e
export PYENV_DIR="${1%/*}"
[ -n "$PYENV_SILENCE_WARNINGS" ] || {
echo "pyenv: \`python-local-exec' is deprecated and will be removed in the next release."
echo " To upgrade: https://github.com/yyuu/pyenv/wiki/python-local-exec"
echo
} >&2
exec python "$@"

View File

@@ -18,5 +18,6 @@ end
complete -f -c pyenv -n '__fish_pyenv_needs_command' -a '(pyenv commands)' complete -f -c pyenv -n '__fish_pyenv_needs_command' -a '(pyenv commands)'
for cmd in (pyenv commands) for cmd in (pyenv commands)
complete -f -c pyenv -n "__fish_pyenv_using_command $cmd" -a "(pyenv completions $cmd)" complete -f -c pyenv -n "__fish_pyenv_using_command $cmd" -a \
"(pyenv completions (commandline -opc)[2..-1])"
end end

BIN
install_local_python.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 KiB

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
export -n CDPATH
if [ "$1" = "--debug" ]; then if [ "$1" = "--debug" ]; then
export PYENV_DEBUG=1 export PYENV_DEBUG=1
@@ -8,36 +7,54 @@ if [ "$1" = "--debug" ]; then
fi fi
if [ -n "$PYENV_DEBUG" ]; then if [ -n "$PYENV_DEBUG" ]; then
export PS4='+ [${BASH_SOURCE##*/}:${LINENO}] ' # https://wiki-dev.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
set -x set -x
fi fi
READLINK=$(type -p greadlink readlink | head -1) abort() {
if [ -z "$READLINK" ]; then { if [ "$#" -eq 0 ]; then cat -
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 else echo "pyenv: $*"
fi
} >&2
exit 1 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 fi
unset GREP_OPTIONS
resolve_link() {
$READLINK "$1"
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
if [ -z "${PYENV_ROOT}" ]; then if [ -z "${PYENV_ROOT}" ]; then
PYENV_ROOT="${HOME}/.pyenv" PYENV_ROOT="${HOME}/.pyenv"
else else
@@ -46,51 +63,79 @@ fi
export PYENV_ROOT export PYENV_ROOT
if [ -z "${PYENV_DIR}" ]; then if [ -z "${PYENV_DIR}" ]; then
PYENV_DIR="$(pwd)" PYENV_DIR="$PWD"
else
cd "$PYENV_DIR" 2>/dev/null || {
echo "pyenv: cannot change working directory to \`$PYENV_DIR'"
exit 1
} >&2
PYENV_DIR="$(pwd)"
cd "$OLDPWD"
fi 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 export PYENV_DIR
shopt -s nullglob shopt -s nullglob
bin_path="$(abs_dirname "$0")" bin_path="$(abs_dirname "$0")"
for plugin_bin in "${PYENV_ROOT}/plugins/"*/bin; do for plugin_bin in "${bin_path%/*}"/plugins/*/bin; do
bin_path="${bin_path}:${plugin_bin}" PATH="${plugin_bin}:${PATH}"
done 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 [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then
for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do
PATH="${plugin_bin}:${PATH}"
done
fi
export PATH="${bin_path}:${PATH}" export PATH="${bin_path}:${PATH}"
hook_path="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d"
if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then
# Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${bin_path%/*}/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 for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do
hook_path="${hook_path}:${plugin_hook}" PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}"
done done
export PYENV_HOOK_PATH="$hook_path" PYENV_HOOK_PATH="${PYENV_HOOK_PATH#:}"
export PYENV_HOOK_PATH
shopt -u nullglob shopt -u nullglob
command="$1" command="$1"
case "$command" in case "$command" in
"" | "-h" | "--help" ) "" )
echo -e "$(pyenv---version)\n$(pyenv-help)" >&2 { pyenv---version
pyenv-help
} | abort
;; ;;
"-v" ) -v | --version )
exec pyenv---version exec pyenv---version
;; ;;
-h | --help )
exec pyenv-help
;;
* ) * )
command_path="$(command -v "pyenv-$command" || true)" command_path="$(command -v "pyenv-$command" || true)"
if [ -z "$command_path" ]; then if [ -z "$command_path" ]; then
echo "pyenv: no such command \`$command'" >&2 if [ "$command" == "shell" ]; then
exit 1 abort "shell integration not enabled. Run \`pyenv init' for instructions."
else
abort "no such command \`$command'"
fi
fi fi
shift 1 shift 1
exec "$command_path" "$@" if [ "$1" = --help ]; then
if [[ "$command" == "sh-"* ]]; then
echo "pyenv help \"$command\""
else
exec pyenv-help "$command"
fi
else
exec "$command_path" "$@"
fi
;; ;;
esac esac

View File

@@ -12,9 +12,10 @@
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
version="20141118" version="2.5.4"
git_revision=""
if cd "$PYENV_ROOT" 2>/dev/null; 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 describe --tags HEAD 2>/dev/null || true)"
git_revision="${git_revision#v}" git_revision="${git_revision#v}"
fi fi

View File

@@ -28,15 +28,15 @@ shopt -s nullglob
for command in "${path}/pyenv-"*; do for command in "${path}/pyenv-"*; do
command="${command##*pyenv-}" command="${command##*pyenv-}"
if [ -n "$sh" ]; then if [ -n "$sh" ]; then
if [ ${command:0:3} = "sh-" ]; then if [ "${command:0:3}" = "sh-" ]; then
echo ${command##sh-} echo "${command##sh-}"
fi fi
elif [ -n "$nosh" ]; then elif [ -n "$nosh" ]; then
if [ ${command:0:3} != "sh-" ]; then if [ "${command:0:3}" != "sh-" ]; then
echo ${command##sh-} echo "${command##sh-}"
fi fi
else else
echo ${command##sh-} echo "${command##sh-}"
fi fi
done done
done done

View File

@@ -10,7 +10,16 @@ if [ -z "$COMMAND" ]; then
exit 1 exit 1
fi fi
# Provide pyenv completions
if [ "$COMMAND" = "--complete" ]; then
exec pyenv-commands
fi
COMMAND_PATH="$(command -v "pyenv-$COMMAND" || command -v "pyenv-sh-$COMMAND")" 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 if grep -iE "^([#%]|--|//) provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
shift shift
exec "$COMMAND_PATH" --complete "$@" exec "$COMMAND_PATH" --complete "$@"

View File

@@ -8,20 +8,20 @@
# version's `bin' directory is at the front. # version's `bin' directory is at the front.
# #
# For example, if the currently selected Python version is 2.7.6: # For example, if the currently selected Python version is 2.7.6:
# pyenv exec pip install -rrequirements.txt # pyenv exec pip install -r requirements.txt
# #
# is equivalent to: # is equivalent to:
# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -rrequirements.txt # PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -r requirements.txt
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions # Provide pyenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
exec pyenv shims --short exec pyenv-shims --short
fi fi
PYENV_VERSION="$(pyenv-version-name)" PYENV_VERSION="$(pyenv-version-name -f)"
PYENV_COMMAND="$1" PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then if [ -z "$PYENV_COMMAND" ]; then
@@ -29,9 +29,9 @@ if [ -z "$PYENV_COMMAND" ]; then
exit 1 exit 1
fi fi
export PYENV_VERSION
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")" PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}" PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
export PYENV_VERSION
OLDIFS="$IFS" OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks exec`) IFS=$'\n' scripts=(`pyenv-hooks exec`)
@@ -41,7 +41,8 @@ for script in "${scripts[@]}"; do
done done
shift 1 shift 1
# CPython's `sys.executable` requires the `PYENV_BIN_PATH` to be at the top of the `PATH`. if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then
# https://github.com/yyuu/pyenv/issues/98 # Only add to $PATH for non-system version.
export PATH="${PYENV_BIN_PATH}:${PATH}" export PATH="${PYENV_BIN_PATH}:${PATH}"
exec -a "$PYENV_COMMAND" "$PYENV_COMMAND_PATH" "$@" fi
exec "$PYENV_COMMAND_PATH" "$@"

View File

@@ -1,16 +1,24 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Summary: Set or show the global Python version # Summary: Set or show the global Python version(s)
# #
# Usage: pyenv global <version> # Usage: pyenv global <version> <version2> <..>
# #
# Sets the global Python version. You can override the global version at # Sets the global Python version(s). You can override the global version at
# any time by setting a directory-specific version with `pyenv local' # any time by setting a directory-specific version with `pyenv local'
# or by setting the `PYENV_VERSION' environment variable. # or by setting the `PYENV_VERSION' environment variable.
# #
# <version> should be a string matching a Python version known to pyenv. # <version> can be specified multiple times and should be a version
# The special version string `system' will use your default system Python. # tag known to pyenv. The special version string `system' will use
# Run `pyenv versions' for a list of available Python versions. # 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 set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x

View File

@@ -15,12 +15,20 @@
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --usage
exec pyenv-commands
fi
command_path() { command_path() {
local command="$1" local command="$1"
command -v pyenv-"$command" || command -v pyenv-sh-"$command" || true command -v pyenv-"$command" || command -v pyenv-sh-"$command" || true
} }
extract_initial_comment_block() { extract_initial_comment_block() {
LC_ALL= \
LC_CTYPE=C \
sed -ne " sed -ne "
/^#/ !{ /^#/ !{
q q
@@ -36,7 +44,9 @@ extract_initial_comment_block() {
} }
collect_documentation() { collect_documentation() {
$(type -p gawk awk | head -1) ' # `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:/ {
summary = substr($0, 10) summary = substr($0, 10)
next next
@@ -80,7 +90,8 @@ collect_documentation() {
} }
documentation_for() { documentation_for() {
local filename="$(command_path "$1")" local filename
filename="$(command_path "$1")"
if [ -n "$filename" ]; then if [ -n "$filename" ]; then
extract_initial_comment_block < "$filename" | collect_documentation extract_initial_comment_block < "$filename" | collect_documentation
fi fi
@@ -108,7 +119,7 @@ print_help() {
eval "$(documentation_for "$command")" eval "$(documentation_for "$command")"
[ -n "$help" ] || help="$summary" [ -n "$help" ] || help="$summary"
if [ -n "$usage" -o -n "$summary" ]; then if [ -n "$usage" ] || [ -n "$summary" ]; then
if [ -n "$usage" ]; then if [ -n "$usage" ]; then
echo "$usage" echo "$usage"
else else
@@ -143,10 +154,10 @@ if [ -z "$1" ] || [ "$1" == "pyenv" ]; then
[ -z "$usage" ] || exit [ -z "$usage" ] || exit
echo echo
echo "Some useful pyenv commands are:" echo "Some useful pyenv commands are:"
print_summaries commands local global shell install uninstall rehash version versions which whence print_summaries $(exec pyenv-commands | sort -u)
echo echo
echo "See \`pyenv help <command>' for information on a specific command." echo "See \`pyenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/yyuu/pyenv#readme" echo "For full documentation, see: https://github.com/pyenv/pyenv#readme"
else else
command="$1" command="$1"
if [ -n "$(command_path "$command")" ]; then if [ -n "$(command_path "$command")" ]; then

View File

@@ -9,6 +9,8 @@ set -e
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
echo exec echo exec
echo rehash echo rehash
echo version-name
echo version-origin
echo which echo which
exit exit
fi fi
@@ -19,7 +21,12 @@ if [ -z "$PYENV_COMMAND" ]; then
exit 1 exit 1
fi fi
READLINK=$(type -p greadlink readlink | head -1) 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 if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1 exit 1
@@ -30,25 +37,27 @@ resolve_link() {
} }
realpath() { realpath() {
local cwd="$(pwd)"
local path="$1" local path="$1"
local name
# Use a subshell to avoid changing the current path
(
while [ -n "$path" ]; do while [ -n "$path" ]; do
cd "${path%/*}" name="${path##*/}"
local name="${path##*/}" [ "$name" = "$path" ] || cd "${path%/*}"
path="$(resolve_link "$name" || true)" path="$(resolve_link "$name" || true)"
done done
echo "$(pwd)/$name" echo "${PWD}/$name"
cd "$cwd" )
} }
fi
IFS=: hook_paths=($PYENV_HOOK_PATH) IFS=: hook_paths=($PYENV_HOOK_PATH)
shopt -s nullglob shopt -s nullglob
for path in "${hook_paths[@]}"; do for path in "${hook_paths[@]}"; do
for script in "$path/$PYENV_COMMAND"/*.bash; do for script in "$path/$PYENV_COMMAND"/*.bash; do
echo $(realpath $script) realpath "$script"
done done
done done
shopt -u nullglob shopt -u nullglob

View File

@@ -1,174 +1,297 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Summary: Configure the shell environment for pyenv # Summary: Configure the shell environment for pyenv
# Usage: eval "$(pyenv init - [--no-rehash] [<shell>])" # Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--detect-shell] [--no-rehash] [<shell>])"
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
print="" # Provide pyenv completions
no_rehash="" if [ "$1" = "--complete" ]; then
for args in "$@" echo -
do echo --path
if [ "$args" = "-" ]; then echo --no-push-path
print=1 echo --no-rehash
shift echo --detect-shell
fi echo bash
echo fish
echo ksh
echo zsh
exit
fi
if [ "$args" = "--no-rehash" ]; then mode="help"
no_rehash=1
shift while [ "$#" -gt 0 ]; do
fi case "$1" in
-)
mode="print"
;;
--path)
mode="path"
;;
--detect-shell)
mode="detect-shell"
;;
--no-push-path)
no_push_path=1
;;
--no-rehash)
no_rehash=1
;;
*)
shell="$1"
;;
esac
shift
done done
shell="$1" # If shell is not provided, detect it.
if [ -z "$shell" ]; then if [ -z "$shell" ]; then
shell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)" shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
shell="${shell##-}"
shell="${shell%% *}" shell="${shell%% *}"
shell="$(basename "${shell:-$SHELL}")" shell="${shell##-}"
shell="${shell:-$SHELL}"
shell="${shell##*/}"
shell="${shell%%-*}"
fi fi
READLINK=$(type -p greadlink readlink | head -1) function main() {
if [ -z "$READLINK" ]; then case "$mode" in
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 "help")
exit 1 help_
fi exit 1
resolve_link() {
$READLINK "$1"
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
root="$(abs_dirname "$0")/.."
if [ -z "$print" ]; then
case "$shell" in
bash )
profile='~/.bash_profile'
;; ;;
zsh ) "path")
profile='~/.zshrc' print_path
print_rehash
exit 0
;; ;;
ksh ) "print")
profile='~/.profile' init_dirs
print_path
print_env
print_completion
print_rehash
print_shell_function
exit 0
;; ;;
fish ) "detect-shell")
profile='~/.config/fish/config.fish' detect_profile 1
;; print_detect_shell
* ) exit 0
profile='your profile'
;; ;;
esac esac
# should never get here
exit 2
}
{ echo "# Load pyenv automatically by adding" function detect_profile() {
echo "# the following to ${profile}:" local detect_for_detect_shell="$1"
echo
case "$shell" in
bash )
if [ -e '~/.bash_profile' ]; then
profile='~/.bash_profile'
else
profile='~/.profile'
fi
profile_explain="~/.bash_profile if it exists, otherwise ~/.profile"
rc='~/.bashrc'
;;
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'
;;
* )
if [ -n "$detect_for_detect_shell" ]; then
profile=
rc=
else
profile='your shell'\''s login startup file'
rc='your shell'\''s interactive startup file'
fi
;;
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 case "$shell" in
fish ) fish )
echo 'status --is-interactive; and . (pyenv init -|psub)' echo "# Add pyenv executable to PATH by running"
echo "# the following interactively:"
echo
echo 'set -Ux PYENV_ROOT $HOME/.pyenv'
echo 'set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths'
echo
echo "# Load pyenv automatically by appending"
echo "# the following to ~/.config/fish/config.fish:"
echo
echo 'pyenv init - fish | source'
echo
;; ;;
* ) * )
echo 'eval "$(pyenv init -)"' echo '# Load pyenv automatically by appending'
echo -n "# the following to "
if [ "$profile" == "$rc" ]; then
echo "$profile :"
else
echo
echo "# ${profile_explain:-$profile} (for login shells)"
echo "# and $rc (for interactive shells) :"
fi
echo
echo 'export PYENV_ROOT="$HOME/.pyenv"'
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"'
echo 'eval "$(pyenv init - '$shell')"'
;; ;;
esac esac
echo echo
echo '# Restart your shell for the changes to take effect.'
echo
} >&2 } >&2
}
exit 1 function init_dirs() {
fi mkdir -p "${PYENV_ROOT}/"{shims,versions}
}
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'
;;
* )
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
;;
* )
# 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
}
if [[ ":${PATH}:" != *:"${PYENV_ROOT}/shims":* ]]; then function print_path_prepend_shims() {
case "$shell" in
fish )
echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH'
;;
* )
echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"'
;;
esac
}
function print_env() {
case "$shell" in case "$shell" in
fish ) fish )
echo "setenv PATH '${PYENV_ROOT}/shims' \$PATH" echo "set -gx PYENV_SHELL $shell"
;; ;;
* ) * )
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' echo "export PYENV_SHELL=$shell"
;; ;;
esac
fi
case "$shell" in
fish )
echo "setenv PYENV_SHELL $shell"
;;
* )
echo "export PYENV_SHELL=$shell"
;;
esac
completion="${root}/completions/pyenv.${shell}"
if [ -r "$completion" ]; then
case "$shell" in
fish ) echo ". '$completion'" ;;
* ) echo "source '$completion'" ;;
esac
fi
if [ -z "$no_rehash" ]; then
echo 'pyenv rehash 2>/dev/null'
fi
commands=(`pyenv-commands --sh`)
case "$shell" in
fish )
cat <<EOS
function pyenv
set command \$argv[1]
set -e argv[1]
switch "\$command"
case ${commands[*]}
eval (pyenv "sh-\$command" \$argv)
case '*'
command pyenv "\$command" \$argv
end
end
EOS
;;
ksh )
cat <<EOS
function pyenv {
typeset command
EOS
;;
* )
cat <<EOS
pyenv() {
local command
EOS
;;
esac
if [ "$shell" != "fish" ]; then
IFS="|"
cat <<EOS
command="\$1"
if [ "\$#" -gt 0 ]; then
shift
fi
case "\$command" in
${commands[*]})
eval "\`pyenv "sh-\$command" "\$@"\`";;
*)
command pyenv "\$command" "\$@";;
esac esac
} }
EOS
fi function print_completion() {
completion="${0%/*/*}/completions/pyenv.${shell}"
if [ -r "$completion" ]; then
echo "source '$completion'"
fi
}
function print_rehash() {
if [ -z "$no_rehash" ]; then
echo 'command pyenv rehash 2>/dev/null'
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'
;;
ksh | ksh93 | mksh )
echo \
'function pyenv {
typeset command=${1:-}'
;;
* )
echo \
'pyenv() {
local command=${1:-}'
;;
esac
if [ "$shell" != "fish" ]; then
IFS="|"
echo \
' [ "$#" -gt 0 ] && shift
case "$command" in
'"${commands[*]:-/}"')
eval "$(pyenv "sh-$command" "$@")"
;;
*)
command pyenv "$command" "$@"
;;
esac
}'
fi
}
main

100
libexec/pyenv-latest Executable file
View File

@@ -0,0 +1,100 @@
#!/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
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

View File

@@ -1,11 +1,13 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Summary: Set or show the local application-specific Python version # Summary: Set or show the local application-specific Python version(s)
# #
# Usage: pyenv local <version> # Usage: pyenv local [-f|--force] [<version> [...]]
# pyenv local --unset # pyenv local --unset
# #
# Sets the local application-specific Python version by writing the # -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'. # version name to a file named `.python-version'.
# #
# When you run a Python command, pyenv will look for a `.python-version' # When you run a Python command, pyenv will look for a `.python-version'
@@ -15,13 +17,16 @@
# `PYENV_VERSION' environment variable takes precedence over local # `PYENV_VERSION' environment variable takes precedence over local
# and global versions. # and global versions.
# #
# For backwards compatibility, pyenv will also read version # <version> can be specified multiple times and should be a version
# specifications from `.pyenv-version' files, but a `.python-version' # tag known to pyenv. The special version string `system' will use
# file in the same directory takes precedence. # your default system Python. Run `pyenv versions' for a list of
# available Python versions.
# #
# <version> should be a string matching a Python version known to pyenv. # Example: To enable the python2.7 and python3.7 shims to find their
# The special version string `system' will use your default system Python. # respective executables you could set both versions with:
# Run `pyenv versions' for a list of available Python versions. #
# 'pyenv local 3.7.0 2.7.15'
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
@@ -33,30 +38,33 @@ if [ "$1" = "--complete" ]; then
exec pyenv-versions --bare exec pyenv-versions --bare
fi fi
while [[ $# -gt 0 ]]
do
case "$1" in
-f|--force)
FORCE=1
shift
;;
*)
break
;;
esac
done
versions=("$@") versions=("$@")
if [ "$versions" = "--unset" ]; then if [ "$versions" = "--unset" ]; then
rm -f .python-version .pyenv-version rm -f .python-version
elif [ -n "$versions" ]; then elif [ -n "$versions" ]; then
previous_file="$(PYENV_VERSION= pyenv-version-origin || true)" pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}"
pyenv-version-file-write .python-version "${versions[@]}"
if [ "$previous_file" -ef .pyenv-version ]; then
rm -f .pyenv-version
{ echo "pyenv: removed existing \`.pyenv-version' file and migrated"
echo " local version specification to \`.python-version' file"
} >&2
fi
else else
OLDIFS="$IFS" if version_file="$(pyenv-version-file "$PWD")"; then
IFS=: versions=($( IFS=: versions=($(pyenv-version-file-read "$version_file"))
pyenv-version-file-read .python-version || for version in "${versions[@]}"; do
pyenv-version-file-read .pyenv-version || echo "$version"
{ echo "pyenv: no local version configured for this directory" done
exit 1 else
} >&2 echo "pyenv: no local version configured for this directory" >&2
)) exit 1
IFS="$OLDIFS" fi
for version in "${versions[@]}"; do
echo "$version"
done
fi fi

View File

@@ -1,10 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Summary: Display prefix for a Python version # Summary: Display prefixes for Python versions
# Usage: pyenv prefix [<version>] # Usage: pyenv prefix [<version>...]
# #
# Displays the directory where a Python version is installed. If no # Displays the directories where the given Python versions are installed,
# version is given, `pyenv prefix' displays the location of the # separated by colons. If no version is given, `pyenv prefix' displays the
# currently selected version. # locations of the currently selected versions.
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
@@ -30,13 +30,19 @@ OLDIFS="$IFS"
{ IFS=: { IFS=:
for version in ${PYENV_VERSION}; do for version in ${PYENV_VERSION}; do
if [ "$version" = "system" ]; then if [ "$version" = "system" ]; then
if PYTHON_PATH="$(pyenv-which python 2>/dev/null)"; then if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python --skip-advice 2>/dev/null)" || \
PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}" 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 else
echo "pyenv: system version not found in PATH" >&2 echo "pyenv: system version not found in PATH" >&2
exit 1 exit 1
fi fi
else else
version="$(pyenv-latest -f "$version")"
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}" PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
fi fi
if [ -d "$PYENV_PREFIX_PATH" ]; then if [ -d "$PYENV_PREFIX_PATH" ]; then

View File

@@ -10,30 +10,52 @@ PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim"
# Create the shims directory if it doesn't already exist. # Create the shims directory if it doesn't already exist.
mkdir -p "$SHIM_PATH" mkdir -p "$SHIM_PATH"
# Ensure only one instance of pyenv-rehash is running at a time by acquire_lock() {
# setting the shell's `noclobber` option and attempting to write to # Ensure only one instance of pyenv-rehash is running at a time by
# the prototype shim file. If the file already exists, print a warning # setting the shell's `noclobber` option and attempting to write to
# to stderr and exit with a non-zero status. # the prototype shim file. If the file already exists, print a warning
set -o noclobber # to stderr and exit with a non-zero status.
{ echo > "$PROTOTYPE_SHIM_PATH" local ret
} 2>/dev/null || set -o noclobber
{ if [ -w "$SHIM_PATH" ]; then echo > "$PROTOTYPE_SHIM_PATH" 2>| /dev/null || ret=1
echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists" set +o noclobber
else [ -z "${ret}" ]
echo "pyenv: 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 # If we were able to obtain a lock, register a trap to clean up the
# prototype shim when the process exits. # prototype shim when the process exits.
trap remove_prototype_shim EXIT trap release_lock EXIT
remove_prototype_shim() { remove_prototype_shim() {
rm -f "$PROTOTYPE_SHIM_PATH" rm -f "$PROTOTYPE_SHIM_PATH"
} }
release_lock() {
remove_prototype_shim
}
if [ ! -w "$SHIM_PATH" ]; then
echo "pyenv: cannot rehash: $SHIM_PATH isn't writable"
exit 1
fi
unset acquired
start=$SECONDS
while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do
if acquire_lock 2>/dev/null; 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
echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
exit 1
fi
# The prototype shim file is a script that re-execs itself, passing # The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `pyenv exec`. This file is # its filename and any arguments to `pyenv exec`. This file is
# hard-linked for every executable and then removed. The linking # hard-linked for every executable and then removed. The linking
@@ -46,19 +68,6 @@ set -e
[ -n "\$PYENV_DEBUG" ] && set -x [ -n "\$PYENV_DEBUG" ] && set -x
program="\${0##*/}" program="\${0##*/}"
if [ "\$program" = "python" ]; then
for arg; do
case "\$arg" in
-c* | -- ) break ;;
*/* )
if [ -f "\$arg" ]; then
export PYENV_DIR="\${arg%/*}"
break
fi
;;
esac
done
fi
export PYENV_ROOT="$PYENV_ROOT" export PYENV_ROOT="$PYENV_ROOT"
exec "$(command -v pyenv)" exec "\$program" "\$@" exec "$(command -v pyenv)" exec "\$program" "\$@"
@@ -70,78 +79,103 @@ SH
# of the first shim in the shims directory, assume pyenv has been # of the first shim in the shims directory, assume pyenv has been
# upgraded and the existing shims need to be removed. # upgraded and the existing shims need to be removed.
remove_outdated_shims() { remove_outdated_shims() {
for shim in *; do local shim
for shim in "$SHIM_PATH"/*; do
if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then
for shim in *; do rm -f "$shim"; done rm -f "$SHIM_PATH"/*
fi fi
break break
done done
} }
# List basenames of executables for every Python version
list_executable_names() {
local version file
pyenv-versions --bare --skip-aliases | \
while read -r version; do
for file in "${PYENV_ROOT}/versions/${version}/bin/"*; do
echo "${file##*/}"
done
done
}
# The basename of each argument passed to `make_shims` will be # The basename of each argument passed to `make_shims` will be
# registered for installation as a shim. In this way, plugins may call # 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` with a glob to register many shims at once.
make_shims() { make_shims() {
local shims=("$@") local file shim
for file; do
for file in "${shims[@]}"; do shim="${file##*/}"
local shim="${file##*/}"
register_shim "$shim" register_shim "$shim"
done done
} }
# Create an empty array for the list of registered shims and an empty if ((${BASH_VERSINFO[0]} > 3)); then
# string to use as a search index.
registered_shims=()
registered_shims_index=""
# We will keep track of shims registered for installation with the declare -A registered_shims
# global `registered_shims` array and with a global search index
# string. The array will let us iterate over all registered shims. The
# index string will let us quickly check whether a shim with the given
# name has been registered or not.
register_shim() {
local shim="$@"
registered_shims["${#registered_shims[@]}"]="$shim"
registered_shims_index="$registered_shims_index/$shim/"
}
# To install all the registered shims, we iterate over the # Registers the name of a shim to be generated.
# `registered_shims` array and create a link if one does not already register_shim() {
# exist. registered_shims["$1"]=1
install_registered_shims() { }
local shim
for shim in "${registered_shims[@]}"; do
[ -e "$shim" ] || ln -f "$PROTOTYPE_SHIM_PATH" "$shim"
done
}
# Once the registered shims have been installed, we make a second pass # Install all shims registered via `make_shims` or `register_shim` directly.
# over the contents of the shims directory. Any file that is present install_registered_shims() {
# in the directory but has not been registered as a shim should be local shim file
# removed. for shim in "${!registered_shims[@]}"; do
remove_stale_shims() { file="${SHIM_PATH}/${shim}"
local shim [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file"
for shim in *; do done
if [[ "$registered_shims_index" != *"/$shim/"* ]]; then }
rm -f "$shim"
fi
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
# Change to the shims directory.
cd "$SHIM_PATH"
shopt -s nullglob shopt -s nullglob
# Create the prototype shim, then register shims for all known # Create the prototype shim, then register shims for all known
# executables. # executables.
create_prototype_shim create_prototype_shim
remove_outdated_shims remove_outdated_shims
make_shims ../versions/*/bin/* # shellcheck disable=SC2046
make_shims $(list_executable_names | sort -u)
# Restore the previous working directory.
cd "$OLDPWD"
# Allow plugins to register shims. # Allow plugins to register shims.
OLDIFS="$IFS" OLDIFS="$IFS"
@@ -152,8 +186,5 @@ for script in "${scripts[@]}"; do
source "$script" source "$script"
done done
# Change back to the shims directory to install the registered shims
# and remove stale shims.
cd "$SHIM_PATH"
install_registered_shims install_registered_shims
remove_stale_shims remove_stale_shims

View File

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

View File

@@ -2,7 +2,8 @@
# #
# Summary: Set or show the shell-specific Python version # Summary: Set or show the shell-specific Python version
# #
# Usage: pyenv shell <version> # Usage: pyenv shell <version>...
# pyenv shell -
# pyenv shell --unset # pyenv shell --unset
# #
# Sets a shell-specific Python version by setting the `PYENV_VERSION' # Sets a shell-specific Python version by setting the `PYENV_VERSION'
@@ -12,6 +13,11 @@
# <version> should be a string matching a Python version known to pyenv. # <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python. # The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions. # 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 set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
@@ -31,7 +37,7 @@ if [ -z "$versions" ]; then
echo "pyenv: no shell-specific version configured" >&2 echo "pyenv: no shell-specific version configured" >&2
exit 1 exit 1
else else
echo "echo \"\$PYENV_VERSION\"" echo 'echo "$PYENV_VERSION"'
exit exit
fi fi
fi fi
@@ -39,28 +45,76 @@ fi
if [ "$versions" = "--unset" ]; then if [ "$versions" = "--unset" ]; then
case "$shell" in case "$shell" in
fish ) fish )
echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"'
echo "set -e PYENV_VERSION" echo "set -e PYENV_VERSION"
;; ;;
* ) * )
echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"'
echo "unset PYENV_VERSION" echo "unset PYENV_VERSION"
;; ;;
esac esac
exit exit
fi 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
;;
* )
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. # Make sure the specified version is installed.
if pyenv-prefix "${versions[@]}" >/dev/null; then if pyenv-prefix "${versions[@]}" >/dev/null; then
OLDIFS="$IFS" OLDIFS="$IFS"
IFS=: version="${versions[*]}" IFS=: version="${versions[*]}"
IFS="$OLDIFS" IFS="$OLDIFS"
case "$shell" in if [ "$version" != "$PYENV_VERSION" ]; then
fish ) case "$shell" in
echo "setenv PYENV_VERSION \"${version}\"" fish )
;; echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"'
* ) echo "set -gx PYENV_VERSION \"$version\""
echo "export PYENV_VERSION=\"${version}\"" ;;
;; * )
esac echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"'
echo "export PYENV_VERSION=\"${version}\""
;;
esac
fi
else else
echo "false" echo "false"
exit 1 exit 1

View File

@@ -1,17 +1,20 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Summary: Show the current Python version and its origin # Summary: Show the current Python version(s) and its origin
# #
# Shows the currently selected Python version and how it was # Shows the currently selected Python version(s) and how it was
# selected. To obtain only the version string, use `pyenv # selected. To obtain only the version string, use `pyenv
# version-name'. # version-name'.
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
exitcode=0
OLDIFS="$IFS" OLDIFS="$IFS"
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$?
IFS="$OLDIFS" IFS="$OLDIFS"
for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do
echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))" echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))"
done done
exit $exitcode

View File

@@ -1,34 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Usage: pyenv version-file [<dir>]
# Summary: Detect the file that sets the current pyenv version # Summary: Detect the file that sets the current pyenv version
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
target_dir="$1"
find_local_version_file() { find_local_version_file() {
local root="$1" local root="$1"
while [ -n "$root" ]; do while ! [[ "$root" =~ ^//[^/]*$ ]]; do
if [ -e "${root}/.python-version" ]; then if [ -f "${root}/.python-version" ]; then
echo "${root}/.python-version" echo "${root}/.python-version"
exit return 0
elif [ -e "${root}/.pyenv-version" ]; then
echo "${root}/.pyenv-version"
exit
fi fi
[ "${root}" = "${root%/*}" ] && break [ -n "$root" ] || break
root="${root%/*}" root="${root%/*}"
done done
return 1
} }
find_local_version_file "$PYENV_DIR" if [ -n "$target_dir" ]; then
[ "$PYENV_DIR" = "$PWD" ] || find_local_version_file "$PWD" find_local_version_file "$target_dir"
global_version_file="${PYENV_ROOT}/version"
if [ -e "$global_version_file" ]; then
echo "$global_version_file"
elif [ -e "${PYENV_ROOT}/global" ]; then
echo "${PYENV_ROOT}/global"
elif [ -e "${PYENV_ROOT}/default" ]; then
echo "${PYENV_ROOT}/default"
else else
echo "$global_version_file" find_local_version_file "$PYENV_DIR" || {
[ "$PYENV_DIR" != "$PWD" ] && find_local_version_file "$PWD"
} || echo "${PYENV_ROOT}/version"
fi fi

View File

@@ -5,18 +5,39 @@ set -e
VERSION_FILE="$1" VERSION_FILE="$1"
if [ -e "$VERSION_FILE" ]; then 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. # 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. # Be careful not to load it whole in case there's something crazy in it.
IFS="${IFS}"$'\r' IFS="$IFS"$'\r'
words=( $(cut -b 1-1024 "$VERSION_FILE" | $(type -p gawk awk | head -1) '{ print($1) }') ) sep=
versions=("${words[@]}") while read -n 1024 -r version _ || [[ $version ]]; do
if [[ -z "$version" || "$version" == \#* ]]; then
if [ -n "$versions" ]; then # Skip empty lines and comments
IFS=":" continue
echo "${versions[*]}" elif ! is_version_safe "$version"; then
exit # CVE-2022-35861 allowed arbitrary code execution in some contexts and is mitigated by is_version_safe.
fi 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 fi
exit 1 exit 1

View File

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

View File

@@ -1,13 +1,37 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Summary: Show the current Python version # 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 set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -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 if [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION_FILE="$(pyenv-version-file)" PYENV_VERSION_FILE="$(pyenv-version-file)"
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)" PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
fi 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 if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then
echo "system" echo "system"
exit exit
@@ -21,17 +45,25 @@ version_exists() {
versions=() versions=()
OLDIFS="$IFS" OLDIFS="$IFS"
{ IFS=: { IFS=:
any_not_installed=0
for version in ${PYENV_VERSION}; do for version in ${PYENV_VERSION}; do
if version_exists "$version" || [ "$version" = "system" ]; then # Remove the explicit 'python-' prefix from versions like 'python-3.12'.
versions=("${versions[@]}" "${version}") normalised_version="${version#python-}"
elif version_exists "${version#python-}"; then if version_exists "${version}" || [ "$version" = "system" ]; then
{ echo "warning: ignoring extraneous \`python-' prefix in version \`${version}'" versions+=("${version}")
echo " (set by $(pyenv-version-origin))" elif version_exists "${normalised_version}"; then
} >&2 versions+=("${normalised_version}")
versions=("${versions[@]}" "${version#python-}") elif resolved_version="$(pyenv-latest -b "${version}")"; then
versions+=("${resolved_version}")
elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then
versions+=("${resolved_version}")
else else
echo "pyenv: version \`$version' is not installed" >&2 if [[ -n $FORCE ]]; then
exit 1 versions+=("${normalised_version}")
else
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
any_not_installed=1
fi
fi fi
done done
} }
@@ -42,3 +74,7 @@ OLDIFS="$IFS"
echo "${versions[*]}" echo "${versions[*]}"
} }
IFS="$OLDIFS" IFS="$OLDIFS"
if [ "$any_not_installed" = 1 ]; then
exit 1
fi

View File

@@ -3,7 +3,18 @@
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
if [ -n "$PYENV_VERSION" ]; then 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" echo "PYENV_VERSION environment variable"
else else
pyenv-version-file pyenv-version-file

View File

@@ -1,22 +1,89 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Summary: List all Python versions available to pyenv # Summary: List all Python versions available to pyenv
# Usage: pyenv versions [--bare] # Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs]
# #
# Lists all Python versions found in `$PYENV_ROOT/versions/*'. # Lists all Python versions found in `$PYENV_ROOT/versions/*'.
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
if [ "$1" = "--bare" ]; then unset bare skip_aliases skip_envs
hit_prefix="" # Provide pyenv completions
miss_prefix="" for arg; do
case "$arg" in
--complete )
echo --bare
echo --skip-aliases
echo --skip-envs
exit ;;
--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"
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=() current_versions=()
fi
if [ -n "$bare" ]; then
include_system="" include_system=""
else else
hit_prefix="* " hit_prefix="* "
miss_prefix=" " miss_prefix=" "
OLDIFS="$IFS" OLDIFS="$IFS"
IFS=: current_versions=($(pyenv-version-name || true)) IFS=:
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
IFS="$OLDIFS" IFS="$OLDIFS"
include_system="1" include_system="1"
fi fi
@@ -36,26 +103,69 @@ exists() {
} }
print_version() { print_version() {
if exists "$1" "${current_versions[@]}"; then local version="${1:?}"
echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" 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 else
echo "${miss_prefix}$1" 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 fi
num_versions=$((num_versions + 1)) num_versions=$((num_versions + 1))
} }
# Include "system" in the non-bare output, if it exists # Include "system" in the non-bare output, if it exists
if [ -n "$include_system" ] && PYENV_VERSION=system pyenv-which python >/dev/null 2>&1; then if [ -n "$include_system" ] && \
print_version 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 fi
shopt -s nullglob shopt -s dotglob nullglob
for path in "${PYENV_ROOT}/versions/"*; do versions_dir_entries=("$versions_dir"/*)
if sort --version-sort </dev/null >/dev/null 2>&1; then
# system sort supports version sorting
OLDIFS="$IFS"
IFS=$'\n'
versions_dir_entries=($(
printf "%s\n" "${versions_dir_entries[@]}" |
sort --version-sort
))
IFS="$OLDIFS"
fi
for path in "${versions_dir_entries[@]}"; do
if [ -d "$path" ]; then if [ -d "$path" ]; then
print_version "${path##*/}" 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 fi
done done
shopt -u nullglob shopt -u dotglob nullglob
if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then
echo "Warning: no Python detected on the system" >&2 echo "Warning: no Python detected on the system" >&2

View File

@@ -8,7 +8,7 @@ set -e
# Provide pyenv completions # Provide pyenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
echo --path echo --path
exec pyenv shims --short exec pyenv-shims --short
fi fi
if [ "$1" = "--path" ]; then if [ "$1" = "--path" ]; then
@@ -20,7 +20,7 @@ fi
whence() { whence() {
local command="$1" local command="$1"
pyenv-versions --bare | while read version; do pyenv-versions --bare | while read -r version; do
path="$(pyenv-prefix "$version")/bin/${command}" path="$(pyenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version" [ "$print_paths" ] && echo "$path" || echo "$version"

View File

@@ -2,47 +2,80 @@
# #
# Summary: Display the full path to an executable # Summary: Display the full path to an executable
# #
# Usage: pyenv which <command> # Usage: pyenv which <command> [--nosystem] [--skip-advice]
# #
# Displays the full path to the executable that pyenv will invoke when # Displays the full path to the executable that pyenv will invoke when
# you run the given command. # 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 set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions # Provide pyenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
exec pyenv shims --short exec pyenv-shims --short
fi 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() { remove_from_path() {
local path_to_remove="$1" local path_to_remove="$1"
local path_before local path_before
local result=":$PATH:" local result=":${PATH//\~/$HOME}:"
while [ "$path_before" != "$result" ]; do while [ "$path_before" != "$result" ]; do
path_before="$result" path_before="$result"
result="${result//:$path_to_remove:/:}" result="${result//:$path_to_remove:/:}"
done done
echo "${result%:}" result="${result%:}"
echo "${result#:}"
} }
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage which >&2 pyenv-help --usage which >&2
exit 1 exit 1
fi fi
OLDIFS="$IFS" OLDIFS="$IFS"
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)}) IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)})
IFS="$OLDIFS" IFS="$OLDIFS"
for version in "${versions[@]}"; do declare -a nonexistent_versions
for version in "${versions[@]}" "$system"; do
if [ "$version" = "system" ]; then if [ "$version" = "system" ]; then
PATH="$(remove_from_path "${PYENV_ROOT}/shims")" PATH="$(remove_from_path "${PYENV_ROOT}/shims")"
PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)" PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)"
else else
PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}" # $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 fi
if [ -x "$PYENV_COMMAND_PATH" ]; then if [ -x "$PYENV_COMMAND_PATH" ]; then
break break
@@ -59,29 +92,24 @@ done
if [ -x "$PYENV_COMMAND_PATH" ]; then if [ -x "$PYENV_COMMAND_PATH" ]; then
echo "$PYENV_COMMAND_PATH" echo "$PYENV_COMMAND_PATH"
else else
any_not_installed=0 if (( ${#nonexistent_versions[@]} )); then
for version in "${versions[@]}"; do for version in "${nonexistent_versions[@]}"; do
if [ "$version" = "system" ]; then echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
continue done
fi
if ! [ -d "${PYENV_ROOT}/versions/${version}" ]; then
echo "pyenv: version \`$version' is not installed" >&2
any_not_installed=1
fi
done
if [ "$any_not_installed" = 1 ]; then
exit 1
fi fi
echo "pyenv: $PYENV_COMMAND: command not found" >&2 echo "pyenv: $PYENV_COMMAND: command not found" >&2
if [ -z "$SKIP_ADVICE" ]; then
versions="$(pyenv-whence "$PYENV_COMMAND" || true)" versions="$(pyenv-whence "$PYENV_COMMAND" || true)"
if [ -n "$versions" ]; then if [ -n "$versions" ]; then
{ echo { echo
echo "The \`$1' command exists in these Python versions:" echo "The \`$PYENV_COMMAND' command exists in these Python versions:"
echo "$versions" | sed 's/^/ /g' echo "$versions" | sed 's/^/ /g'
echo echo
} >&2 echo "Note: See 'pyenv help global' for tips on allowing both"
echo " python2 and python3 to be found."
} >&2
fi
fi fi
exit 127 exit 127

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

1
plugins/.gitignore vendored
View File

@@ -2,3 +2,4 @@
!/.gitignore !/.gitignore
!/version-ext-compat !/version-ext-compat
!/python-build !/python-build
/python-build/test/build

View File

@@ -0,0 +1,20 @@
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2012-2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,199 +1,342 @@
# python-build # python-build
python-build is a [pyenv](https://github.com/yyuu/pyenv) plugin python-build is a [pyenv](https://github.com/pyenv/pyenv) plugin that
that provides a `pyenv install` command to compile and install provides a `pyenv install` command to compile and install different versions
different versions of Python on UNIX-like systems. of Python on UNIX-like systems.
You can also use python-build without pyenv in environments where you You can also use python-build without pyenv in environments where you need
need precise control over Python version installation. precise control over Python version installation.
See the [list of releases](https://github.com/pyenv/pyenv/releases)
for changes in each version.
## Installation ## Installation
### Installing as an pyenv plugin (recommended) ### Installing as a pyenv plugin (recommended)
You need nothing to do since python-build is bundled with pyenv by Since python-build is bundled with pyenv by
default. default, you do not need to do anything.
### Installing as a standalone program (advanced) ### Installing as a standalone program (advanced)
Installing python-build as a standalone program will give you access to Installing python-build as a standalone program will give you access to the
the `python-build` command for precise control over Python version `python-build` command for precise control over Python version installation. If you
installation. If you have pyenv installed, you will also be able to have pyenv installed, you will also be able to use the `pyenv install` command.
use the `pyenv install` command.
git clone git://github.com/yyuu/pyenv.git git clone https://github.com/pyenv/pyenv.git
cd pyenv/plugins/python-build cd pyenv/plugins/python-build
./install.sh ./install.sh
This will install python-build into `/usr/local`. If you do not have This will install python-build into `/usr/local`. If you do not have write
write permission to `/usr/local`, you will need to run `sudo permission to `/usr/local`, you will need to run `sudo ./install.sh` instead.
./install.sh` instead. You can install to a different prefix by You can install to a different prefix by setting the `PREFIX` environment
setting the `PREFIX` environment variable. variable.
To update python-build after it has been installed, run `git pull` in To update python-build after it has been installed, run `git pull` in your cloned
your cloned copy of the repository, then re-run the install script. copy of the repository, then re-run the install script.
### Installing with Homebrew (for OS X users)
Mac OS X users can install python-build with the [Homebrew](http://brew.sh)
package manager. This will give you access to the `python-build` command. If you
have pyenv installed, you will also be able to use the `pyenv install` command.
*This is the recommended method of installation if you installed pyenv with
Homebrew.*
brew install pyenv
Or, if you would like to install the latest development release:
brew install --HEAD pyenv
## Usage ## Usage
Before you begin, you should ensure that your build environment has the proper
system dependencies for compiling the wanted Python Version (see our [recommendations](https://github.com/pyenv/pyenv/wiki#suggested-build-environment)).
### Using `pyenv install` with pyenv ### Using `pyenv install` with pyenv
To install a Python version for use with pyenv, run `pyenv install` with To install a Python version for use with pyenv, run `pyenv install` with
the exact name of the version you want to install. For example, exact name of the version you want to install. For example,
pyenv install 2.7.4 pyenv install 2.7.4
Python versions will be installed into a directory of the same name Python versions will be installed into a directory of the same name under
under `~/.pyenv/versions`. `~/.pyenv/versions`.
To see a list of all available Python versions, run `pyenv install --list`. To see a list of all available Python versions, run `pyenv install --list`. You
You may also tab-complete available Python may also tab-complete available Python versions if your pyenv installation is
versions if your pyenv installation is properly configured. properly configured.
### Using `python-build` standalone ### Using `python-build` standalone
If you have installed python-build as a standalone program, you can use If you have installed python-build as a standalone program, you can use the
the `python-build` command to compile and install Python versions into `python-build` command to compile and install Python versions into specific
specific locations. locations.
Run the `python-build` command with the exact name of the version you Run the `python-build` command with the exact name of the version you want to
want to install and the full path where you want to install it. For install and the full path where you want to install it. For example,
example,
python-build 2.7.4 ~/local/python-2.7.4 python-build 2.7.4 ~/local/python-2.7.4
To see a list of all available Python versions, run `python-build To see a list of all available Python versions, run `python-build --definitions`.
--definitions`.
Pass the `-v` or `--verbose` flag to `python-build` as the first Pass the `-v` or `--verbose` flag to `python-build` as the first argument to see
argument to see what's happening under the hood. what's happening under the hood.
### Custom definitions ### Custom definitions
Both `pyenv install` and `python-build` accept a path to a custom Both `pyenv install` and `python-build` accept a path to a custom definition file
definition file in place of a version name. Custom definitions let you in place of a version name. Custom definitions let you develop and install
develop and install versions of Python that are not yet supported by versions of Python that are not yet supported by python-build.
python-build.
See the [python-build built-in definitions](https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build) as a starting point for
custom definition files.
#### Adding definitions with a Pyenv plugin
You can add your own definitions with a [Pyenv plugin](https://github.com/pyenv/pyenv?tab=readme-ov-file#pyenv-plugins) by placing them under
`$PYENV_ROOT/plugins/your_plugin_name/share/python-build`.
### Default build configuration
Without the user customizing the build with environment variables (see below),
`python-build` builds Python with mostly default Configure options
to maintain the principle of the least surprise.
The exceptions -- non-default options that are set by default -- are listed below:
| Option/Behavior | Rationale |
|-----------------|-----------|
| `--enable-shared` is on by default. Pass `--disable-shared` to Configure options to override | The official CPython Docker image uses it. It's required to embed CPython. |
| argument to `--enable-universalsdk` is ignored and set to `/` |
| `--with-universal-archs` defaults to `universal2` on ARM64 architecture | the only dual-architecture Macs in use today are Apple Silicon which can only build that one |
| argument to `--enable-framework` is ignored and set to a specific value | CPython's build logic requires a very specific argument to avoid installing the `Applications` part globally |
| argument to `--enable-unicode` in non-MacOS is overridden to `ucs4` for 2.x-3.3 |
| `MACOSX_DEPLOYMENT_TARGET` defaults to the running MacOS version |
#### Integration with 3rd-party package ecosystems
##### Homebrew
Homebrew is used to find dependency packages if `brew` is found on `PATH`:
* In MacOS, or
* If the running Pyenv itself is installed with Homebrew
Set `PYTHON_BUILD_USE_HOMEBREW` or `PYTHON_BUILD_SKIP_HOMEBREW` to override this default.
When Homebrew is used, its `include` and `lib` paths are added to compiler search path (the latter is also set as `rpath`),
and also Python dependencies that are typically keg-only are searched for in the Homebrew installation and added individually.
**NOTE:** Homebrew is not used in Linux by default because it's rolling-release which causes a problem.
Upgrading a Python dependency in Homebrew to a new major version (that `brew` does without warning)
would break all Pyenv-managed installations that depend on it.
You can use a [community plugin `fix-version`](https://github.com/pyenv/pyenv/wiki/Plugins#community-plugins)
to fix installations in such a case.
##### Portage
In FreeBSD, if `pkg` is on PATH, Ports are searched for some dependencies that Configure is known to not search for via `pkg-config`.
(Later versions of CPython search for more packages via `pkg-config` so this may eventually become redundant.)
See the [python-build built-in
definitions](https://github.com/yyuu/pyenv/tree/master/plugins/python-build/share/python-build)
as a starting point for custom definition files.
### Special environment variables ### Special environment variables
You can set certain environment variables to control the build You can set certain environment variables to control the build process.
process.
* `TMPDIR` sets the location where python-build stores temporary files. * `TMPDIR` sets the location where python-build stores temporary files.
* `PYTHON_BUILD_BUILD_PATH` sets the location in which sources are * `PYTHON_BUILD_BUILD_PATH` sets the location in which sources are downloaded and
downloaded and built. By default, this is a subdirectory of built. By default, this is a subdirectory of `TMPDIR`.
`TMPDIR`. * `PYTHON_BUILD_CACHE_PATH`, if set, specifies a directory to use for caching
* `PYTHON_BUILD_CACHE_PATH`, if set, specifies a directory to use for downloaded package files.
caching downloaded package files. * `PYTHON_BUILD_MIRROR_URL` overrides the default mirror URL root to one of your
* `PYTHON_BUILD_MIRROR_URL` overrides the default mirror URL root to one choosing.
of your choosing. * `PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM`, if set, does not append the SHA2
* `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download checksum of the file to the mirror URL.
packages from their original source URLs instead of using a mirror. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from
their original source URLs instead of using a mirror.
* `PYTHON_BUILD_HTTP_CLIENT`, explicitly specify the HTTP client type to use. `aria2`, `curl` and `wget` are the supported values and by default, are searched in that order.
* `PYTHON_BUILD_CURL_OPTS`, `PYTHON_BUILD_WGET_OPTS`, `PYTHON_BUILD_ARIA2_OPTS` pass additional parameters to the corresponding HTTP client.
* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will.
* `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not.
* `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use.
* `PYTHON_BUILD_ROOT` overrides the default location from where build definitions
in `share/python-build/` are looked up.
* `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get
additionally searched when looking up build definitions.
* `CC` sets the path to the C compiler. * `CC` sets the path to the C compiler.
* `CONFIGURE_OPTS` lets you pass additional options to `./configure`. * `CONFIGURE_OPTS` lets you pass additional options to `./configure`.
* `MAKE` lets you override the command to use for `make`. Useful for * `MAKE` lets you override the command to use for `make`. Useful for specifying
specifying GNU make (`gmake`) on some systems. GNU make (`gmake`) on some systems.
* `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to * `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to `make`.
`make`. * `MAKE_INSTALL_OPTS` lets you pass additional options to `make install`.
* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_OPTS` allow you to specify * `<PACKAGE>_CFLAGS`, `<PACKAGE>_CPPFLAGS`, `<PACKAGE>_LDFLAGS` let you pass additional options to `CFLAGS`/`CPPFLAGS`/`LDFLAGS` specifically for building `<package>` (Python itself or a dependency library) from source as part of the build script. `<PACKAGE>` should be a capitalized name of the package without version (technically, capitalized first argument to `install_package` without version). E.g. for CPython, it's "`PYTHON`", for Readline, "`READLINE`", for PyPy (only applies when building it from source), "`PYPY`". Check the source of the build script you're using if unsure.
configure and make options for buildling CPython. These variables will * `<PACKAGE>_CONFIGURE_OPTS`, `<PACKAGE>_MAKE_OPTS`, `<PACKAGE>_MAKE_INSTALL_OPTS`, `<PACKAGE>_MAKE_INSTALL_TARGET` allow
be passed to Python only, not any dependent packages (e.g. libyaml). you to specify configure and make options for building `<package>` (same as above). "Make install target" would replace "`install`" in the `make install` invocation.
### Applying patches to Python before compiling
Both `pyenv install` and `python-build` support the `--patch` (`-p`) flag that
signals that a patch from stdin should be applied to Python, Jython or PyPy
source code before the `./configure` and compilation steps.
Example usage:
```sh
# applying a single patch
$ pyenv install --patch 2.7.10 < /path/to/python.patch
# applying a patch from HTTP
$ pyenv install --patch 2.7.10 < <(curl -sSL http://git.io/python.patch)
# applying multiple patches
$ cat fix1.patch fix2.patch | pyenv install --patch 2.7.10
```
### Building for maximum performance
Building CPython with `--enable-optimizations` will result in a faster
interpreter at the cost of significantly longer build times. Most notably, this
enables PGO (profile guided optimization). While your mileage may vary, it is
common for performance improvement from this to be in the ballpark of 30%.
```sh
env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install --verbose 3.6.0
```
You can also customize the task used for profile guided optimization by setting
the `PROFILE_TASK` environment variable, for instance, `PROFILE_TASK='-m
test.regrtest --pgo -j0'` will run much faster than the default task.
### Checksum verification ### Checksum verification
If you have the `shasum`, `openssl`, or `sha256sum` tool installed, If you have the `shasum`, `openssl`, or `sha256sum` tool installed, python-build will
python-build will automatically verify the SHA2 checksum of each automatically verify the SHA2 checksum of each downloaded package before
downloaded package before installing it. installing it.
Checksums are optional and specified as anchors on the package URL in Checksums are optional and specified as anchors on the package URL in each
each definition. (All bundled definitions include checksums.) definition. (All bundled definitions include checksums.)
### Package download mirrors ### Package download mirrors
python-build will first attempt to download package files from a mirror python-build will first attempt to download package files from a mirror hosted on
hosted on Amazon CloudFront. If a package is not available on the GitHub Pages. If this fails, it will fall back to the
mirror, if the mirror is down, or if the download is corrupt, official URL specified in the definition file.
python-build will fall back to the official URL specified in the
defintion file.
You can point python-build to another mirror by specifying the You can point python-build to another mirror by specifying the
`PYTHON_BUILD_MIRROR_URL` environment variable--useful if you'd like to `PYTHON_BUILD_MIRROR_URL` environment variable.
run your own local mirror, for example. Package mirror URLs are
constructed by joining this variable with the SHA2 checksum of the
package file.
If you don't have an SHA2 program installed, python-build will skip the Package mirror URLs are constructed by joining
download mirror and use official URLs instead. You can force `$PYTHON_BUILD_MIRROR_URL` with the SHA2 checksum of the package file as specified in the URL
python-build to bypass the mirror by setting the in the installation script (the part after the hash sign). E.g.:
`PYTHON_BUILD_SKIP_MIRROR` environment variable.
The official python-build download mirror is provided by [Git Hub Pages](http://yyuu.github.io/pythons/). ```
https://mycache.example.com/0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3
```
### Package download caching If you have replicated the directory structure of an official site, the easiest way to adapt
would be to make symlinks at the mirror's root:
You can instruct python-build to keep a local cache of downloaded ```
package files by setting the `PYTHON_BUILD_CACHE_PATH` environment 0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3 -> 3.10.10/Python-3.10.10.tar.xz
variable. When set, package files will be kept in this directory after ```
the first successful download and reused by subsequent invocations of
`python-build` and `pyenv install`.
The `pyenv install` command defaults this path to `~/.pyenv/cache`, so The rationale is to abstract away difference between directory structures of sites
in most cases you can enable download caching simply by creating that of various Python flavors and their occasional changes as well as to accomodate
directory. people who only wish to cache some select downloads. This also allows to mirror multiple sites at once.
If the mirror being used does not have the same checksum (*e.g.* with a
pull-through cache like Artifactory), you can set the
`PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM` environment variable.
If you don't have an SHA2 program installed, python-build will skip the download
mirror and use official URLs instead. You can force python-build to bypass the
mirror by setting the `PYTHON_BUILD_SKIP_MIRROR` environment variable.
The official python-build download mirror is provided by
[GitHub Pages](http://yyuu.github.io/pythons/).
### Package download cache
Python-build will keep a cache of downloaded package files
at the location specified by the `PYTHON_BUILD_CACHE_PATH` environment variable
if it exists. The default is `~/.pyenv/cache`, so you can
enable caching by just creating that directory.
The name of the would-be cached file is reported by Pyenv in the "Downloading &lt;filename&gt;..." message.
It's possible to warm up the cache by manually putting the file there under an appropriate name.
### Keeping the build directory after installation ### Keeping the build directory after installation
Both `python-build` and `pyenv install` accept the `-k` or `--keep` Both `python-build` and `pyenv install` accept the `-k` or `--keep` flag, which
flag, which tells python-build to keep the downloaded source after tells python-build to keep the downloaded source after installation. This can be
installation. This can be useful if you need to use `gdb` and useful if you need to use `gdb` and `memprof` with Python.
`memprof` with Python.
Source code will be kept in a parallel directory tree Source code will be kept in a parallel directory tree `~/.pyenv/sources` when
`~/.pyenv/sources` when using `--keep` with the `pyenv install` using `--keep` with the `pyenv install` command. You should specify the
command. You should specify the location of the source code with the location of the source code with the `PYTHON_BUILD_BUILD_PATH` environment
`PYTHON_BUILD_BUILD_PATH` environment variable when using `--keep` with variable when using `--keep` with `python-build`.
`python-build`.
## Getting Help ## Getting Help
Please see the [python-build Please see the [pyenv wiki](https://github.com/pyenv/pyenv/wiki) for solutions to common problems.
wiki](https://github.com/yyuu/pyenv/wiki) for solutions to
common problems. [wiki]: https://github.com/pyenv/pyenv/wiki
If you can't find an answer on the wiki, open an issue on the [issue If you can't find an answer on the wiki, open an issue on the [issue
tracker](https://github.com/yyuu/pyenv/issues). Be sure to tracker](https://github.com/pyenv/pyenv/issues). Be sure to include
include the full build log for build failures. the full build log for build failures.
## Contributing
### License ### Testing new python versions
(The MIT License) If you are contributing a new python version for python-build,
you can test the build in a [docker](https://www.docker.com/) container based on Ubuntu 18.04.
* Copyright (c) 2013 Yamashita, Yuu With docker installed:
* Copyright (c) 2012 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining ```sh
a copy of this software and associated documentation files (the docker build -t my_container .
"Software"), to deal in the Software without restriction, including docker run my_container pyenv install <my_version>
without limitation the rights to use, copy, modify, merge, publish, ```
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be To enter a shell which will allow you to build and then test a python version,
included in all copies or substantial portions of the Software. replace the second line with
```sh
docker run -it my_container
```
The container will need to be rebuilt whenever you change the repo,
but after the first build, this will be very fast,
as the layer including the build dependencies will be cached.
Changes made inside the container will not be persisted.
To test *all* new versions since a particular revision (e.g. `master`), `cd` to the root of your `pyenv` repo, and run this script:
```sh
set -e
set -x
docker build -t pyenv-test-container .
git diff --name-only master \
| grep '^plugins/python-build/share/python-build/' \
| awk -F '/' '{print $NF}' \
| xargs -I _ docker run pyenv-test-container pyenv install _
```
- Build the docker image with the **t**ag pyenv-test-container
- Look for the names files changed since revision `master`
- Filter out any which don't live where python-build keeps its build scripts
- Look only at the file name (i.e. the python version name)
- Run a new docker container for each, building that version
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@@ -2,9 +2,10 @@
# #
# Summary: Install a Python version using python-build # Summary: Install a Python version using python-build
# #
# Usage: pyenv install [-f] [-kvp] <version> # Usage: pyenv install [-f] [-kvp] <version>...
# pyenv install [-f] [-kvp] <definition-file> # pyenv install [-f] [-kvp] <definition-file>
# pyenv install -l|--list # pyenv install -l|--list
# pyenv install --version
# #
# -l/--list List all available versions # -l/--list List all available versions
# -f/--force Install even if the version appears to be installed already # -f/--force Install even if the version appears to be installed already
@@ -14,21 +15,18 @@
# #
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation # -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
# (defaults to $PYENV_ROOT/sources) # (defaults to $PYENV_ROOT/sources)
# -v/--verbose Verbose mode: print compilation status to stdout
# -p/--patch Apply a patch from stdin before building # -p/--patch Apply a patch from stdin before building
# -v/--verbose Verbose mode: print compilation status to stdout
# --version Show version of python-build
# -g/--debug Build a debug version # -g/--debug Build a debug version
# #
# For detailed information on installing Python versions with # For detailed information on installing Python versions with
# python-build, including a list of environment variables for adjusting # python-build, including a list of environment variables for adjusting
# compilation, see: https://github.com/yyuu/pyenv#readme # compilation, see: https://github.com/pyenv/pyenv#readme
# #
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x [ -n "$PYENV_DEBUG" ] && set -x
if [ -z "$PYENV_ROOT" ]; then
PYENV_ROOT="${HOME}/.pyenv"
fi
# Add `share/python-build/` directory from each pyenv plugin to the list of # Add `share/python-build/` directory from each pyenv plugin to the list of
# paths where build definitions are looked up. # paths where build definitions are looked up.
shopt -s nullglob shopt -s nullglob
@@ -40,6 +38,14 @@ shopt -u nullglob
# Provide pyenv completions # Provide pyenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
echo --list
echo --force
echo --skip-existing
echo --keep
echo --patch
echo --verbose
echo --version
echo --debug
exec python-build --definitions exec python-build --definitions
fi fi
@@ -47,14 +53,13 @@ fi
eval "$(python-build --lib)" eval "$(python-build --lib)"
usage() { usage() {
# We can remove the sed fallback once pyenv 0.4.0 is widely available. pyenv-help install 2>/dev/null
pyenv-help install 2>/dev/null || sed -ne '/^#/!q;s/.//;s/.//;1,4d;p' < "$0"
[ -z "$1" ] || exit "$1" [ -z "$1" ] || exit "$1"
} }
definitions() { definitions() {
local query="$1" local query="$1"
python-build --definitions | $(type -p ggrep grep | head -1) -F "$query" || true python-build --definitions | $(type -P ggrep grep | head -n1) -F "$query" || true
} }
indent() { indent() {
@@ -68,6 +73,8 @@ unset VERBOSE
unset HAS_PATCH unset HAS_PATCH
unset DEBUG unset DEBUG
[ -n "$PYENV_DEBUG" ] && VERBOSE="-v"
parse_options "$@" parse_options "$@"
for option in "${OPTIONS[@]}"; do for option in "${OPTIONS[@]}"; do
case "$option" in case "$option" in
@@ -101,7 +108,7 @@ for option in "${OPTIONS[@]}"; do
exec python-build --version exec python-build --version
;; ;;
* ) * )
usage 1 usage 1 >&2
;; ;;
esac esac
done done
@@ -112,10 +119,9 @@ unset VERSION_NAME
# argument is missing, try to install whatever local app-specific # argument is missing, try to install whatever local app-specific
# version is specified by pyenv. Show usage instructions if a local # version is specified by pyenv. Show usage instructions if a local
# version is not specified. # version is not specified.
DEFINITION="${ARGUMENTS[0]}" DEFINITIONS=("${ARGUMENTS[@]}")
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)" [[ "${#DEFINITIONS[*]}" -eq 0 ]] && DEFINITIONS=($(pyenv-local 2>/dev/null || true))
[ -n "$DEFINITION" ] || usage 1 [[ "${#DEFINITIONS[*]}" -eq 0 ]] && usage 1 >&2
# Define `before_install` and `after_install` functions that allow # Define `before_install` and `after_install` functions that allow
# plugin hooks to register a string of code for execution before or # plugin hooks to register a string of code for execution before or
@@ -132,90 +138,6 @@ after_install() {
after_hooks["${#after_hooks[@]}"]="$hook" after_hooks["${#after_hooks[@]}"]="$hook"
} }
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks install`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
# compute the installation prefix.
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -d "${PREFIX}/bin" ]; then
if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then
echo "pyenv: $PREFIX already exists" >&2
read -p "continue with installation? (y/N) "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
elif [ -n "$SKIP_EXISTING" ]; then
# Since we know the python version is already installed, and are opting to
# not force installation of existing versions, we just `exit 0` here to
# leave things happy
exit 0
fi
fi
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
if [ -n "${PYENV_BUILD_ROOT}" ]; then
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
KEEP="-k"
fi
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
# exists and the variable is not already set.
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
fi
# Default PYENV_VERSION to the friendly Python version. (The
# CPython installer requires an existing Python installation to run. An
# unsatisfied local .python-version file can cause the installer to
# fail.)
if [[ "${VERSION_NAME}" == [23]"."* ]]; then
for version in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
PYENV_VERSION="$(pyenv-whence "python${version}" 2>/dev/null | tail -n 1 || true)"
if [ -n "${PYENV_VERSION}" ]; then
export PYENV_VERSION
break
fi
done
fi
# PyPy requires existing Python 2.x to build
if [[ "${VERSION_NAME}" == "pypy-"*"-src" ]]; then
if [ -z "$PYENV_RPYTHON_VERSION" ]; then
for version in $(pyenv-versions --bare | sort -r); do
if [[ "$version" == 2.[567] ]] || [[ "$version" == 2.[567].* ]]; then
PYENV_RPYTHON_VERSION="$version"
fi
done
fi
if [ -n "$PYENV_RPYTHON_VERSION" ]; then
if PYENV_VERSION="$PYENV_RPYTHON_VERSION" pyenv-exec python -c 'import curses' 1>/dev/null 2>&1; then
export PYENV_VERSION="$PYENV_RPYTHON_VERSION"
else
echo "pyenv-install: $VERSION_NAME: PyPy requires \`curses' in $PYENV_RPYTHON_VERSION to build from source." >&2
exit 1
fi
else
echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.5, 2.6 or 2.7 to build from source." >&2
exit 1
fi
fi
# Execute `before_install` hooks.
for hook in "${before_hooks[@]}"; do eval "$hook"; done
# Plan cleanup on unsuccessful installation. # Plan cleanup on unsuccessful installation.
cleanup() { cleanup() {
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX" [ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
@@ -223,43 +145,151 @@ cleanup() {
trap cleanup SIGINT trap cleanup SIGINT
# Invoke `python-build` and record the exit status in $STATUS.
STATUS=0
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found. OLDIFS="$IFS"
if [ "$STATUS" == "2" ]; then IFS=$'\n' scripts=(`pyenv-hooks install`)
{ candidates="$(definitions "$DEFINITION")" IFS="$OLDIFS"
here="$(dirname "${0%/*}")/../.." for script in "${scripts[@]}"; do source "$script"; done
if [ -n "$candidates" ]; then
COMBINED_STATUS=0
for DEFINITION in "${DEFINITIONS[@]}"; do
STATUS=0
# Try to resolve a prefix if user indeed gave a prefix.
# We install the version under the resolved name
# and hooks also see the resolved name
DEFINITION="$(pyenv-latest -f -k "$DEFINITION")"
# Set VERSION_NAME from $DEFINITION. Then compute the installation prefix.
VERSION_NAME="${DEFINITION##*/}"
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -d "${PREFIX}/bin" ]; then
if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then
echo "pyenv: $PREFIX already exists" >&2
read -p "continue with installation? (y/N) "
case "$REPLY" in
y | Y | yes | YES ) ;;
* ) { STATUS=1; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; }; continue ;;
esac
elif [ -n "$SKIP_EXISTING" ]; then
# Since we know the python version is already installed, and are opting to
# not force installation of existing versions, we just `exit 0` here to
# leave things happy
continue
fi
fi
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
if [ -n "${PYENV_BUILD_ROOT}" ]; then
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
KEEP="-k"
fi
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
# exists and the variable is not already set.
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
fi
if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then
case "${VERSION_NAME}" in
[23]"."* )
# Default PYENV_VERSION to the friendly Python version. (The
# CPython installer requires an existing Python installation to run. An
# unsatisfied local .python-version file can cause the installer to
# fail.)
for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
# Anaconda's `curl` doesn't work on platform where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian)
for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do
if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then
PYENV_BOOTSTRAP_VERSION="${version}"
break 2
fi
done
done
;;
"pypy"*"-dev" | "pypy"*"-src" )
# PyPy/PyPy3 requires existing Python 2.7 to build
if [ -n "${PYENV_RPYTHON_VERSION}" ]; then
PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}"
else
for version in $(pyenv-versions --bare | sort -r); do
if [[ "${version}" == "2.7"* ]]; then
PYENV_BOOTSTRAP_VERSION="$version"
break
fi
done
fi
if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then
for dep in pycparser; do
if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then
echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2
exit 1
fi
done
else
echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2
exit 1
fi
;;
esac
fi
if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then
export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}"
fi
# Execute `before_install` hooks.
for hook in "${before_hooks[@]}"; do eval "$hook"; done
# Invoke `python-build` and record the exit status in $STATUS.
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || \
{ STATUS=$?; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; }
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
here="$(dirname "${0%/*}")/../.."
if [ -n "$candidates" ]; then
echo
echo "The following versions contain \`$DEFINITION' in the name:"
echo "$candidates" | indent
fi
echo echo
echo "The following versions contain \`$DEFINITION' in the name:" echo "See all available versions with \`pyenv install --list'."
echo "$candidates" | indent echo
fi echo -n "If the version you need is missing, try upgrading pyenv"
echo if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then
echo "See all available versions with \`pyenv install --list'." printf ":\n\n"
echo echo " brew update && brew upgrade pyenv"
echo -n "If the version you need is missing, try upgrading pyenv" elif [ -d "${here}/.git" ]; then
if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then printf ":\n\n"
printf ":\n\n" echo " cd ${here} && git pull && cd -"
echo " brew update && brew upgrade pyenv" else
elif [ -d "${here}/.git" ]; then printf ".\n"
printf ":\n\n" fi
echo " cd ${here} && git pull" } >&2
else fi
printf ".\n"
fi
} >&2
fi
# Execute `after_install` hooks. # Execute `after_install` hooks.
for hook in "${after_hooks[@]}"; do eval "$hook"; done for hook in "${after_hooks[@]}"; do eval "$hook"; done
# Run `pyenv-rehash` after a successful installation. # Run `pyenv-rehash` after a successful installation.
if [ "$STATUS" == "0" ]; then if [[ $STATUS -eq 0 ]]; then
pyenv-rehash pyenv-rehash
else else
cleanup cleanup
fi break
fi
exit "$STATUS" done
exit "${COMBINED_STATUS}"

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# #
# Summary: Uninstall a specific Python version # Summary: Uninstall Python versions
# #
# Usage: pyenv uninstall [-f|--force] <version> # Usage: pyenv uninstall [-f|--force] <version> ...
# #
# -f Attempt to remove the specified version without prompting # -f Attempt to remove the specified version without prompting
# for confirmation. If the version does not exist, do not # for confirmation. If the version does not exist, do not
@@ -11,14 +11,21 @@
# See `pyenv versions` for a complete list of installed versions. # See `pyenv versions` for a complete list of installed versions.
# #
set -e set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions # Provide pyenv completions
if [ "$1" = "--complete" ]; then if [ "$1" = "--complete" ]; then
echo --force
exec pyenv versions --bare exec pyenv versions --bare
fi fi
if [ -z "$PYENV_ROOT" ]; then usage() {
PYENV_ROOT="${HOME}/.pyenv" pyenv-help uninstall 2>/dev/null
[ -z "$1" ] || exit "$1"
}
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage 0
fi fi
unset FORCE unset FORCE
@@ -27,16 +34,17 @@ if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
shift shift
fi fi
DEFINITION="$1" [ "$#" -gt 0 ] || usage 1 >&2
case "$DEFINITION" in
"" | -* ) versions=("$@")
# We can remove the sed fallback once pyenv 0.4.0 is widely available.
{ pyenv-help uninstall 2>/dev/null || for version in "${versions[@]}"; do
sed -ne '/^#/!q;s/.\{1,2\}//;1,4d;p' < "$0" case "$version" in
} >&2 "" | -* )
exit 1 usage 1 >&2
;; ;;
esac esac
done
declare -a before_hooks after_hooks declare -a before_hooks after_hooks
@@ -55,28 +63,36 @@ IFS=$'\n' scripts=(`pyenv-hooks uninstall`)
IFS="$OLDIFS" IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done for script in "${scripts[@]}"; do source "$script"; done
uninstall-python() {
local DEFINITION="$1"
VERSION_NAME="${DEFINITION##*/}" local VERSION_NAME="${DEFINITION##*/}"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" local PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
if [ -z "$FORCE" ]; then if [ -z "$FORCE" ]; then
if [ ! -d "$PREFIX" ]; then if [ ! -d "$PREFIX" ]; then
echo "pyenv: version \`$VERSION_NAME' not installed" >&2 echo "pyenv: version \`$VERSION_NAME' not installed" >&2
exit 1 exit 1
fi
read -p "pyenv: remove $PREFIX? (y/N) "
case "$REPLY" in
y | Y | yes | YES ) ;;
* ) exit 1 ;;
esac
fi fi
read -p "pyenv: remove $PREFIX? " for hook in "${before_hooks[@]}"; do eval "$hook"; done
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
fi
for hook in "${before_hooks[@]}"; do eval "$hook"; done if [ -d "$PREFIX" ]; then
rm -rf "$PREFIX"
pyenv-rehash
echo "pyenv: $VERSION_NAME uninstalled"
fi
if [ -d "$PREFIX" ]; then for hook in "${after_hooks[@]}"; do eval "$hook"; done
rm -rf "$PREFIX" }
pyenv-rehash
fi
for hook in "${after_hooks[@]}"; do eval "$hook"; done for version in "${versions[@]}"; do
uninstall-python "$version"
done

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
# Scripts for updating python-build
Install dependencies with `pip install -r requirements.txt`.
## add_miniconda.py
```_add_miniconda
usage: add_miniconda.py [-h] [-d] [-v]
Script to add non-"latest" miniconda releases. Written for python 3.7. Checks
the miniconda download archives for new versions, then writes a build script
for any which do not exist locally, saving it to plugins/python-
build/share/python-build. Ignores releases below 4.3.30. Also ignores sub-
patch releases if that major.minor.patch already exists, but otherwise, takes
the latest sub-patch release for given OS/arch. Assumes all miniconda3
releases < 4.7 default to python 3.6, and anything else 3.7.
optional arguments:
-h, --help show this help message and exit
-d, --dry-run Do not write scripts, just report them to stdout
-v, --verbose Increase verbosity of logging
```

View File

@@ -0,0 +1,423 @@
#!/usr/bin/env python3
"""Script to add non-"latest" miniconda releases.
Written for python 3.7.
Checks the miniconda download archives for new versions,
then writes a build script for any which do not exist locally,
saving it to plugins/python-build/share/python-build.
Ignores releases below 4.3.30.
Also ignores sub-patch releases if that major.minor.patch already exists,
but otherwise, takes the latest sub-patch release for given OS/arch.
Assumes all miniconda3 releases < 4.7 default to python 3.6, and anything else 3.7.
"""
import logging
import re
import string
import sys
import textwrap
from argparse import ArgumentParser
from collections import defaultdict
from dataclasses import dataclass
from enum import Enum
from functools import total_ordering
from pathlib import Path
from typing import NamedTuple, List, Optional, DefaultDict, Dict
import requests_html
logger = logging.getLogger(__name__)
CONDA_REPO = "https://repo.anaconda.com"
MINICONDA_REPO = CONDA_REPO + "/miniconda"
ANACONDA_REPO = CONDA_REPO + "/archive"
install_script_fmt = """
case "$(anaconda_architecture 2>/dev/null || true)" in
{install_lines}
* )
{{ echo
colorize 1 "ERROR"
echo ": The binary distribution of {tflavor} is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
}} >&2
exit 1
;;
esac
""".lstrip()
install_line_fmt = """
"{os}-{arch}" )
install_script "{tflavor}{suffix}-{version_py_version}{version_str}-{os}-{arch}" "{repo}/{tflavor}{suffix}-{version_py_version}{version_str}-{os}-{arch}.sh#{md5}" "{flavor}" verify_{py_version}
;;
""".strip()
here = Path(__file__).resolve()
out_dir: Path = here.parent.parent / "share" / "python-build"
class StrEnum(str, Enum):
"""Enum subclass whose members are also instances of str
and directly comparable to strings. str type is forced at declaration.
Adapted from https://github.com/kissgyorgy/enum34-custom/blob/dbc89596761c970398701d26c6a5bbcfcf70f548/enum_custom.py#L100
(MIT license)
"""
def __new__(cls, *args):
for arg in args:
if not isinstance(arg, str):
raise TypeError("Not text %s:" % arg)
return super(StrEnum, cls).__new__(cls, *args)
def __str__(self):
return str(self.value)
class SupportedOS(StrEnum):
LINUX = "Linux"
MACOSX = "MacOSX"
class SupportedArch(StrEnum):
AARCH64 = "aarch64"
ARM64 = "arm64"
PPC64LE = "ppc64le"
S390X = "s390x"
X86_64 = "x86_64"
X86 = "x86"
class Flavor(StrEnum):
ANACONDA = "anaconda"
MINICONDA = "miniconda"
class TFlavor(StrEnum):
ANACONDA = "Anaconda"
MINICONDA = "Miniconda"
class Suffix(StrEnum):
TWO = "2"
THREE = "3"
NONE = ""
PyVersion = None
class PyVersionMeta(type):
def __getattr__(self, name):
"""Generate PyVersion.PYXXX on demand to future-proof it"""
if PyVersion is not None:
return PyVersion(name.lower())
return super(PyVersionMeta,self).__getattr__(self, name)
@dataclass(frozen=True)
class PyVersion(metaclass=PyVersionMeta):
major: str
minor: str
def __init__(self, value):
(major, minor) = re.match(r"py(\d)(\d+)", value).groups()
object.__setattr__(self, "major", major)
object.__setattr__(self, "minor", minor)
@property
def value(self):
return f"py{self.major}{self.minor}"
def version(self):
return f"{self.major}.{self.minor}"
def version_info(self):
return (self.major, self.minor)
def __str__(self):
return self.value
@total_ordering
class VersionStr(str):
def info(self):
return tuple(int(n) for n in self.replace("-", ".").split("."))
def __eq__(self, other):
return str(self) == str(other)
def __lt__(self, other):
if isinstance(other, VersionStr):
return self.info() < other.info()
raise ValueError("VersionStr can only be compared to other VersionStr")
@classmethod
def from_info(cls, version_info):
return VersionStr(".".join(str(n) for n in version_info))
def __hash__(self):
return hash(str(self))
class CondaVersion(NamedTuple):
flavor: Flavor
suffix: Suffix
version_str: VersionStr
py_version: Optional[PyVersion]
@classmethod
def from_str(cls, s):
"""
Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`CondaVersion` object.
"""
miniconda_n, _, remainder = s.partition("-")
suffix = miniconda_n[-1]
if suffix in string.digits:
flavor = miniconda_n[:-1]
else:
flavor = miniconda_n
suffix = ""
components = remainder.split("-")
if flavor == Flavor.MINICONDA and len(components) >= 2:
py_ver, *ver_parts = components
py_ver = PyVersion(f"py{py_ver.replace('.', '')}")
ver = "-".join(ver_parts)
else:
ver = "-".join(components)
py_ver = None
return CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver)
def to_filename(self):
if self.py_version:
return f"{self.flavor}{self.suffix}-{self.py_version.version()}-{self.version_str}"
else:
return f"{self.flavor}{self.suffix}-{self.version_str}"
def default_py_version(self):
"""
:class:`PyVersion` of Python used with this Miniconda version
"""
if self.py_version:
return self.py_version
elif self.suffix == Suffix.TWO:
return PyVersion.PY27
v = self.version_str.info()
if self.flavor == "miniconda":
# https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html
if v < (4, 7):
return PyVersion.PY36
if v < (4, 8):
return PyVersion.PY37
else:
# since 4.8, Miniconda specifies versions explicitly in the file name
raise ValueError("Miniconda 4.8+ is supposed to specify a Python version explicitly")
if self.flavor == "anaconda":
# https://docs.anaconda.com/free/anaconda/reference/release-notes/
if v >= (2024,6):
return PyVersion.PY312
if v >= (2023,7):
return PyVersion.PY311
if v >= (2023,3):
return PyVersion.PY310
if v >= (2021,11):
return PyVersion.PY39
if v >= (2020,7):
return PyVersion.PY38
if v >= (2020,2):
return PyVersion.PY37
if v >= (5,3,0):
return PyVersion.PY37
return PyVersion.PY36
raise ValueError(self.flavor)
class CondaSpec(NamedTuple):
tflavor: TFlavor
version: CondaVersion
os: SupportedOS
arch: SupportedArch
md5: str
repo: str
py_version: Optional[PyVersion] = None
@classmethod
def from_filestem(cls, stem, md5, repo, py_version=None):
# The `*vers` captures the new trailing `-1` in some file names (a build number?)
# so they can be processed properly.
miniconda_n, *vers, os, arch = stem.split("-")
ver = "-".join(vers)
suffix = miniconda_n[-1]
if suffix in string.digits:
tflavor = miniconda_n[:-1]
else:
tflavor = miniconda_n
suffix = ""
flavor = tflavor.lower()
if ver.startswith("py"):
py_ver, ver = ver.split("_", maxsplit=1)
py_ver = PyVersion(py_ver)
else:
py_ver = None
spec = CondaSpec(
TFlavor(tflavor),
CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver),
SupportedOS(os),
SupportedArch(arch),
md5,
repo,
py_ver
)
if py_version is None and py_ver is None and ver != "latest":
spec = spec.with_py_version(spec.version.default_py_version())
return spec
def to_install_lines(self):
"""
Installation command for this version of Miniconda for use in a Pyenv installation script
"""
return install_line_fmt.format(
tflavor=self.tflavor,
flavor=self.version.flavor,
repo=self.repo,
suffix=self.version.suffix,
version_str=self.version.version_str,
version_py_version=f"{self.version.py_version}_" if self.version.py_version else "",
os=self.os,
arch=self.arch,
md5=self.md5,
py_version=self.py_version,
)
def with_py_version(self, py_version: PyVersion):
return CondaSpec(*self[:-1], py_version=py_version)
def make_script(specs: List[CondaSpec]):
install_lines = [s.to_install_lines() for s in specs]
return install_script_fmt.format(
install_lines="\n".join(install_lines),
tflavor=specs[0].tflavor,
)
def get_existing_condas(name):
"""
Enumerate existing Miniconda installation scripts in share/python-build/ except rolling releases.
:returns: A generator of :class:`CondaVersion` objects.
"""
logger.info("Getting known %(name)s versions",locals())
for p in out_dir.iterdir():
entry_name = p.name
if not p.is_file() or not entry_name.startswith(name):
continue
try:
v = CondaVersion.from_str(entry_name)
if v.version_str != "latest":
logger.debug("Found existing %(name)s version %(v)s", locals())
yield v
except ValueError as e:
logger.error("Unable to parse existing version %s: %s", entry_name, e)
def get_available_condas(name, repo):
"""
Fetch remote miniconda versions.
:returns: A generator of :class:`CondaSpec` objects for each release available for download
except rolling releases.
"""
logger.info("Fetching remote %(name)s versions",locals())
session = requests_html.HTMLSession()
response = session.get(repo)
page: requests_html.HTML = response.html
table = page.find("table", first=True)
rows = table.find("tr")[1:]
for row in rows:
f, size, date, md5 = row.find("td")
fname = f.text
md5 = md5.text
if not fname.endswith(".sh"):
continue
stem = fname[:-3]
try:
s = CondaSpec.from_filestem(stem, md5, repo)
if s.version.version_str != "latest":
logger.debug("Found remote %(name)s version %(s)s", locals())
yield s
except ValueError:
pass
def key_fn(spec: CondaSpec):
return (
spec.tflavor,
spec.version.version_str.info(),
spec.version.suffix.value,
spec.os.value,
spec.arch.value,
)
if __name__ == "__main__":
parser = ArgumentParser(description=__doc__)
parser.add_argument(
"-d", "--dry-run", action="store_true",
help="Do not write scripts, just report them to stdout",
)
parser.add_argument(
"-v", "--verbose", action="store_true", default=0,
help="Increase verbosity of logging",
)
parsed = parser.parse_args()
logging.basicConfig(level=logging.DEBUG if parsed.verbose else logging.INFO)
existing_versions = set()
available_specs = set()
for name,repo in ("miniconda",MINICONDA_REPO),("anaconda",ANACONDA_REPO):
existing_versions |= set(get_existing_condas(name))
available_specs |= set(get_available_condas(name, repo))
# version triple to triple-ified spec to raw spec
to_add: DefaultDict[
CondaVersion, Dict[CondaSpec, CondaSpec]
] = defaultdict(dict)
logger.info("Checking for new versions")
for s in sorted(available_specs, key=key_fn):
key = s.version
vv = key.version_str.info()
reason = None
if key in existing_versions:
reason = "already exists"
elif key.version_str.info() <= (4, 3, 30):
reason = "too old"
elif len(key.version_str.info()) >= 4 and "-" not in key.version_str:
reason = "ignoring hotfix releases"
if reason:
logger.debug("Ignoring version %(s)s (%(reason)s)", locals())
continue
to_add[key][s] = s
logger.info("Writing %s scripts", len(to_add))
for ver, d in to_add.items():
specs = list(d.values())
fpath = out_dir / ver.to_filename()
script_str = make_script(specs)
logger.info("Writing script for %s", ver)
if parsed.dry_run:
print(f"Would write spec to {fpath}:\n" + textwrap.indent(script_str, " "))
else:
with open(fpath, "w") as f:
f.write(script_str)

View File

@@ -0,0 +1,134 @@
#!/usr/bin/env python3
'Adds the latest miniforge and mambaforge releases.'
from pathlib import Path
import logging
import os
import string
import requests
logger = logging.getLogger(__name__)
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'))
MINIFORGE_REPO = 'conda-forge/miniforge'
DISTRIBUTIONS = ['miniforge', 'mambaforge']
SKIPPED_RELEASES = [
'4.13.0-0', #has no Mambaforge. We already generated scripts for Miniforge
'22.11.1-0', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403)
'22.11.1-1', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403)
'22.11.1-2', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403)
]
install_script_fmt = """
case "$(anaconda_architecture 2>/dev/null || true)" in
{install_lines}
* )
{{ echo
colorize 1 "ERROR"
echo ": The binary distribution of {flavor} is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
}} >&2
exit 1
;;
esac
""".lstrip()
install_line_fmt = """
"{os}-{arch}" )
install_script "{filename}" "{url}#{sha}" "miniconda" verify_py{py_version}
;;
""".strip()
here = Path(__file__).resolve()
out_dir: Path = here.parent.parent / "share" / "python-build"
def download_sha(url):
logger.info('Downloading SHA file %(url)s', locals())
tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split()))
logger.debug('Got %(tup)s', locals())
return tup
def create_spec(filename, sha, url):
flavor_with_suffix, version, subversion, os, arch = filename.replace('.sh', '').split('-')
suffix = flavor_with_suffix[-1]
if suffix in string.digits:
flavor = flavor_with_suffix[:-1]
else:
flavor = flavor_with_suffix
spec = {
'filename': filename,
'sha': sha,
'url': url,
'py_version': py_version(version),
'flavor': flavor,
'os': os,
'arch': arch,
'installer_filename': f'{flavor_with_suffix.lower()}-{version}-{subversion}',
}
logger.debug('Created spec %(spec)s', locals())
return spec
def py_version(release):
"""Suffix for `verify_pyXXX` to call in the generated build script"""
release_line = tuple(int(part) for part in release.split(".")[:2])
# current version: mentioned under https://github.com/conda-forge/miniforge?tab=readme-ov-file#miniforge3
# transition points:
# https://github.com/conda-forge/miniforge/blame/main/Miniforge3/construct.yaml
# look for "- python <version>" in non-pypy branch and which tag the commit is first in
if release_line >= (24,5):
# yes, they jumped from 3.10 directly to 3.12
# https://github.com/conda-forge/miniforge/commit/bddad0baf22b37cfe079e47fd1680fdfb2183590
return "312"
if release_line >= (4,14):
return "310"
raise ValueError("Bundled Python version unknown for release `%s'"%release)
def supported(filename):
return ('pypy' not in filename) and ('Windows' not in filename)
def add_version(release):
tag_name = release['tag_name']
download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] }
# can assume that sha files are named similar to release files so can also check supported(on their names)
shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and supported(os.path.basename(name)) and tag_name in name])
specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)]
for distribution in DISTRIBUTIONS:
distribution_specs = [spec for spec in specs if distribution in spec['flavor'].lower()]
count = len(distribution_specs)
if count > 0:
output_file = out_dir / distribution_specs[0]['installer_filename']
logger.info('Writing %(count)d specs for %(distribution)s to %(output_file)s', locals())
script_str = install_script_fmt.format(
install_lines="\n".join([install_line_fmt.format_map(s) for s in distribution_specs]),
flavor=distribution_specs[0]['flavor'],
)
with open(output_file, 'w') as f:
f.write(script_str)
else:
logger.info('Did not find specs for %(distribution)s', locals())
for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json():
version = release['tag_name']
logger.info('Looking for %(version)s in %(out_dir)s', locals())
# This release has no mambaforge artifacts which causes the next check to always trigger.
# Build scripts for miniforge3-4.13.0-0 have already been generated.
# Assuming this was a fluke, we don't yet need to implement proactively checking all releases for contents
# or ignoring a release if _any_ of the flavors is already present in Pyenv.
if version in SKIPPED_RELEASES:
continue
if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS):
logger.info('Downloading %(version)s', locals())
add_version(release)

View File

@@ -0,0 +1 @@
requests-html

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline
install_package "Python-2.1.3" "http://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz#1bcb5bb587948bc38f36db60e15c376009c56c66570e563a08a82bf7f227afb9" ldflags_dirs standard verify_py21 install_package "Python-2.1.3" "https://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz#1bcb5bb587948bc38f36db60e15c376009c56c66570e563a08a82bf7f227afb9" standard verify_py21
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline
install_package "Python-2.2.3" "http://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgz#a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188" ldflags_dirs standard verify_py22 install_package "Python-2.2.3" "https://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgz#a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188" standard verify_py22
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline
install_package "Python-2.3.7" "http://python.org/ftp/python/2.3.7/Python-2.3.7.tgz#969a9891dce9f50b13e54f9890acaf2be66715a5895bf9b11111f320c205b90e" ldflags_dirs standard verify_py23 install_package "Python-2.3.7" "https://www.python.org/ftp/python/2.3.7/Python-2.3.7.tgz#969a9891dce9f50b13e54f9890acaf2be66715a5895bf9b11111f320c205b90e" standard verify_py23
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +0,0 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4" "http://python.org/ftp/python/2.4/Python-2.4.tgz#ff746de0fae8691c082414b42a2bb172da8797e6e8ff66c9a39d2e452f7034e9" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4" "https://www.python.org/ftp/python/2.4/Python-2.4.tgz#ff746de0fae8691c082414b42a2bb172da8797e6e8ff66c9a39d2e452f7034e9" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.1" "http://python.org/ftp/python/2.4.1/Python-2.4.1.tgz#f449c3b167389324c525ad99d02376c518ac11e163dbbbc13bc88a5c7101fd00" ldflags_dirs standard verify_py24 install_package "Python-2.4.1" "https://www.python.org/ftp/python/2.4.1/Python-2.4.1.tgz#f449c3b167389324c525ad99d02376c518ac11e163dbbbc13bc88a5c7101fd00" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.2" "http://python.org/ftp/python/2.4.2/Python-2.4.2.tgz#2653e1846e87fd9b3ee287fefc965c80c54646548b4913a22265b0dd54493adf" ldflags_dirs standard verify_py24 install_package "Python-2.4.2" "https://www.python.org/ftp/python/2.4.2/Python-2.4.2.tgz#2653e1846e87fd9b3ee287fefc965c80c54646548b4913a22265b0dd54493adf" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.3" "http://python.org/ftp/python/2.4.3/Python-2.4.3.tgz#985a413932f5e31e6280b37da6b285a3a0b2748c6786643989ed9b23de97e2d5" ldflags_dirs standard verify_py24 install_package "Python-2.4.3" "https://www.python.org/ftp/python/2.4.3/Python-2.4.3.tgz#985a413932f5e31e6280b37da6b285a3a0b2748c6786643989ed9b23de97e2d5" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.4" "http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz#92be6e20cbc3111d9dd0c016d72ef7914c23b879dc52df7ba28df97afbf12e2e" ldflags_dirs standard verify_py24 install_package "Python-2.4.4" "https://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz#92be6e20cbc3111d9dd0c016d72ef7914c23b879dc52df7ba28df97afbf12e2e" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.5" "http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz#6ae6f67a388a7f70ed3a20eebab5aae995ee433089d1f1724095c62f4b7389a1" ldflags_dirs standard verify_py24 install_package "Python-2.4.5" "https://www.python.org/ftp/python/2.4.5/Python-2.4.5.tgz#6ae6f67a388a7f70ed3a20eebab5aae995ee433089d1f1724095c62f4b7389a1" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +1,5 @@
#require_gcc require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.4.6" "http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz#b03f269e826927f05c966cf4f4414f3c93ee2314960859e7f8375e24e82f8b02" ldflags_dirs standard verify_py24 install_package "Python-2.4.6" "https://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz#b03f269e826927f05c966cf4f4414f3c93ee2314960859e7f8375e24e82f8b02" standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -1,5 +0,0 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5" "http://python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,4 @@
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.5" "https://www.python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.1" "https://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" standard verify_py25
install_package "Python-2.5.1" "http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.2" "https://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" standard verify_py25
install_package "Python-2.5.2" "http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.3" "https://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" standard verify_py25
install_package "Python-2.5.3" "http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.4" "https://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" standard verify_py25
install_package "Python-2.5.4" "http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.5" "https://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" standard verify_py25
install_package "Python-2.5.5" "http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -1,5 +1,4 @@
#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "Python-2.5.6" "https://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" standard verify_py25
install_package "Python-2.5.6" "http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6" "https://www.python.org/ftp/python/2.6/Python-2.6.tgz#7c2f21a968a737a59ed0729f4b1dc154dc3aa183c20be96055186fe43c6742d0" standard verify_py26 ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.1" "https://www.python.org/ftp/python/2.6.1/Python-2.6.1.tgz#fb65e93678e1327e3e8559cc56e1e00ed8c07162b21287a3502677892c5c515c" standard verify_py26 ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.2" "https://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz#e37ecdf249f248f4fea227adbca09c778670b64fcb5e45947ec3e093cbc12c86" standard verify_py26 ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.3" "https://www.python.org/ftp/python/2.6.3/Python-2.6.3.tgz#a71b55540690425fd82ab00819aeb92c1b23cbb4730a0ccd2e25c833b22a812e" standard verify_py26 ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.4" "https://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz#1a25a47506e4165704cfe2b07c0a064b0b5762a2d18b8fbdad5af688aeacd252" standard verify_py26 ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.5" "https://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz#b331dafdce3361834fee783795d4f68ae7cf7d379e9137c2d8e8531cea615ede" standard verify_py26 ensurepip

View File

@@ -1,3 +1,3 @@
#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.6" "http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" ldflags_dirs standard verify_py26 ensurepip install_package "Python-2.6.6" "https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" standard verify_py26 ensurepip

View File

@@ -1,3 +1,3 @@
#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.7" "http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" ldflags_dirs standard verify_py26 ensurepip install_package "Python-2.6.7" "https://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" standard verify_py26 ensurepip

View File

@@ -1,3 +1,3 @@
#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.8" "http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" ldflags_dirs standard verify_py26 ensurepip install_package "Python-2.6.8" "https://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" standard verify_py26 ensurepip

View File

@@ -1,3 +1,3 @@
#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.6.9" "http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" ldflags_dirs standard verify_py26 ensurepip install_package "Python-2.6.9" "https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" standard verify_py26 ensurepip

View File

@@ -1,3 +0,0 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7" "http://python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -1,3 +1,4 @@
#require_gcc prefer_openssl11
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27 ensurepip install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_git "Python-2.7-dev" "https://github.com/python/cpython" "2.7" standard verify_py27 copy_python_gdb ensurepip

View File

@@ -0,0 +1,3 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.7" "https://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" standard verify_py27 copy_python_gdb ensurepip

View File

@@ -1,3 +1,3 @@
#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_package "Python-2.7.1" "http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" ldflags_dirs standard verify_py27 ensurepip install_package "Python-2.7.1" "https://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" standard verify_py27 copy_python_gdb ensurepip

View File

@@ -0,0 +1,7 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz#1cd3730781b91caf0fa1c4d472dc29274186480161a150294c42ce9b5c5effc0" standard verify_py27 copy_python_gdb ensurepip
else
install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz#eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a" standard verify_py27 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,7 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz#962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46" standard verify_py27 copy_python_gdb ensurepip
else
install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz#82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6" standard verify_py27 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,7 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz#d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978" standard verify_py27 copy_python_gdb ensurepip
else
install_package "Python-2.7.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz#3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6" standard verify_py27 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,7 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz#35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731" standard verify_py27 copy_python_gdb ensurepip
else
install_package "Python-2.7.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz#a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1" standard verify_py27 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,8 @@
prefer_openssl11
install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz#71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66" standard verify_py27 copy_python_gdb ensurepip
else
install_package "Python-2.7.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz#304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8" standard verify_py27 copy_python_gdb ensurepip
fi

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