diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index da2b02fd..00000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @pyenv/pyenv-core-maintainers @pyenv/pyenv-core-committers \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 8914ef48..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# 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'] diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 4097601a..00000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,26 +0,0 @@ -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 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 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 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`. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 820ee62e..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,16 +0,0 @@ -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) diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 2390d8c8..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "monthly" - groups: - github-actions: - patterns: - - "*" diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml deleted file mode 100644 index fdd424bb..00000000 --- a/.github/workflows/macos_build.yml +++ /dev/null @@ -1,43 +0,0 @@ -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")) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml deleted file mode 100644 index b9e24c71..00000000 --- a/.github/workflows/modified_scripts_build.yml +++ /dev/null @@ -1,269 +0,0 @@ -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 diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml deleted file mode 100644 index 275b7563..00000000 --- a/.github/workflows/no-response.yml +++ /dev/null @@ -1,30 +0,0 @@ -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. diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml deleted file mode 100644 index dab75608..00000000 --- a/.github/workflows/pyenv_tests.yml +++ /dev/null @@ -1,49 +0,0 @@ -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 \ No newline at end of file diff --git a/.github/workflows/scripts/brew-uninstall-cascade.sh b/.github/workflows/scripts/brew-uninstall-cascade.sh deleted file mode 100755 index 2a6ba338..00000000 --- a/.github/workflows/scripts/brew-uninstall-cascade.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/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[@]}" \ No newline at end of file diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml deleted file mode 100644 index b8b08e2b..00000000 --- a/.github/workflows/ubuntu_build.yml +++ /dev/null @@ -1,45 +0,0 @@ -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"))