diff --git a/.azure-pipelines/posix-deps-apt.sh b/.azure-pipelines/posix-deps-apt.sh deleted file mode 100755 index e0f4ca5d8d8e886..000000000000000 --- a/.azure-pipelines/posix-deps-apt.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -apt-get update - -apt-get -yq install \ - build-essential \ - zlib1g-dev \ - libbz2-dev \ - liblzma-dev \ - libncurses5-dev \ - libreadline6-dev \ - libsqlite3-dev \ - libssl-dev \ - libgdbm-dev \ - tk-dev \ - lzma \ - lzma-dev \ - liblzma-dev \ - libffi-dev \ - uuid-dev \ - xvfb - -if [ ! -z "$1" ] -then - echo ##vso[task.prependpath]$PWD/multissl/openssl/$1 - echo ##vso[task.setvariable variable=OPENSSL_DIR]$PWD/multissl/openssl/$1 - python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $1 --system Linux -fi diff --git a/.azure-pipelines/posix-steps.yml b/.azure-pipelines/posix-steps.yml deleted file mode 100644 index e23c7b1dcb55c1d..000000000000000 --- a/.azure-pipelines/posix-steps.yml +++ /dev/null @@ -1,26 +0,0 @@ -steps: -- checkout: self - clean: true - fetchDepth: 5 - -# Work around a known issue affecting Ubuntu VMs on Pipelines -- script: sudo setfacl -Rb /home/vsts - displayName: 'Workaround ACL issue' - -- script: sudo ./.azure-pipelines/posix-deps-apt.sh $(openssl_version) - displayName: 'Install dependencies' - -- script: ./configure --with-pydebug - displayName: 'Configure CPython (debug)' - -- script: make -j4 - displayName: 'Build CPython' - -- script: make pythoninfo - displayName: 'Display build info' - -- script: | - git fetch origin - ./python Tools/patchcheck/patchcheck.py --ci true - displayName: 'Run patchcheck.py' - condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest')) diff --git a/.azure-pipelines/pr.yml b/.azure-pipelines/pr.yml deleted file mode 100644 index 335a4b407cb83cb..000000000000000 --- a/.azure-pipelines/pr.yml +++ /dev/null @@ -1,28 +0,0 @@ -pr: ['main', '3.12', '3.11', '3.10', '3.9', '3.8', '3.7'] - -jobs: -- job: Prebuild - displayName: Pre-build checks - - pool: - vmImage: ubuntu-22.04 - - steps: - - template: ./prebuild-checks.yml - - -- job: Ubuntu_Patchcheck - displayName: Ubuntu patchcheck - dependsOn: Prebuild - condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true')) - - pool: - vmImage: ubuntu-22.04 - - variables: - testRunTitle: '$(system.pullRequest.TargetBranch)-linux' - testRunPlatform: linux - openssl_version: 1.1.1u - - steps: - - template: ./posix-steps.yml diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst deleted file mode 100644 index 2ef9cdc191481e5..000000000000000 --- a/.github/CONTRIBUTING.rst +++ /dev/null @@ -1,55 +0,0 @@ -Contributing to Python -====================== - -Build Status ------------- - -- `Buildbot status overview `_ - -- `GitHub Actions status `_ - - -Thank You ---------- -First off, thanks for contributing to the maintenance of the Python programming -language and the CPython interpreter! Even if your contribution is not -ultimately accepted, the fact you put time and effort into helping out is -greatly appreciated. - - -Contribution Guidelines ------------------------ -Please read the `devguide `_ for -guidance on how to contribute to this project. The documentation covers -everything from how to build the code to submitting a pull request. There are -also suggestions on how you can most effectively help the project. - -Please be aware that our workflow does deviate slightly from the typical GitHub -project. Details on how to properly submit a pull request are covered in -`Lifecycle of a Pull Request `_. -We utilize various bots and status checks to help with this, so do follow the -comments they leave and their "Details" links, respectively. The key points of -our workflow that are not covered by a bot or status check are: - -- All discussions that are not directly related to the code in the pull request - should happen on `GitHub Issues `_. -- Upon your first non-trivial pull request (which includes documentation changes), - feel free to add yourself to ``Misc/ACKS`` - - -Setting Expectations --------------------- -Due to the fact that this project is entirely volunteer-run (i.e. no one is paid -to work on Python full-time), we unfortunately can make no guarantees as to if -or when a core developer will get around to reviewing your pull request. -If no core developer has done a review or responded to changes made because of a -"changes requested" review, please feel free to email python-dev to ask if -someone could take a look at your pull request. - - -Code of Conduct ---------------- -All interactions for this project are covered by the -`PSF Code of Conduct `_. Everyone is -expected to be open, considerate, and respectful of others no matter their -position within the project. diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml deleted file mode 100644 index 395516f29b037c5..000000000000000 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Bug report -description: Submit a bug report -labels: ["type-bug"] -body: - - type: markdown - attributes: - value: | - **New to Python?** - - For help or advice on using Python, try one of the following options instead of opening a GitHub issue: - - - Asking on [Discourse](https://discuss.python.org/c/users/7) or [Stack Overflow](https://stackoverflow.com) - - Reading the [Python tutorial](https://docs.python.org/3/tutorial/) - - Emailing [python-list](https://mail.python.org/mailman/listinfo/python-list) - - Make sure to also search the [CPython issue tracker](https://github.com/python/cpython/issues?q=is%3Aissue+sort%3Acreated-desc) to check that the bug has not already been reported. - - type: textarea - attributes: - label: "Bug description:" - description: > - Give a clear and concise description of what happened. - Include a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) if possible. - [Copy and paste code where possible rather than using screenshots](https://meta.stackoverflow.com/a/285557/13990016), - and put any code blocks inside triple backticks. - - value: | - ```python - # Add a code block here, if required - ``` - validations: - required: true - - type: dropdown - attributes: - label: "CPython versions tested on:" - multiple: true - options: - - "3.8" - - "3.9" - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "CPython main branch" - validations: - required: true - - type: dropdown - attributes: - label: "Operating systems tested on:" - multiple: true - options: - - Linux - - macOS - - Windows - - Other - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 75d174307ce1601..000000000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,7 +0,0 @@ -contact_links: - - name: "Getting help" - about: "Ask questions about using Python and debugging errors on Discourse." - url: "https://discuss.python.org/c/users/7" - - name: "Proposing new features" - about: "Submit major feature proposal (e.g. syntax changes) to an ideas forum first." - url: "https://discuss.python.org/c/ideas/6" diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml deleted file mode 100644 index c14d7cf2599d4c1..000000000000000 --- a/.github/ISSUE_TEMPLATE/crash.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Crash report -description: A hard crash of the interpreter, possibly with a core dump -labels: ["type-crash"] -body: - - type: markdown - attributes: - value: | - This form is for hard crashes of the Python interpreter, segmentation faults, failed C-level assertions, and similar. Unexpected exceptions raised from Python functions in the standard library count as bugs rather than crashes. - - The CPython interpreter is written in a different programming language, C. A "CPython crash" is when Python itself fails, leading to a traceback in the C stack. - - type: textarea - attributes: - label: What happened? - description: > - Include a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) if possible. - [Copy and paste code where possible rather than using screenshots](https://meta.stackoverflow.com/a/285557/13990016), - and put any code blocks inside triple backticks. - - value: | - ```python - # Add a code block here, if required - ``` - validations: - required: true - - type: dropdown - attributes: - label: "CPython versions tested on:" - multiple: true - options: - - "3.8" - - "3.9" - - "3.10" - - "3.11" - - "3.12" - - "CPython main branch" - validations: - required: true - - type: dropdown - attributes: - label: "Operating systems tested on:" - multiple: true - options: - - Linux - - macOS - - Windows - - Other - validations: - required: false - - type: input - attributes: - label: "Output from running 'python -VV' on the command line:" - description: If you tested with multiple operating systems or architectures, feel free to provide details in the main bug description. - validations: - required: false diff --git a/.github/ISSUE_TEMPLATE/documentation.md b/.github/ISSUE_TEMPLATE/documentation.md deleted file mode 100644 index 174fd39171d47dd..000000000000000 --- a/.github/ISSUE_TEMPLATE/documentation.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: Documentation -about: Report a problem with the documentation -labels: "docs" ---- - -# Documentation - -(A clear and concise description of the issue.) diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml deleted file mode 100644 index 4361ab2bf827fb6..000000000000000 --- a/.github/ISSUE_TEMPLATE/feature.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Feature or enhancement -description: Submit a proposal for a new CPython feature or enhancement -labels: ["type-feature"] -body: - - type: markdown - attributes: - value: | - # Proposing a feature to CPython? - - You'll need to demonstrate widespread support for your idea among the community. - - Major feature proposals should generally be discussed on [Discourse](https://discuss.python.org/c/ideas/6) before opening a GitHub issue. Wait until it's clear that most people support your idea before filling in this form. - - type: textarea - attributes: - label: "Proposal:" - description: > - Explain your proposal, why it should be implemented, and how it would be used. - Add examples, if applicable. - Put any code blocks inside triple backticks. - value: | - ```python - # Add a code block here, if required - ``` - validations: - required: true - - type: dropdown - attributes: - label: Has this already been discussed elsewhere? - options: - - No response given - - I have already discussed this feature proposal on Discourse - - This is a minor feature, which does not need previous discussion elsewhere - multiple: false - validations: - required: true - - type: textarea - attributes: - label: "Links to previous discussion of this feature:" - validations: - required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 03ea959ca14e282..000000000000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/.github/SECURITY.md b/.github/SECURITY.md deleted file mode 100644 index 923720bce0bc3bf..000000000000000 --- a/.github/SECURITY.md +++ /dev/null @@ -1,17 +0,0 @@ -# Security Policy - -## Supported Versions - -The Python team applies security fixes according to the table -in [the devguide]( -https://devguide.python.org/versions/#supported-versions -). - -## Reporting a Vulnerability - -Please read the guidelines on reporting security issues [on the -official website](https://www.python.org/dev/security/) for -instructions on how to report a security-related problem to -the Python team responsibly. - -To reach the response team, email `security at python dot org`. diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 7f3376f8ddb1e25..000000000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "monthly" - labels: - - "skip issue" - - "skip news" - ignore: - - dependency-name: "*" - update-types: - - "version-update:semver-minor" - - "version-update:semver-patch" - cooldown: - # https://blog.yossarian.net/2025/11/21/We-should-all-be-using-dependency-cooldowns - # Cooldowns protect against supply chain attacks by avoiding the - # highest-risk window immediately after new releases. - default-days: 14 - - package-ecosystem: "pip" - directory: "/Tools/" - schedule: - interval: "monthly" - labels: - - "skip issue" - - "skip news" - cooldown: - default-days: 14 diff --git a/.github/workflows/add-issue-header.yml b/.github/workflows/add-issue-header.yml deleted file mode 100644 index 09da61a470ff959..000000000000000 --- a/.github/workflows/add-issue-header.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: Add issue header -# Automatically edits an issue's descriptions with a header, -# one of: -# -# - Bug report -# - Crash report -# - Feature or enhancement - -on: - issues: - types: - # Only ever run once - - opened - -permissions: - contents: read - -jobs: - add-header: - runs-on: ubuntu-latest - permissions: - issues: write - timeout-minutes: 5 - steps: - - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 - with: - # language=JavaScript - script: | - // https://devguide.python.org/triage/labels/#type-labels - const HEADERS = new Map([ - ['type-bug', 'Bug report'], - ['type-crash', 'Crash report'], - ['type-feature', 'Feature or enhancement'], - ]); - let issue_data = await github.rest.issues.get({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo - }).then(issue => issue.data); - let header = ''; - for (const label_data of issue_data.labels) { - const label_name = (typeof label_data === 'string') ? label_data : label_data.name; - if (HEADERS.has(label_name)) { - header = HEADERS.get(label_name); - break; - } - } - if (header !== '') { - console.log(`Setting new header: ${header}`); - await github.rest.issues.update({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: `# ${header}\n\n${issue_data.body.replaceAll('\r', '')}` - }); - } diff --git a/.github/workflows/new-bugs-announce-notifier.yml b/.github/workflows/new-bugs-announce-notifier.yml deleted file mode 100644 index 891ddcb19f76df2..000000000000000 --- a/.github/workflows/new-bugs-announce-notifier.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: new-bugs-announce notifier - -on: - issues: - types: - - opened - -permissions: - contents: read - -jobs: - notify-new-bugs-announce: - runs-on: ubuntu-latest - permissions: - issues: read - timeout-minutes: 10 - steps: - - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - with: - node-version: 20 - - run: npm install mailgun.js form-data - - name: Send notification - uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 - env: - MAILGUN_API_KEY: ${{ secrets.MAILGUN_PYTHON_ORG_MAILGUN_KEY }} - with: - script: | - const Mailgun = require("mailgun.js"); - const formData = require('form-data'); - const mailgun = new Mailgun(formData); - const DOMAIN = "mailgun.python.org"; - const mg = mailgun.client({username: 'api', key: process.env.MAILGUN_API_KEY}); - github.rest.issues.get({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - }) - .then(function(issue) { - const payload = { - author : issue.data.user.login, - issue : issue.data.number, - title : issue.data.title, - url : issue.data.html_url, - labels : issue.data.labels.map(label => { return label.name }).join(", "), - assignee : issue.data.assignees.map(assignee => { return assignee.login }), - // We need to truncate the body size, because the max size for - // the whole payload is 16kb. We want to be safe and assume that - // body can take up to ~8kb of space. - body : issue.data.body.substring(0, 8000) - }; - - const data = { - from: "CPython Issues ", - to: "new-bugs-announce@python.org", - subject: `[Issue ${issue.data.number}] ${issue.data.title}`, - template: "new-github-issue", - 'o:tracking-clicks': 'no', - 'h:X-Mailgun-Variables': JSON.stringify(payload) - }; - return mg.messages.create(DOMAIN, data) - }) - .then(msg => console.log(msg)); diff --git a/.github/workflows/project-updater.yml b/.github/workflows/project-updater.yml deleted file mode 100644 index ca422d46e32d606..000000000000000 --- a/.github/workflows/project-updater.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Update GH projects - -on: - issues: - types: - - opened - - labeled - -permissions: - contents: read - -jobs: - add-to-project: - name: Add issues to projects - runs-on: ubuntu-latest - timeout-minutes: 10 - strategy: - fail-fast: false - matrix: - include: - # if an issue has any of these labels, it will be added - # to the corresponding project - - { project: 2, label: "release-blocker, deferred-blocker" } - - { project: 32, label: sprint } - - steps: - - uses: actions/add-to-project@5afcf98fcd03f1c2f92c3c83f58ae24323cc57fd # v2.0.0 - with: - project-url: https://github.com/orgs/python/projects/${{ matrix.project }} - github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} - labeled: ${{ matrix.label }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 6c48f4c6789a56f..000000000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Mark stale pull requests - -on: - schedule: - - cron: "0 */6 * * *" - -permissions: - contents: read - -jobs: - stale: - if: github.repository_owner == 'python' - runs-on: ubuntu-latest - permissions: - pull-requests: write - timeout-minutes: 10 - - steps: - - name: "Check PRs" - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-pr-message: 'This PR is stale because it has been open for 30 days with no activity.' - stale-pr-label: 'stale' - days-before-issue-stale: -1 - days-before-pr-stale: 30 - days-before-close: -1 - ascending: true - operations-per-run: 120 diff --git a/.github/zizmor.yml b/.github/zizmor.yml deleted file mode 100644 index 7c776d5ea1f941a..000000000000000 --- a/.github/zizmor.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Configuration for the zizmor static analysis tool, run via prek in CI -# https://docs.zizmor.sh/configuration/ -rules: - dangerous-triggers: - ignore: - - documentation-links.yml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7f8383e6b4aa75c..9428c4d7cb54bd6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -89,7 +89,6 @@ repos: - repo: https://github.com/python-jsonschema/check-jsonschema rev: 9f48a48aa91a6040d749ad68ec70907d907a5a7f # frozen: 0.37.0 hooks: - - id: check-dependabot - id: check-github-workflows - id: check-readthedocs