Ivan Pozdeev
57f1df294b
tests: add file names to TAP output
...
by using a customized formatter
2026-08-26 05:51:24 +03:00
Ivan Pozdeev
14830b18bf
tests: skip permission tests if permission bits are being overridden
...
e.g. if running as root in a docker container
2026-08-26 05:50:04 +03:00
Ivan Pozdeev
032e7af407
tests: consolidate shims tests
2026-08-26 05:49:17 +03:00
Ayush
50fbc8c6cc
pyenv-binary: record direct system dependencies in Linux/FreeBSD ( #3520 )
2026-08-15 22:47:27 +03:00
native-api
d92b6e1bbe
Merge pull request #3516 from macayu17/fix/2334-package-feedback
...
pyenv-binary-package: check patchelf early and add --verbose
2026-08-11 05:25:39 +03:00
Ivan Pozdeev
f9ffb73a7e
test_helper: support here-document to assert_success/failure; + assert_output_glob
2026-08-11 05:17:42 +03:00
Ivan Pozdeev
bd7c969e7f
test_helper: show diff with whitespace highlights
...
to be able to see tiny and whitespace differences
2026-08-11 04:22:34 +03:00
付典
195b9fe940
version-file: Fix infinite loop for relative paths
...
find_local_version_file reduces its target with ${root%/*}, but that leaves a slash-less relative argument such as "." unchanged, leading to an infinite loop
Signed-off-by: 付典 <fudianchn@gmail.com>
2026-08-10 12:49:53 +03:00
Michael Newman
26dd5d9dda
Fix typo
2026-07-27 21:57:58 +03:00
Ivan Pozdeev
017ad4a573
Add pyenv-binary tests to CI
...
* README: fix tests instructions
* test/README: -duplicating and unnecessary stuff
* Makefile: Build Docker images and replace bats link conditionally
* Makefile: fix indent irregularity
2026-07-16 10:39:55 +03:00
Ivan Pozdeev
74c6efe2f4
Adapt tests involving current directory for Docker
...
In Docker CI tests, the default current dir is read-only
2026-07-11 08:02:53 +03:00
native-api
95df7dbc7b
Merge commit from fork
2026-07-11 07:22:46 +03:00
max
e4c462dc70
Fix typos in docs, scripts, and tests ( #3490 )
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-15-intel) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-26) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-24.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.13) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.14) (push) Has been cancelled
2026-07-08 18:03:00 +03:00
Anup Das
cf6f3c3200
fix(rehash): prevent terminal hang caused by stale or sandbox-blocked lock file ( #3469 )
...
* reduce stale lock TTL to 2 min, check for stale lock before acquiring and each time -- to hold up new shell sessions for as little as possible
---------
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2026-06-04 22:36:11 +03:00
Ayush
455d1a31db
init: add --install for shell setup ( #3454 )
2026-06-03 01:13:07 +03:00
native-api
70f096a95c
rehash: detect and remove a stale lockfile ( #3450 )
...
fixes stalling for 60s and failing if some past fault
has resulting in a stale lockfile being present
---------
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-05-17 09:38:23 +03:00
native-api
044d816d35
which: update pyenv help global tip ( #3424 )
2026-03-14 11:23:19 +03:00
native-api
8037f22665
rehash: streamline executables discovery; fix regression ( #3418 )
...
Separate the corner-cutting code for `rehash' into a dedicated branch.
Saves some more time (about 100ms for the large fixture)
2026-03-07 13:09:14 +03:00
rockandska
2c38423a98
pyenv launcher: introduce and export _PYENV_INSTALL_PREFIX ( #3334 )
...
provides a reliable way for Pyenv code to locate other parts of Pyenv code that are not under `PYENV_ROOT`
* tests: Work with Git entirely in a test repo
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-12-24 10:00:09 +03:00
native-api
aa6c9b9694
init: don't silence automatic rehash; rehash: report final error but not provisional ones ( #3377 )
2025-12-21 07:21:30 +03:00
Florian Blanchet
aeea3ac825
Add PowerShell support ( #2749 )
...
Co-authored-by: Ivan Pozdeev <ivan_pozdeev@mail.ru>
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2025-12-21 05:33:19 +03:00
Ivan Pozdeev
7998159daa
tests: fix integration tests for Bash and Fish
2025-12-21 02:11:02 +03:00
Ivan Pozdeev
6113214f65
tests: refactor: migrate to newly-added create_stub()
2025-12-20 11:05:27 +03:00
Ivan Pozdeev
7418835908
Prevent infinite loop if a shim is linked and called from a nonstandard location with "system" active
2025-12-20 11:05:27 +03:00
Ivan Pozdeev
b259813357
tests: refactor: rename and consolidate create_executable() functions
2025-12-20 08:34:20 +03:00
Ivan Pozdeev
a6ea5b3179
Fix rehash
2025-12-05 20:57:07 +03:00
native-api
0f7b8fa8ee
sh-rehash: Fix erroneously executing rather than printing a command ( #3369 )
2025-12-05 20:42:25 +03:00
rockandska
22a7c46d54
upgrade pip detetcion in pip-rehash to accept multiple variations: ( #3330 )
...
- pip
- pipX
- pipX.Y
- * -m pip
Co-authored-by: Christian Fredrik Johnsen <christian@johnsen.no>
2025-09-17 03:53:37 +03:00
rockandska
dee36c348d
add test README
2025-09-15 20:16:31 +02:00
rockandska
d275391f65
add possibility to filter tests with make
2025-09-15 20:16:18 +02:00
rockandska
a7897ca0f6
add bats test under docker
2025-09-15 20:16:11 +02:00
rockandska
92a28e531b
use BATS_FILE_TMPDIR in test/plugin test
...
use global setup with bats with possibility to add specific test file _setup
use readlink in helper if realpath is not working as expected
2025-09-15 19:48:34 +02:00
rockandska
8990110dcf
upgrade bats to v1.10.0
...
fix bats warnings
2025-09-15 16:45:02 +02:00
rockandska
0d987b0e4b
fix test isolation
...
Make sur that PYENV_TEST_DIR is created if mktemp failed
mock python3 usage by updating create_executable function
fix test by adding the right PATH
update path in plugin test
replace for loop with while read
don't use symlink for stub
2025-09-15 15:00:14 +02:00
Jesse Wattenbarger
018ca73444
Add --bare option to pyenv version ( #2783 )
2025-05-17 18:23:25 +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
Ivan Pozdeev
86be59a6d5
Tolerate nonexistent versions from pyenv-version-name in pyenv-which
...
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.13) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Addendum to #3134 as per https://github.com/pyenv/pyenv/pull/3134#issuecomment-2545710044
2024-12-16 21:36:14 +03:00
native-api
dc873cf568
Support missing versions being present and set in a local .python-version ( #3134 )
...
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.13) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.13) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
Requested in https://github.com/pyenv/pyenv/issues/2680
for deployments with a stock `.pyenv-version` that can use any
of a number of Python versions
and for compatibility with `uv`.
* Support `pyenv local --force`
* Support `pyenv-version-file-write --force`
* Support `pyenv version-name --force`
* Ignore missing versions when searching for executables
* Display "commmand not found" even when there are nonexistent versions
* exec.bats: replace `python` and `rspec` with something that doesn't exist globally, either
in Ubuntu Github CI, `python` exists globally
2024-12-16 02:32:45 +03:00
native-api
3ced1c4751
Support free-threaded CPython flavor in prefix resolution ( #3090 )
...
Since 3.13, CPython is provided in 2 flavors: regular and
free-threaded, with the 't' suffix.
An incomplete prefix ending with '[0-9]t'
resolves only among versions that also end with '[0-9]t'
2024-10-11 16:28:10 +03:00
Antoine Arbouin
03b60aafec
Support virtualenvs with names starting with "python-" ( #3086 )
2024-10-10 20:43:13 +03:00
Ed Morley
d60d1c5cdc
Fix latest version resolution when using python- prefix ( #3056 )
...
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 0s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 0s
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
Fixes use of version specifiers like `python-3.12`, which:
- have an explicit `python-` prefix
- are using a major version alias that has to be resolved
to an exact version.
Also simplified the conditional for the already
working case, since it had two branches that were virtually identical.
2024-09-10 18:51:55 +03:00
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
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
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
Jon Crall
672eef1561
Speed up pyenv prefix by not constructing advice text when it would be discarded ( #3005 )
...
macos_build / macos_build (3.10) (push) Waiting to run
macos_build / macos_build (3.11) (push) Waiting to run
macos_build / macos_build (3.12) (push) Waiting to run
macos_build / macos_build (3.8) (push) Waiting to run
macos_build / macos_build (3.9) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-13) (push) Waiting to run
pyenv_tests / pyenv_tests (macos-14) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Waiting to run
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Failing after 16s
ubuntu_build / ubuntu_build (3.10) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.11) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.12) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.8) (push) Failing after 1s
ubuntu_build / ubuntu_build (3.9) (push) Failing after 1s
by adding an internal flag
2024-07-04 03:49:12 +03:00
Sam Gross
384361167a
Add 3.13.0b3t and exclude it from pyenv latest ( #3001 )
...
macos_build / macos_build (3.10) (push) Has been cancelled
macos_build / macos_build (3.11) (push) Has been cancelled
macos_build / macos_build (3.12) (push) Has been cancelled
macos_build / macos_build (3.8) (push) Has been cancelled
macos_build / macos_build (3.9) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-13) (push) Has been cancelled
pyenv_tests / pyenv_tests (macos-14) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-20.04) (push) Has been cancelled
pyenv_tests / pyenv_tests (ubuntu-22.04) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.10) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.11) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.12) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.8) (push) Has been cancelled
ubuntu_build / ubuntu_build (3.9) (push) Has been cancelled
This adds the free-threaded (without GIL) version of 3.13.0b3.
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2024-07-01 22:50:03 +03:00
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
native-api
dee8a9dbad
Fix intermittent "broken pipe" in version sort test ( #2817 )
2023-10-12 22:09:48 +03:00
native-api
20189ff06f
Fix not showing symlink contents for unselected versions in pyenv versions ( #2675 )
2023-04-08 01:12:09 +03:00