diff --git a/.github/CONTRIBUTING.rst b/.github/CONTRIBUTING.rst deleted file mode 100644 index 94b67ce3dbe341..00000000000000 --- 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 final key part of our workflow is that all discussions that are not -directly related to the code in the pull request should happen on -`GitHub Issues `__, generally in the -pull request's parent issue. - - -Setting Expectations --------------------- -Due to the fact that this project is run by volunteers, -unfortunately we cannot make any 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 within a month, you can ask for someone to -review your pull request via a post in the `Core Development Discourse -category `__. - - -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 da70710b7ecfa3..00000000000000 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ /dev/null @@ -1,57 +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.9" - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "3.14" - - "3.15" - - "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 de6e8756b03d80..00000000000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1,10 +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" - - name: "Python Install Manager issues" - about: "Report issues with the Python Install Manager (for Windows)" - url: "https://github.com/python/pymanager/issues" diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml deleted file mode 100644 index 470ad581367b10..00000000000000 --- a/.github/ISSUE_TEMPLATE/crash.yml +++ /dev/null @@ -1,56 +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.9" - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "3.14" - - "3.15" - - "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.yml b/.github/ISSUE_TEMPLATE/documentation.yml deleted file mode 100644 index d720cf9c4de91e..00000000000000 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Documentation -description: Report a problem with the documentation -labels: ["docs"] -body: - - type: markdown - attributes: - value: | - > [!NOTE] - > Trivial changes (for example typos) don’t require an issue before opening a PR. - - type: textarea - id: description - attributes: - label: "Documentation" - description: "A clear and concise description of the issue. Include a link to the page." - validations: - required: true diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml deleted file mode 100644 index 4361ab2bf827fb..00000000000000 --- 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 03ea959ca14e28..00000000000000 --- 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 923720bce0bc3b..00000000000000 --- 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 4b77646e22db4b..00000000000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,32 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "quarterly" - labels: - - "skip issue" - - "skip news" - ignore: - - dependency-name: "*" - update-types: - - "version-update:semver-minor" - - "version-update:semver-patch" - groups: - actions: - patterns: - - "*" - 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: "quarterly" - 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 55095f17bb4cce..00000000000000 --- 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-slim - 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 640474273a9de3..00000000000000 --- 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-slim - 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/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index fd3bbd34bdaa02..00000000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,30 +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-slim - permissions: - actions: write - 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 7c776d5ea1f941..00000000000000 --- 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 fd859093206750..ae4c3b93647548 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -96,7 +96,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 diff --git a/.well-known/funding-manifest-urls b/.well-known/funding-manifest-urls deleted file mode 100644 index d56ca9eb52f004..00000000000000 --- a/.well-known/funding-manifest-urls +++ /dev/null @@ -1 +0,0 @@ -https://www.python.org/funding.json