diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7918712..d9e902a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,15 +1,16 @@ name: CI -on: - pull_request: - branches: [main] - push: - branches: [main] +on: [push, pull_request, workflow_dispatch] + +permissions: {} concurrency: group: ci-${{ github.ref }} cancel-in-progress: true +env: + FORCE_COLOR: 1 + jobs: quality: name: Quality checks @@ -17,6 +18,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v6 + with: + persist-credentials: false - name: Setup Bun uses: oven-sh/setup-bun@v2 @@ -26,29 +29,17 @@ jobs: - name: Install dependencies run: bun install --frozen-lockfile - - name: Lint - run: bunx oxlint src/ - - - name: Type check - run: bunx astro check - - spellcheck: - name: Spell check - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - - - name: Spell check - uses: crate-ci/typos@v1.44.0 + - name: Run prek + uses: j178/prek-action@v1 build: name: Build runs-on: ubuntu-latest - needs: [quality, spellcheck] steps: - name: Checkout uses: actions/checkout@v6 + with: + persist-credentials: false - name: Setup Bun uses: oven-sh/setup-bun@v2 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index da9d6d3..57d3e77 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -7,13 +7,15 @@ on: permissions: contents: read - pages: write - id-token: write concurrency: group: pages cancel-in-progress: false +env: + FORCE_COLOR: 1 + + jobs: build: name: Build @@ -21,6 +23,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v6 + with: + persist-credentials: false - name: Setup Bun uses: oven-sh/setup-bun@v2 @@ -54,6 +58,9 @@ jobs: name: Deploy runs-on: ubuntu-latest needs: build + permissions: + pages: write + id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} diff --git a/.github/zizmor.yml b/.github/zizmor.yml new file mode 100644 index 0000000..1209dfd --- /dev/null +++ b/.github/zizmor.yml @@ -0,0 +1,7 @@ +# Configuration for the zizmor static analysis tool, run via prek in CI +# https://docs.zizmor.sh/configuration/ +rules: + unpinned-uses: + config: + policies: + "*": ref-pin diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a7c62b5..59db855 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,31 +1,53 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - - id: trailing-whitespace - args: [--markdown-linebreak-ext=md] - - id: end-of-file-fixer - - id: check-yaml - - id: check-json - - id: check-merge-conflict - id: check-added-large-files args: [--maxkb=500] + - id: check-case-conflict + - id: check-merge-conflict + - id: check-json + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + args: [--markdown-linebreak-ext=md] + + - repo: https://github.com/python-jsonschema/check-jsonschema + rev: 0.37.0 + hooks: + - id: check-dependabot + - id: check-github-workflows + + - repo: https://github.com/rhysd/actionlint + rev: v1.7.11 + hooks: + - id: actionlint + + - repo: https://github.com/zizmorcore/zizmor-pre-commit + rev: v1.23.1 + hooks: + - id: zizmor - repo: https://github.com/crate-ci/typos - rev: v1.32.0 + rev: v1.44.0 hooks: - id: typos - - repo: local + - repo: https://github.com/oxc-project/mirrors-oxlint + rev: v1.55.0 hooks: - - id: lint - name: lint - entry: bun run lint - language: system - pass_filenames: false + - id: oxlint + - repo: local + hooks: - id: typecheck name: typecheck entry: bun run typecheck language: system pass_filenames: false + files: ^src/.*\.(ts|tsx|astro)$ + + - repo: meta + hooks: + - id: check-hooks-apply + - id: check-useless-excludes diff --git a/content/posts/2012-language-summit-report/index.md b/content/posts/2012-language-summit-report/index.md index 9268a16..43ad787 100644 --- a/content/posts/2012-language-summit-report/index.md +++ b/content/posts/2012-language-summit-report/index.md @@ -66,5 +66,5 @@ PEP [3154](http://www.python.org/dev/peps/pep-3154/), mentioned by Lukasz Langa, * * * - + If you have any questions or comments, please post to [python-dev](http://mail.python.org/mailman/listinfo/python-dev). *Thanks to Eric Snow and Senthil Kumaran for contributing to this post.* diff --git a/content/posts/announcing-defusedxml-fixes-for-xml/index.md b/content/posts/announcing-defusedxml-fixes-for-xml/index.md index 96f48cb..5a736e4 100644 --- a/content/posts/announcing-defusedxml-fixes-for-xml/index.md +++ b/content/posts/announcing-defusedxml-fixes-for-xml/index.md @@ -10,7 +10,7 @@ legacyUrl: /2013/02/announcing-defusedxml-fixes-for-xml.html --- *The following post was created on behalf of CPython contributor Christian Heimes using a subset of details found [here](https://bitbucket.org/tiran/defusedxml).* Christian Heimes announces the release of his [defusedxml](https://bitbucket.org/tiran/defusedxml) and [defusedexpat](https://bitbucket.org/tiran/defusedexpat) packages to address XML-related security issues which were reported to [security@python.org](mailto:security@python.org) over the last several months. Throughout the development of the patches, the security team has coordinated with other open source projects in order to make this announcement at 1500 UTC on Tuesday February 19. Details will follow once releases of CPython have been organized. ***Note: this post will be updated with more details as they switch from being private to publicly available, including links to the public bug reports on [http://bugs.python.org](http://bugs.python.org/).*** - + defusedxml on PyPI: [https://pypi.python.org/pypi/defusedxml](https://pypi.python.org/pypi/defusedxml) defusedexpat on PyPI: [https://pypi.python.org/pypi/defusedexpat](https://pypi.python.org/pypi/defusedexpat) "XML vulnerabilities" on bug tracker: [http://bugs.python.org/issue17239](http://bugs.python.org/issue17239) @@ -92,7 +92,7 @@ vulnerabilities and features 6. Library has (limited) XInclude support but requires an additional step to process inclusion. 7. These are features but they may introduce exploitable holes - + ## [How to avoid XML vulnerabilities](https://bitbucket.org/PSF/defusedxml#id24) diff --git a/content/posts/cpython-codebase-growth/cpython_growth.svg b/content/posts/cpython-codebase-growth/cpython_growth.svg index d53e25b..68e8e10 100644 --- a/content/posts/cpython-codebase-growth/cpython_growth.svg +++ b/content/posts/cpython-codebase-growth/cpython_growth.svg @@ -21,2810 +21,2810 @@ - - - @@ -2834,2792 +2834,2792 @@ z - @@ -5629,2792 +5629,2792 @@ z - @@ -8424,2792 +8424,2792 @@ z - @@ -11219,2792 +11219,2792 @@ z - @@ -14014,2792 +14014,2792 @@ z - @@ -16809,2792 +16809,2792 @@ z - @@ -19606,8 +19606,8 @@ z - @@ -19618,73 +19618,73 @@ L 0 3.5 - - - @@ -19705,49 +19705,49 @@ z - - @@ -19841,8 +19841,8 @@ z - @@ -20051,8 +20051,8 @@ L 0 2 - @@ -20063,18 +20063,18 @@ L -3.5 0 - @@ -20109,27 +20109,27 @@ z - - @@ -20198,36 +20198,36 @@ z - @@ -20242,186 +20242,186 @@ z - - - - - - - - - @@ -20440,231 +20440,231 @@ z - - - - - - - - - - - - - - - - - - - - - - - - - @@ -20696,193 +20696,193 @@ z - - - - - - - - - @@ -20903,142 +20903,142 @@ z - - - - - - - @@ -21064,40 +21064,40 @@ z - - @@ -21143,157 +21143,157 @@ z - - - - - - @@ -21314,46 +21314,46 @@ z - - - @@ -21374,30 +21374,30 @@ z - @@ -21451,66 +21451,66 @@ z - - @@ -21531,72 +21531,72 @@ z - - - - @@ -21622,17 +21622,17 @@ z - @@ -21659,36 +21659,36 @@ z - @@ -21709,15 +21709,15 @@ z - @@ -21775,48 +21775,48 @@ z - - - @@ -21842,71 +21842,71 @@ z - - - @@ -21946,15 +21946,15 @@ z - @@ -22006,26 +22006,26 @@ z - - @@ -22066,34 +22066,34 @@ z - - @@ -22144,26 +22144,26 @@ z - - @@ -22188,11 +22188,11 @@ z - @@ -22232,15 +22232,15 @@ z - @@ -22302,51 +22302,51 @@ z - - @@ -22406,15 +22406,15 @@ z - @@ -22441,65 +22441,65 @@ z - - - @@ -22526,44 +22526,44 @@ z - - @@ -22592,15 +22592,15 @@ z - @@ -22629,23 +22629,23 @@ z - @@ -22700,15 +22700,15 @@ z - @@ -22735,17 +22735,17 @@ z - @@ -22769,43 +22769,43 @@ z - @@ -22841,334 +22841,334 @@ z - - - - - - - - - - - - - - - @@ -23202,23 +23202,23 @@ z - - @@ -23234,10 +23234,10 @@ z - @@ -23248,10 +23248,10 @@ z - @@ -23269,10 +23269,10 @@ z - @@ -23298,10 +23298,10 @@ z - @@ -23314,10 +23314,10 @@ z - @@ -23331,10 +23331,10 @@ z - @@ -23342,25 +23342,25 @@ z - diff --git a/content/posts/pip-20-1-released/index.md b/content/posts/pip-20-1-released/index.md index 1ee580b..5ac464e 100644 --- a/content/posts/pip-20-1-released/index.md +++ b/content/posts/pip-20-1-released/index.md @@ -22,5 +22,5 @@ The highlights for this release are: - A new `pip cache` command, which makes it possible to introspect and manage pip's cache directory. - Better `pip freeze` for packages installed from direct URLs, enabled by the implementation of PEP 610. - + This release also contains an alpha version of pip's next generation resolver. It is **off by default** because it is **unstable and not ready for everyday use**. If you're curious about this, please visit [this GitHub issue about the resolver, what doesn't work yet, and what kind of testing would help us out](https://github.com/pypa/pip/issues/8099). We [plan to release a version of pip that includes a beta of the new resolver in May](https://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html). The [full changelog](https://pip.pypa.io/en/latest/news/) is available. As with all pip releases, a significant amount of the work was contributed by pip's user community. Huge thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated. Thank you to the pip and PyPA maintainers, and to all the contributors and volunteers who work on or use Python packaging tools. And thank you to [Mozilla (through its Mozilla Open Source Support Awards)](https://www.mozilla.org/en-US/moss/) and to [the Chan Zuckerberg Initiative](https://chanzuckerberg.com/eoss/) DAF, an advised fund of Silicon Valley Community Foundation, for funding enabling work on the new resolver, and thanks to the PSF and the Packaging WG for obtaining and administering that funding. diff --git a/content/posts/pip-20-3-release-new-resolver/index.md b/content/posts/pip-20-3-release-new-resolver/index.md index 6447f96..a070ba4 100644 --- a/content/posts/pip-20-3-release-new-resolver/index.md +++ b/content/posts/pip-20-3-release-new-resolver/index.md @@ -18,19 +18,19 @@ This is an important and disruptive release -- we [explained why in a blog post ## Highlights - **DISRUPTION**: Switch to the new dependency resolver by default. Watch out for changes in handling editable installs, constraints files, and more: [https://pip.pypa.io/en/latest/user\_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020](https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020) - + - **DEPRECATION**: Deprecate support for Python 3.5 (to be removed in pip 21.0). - + - **DEPRECATION**: pip freeze will stop filtering the pip, setuptools, distribute and wheel packages from pip freeze output in a future version. To keep the previous behavior, users should use the new `--exclude` option. - + - Substantial improvements in new resolver for performance, output and error messages, avoiding infinite loops, and support for constraints files. - + - Support for PEP 600: Future `manylinux` Platform Tags for Portable Linux Built Distributions. - + - Documentation improvements: Resolver migration guide, quickstart guide, and new documentation theme. - + - Add support for MacOS Big Sur compatibility tags. - + The new resolver is now *on by default* for Python 3 users. It is significantly stricter and more consistent when it receives incompatible instructions, and reduces support for certain kinds of constraints files, so some workarounds and workflows may break. Please see [our guide on how to test and migrate, and how to report issues](https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020). You can use the deprecated (old) resolver, using the flag `--use-deprecated=legacy-resolver`, until we remove it in the pip 21.0 release in January 2021. @@ -45,7 +45,7 @@ We aim to release pip 21.0 in January 2021, per our [release cadence](https://pi We run this project as transparently as possible, so you can: - read and participate in [GitHub issues](https://github.com/pypa/pip/projects/6) - + - contribute to [our user experience work](https://pip.pypa.io/en/stable/ux_research_design/): [sign up to become a member of the UX Studies group](https://bit.ly/pip-ux-studies) (after you join, we'll notify you about future UX surveys and interviews) - contact us in the [Discourse](https://discuss.python.org/t/an-update-on-pip-and-dependency-resolution/1898) [forum](https://discuss.python.org/t/an-update-on-pip-and-dependency-resolution/1898) or [Zulip chat](https://python.zulipchat.com/#narrow/stream/218659-pip-development) - read [our meeting notes](https://wiki.python.org/psf/PackagingWG#Dependency_resolver_and_user_experience_improvements_for_pip) @@ -56,13 +56,13 @@ Thanks to our contractors on this project: [Simply Secure](https://simplysecure. This award continues our relationship with Mozilla, which supported Python packaging tools with [a Mozilla Open Source Support Award in 2017 for Warehouse](https://pyfound.blogspot.com/2017/11/the-psf-awarded-moss-grant-pypi.html). Thank you, Mozilla! (MOSS has a number of types of awards, which are open to different sorts of open source/free software projects. If your project will seek financial support in 2021, do check [the MOSS website](https://www.mozilla.org/en-US/moss/) to see if you qualify.) - + This is new funding from the Chan Zuckerberg Initiative. This project is being made possible in part by a grant from the Chan Zuckerberg Initiative DAF, an advised fund of Silicon Valley Community Foundation. Thank you, CZI! (If your free software/open source project is seeking funding and is used by researchers, check [the Joint Roadmap for Open Science Tools Rapid Response Fund](https://investinopen.org/blog/jrost-rapid-response-fund/) and consider applying.) The [funding for pip's overhaul](https://pyfound.blogspot.com/2019/12/moss-czi-support-pip.html) will end at the end of 2020; if your organization wants to help continue [improvements in Python packaging](https://github.com/psf/fundable-packaging-improvements/), please join [the sponsorship program](https://pyfound.blogspot.com/2020/04/sponsoring-python-packaging.html). - + As with all pip releases, a significant amount of the work was contributed by pip's user community. Huge thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated. Thank you to the pip and [PyPA](https://www.pypa.io/) maintainers, to the PSF and the Packaging WG, and to all the contributors and volunteers who work on or use Python packaging tools. diff --git a/content/posts/pleased-to-announce-release-of-python-3/index.md b/content/posts/pleased-to-announce-release-of-python-3/index.md index 5fa105c..ec81d4f 100644 --- a/content/posts/pleased-to-announce-release-of-python-3/index.md +++ b/content/posts/pleased-to-announce-release-of-python-3/index.md @@ -38,7 +38,7 @@ Some of the new major new features and changes in Python 3.12 are: For more details on the changes to Python 3.12, see [What’s new in Python 3.12](https://docs.python.org/3.12/whatsnew/3.12.html). The next pre-release of Python 3.12 will be 3.12.0rc1, the **first release candidate**, currently scheduled for 2023-07-31. - + # More resources diff --git a/content/posts/pypi-now-supports-uploading-via-api/index.md b/content/posts/pypi-now-supports-uploading-via-api/index.md index 05ac778..9130359 100644 --- a/content/posts/pypi-now-supports-uploading-via-api/index.md +++ b/content/posts/pypi-now-supports-uploading-via-api/index.md @@ -19,7 +19,7 @@ The token management screen shows you when each of your tokens were created, and
API token management interface displays each token
PyPI API token management interface
- + Uploading with an API token is currently optional but encouraged; in the future, PyPI will set and enforce a policy requiring users with two-factor authentication enabled to use API tokens to upload (rather than just their password sans second factor). Watch [our announcement mailing list](https://mail.python.org/mailman3/lists/pypi-announce.python.org/) for future details.
A successful API token creation: a long string that only appears once, for the user to copy
Immediately after creating the API token,
PyPI gives the user one chance to copy it

diff --git a/content/posts/python-3100-is-available/index.md b/content/posts/python-3100-is-available/index.md index 7334370..7127f85 100644 --- a/content/posts/python-3100-is-available/index.md +++ b/content/posts/python-3100-is-available/index.md @@ -15,12 +15,12 @@ On behalf of the Python development community and the Python 3.10 release team, Python 3.10.0 is the newest major release of the Python programming language, and it contains many new features and optimizations. - + [https://www.python.org/downloads/release/python-3100/](https://www.python.org/downloads/release/python-3100/) ## Major new features of the 3.10 series, compared to 3.9 - + Among the new major new features and changes so far: - [PEP 623](https://www.python.org/dev/peps/pep-0623/) – Deprecate and prepare for the removal of the wstr member in PyUnicodeObject. @@ -67,7 +67,7 @@ More resources For a Schwarzschild black hole (a black hole with no rotation or electromagnetic charge), given a free fall particle starting at the event horizon, the maximum propper time (which happens when it falls without angular velocity) it will experience to fall into the singularity is \`π\*M\` ([in natural units](https://en.wikipedia.org/wiki/Natural_units)), where M is the mass of the black hole. For Sagittarius A\* (the black hole at the centre of the milky way) this time is approximately 1 minute. - + Schwarzschild black holes are also unique because they have a space-like singularity at their core, which means that the singularity doesn't happen at a specific point in \*space\* but happens at a specific point in \*time\* (the future). This means once you are inside the event horizon you cannot point with your finger towards the direction the singularity is located because the singularity happens in your future: no matter where you move, you will "fall" into it. ## We hope you enjoy the new releases! diff --git a/content/posts/python-3100a4-is-now-available-for/index.md b/content/posts/python-3100a4-is-now-available-for/index.md index e98f948..f1f4c94 100644 --- a/content/posts/python-3100a4-is-now-available-for/index.md +++ b/content/posts/python-3100a4-is-now-available-for/index.md @@ -26,19 +26,19 @@ Many new features for Python 3.10 are still being planned and written. Among the new features and changes so far: - [PEP 623](https://www.python.org/dev/peps/pep-0623/) – Remove wstr from Unicode - + - [PEP 604](https://www.python.org/dev/peps/pep-0604/) – Allow writing union types as X | Y - + - [PEP 612](https://www.python.org/dev/peps/pep-0612/) – Parameter Specification Variables - + - [PEP 626](https://www.python.org/dev/peps/pep-0626/) – Precise line numbers for debugging and other tools. - + - [bpo-38605](https://bugs.python.org/issue38605): `from __future__ import annotations` ([PEP 563](https://www.python.org/dev/peps/pep-0563/)) is now the default. - + - [PEP 618](https://www.python.org/dev/peps/pep-0618/) – Add Optional Length-Checking To zip. - + - (Hey, fellow core developer, if a feature you find important is missing from this list, [let Pablo know](mailto:pablogsal@python.org).) - + The next pre-release of Python 3.10 will be 3.10.0a5, currently scheduled for 2021-02-01. diff --git a/content/posts/python-3100a6-is-now-available-for/index.md b/content/posts/python-3100a6-is-now-available-for/index.md index 9c2510b..d47dcd5 100644 --- a/content/posts/python-3100a6-is-now-available-for/index.md +++ b/content/posts/python-3100a6-is-now-available-for/index.md @@ -17,13 +17,13 @@ Check them here and tell us how we can improve it: ### [https://docs.python.org/3.10/tutorial/controlflow.html#match-statements](https://docs.python.org/3.10/tutorial/controlflow.html#match-statements) - + Go get the new alpha here: [https://www.python.org/downloads/release/python-3100a6/](https://www.python.org/downloads/release/python-3100a6/) - + This is an early developer preview of Python 3.10 @@ -37,31 +37,31 @@ Many new features for Python 3.10 are still being planned and written. Among the new features and changes so far: - [PEP 623](https://www.python.org/dev/peps/pep-0623/) – Remove wstr from Unicode - + - [PEP 604](https://www.python.org/dev/peps/pep-0604/) – Allow writing union types as X | Y - + - [PEP 612](https://www.python.org/dev/peps/pep-0612/) – Parameter Specification Variables - + - [PEP 626](https://www.python.org/dev/peps/pep-0626/) – Precise line numbers for debugging and other tools. - + - [bpo-38605](https://bugs.python.org/issue38605): `from __future__ import annotations` ([PEP 563](https://www.python.org/dev/peps/pep-0563/)) is now the default. - + - [PEP 618](https://www.python.org/dev/peps/pep-0618/) – Add Optional Length-Checking To zip. - + - [bpo-12782](https://bugs.python.org/issue12782): Parenthesized context managers are now officially allowed. - + - [PEP 632](https://www.python.org/dev/peps/pep-0632/) – Deprecate distutils module. - + - [PEP 613](https://www.python.org/dev/peps/pep-0613/) – Explicit Type Aliases - + - [PEP 634](https://www.python.org/dev/peps/pep-0634/) – Structural Pattern Matching: Specification - + - [PEP 635](https://www.python.org/dev/peps/pep-0635/) – Structural Pattern Matching: Motivation and Rationale - + - [PEP 636](https://www.python.org/dev/peps/pep-0636/) – Structural Pattern Matching: Tutorial - + - (Hey, fellow core developer, if a feature you find important is missing from this list, [let Pablo know](mailto:pablogsal@python.org).) - + The next pre-release of Python 3.10 will be 3.10.0a7 ( last alpha release), currently scheduled for Monday, 2021-04-05. diff --git a/content/posts/python-3101-is-available/index.md b/content/posts/python-3101-is-available/index.md index e268cd5..c624938 100644 --- a/content/posts/python-3101-is-available/index.md +++ b/content/posts/python-3101-is-available/index.md @@ -17,7 +17,7 @@ https://www.python.org/downloads/release/python-3101/ Python 3.10.1 is the newest major release of the Python programming language, and it contains many new features and optimizations. -## +## ## Major new features of the 3.10 series, compared to 3.9 diff --git a/content/posts/python-3105-is-available/index.md b/content/posts/python-3105-is-available/index.md index a9b9c37..a0a4804 100644 --- a/content/posts/python-3105-is-available/index.md +++ b/content/posts/python-3105-is-available/index.md @@ -17,7 +17,7 @@ https://www.python.org/downloads/release/python-3105/ Python 3.10.5 is the newest major release of the Python programming language, and it contains many new features and optimizations. -## +## ## Major new features of the 3.10 series, compared to 3.9 diff --git a/content/posts/python-3110a3-is-available/index.md b/content/posts/python-3110a3-is-available/index.md index f128dd9..a659f4e 100644 --- a/content/posts/python-3110a3-is-available/index.md +++ b/content/posts/python-3110a3-is-available/index.md @@ -19,7 +19,7 @@ Among the new major new features and changes so far: - [PEP 657](https://www.python.org/dev/peps/pep-0657/) – Include Fine-Grained Error Locations in Tracebacks - [PEP 654](https://www.python.org/dev/peps/pep-0654/) – PEP 654 – Exception Groups and except\* - + - The [Faster Cpython Project](https://github.com/faster-cpython) is already yielding some exciting results: this version of CPython 3.11 is ~19% faster on the geometric mean of the [performance benchmarks](http://speed.python.org), compared to 3.10.0. (Hey, fellow core developer, if a feature you find important is missing from this list, [let Pablo know](mailto:pablogsal@python.org).) diff --git a/content/posts/python-3112-python-31010-and-3120-alpha/index.md b/content/posts/python-3112-python-31010-and-3120-alpha/index.md index 1a8dcf9..4ae2be7 100644 --- a/content/posts/python-3112-python-31010-and-3120-alpha/index.md +++ b/content/posts/python-3112-python-31010-and-3120-alpha/index.md @@ -21,7 +21,7 @@ Check the new alpha of 3.12 with some Star Trek vibes: *210 new commits since 3.12.0a4 last month* - + ### Python 3.11.2 @@ -31,7 +31,7 @@ A shipment of bugfixes and security releases for the newest Python! *194 new commits since 3.11.1* - + ### Python 3.10.10 @@ -41,11 +41,11 @@ Your trusty Python3.10 just got more stable and secure! *131 new commits since 3.10.9* - + ## We hope you enjoy the new releases! -### +### Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. diff --git a/content/posts/python-3119-is-now-available/index.md b/content/posts/python-3119-is-now-available/index.md index 32a57f7..29adf9b 100644 --- a/content/posts/python-3119-is-now-available/index.md +++ b/content/posts/python-3119-is-now-available/index.md @@ -11,7 +11,7 @@ legacyUrl: /2024/04/python-3119-is-now-available.html [![](./image-1.png)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEickKZquPSoujo5pHqw1C1q7m4_kEMV27tJ-7lIt1sxNnzvPQMpKso_RVbnrnkq1x4rQ2Ybx8zmTy-LmL3K5Ye3fP_bfwTdMRSFhFRCGcLXLNNtlj4mEurgdSvz5msOKq1fmLGKVfeXxxVh9W_SzLCfK9M5HsviItUSLPy19qTWch9mMh5YWpmCjC0a/s507/311logo.png) -## +## ![:warning:](./image-2.png) This is the last bug fix release of Python 3.11 ![:warning:](./image-3.png) diff --git a/content/posts/python-3120-alpha-1-released/index.md b/content/posts/python-3120-alpha-1-released/index.md index facbade..f99e882 100644 --- a/content/posts/python-3120-alpha-1-released/index.md +++ b/content/posts/python-3120-alpha-1-released/index.md @@ -20,7 +20,7 @@ This is an early developer preview of Python 3.12 # Major new features of the 3.12 series, compared to 3.11 - + Python 3.12 is still in development. This release, 3.12.0a1, is the first of seven planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2023-05-08) and, if necessary, may be modified or deleted up until the release candidate phase (2023-07-31). Please keep in mind that this is a preview release and its use is ***not*** recommended for production environments. Many new features for Python 3.12 are still being planned and written. Among the new major new features and changes so far: - The deprecated \`wstr\` and \`wstr\_length\` members of the C implementation of unicode objects were removed, per [PEP 623](https://peps.python.org/pep-0623/). @@ -38,13 +38,13 @@ The next pre-release of Python 3.12 will be 3.12.0a2, currently scheduled for 20 - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - Help fund Python and its community at [https://www.python.org/psf/donations/](https://www.python.org/psf/donations/). - + ### And now for something completely different - + [This is Not the Poem that I Had Hoped to Write](https://twitter.com/brian_bilston/status/1579378460610662401) - + This is not the poem that I had hoped to write when I sat at my desk and the page was white. You see, there were other words that I’d had in mind, @@ -58,9 +58,9 @@ Nope. I had grand aspirations. Believe me, I tried. Humanity examined with lessons applied. But the right words escaped me; so often they do. Have these in lieu. - + [Brian Bilston](https://twitter.com/brian_bilston) - + ## Enjoy the new releases diff --git a/content/posts/python-3120-alpha-2-released/index.md b/content/posts/python-3120-alpha-2-released/index.md index bef89e3..76e6ecc 100644 --- a/content/posts/python-3120-alpha-2-released/index.md +++ b/content/posts/python-3120-alpha-2-released/index.md @@ -36,7 +36,7 @@ For more details on the changes in Python 3.12, see [What's New In Python 3.12]( - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python and its community](https://www.python.org/psf/donations/). -# +# # And now for something completely different @@ -46,7 +46,7 @@ For more details on the changes in Python 3.12, see [What's New In Python 3.12]( > Averse to personal publicity, we veiled our own names under those of Currer, Ellis and Acton Bell; the ambiguous choice being dictated by a sort of conscientious scruple at assuming Christian names positively masculine, while we did not like to declare ourselves women, because – without at that time suspecting that our mode of writing and thinking was not what is called "feminine" – we had a vague impression that authoresses are liable to be looked on with prejudice; we had noticed how critics sometimes use for their chastisement the weapon of personality, and for their reward, a flattery, which is not true praise. -# +# # Enjoy the new releases diff --git a/content/posts/python-3120-alpha-4-released/index.md b/content/posts/python-3120-alpha-4-released/index.md index 3f4743a..6eaf047 100644 --- a/content/posts/python-3120-alpha-4-released/index.md +++ b/content/posts/python-3120-alpha-4-released/index.md @@ -36,7 +36,7 @@ For more details on the changes in Python 3.12, see [What's New In Python 3.12]( - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python and its community](https://www.python.org/psf/donations/). -# +# # And now for something completely different @@ -50,7 +50,7 @@ Haiku by Katsushika Hokusai. Haiku by Kobayashi Issa. -# +# # Enjoy the new releases diff --git a/content/posts/python-3120-beta-1-released/index.md b/content/posts/python-3120-beta-1-released/index.md index e088d17..447bb96 100644 --- a/content/posts/python-3120-beta-1-released/index.md +++ b/content/posts/python-3120-beta-1-released/index.md @@ -36,13 +36,13 @@ Some of the new major new features and changes in Python 3.12 are: For more details on the changes to Python 3.12, see [What’s new in Python 3.12](https://docs.python.org/dev/whatsnew/3.12.html). The next pre-release of Python 3.12 will be 3.12.0b2, currently scheduled for 2023-05-29. - + # More resources [Online Documentation](https://docs.python.org/3.12/). [PEP 693](https://www.python.org/dev/peps/pep-0693/), the Python 3.12 Release Schedule. Report bugs via [GitHub Issues](https://github.com/python/cpython/issues). [Help fund Python and its community](https://www.python.org/psf/donations/). -# +# # And now for something completely different @@ -66,7 +66,7 @@ As the first beta release marks the point at which we fork off the release branc > I took the one less traveled by, > And that has made all the difference. - + *The Road Not Taken*, by Robert Frost. # Enjoy the new release diff --git a/content/posts/python-3120-beta-3-released/index.md b/content/posts/python-3120-beta-3-released/index.md index bdf5e90..2c9aeac 100644 --- a/content/posts/python-3120-beta-3-released/index.md +++ b/content/posts/python-3120-beta-3-released/index.md @@ -36,7 +36,7 @@ Some of the new major new features and changes in Python 3.12 are: For more details on the changes to Python 3.12, see [What’s new in Python 3.12](https://docs.python.org/dev/whatsnew/3.12.html). The next pre-release of Python 3.12 will be 3.12.0b4, the last beta release, currently scheduled for 2023-07-10. - + # More resources diff --git a/content/posts/python-3120-release-candidate-1-released/index.md b/content/posts/python-3120-release-candidate-1-released/index.md index 4ebdcb8..7673eb7 100644 --- a/content/posts/python-3120-release-candidate-1-released/index.md +++ b/content/posts/python-3120-release-candidate-1-released/index.md @@ -13,7 +13,7 @@ I'm pleased to announce the release of Python 3.12 release candidate 1. [https://www.python.org/downloads/release/python-3120rc1/](https://www.python.org/downloads/release/python-3120rc1/) - + # This is the first release candidate of Python 3.12.0 diff --git a/content/posts/python-3121-is-now-available/index.md b/content/posts/python-3121-is-now-available/index.md index 2419101..6e462ef 100644 --- a/content/posts/python-3121-is-now-available/index.md +++ b/content/posts/python-3121-is-now-available/index.md @@ -13,7 +13,7 @@ Python 3.12.1 is now available. [https://www.python.org/downloads/release/python-3121/](https://www.python.org/downloads/release/python-3121/) - + # This is the first maintenance release of Python 3.12 @@ -64,7 +64,7 @@ For more details on the changes to Python 3.12, see [What’s new in Python 3.12 - Report bugs via [GitHub Issues](https://github.com/python/cpython/issues). - [Help fund Python directly](https://www.python.org/psf/donations/python-dev/) or [via GitHub Sponsors](https://github.com/sponsors/python), and support [the Python community](https://www.python.org/psf/donations/). - + # Enjoy the new releases diff --git a/content/posts/python-31212-31114-31019-and-3924-are/index.md b/content/posts/python-31212-31114-31019-and-3924-are/index.md index 4afd97f..b292e1f 100644 --- a/content/posts/python-31212-31114-31019-and-3924-are/index.md +++ b/content/posts/python-31212-31114-31019-and-3924-are/index.md @@ -49,7 +49,7 @@ We couldn’t just let Hugo have fun with 3.14.0, so here are new security relea [https://www.python.org/downloads/release/python-31212/](https://www.python.org/downloads/release/python-31212/) -## +## ### Python 3.11.14 @@ -57,10 +57,10 @@ Additional security content in this release: - [gh-135374](https://github.com/python/cpython/issues/135374): Update the bundled copy of setuptools to 79.0.1 to fix [CVE-2025-47273](https://nvd.nist.gov/vuln/detail/CVE-2025-47273) and [CVE-2024-6345](https://nvd.nist.gov/vuln/detail/CVE-2024-6345). - + [https://www.python.org/downloads/release/python-31114/](https://www.python.org/downloads/release/python-31114/) -## +## ### Python 3.10.19 @@ -68,10 +68,10 @@ Additional security content in this release: - [gh-135374](https://github.com/python/cpython/issues/135374): Update the bundled copy of setuptools to 79.0.1 to fix [CVE-2025-47273](https://nvd.nist.gov/vuln/detail/CVE-2025-47273) and [CVE-2024-6345](https://nvd.nist.gov/vuln/detail/CVE-2024-6345). - + [https://www.python.org/downloads/release/python-31019/](https://www.python.org/downloads/release/python-31019/) -## +## ### Python 3.9.24 @@ -82,7 +82,7 @@ Additional security content in this release: [https://www.python.org/downloads/release/python-3924/](https://www.python.org/downloads/release/python-3924/) -## +## # Stay safe and upgrade! diff --git a/content/posts/python-3122-and-3118-are-now-available/index.md b/content/posts/python-3122-and-3118-are-now-available/index.md index 2436506..8263080 100644 --- a/content/posts/python-3122-and-3118-are-now-available/index.md +++ b/content/posts/python-3122-and-3118-are-now-available/index.md @@ -9,7 +9,7 @@ published: true legacyUrl: /2024/02/python-3122-and-3118-are-now-available.html --- -# +# Python 3.12.2 and 3.11.8 are now available. In addition to all the usual bugfixes, these releases contain a small security fix: [hidden .pth files are no longer automatically read and executed](https://docs.python.org/release/3.12.2/whatsnew/changelog.html#security) as part of Python startup. (New releases of 3.8, 3.9 and 3.10 containing the same fix are expected next week.) diff --git a/content/posts/python-3123-and-3130a6-released/index.md b/content/posts/python-3123-and-3130a6-released/index.md index 646c6ea..e474572 100644 --- a/content/posts/python-3123-and-3130a6-released/index.md +++ b/content/posts/python-3123-and-3130a6-released/index.md @@ -35,7 +35,7 @@ What’s that? The last alpha release? Just one more month until feature freeze! [https://www.python.org/downloads/release/python-3130a6/](https://www.python.org/downloads/release/python-3130a6/) - + # [](https://discuss.python.org/t/python-3-12-3-and-3-13-0a6-released/50601#we-hope-you-enjoy-the-new-releases-3)We hope you enjoy the new releases! diff --git a/content/posts/python-3124-released/index.md b/content/posts/python-3124-released/index.md index 00facd8..b64ba58 100644 --- a/content/posts/python-3124-released/index.md +++ b/content/posts/python-3124-released/index.md @@ -62,7 +62,7 @@ For more details on the changes to Python 3.12, see [What’s new in Python 3.12 Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. - + Your release team, Thomas Wouters diff --git a/content/posts/python-3125-released/index.md b/content/posts/python-3125-released/index.md index 353aadd..292620f 100644 --- a/content/posts/python-3125-released/index.md +++ b/content/posts/python-3125-released/index.md @@ -64,7 +64,7 @@ For more details on the changes to Python 3.12, see [What’s new in Python 3.12 Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. - + Your release team, Thomas Wouters diff --git a/content/posts/python-3127-released/index.md b/content/posts/python-3127-released/index.md index cf5d4d0..b862ea9 100644 --- a/content/posts/python-3127-released/index.md +++ b/content/posts/python-3127-released/index.md @@ -63,7 +63,7 @@ For more details on the changes to Python 3.12, see [What’s new in Python 3.12 Thanks to all of the many volunteers who help make Python Development and these releases possible! Please consider supporting our efforts by volunteering yourself or through organization contributions to the Python Software Foundation. - + Your release team, Thomas Wouters diff --git a/content/posts/python-3130-alpha-1-is-now-available/index.md b/content/posts/python-3130-alpha-1-is-now-available/index.md index 2da0ec8..d1641d3 100644 --- a/content/posts/python-3130-alpha-1-is-now-available/index.md +++ b/content/posts/python-3130-alpha-1-is-now-available/index.md @@ -39,7 +39,7 @@ The next pre-release of Python 3.13 will be 3.13.0a2, currently scheduled for 20 - [PEP 719](https://www.python.org/dev/peps/pep-0719/), 3.13 Release Schedule - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python and its community](https://discuss.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-0-alpha-1/36109#enjoy-the-new-releases-3) diff --git a/content/posts/python-3130-alpha-2-is-now-available/index.md b/content/posts/python-3130-alpha-2-is-now-available/index.md index 4b178ed..c097804 100644 --- a/content/posts/python-3130-alpha-2-is-now-available/index.md +++ b/content/posts/python-3130-alpha-2-is-now-available/index.md @@ -38,7 +38,7 @@ The next pre-release of Python 3.13 will be 3.13.0a3, currently scheduled for 20 - [PEP 719](https://www.python.org/dev/peps/pep-0719/), 3.13 Release Schedule - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python and its community](https://discuss.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-0-alpha-1/36109#enjoy-the-new-releases-3) diff --git a/content/posts/python-3130-beta-1-released/index.md b/content/posts/python-3130-beta-1-released/index.md index fb9e879..02b85de 100644 --- a/content/posts/python-3130-beta-1-released/index.md +++ b/content/posts/python-3130-beta-1-released/index.md @@ -60,7 +60,7 @@ For more details on the changes to Python 3.13, see [What’s new in Python 3.13 - [PEP 719](https://peps.python.org/pep-0719/), 3.13 Release Schedule - Report bugs at [Issues · python/cpython · GitHub](https://github.com/python/cpython/issues). - [Help fund Python directly](https://www.python.org/psf/donations/python-dev/) (or [via GitHub Sponsors](https://github.com/sponsors/python)), and support [the Python community](https://www.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-0b1-now-available/52891#enjoy-the-new-releases-6) diff --git a/content/posts/python-3130-beta-3-released/index.md b/content/posts/python-3130-beta-3-released/index.md index 3677e9b..adc4b7b 100644 --- a/content/posts/python-3130-beta-3-released/index.md +++ b/content/posts/python-3130-beta-3-released/index.md @@ -37,7 +37,7 @@ Some of the new major new features and changes in Python 3.13 are: - Docstrings now have [their leading indentation stripped](https://docs.python.org/3.13/whatsnew/3.13.html#other-language-changes), reducing memory use and the size of .pyc files. (Most tools handling docstrings already strip leading indentation.) - The [dbm module](https://docs.python.org/3.13/library/dbm.html) has a new [dbm.sqlite3 backend](https://docs.python.org/3.13/whatsnew/3.13.html#dbm) that is used by default when creating new files. - The minimum supported macOS version was changed from 10.9 to **10.13 (High Sierra)**. Older macOS versions will not be supported going forward. - + ## [](https://discuss.python.org/t/3-13-0b2-now-available/55056#typing-3)Typing diff --git a/content/posts/python-3131-3128-31111-31016-and-3921/index.md b/content/posts/python-3131-3128-31111-31016-and-3921/index.md index 465b7e4..e3e82a8 100644 --- a/content/posts/python-3131-3128-31111-31016-and-3921/index.md +++ b/content/posts/python-3131-3128-31111-31016-and-3921/index.md @@ -23,7 +23,7 @@ Python 3.12 might be slowly reaching middle age, but still received over 250 bug [https://www.python.org/downloads/release/python-3128/](https://www.python.org/downloads/release/python-3128/) - + # [](https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214#p-211771-python-31111-3)Python 3.11.11 @@ -31,7 +31,7 @@ I know it’s probably hard to hear, but this is the *second* security-only rele [https://www.python.org/downloads/release/python-31111/](https://www.python.org/downloads/release/python-31111/) - + # [](https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214#p-211771-python-31016-4)Python 3.10.16 @@ -39,7 +39,7 @@ Python 3.10 received a total of 14 commits since 3.10.15. Why more than 3.11? Be [https://www.python.org/downloads/release/python-31016/](https://www.python.org/downloads/release/python-31016/) - + # [](https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214#p-211771-python-3921-5)Python 3.9.21 @@ -47,7 +47,7 @@ Python 3.9 isn’t quite ready for pasture yet, as it’s set to receive securit [https://www.python.org/downloads/release/python-3921/](https://www.python.org/downloads/release/python-3921/) - + # [](https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214#p-211771-stay-safe-and-upgrade-6)Stay safe and upgrade! diff --git a/content/posts/python-31310-is-now-available-too-you/index.md b/content/posts/python-31310-is-now-available-too-you/index.md index a5a83fa..074a35c 100644 --- a/content/posts/python-31310-is-now-available-too-you/index.md +++ b/content/posts/python-31310-is-now-available-too-you/index.md @@ -29,7 +29,7 @@ Python 3.13.10 is the tenth maintenance release of 3.13, containing around 300 b - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python directly](https://www.python.org/psf/donations/python-dev/) (or [via GitHub Sponsors](https://github.com/sponsors/python)), and support [the Python community](https://www.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-6-has-been-released/101482#p-265330-enjoy-the-new-releases-4)Enjoy the new releases diff --git a/content/posts/python-3132-and-3129-now-available/index.md b/content/posts/python-3132-and-3129-now-available/index.md index a0d9956..82634eb 100644 --- a/content/posts/python-3132-and-3129-now-available/index.md +++ b/content/posts/python-3132-and-3129-now-available/index.md @@ -23,7 +23,7 @@ Python 3.12’s *ninth* maintenance release already. Just 180 changes for 3.12, [https://www.python.org/downloads/release/python-3129/](https://www.python.org/downloads/release/python-3129/) - + # [](https://discuss.python.org/t/python-3-13-1-3-12-8-3-11-11-3-10-16-and-3-9-21-are-now-available/73214#p-211771-enjoy-the-new-releases-7)Enjoy the new releases diff --git a/content/posts/python-3134-31211-31113-31018-and-3923/index.md b/content/posts/python-3134-31211-31113-31018-and-3923/index.md index c0e9b4e..8f2d324 100644 --- a/content/posts/python-3134-31211-31113-31018-and-3923/index.md +++ b/content/posts/python-3134-31211-31113-31018-and-3923/index.md @@ -37,7 +37,7 @@ In addition to the security fixes, the fourth maintenance release of Python 3.13 # Python 3.10.18 - + [https://www.python.org/downloads/release/python-31018/](https://www.python.org/downloads/release/python-31018/) diff --git a/content/posts/python-3136-is-now-available/index.md b/content/posts/python-3136-is-now-available/index.md index 2115b3e..e5d9d61 100644 --- a/content/posts/python-3136-is-now-available/index.md +++ b/content/posts/python-3136-is-now-available/index.md @@ -28,7 +28,7 @@ Python 3.13 is the newest major release of the Python programming language, and - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python directly](https://www.python.org/psf/donations/python-dev/) (or [via GitHub Sponsors](https://github.com/sponsors/python)), and support [the Python community](https://www.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-6-has-been-released/101482#p-265330-enjoy-the-new-releases-4)Enjoy the new releases diff --git a/content/posts/python-3138-is-now-available/index.md b/content/posts/python-3138-is-now-available/index.md index a0909bc..a5cd426 100644 --- a/content/posts/python-3138-is-now-available/index.md +++ b/content/posts/python-3138-is-now-available/index.md @@ -28,7 +28,7 @@ Python 3.13 is the ~newest~ previous major release of the Python programming lan - Report bugs at [https://github.com/python/cpython/issues](https://github.com/python/cpython/issues). - [Help fund Python directly](https://www.python.org/psf/donations/python-dev/) (or [via GitHub Sponsors](https://github.com/sponsors/python)), and support [the Python community](https://www.python.org/psf/donations/). - + # [](https://discuss.python.org/t/python-3-13-6-has-been-released/101482#p-265330-enjoy-the-new-releases-4)Enjoy the new releases diff --git a/content/posts/python-3139-is-now-available/index.md b/content/posts/python-3139-is-now-available/index.md index 20b7f45..aea2d7b 100644 --- a/content/posts/python-3139-is-now-available/index.md +++ b/content/posts/python-3139-is-now-available/index.md @@ -25,7 +25,7 @@ There are no other changes in this release, compared to 3.13.8. - Report bugs at [github.com/python/cpython/issues](https://github.com/python/cpython/issues) - [Help fund Python and its community](https://www.python.org/psf/donations/) - + # [](https://discuss.python.org/t/python-3-13-9-released/104362#p-274483-enjoy-the-new-releases-3)Enjoy the new releases diff --git a/content/posts/python-3143-and-31312-are-now-available/index.md b/content/posts/python-3143-and-31312-are-now-available/index.md index 7fbf677..8ea6d6c 100644 --- a/content/posts/python-3143-and-31312-are-now-available/index.md +++ b/content/posts/python-3143-and-31312-are-now-available/index.md @@ -20,7 +20,7 @@ Python 3.14.3 is the third maintenance release of 3.14, containing around 299 bu [https://www.python.org/downloads/release/python-3143/](https://www.python.org/downloads/release/python-3143/) - + ## Major new features of the 3.14 series, compared to 3.13 @@ -89,7 +89,7 @@ Python 3.13.12 is *also* now available! [https://www.python.org/downloads/release/python-31312/](https://www.python.org/downloads/release/python-31312/) - + ## This is the twelfth maintenance release of Python 3.13 diff --git a/content/posts/python-340-released/index.md b/content/posts/python-340-released/index.md index 828f336..dd702e0 100644 --- a/content/posts/python-340-released/index.md +++ b/content/posts/python-340-released/index.md @@ -12,32 +12,32 @@ legacyUrl: /2014/03/python-340-released.html [Python 3.4.0](http://www.python.org/download/releases/3.4.0/) has been released today. Python 3.4 includes a range of improvements of the 3.x series, including hundreds of small improvements and bug fixes. Major new features and changes in the 3.4 release series include: - PEP 428, a "pathlib" module providing object-oriented filesystem paths - + - PEP 435, a standardized "enum" module - + - PEP 436, a build enhancement that will help generate introspection information for builtins - + - PEP 442, improved semantics for object finalization - + - PEP 443, adding single-dispatch generic functions to the standard library - + - PEP 445, a new C API for implementing custom memory allocators - + - PEP 446, changing file descriptors to not be inherited by default in subprocesses - + - PEP 450, a new "statistics" module - + - PEP 451, standardizing module metadata for Python's module import system - + - PEP 453, a bundled installer for the \*pip\* package manager - + - PEP 454, a new "tracemalloc" module for tracing Python memory allocations - + - PEP 456, a new hash algorithm for Python strings and binary data - + - PEP 3154, a new and improved protocol for pickled objects - + - PEP 3156, a new "asyncio" module, a new framework for asynchronous I/O - + The [full "What's New" document](http://docs.python.org/3.4/whatsnew/3.4.html) lists all major changes. diff --git a/content/posts/python-350-has-been-released/index.md b/content/posts/python-350-has-been-released/index.md index 5c2d1b5..6feaf71 100644 --- a/content/posts/python-350-has-been-released/index.md +++ b/content/posts/python-350-has-been-released/index.md @@ -10,5 +10,5 @@ legacyUrl: /2015/09/python-350-has-been-released.html --- Python 3.5.0 is now [available for download.](https://www.python.org/downloads/release/python-350/) Python 3.5.0 is the newest version of the Python language, and it contains many exciting new features and optimizations. - + We hope you enjoy Python 3.5.0! diff --git a/content/posts/python-350a3-released/index.md b/content/posts/python-350a3-released/index.md index 32cb1ec..006a8ff 100644 --- a/content/posts/python-350a3-released/index.md +++ b/content/posts/python-350a3-released/index.md @@ -10,5 +10,5 @@ legacyUrl: /2015/03/python-350a3-released.html --- [Python 3.5.0a3](https://www.python.org/downloads/release/python-350a3/) has been released. This is the third alpha release of Python 3.5, which will be the next major release of Python. Python 3.5 is still under heavy development and is far from complete. - + This is a preview release, and its use is not recommended for production settings. If you would like to experiment with Python 3.5.0a3, you can download it [here.](https://www.python.org/downloads/release/python-350a3/) diff --git a/content/posts/python-382rc2-is-now-available-for/index.md b/content/posts/python-382rc2-is-now-available-for/index.md index fcb10c3..89d6746 100644 --- a/content/posts/python-382rc2-is-now-available-for/index.md +++ b/content/posts/python-382rc2-is-now-available-for/index.md @@ -12,9 +12,9 @@ legacyUrl: /2020/02/python-382rc2-is-now-available-for.html Python 3.8.2rc2 is the second release candidate of the second maintenance release of Python 3.8. Go get it here: [https://www.python.org/downloads/release/python-382rc2/](https://www.python.org/downloads/release/python-382rc2/) - - + + ### Why a second release candidate? diff --git a/content/posts/python-385-released-as-security-hotfix/index.md b/content/posts/python-385-released-as-security-hotfix/index.md index b53bfb9..f96838a 100644 --- a/content/posts/python-385-released-as-security-hotfix/index.md +++ b/content/posts/python-385-released-as-security-hotfix/index.md @@ -38,40 +38,40 @@ To help make Python 3.9.0 the best possible release, our [Development Cycle](htt > A branch preparing for an RC release can only have bugfixes applied that have been reviewed by other core developers. Generally, these issues must be severe enough (e.g. crashes) that they deserve fixing before the final release. All other issues should be deferred to the next development cycle, since stability is the strongest concern at this point. > You **cannot** skip the peer review during an RC, no matter how small! Even if it is a simple copy-and-paste change, **everything** requires peer review from a core developer. - + ### Major new features of the 3.9 series, compared to 3.8 Some of the new major new features and changes in Python 3.9 are: - [PEP 584](https://www.python.org/dev/peps/pep-0584/), Union Operators in `dict` - + - [PEP 585](https://www.python.org/dev/peps/pep-0585/), Type Hinting Generics In Standard Collections - + - [PEP 593](https://www.python.org/dev/peps/pep-0593/), Flexible function and variable annotations - + - [PEP 602](https://www.python.org/dev/peps/pep-0602/), Python adopts a stable annual release cadence - + - [PEP 615](https://www.python.org/dev/peps/pep-0615/), Support for the IANA Time Zone Database in the Standard Library - + - [PEP 616](https://www.python.org/dev/peps/pep-0616/), String methods to remove prefixes and suffixes - + - [PEP 617](https://www.python.org/dev/peps/pep-0617/), New PEG parser for CPython - + - [BPO 38379](https://bugs.python.org/issue38379), garbage collection does not block on resurrected objects; - + - [BPO 38692](https://bugs.python.org/issue38692), os.pidfd\_open added that allows process management without races and signals; - + - [BPO 39926](https://bugs.python.org/issue39926), Unicode support updated to version 13.0.0; - + - [BPO 1635741](https://bugs.python.org/issue1635741), when Python is initialized multiple times in the same process, it does not leak memory anymore; - + - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using [PEP 590](https://www.python.org/dev/peps/pep-0590) vectorcall; - + - A number of Python modules (\_abc, audioop, \_bz2, \_codecs, \_contextvars, \_crypt, \_functools, \_json, \_locale, operator, resource, time, \_weakref) now use multiphase initialization as defined by [PEP 489](https://www.python.org/dev/peps/pep-0489/); - + - A number of standard library modules (audioop, ast, grp, \_hashlib, pwd, \_posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by [PEP 384](https://www.python.org/dev/peps/pep-0384/). - + - (Hey, **fellow core developer,** if a feature you find important is missing from this list, [let Łukasz know](mailto:lukasz@python.org).) ### We hope you enjoy the new releases! diff --git a/content/posts/python-390a3-now-available-for-testing/index.md b/content/posts/python-390a3-now-available-for-testing/index.md index 3a22250..57cab7b 100644 --- a/content/posts/python-390a3-now-available-for-testing/index.md +++ b/content/posts/python-390a3-now-available-for-testing/index.md @@ -25,5 +25,5 @@ Many new features for Python 3.9 are still being planned and written. Among the - A number of standard library modules (audioop, ast, grp, \_hashlib, pwd, \_posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by [PEP 384](https://www.python.org/dev/peps/pep-0384/). - (Hey, **fellow core developer,** if a feature you find important is missing from this list, [let Łukasz know](mailto:lukasz@python.org).) - + The next pre-release of Python 3.9 will be 3.9.0a4, currently scheduled for 2020-02-17. diff --git a/content/posts/python-390a5-is-now-available-for/index.md b/content/posts/python-390a5-is-now-available-for/index.md index 52776c8..4eaa7c6 100644 --- a/content/posts/python-390a5-is-now-available-for/index.md +++ b/content/posts/python-390a5-is-now-available-for/index.md @@ -14,12 +14,12 @@ On behalf of the entire Python development community, and the currently serving ### This is an early developer preview of Python 3.9 - + Python 3.9 is still in development. This releasee, 3.9.0a5 is the fifth of six planned alpha releases. Alpha releases are intended to make it easier to test the current state of new features and bug fixes and to test the release process. During the alpha phase, features may be added up until the start of the beta phase (2020-05-18) and, if necessary, may be modified or deleted up until the release candidate phase (2020-08-10). Please keep in mind that this is a preview release and its use is not recommended for production environments. ### Major new features of the 3.9 series, compared to 3.8 - + Many new features for Python 3.9 are still being planned and written. Among the new major new features and changes so far: - [PEP 584](https://www.python.org/dev/peps/pep-0584/), Union Operators in `dict` diff --git a/content/posts/python-390b1-is-now-available-for/index.md b/content/posts/python-390b1-is-now-available-for/index.md index e92b4da..a37bd13 100644 --- a/content/posts/python-390b1-is-now-available-for/index.md +++ b/content/posts/python-390b1-is-now-available-for/index.md @@ -26,33 +26,33 @@ Please keep in mind that this is a preview release and its use is **not** recomm Some of the new major new features and changes in Python 3.9 are: - [PEP 584](https://www.python.org/dev/peps/pep-0584/), Union Operators in `dict` - + - [PEP 585](https://www.python.org/dev/peps/pep-0585/), Type Hinting Generics In Standard Collections - + - [PEP 593](https://www.python.org/dev/peps/pep-0593/), Flexible function and variable annotations - + - [PEP 602](https://www.python.org/dev/peps/pep-0602/), Python adopts a stable annual release cadence - + - [PEP 616](https://www.python.org/dev/peps/pep-0616/), String methods to remove prefixes and suffixes - + - [PEP 617](https://www.python.org/dev/peps/pep-0617/), New PEG parser for CPython - + - [BPO 38379](https://bugs.python.org/issue38379), garbage collection does not block on resurrected objects; - + - [BPO 38692](https://bugs.python.org/issue38692), os.pidfd\_open added that allows process management without races and signals; - + - [BPO 39926](https://bugs.python.org/issue39926), Unicode support updated to version 13.0.0; - + - [BPO 1635741](https://bugs.python.org/issue1635741), when Python is initialized multiple times in the same process, it does not leak memory anymore; - + - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using [PEP 590](https://www.python.org/dev/peps/pep-0590) vectorcall; - + - A number of Python modules (\_abc, audioop, \_bz2, \_codecs, \_contextvars, \_crypt, \_functools, \_json, \_locale, operator, resource, time, \_weakref) now use multiphase initialization as defined by [PEP 489](https://www.python.org/dev/peps/pep-0489/); - + - A number of standard library modules (audioop, ast, grp, \_hashlib, pwd, \_posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by [PEP 384](https://www.python.org/dev/peps/pep-0384/). - + - (Hey, **fellow core developer,** if a feature you find important is missing from this list, [let Łukasz know](mailto:lukasz@python.org).) - + The next pre-release, the second beta release of Python 3.9, will be 3.9.0b2. It is currently scheduled for 2020-06-08. diff --git a/content/posts/python-390b3-is-now-available-for/index.md b/content/posts/python-390b3-is-now-available-for/index.md index 9035a64..f59127e 100644 --- a/content/posts/python-390b3-is-now-available-for/index.md +++ b/content/posts/python-390b3-is-now-available-for/index.md @@ -32,35 +32,35 @@ Please keep in mind that this is a preview release and its use is **not** recomm Some of the new major new features and changes in Python 3.9 are: - [PEP 584](https://www.python.org/dev/peps/pep-0584/), Union Operators in `dict` - + - [PEP 585](https://www.python.org/dev/peps/pep-0585/), Type Hinting Generics In Standard Collections - + - [PEP 593](https://www.python.org/dev/peps/pep-0593/), Flexible function and variable annotations - + - [PEP 602](https://www.python.org/dev/peps/pep-0602/), Python adopts a stable annual release cadence - + - [PEP 615](https://www.python.org/dev/peps/pep-0615/), Support for the IANA Time Zone Database in the Standard Library - + - [PEP 616](https://www.python.org/dev/peps/pep-0616/), String methods to remove prefixes and suffixes - + - [PEP 617](https://www.python.org/dev/peps/pep-0617/), New PEG parser for CPython - + - [BPO 38379](https://bugs.python.org/issue38379), garbage collection does not block on resurrected objects; - + - [BPO 38692](https://bugs.python.org/issue38692), os.pidfd\_open added that allows process management without races and signals; - + - [BPO 39926](https://bugs.python.org/issue39926), Unicode support updated to version 13.0.0; - + - [BPO 1635741](https://bugs.python.org/issue1635741), when Python is initialized multiple times in the same process, it does not leak memory anymore; - + - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using [PEP 590](https://www.python.org/dev/peps/pep-0590) vectorcall; - + - A number of Python modules (\_abc, audioop, \_bz2, \_codecs, \_contextvars, \_crypt, \_functools, \_json, \_locale, operator, resource, time, \_weakref) now use multiphase initialization as defined by [PEP 489](https://www.python.org/dev/peps/pep-0489/); - + - A number of standard library modules (audioop, ast, grp, \_hashlib, pwd, \_posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by [PEP 384](https://www.python.org/dev/peps/pep-0384/). - + - (Hey, **fellow core developer,** if a feature you find important is missing from this list, [let Łukasz know](mailto:lukasz@python.org).) - + The next pre-release, the fourth beta release of Python 3.9, will be 3.9.0b4. It is currently scheduled for 2020-06-29. diff --git a/content/posts/python-390b4-is-now-ready-for-testing/index.md b/content/posts/python-390b4-is-now-ready-for-testing/index.md index 45b22a4..6047e8d 100644 --- a/content/posts/python-390b4-is-now-ready-for-testing/index.md +++ b/content/posts/python-390b4-is-now-ready-for-testing/index.md @@ -24,35 +24,35 @@ We **strongly encourage** maintainers of third-party Python projects to **test w Some of the new major new features and changes in Python 3.9 are: - [PEP 584](https://www.python.org/dev/peps/pep-0584/), Union Operators in `dict` - + - [PEP 585](https://www.python.org/dev/peps/pep-0585/), Type Hinting Generics In Standard Collections - + - [PEP 593](https://www.python.org/dev/peps/pep-0593/), Flexible function and variable annotations - + - [PEP 602](https://www.python.org/dev/peps/pep-0602/), Python adopts a stable annual release cadence - + - [PEP 615](https://www.python.org/dev/peps/pep-0615/), Support for the IANA Time Zone Database in the Standard Library - + - [PEP 616](https://www.python.org/dev/peps/pep-0616/), String methods to remove prefixes and suffixes - + - [PEP 617](https://www.python.org/dev/peps/pep-0617/), New PEG parser for CPython - + - [BPO 38379](https://bugs.python.org/issue38379), garbage collection does not block on resurrected objects; - + - [BPO 38692](https://bugs.python.org/issue38692), os.pidfd\_open added that allows process management without races and signals; - + - [BPO 39926](https://bugs.python.org/issue39926), Unicode support updated to version 13.0.0; - + - [BPO 1635741](https://bugs.python.org/issue1635741), when Python is initialized multiple times in the same process, it does not leak memory anymore; - + - A number of Python builtins (range, tuple, set, frozenset, list, dict) are now sped up using [PEP 590](https://www.python.org/dev/peps/pep-0590) vectorcall; - + - A number of Python modules (\_abc, audioop, \_bz2, \_codecs, \_contextvars, \_crypt, \_functools, \_json, \_locale, operator, resource, time, \_weakref) now use multiphase initialization as defined by [PEP 489](https://www.python.org/dev/peps/pep-0489/); - + - A number of standard library modules (audioop, ast, grp, \_hashlib, pwd, \_posixsubprocess, random, select, struct, termios, zlib) are now using the stable ABI defined by [PEP 384](https://www.python.org/dev/peps/pep-0384/). - + - (Hey, **fellow core developer,** if a feature you find important is missing from this list, [let Łukasz know](mailto:lukasz@python.org).) - + The next pre-release, the fifth beta release of Python 3.9, will be 3.9.0b5. It is currently scheduled for 2020-07-20. @@ -63,7 +63,7 @@ The next pre-release, the fifth beta release of Python 3.9, will be 3.9.0b5. It - Report bugs at [https://bugs.python.org](https://bugs.python.org/). - [Help fund Python and its community](https://discuss.python.org/psf/donations/). - + Your friendly release team, Ned Deily [@nad](https://discuss.python.org/u/nad) Steve Dower [@steve.dower](https://discuss.python.org/u/steve.dower) diff --git a/content/posts/python-392-and-388-are-now-available/index.md b/content/posts/python-392-and-388-are-now-available/index.md index ed8a0bb..1cf4966 100644 --- a/content/posts/python-392-and-388-are-now-available/index.md +++ b/content/posts/python-392-and-388-are-now-available/index.md @@ -18,9 +18,9 @@ Next up, the **last** full regular maintenance release of Python 3.8 is planned This release, just as the candidate before it, contains two security fixes: - [bpo-42938](https://bugs.python.org/issue42938): Avoid static buffers when computing the repr of `ctypes.c_double` and `ctypes.c_longdouble` values. This issue was assigned [CVE-2021-3177](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3177). - + - [bpo-42967](https://bugs.python.org/issue42967): Fix web cache poisoning vulnerability by defaulting the query args separator to `&`, and allowing the user to choose a custom separator. This issue was assigned [CVE-2021-23336](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-23336). - + Since the announcement of the release candidates for 3.9.2 on 3.8.8, we received a number of inquiries from end users urging us to expedite the final releases due to the security content, especially [CVE-2021-3177](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3177). @@ -35,13 +35,13 @@ We recommend you upgrade your systems to Python 3.8.8 or 3.9.2. Our understanding is that while the CVE is listed as “remote code execution”, practical exploits of this vulnerability as such are very unlikely due the following conditions needing to be met for successful RCE: - pass an untrusted floating point number from a remote party to `ctypes.c_double.from_param` (note: Python floating point numbers were not affected); - + - have that object be passed to `repr()` (for instance through logging); - + - have that float point number be valid machine code; - + - have the buffer overflow overwrite the stack at exactly the right place for the code to get executed. - + In fact, Red Hat’s evaluation of the vulnerability was consistent with ours. They write: “[the highest threat from this vulnerability is to system availability](https://access.redhat.com/security/cve/cve-2021-3177).” diff --git a/content/posts/python-392rc1-and-388rc1-are-now/index.md b/content/posts/python-392rc1-and-388rc1-are-now/index.md index effbec6..c6fe57c 100644 --- a/content/posts/python-392rc1-and-388rc1-are-now/index.md +++ b/content/posts/python-392rc1-and-388rc1-are-now/index.md @@ -18,9 +18,9 @@ Following that, the **last** full regular maintenance release of Python 3.8 is p ### Notable security content in today’s releases - [bpo-42967](https://bugs.python.org/issue42967): Fix web cache poisoning vulnerability by defaulting the query args separator to `&`, and allowing the user to choose a custom separator. - + - [bpo-42938](https://bugs.python.org/issue42938): Avoid static buffers when computing the repr of `ctypes.c_double` and `ctypes.c_longdouble` values. - + ### What’s new? diff --git a/content/posts/python-core-development-sprint-2016-36/index.md b/content/posts/python-core-development-sprint-2016-36/index.md index e70598c..8504aba 100644 --- a/content/posts/python-core-development-sprint-2016-36/index.md +++ b/content/posts/python-core-development-sprint-2016-36/index.md @@ -13,19 +13,19 @@ legacyUrl: /2016/09/python-core-development-sprint-2016-36.html From September 5th to the 9th a group of Python core developers gathered for a sprint hosted at Instagram and sponsored by [Instagram](https://www.instagram.com/), [Microsoft](http://landinghub.visualstudio.com/python), and the [Python Software Foundation](https://www.python.org/psf/). The goal was to spend a week working towards the Python 3.6b1 release, just in time for the Python 3.6 feature freeze on Monday, September 12, 2016. The inspiration for this sprint was the [Need for Speed sprint](https://lwn.net/Articles/185399/) held in Iceland a decade ago, where many performance improvements were made to Python 2.5. How time flies! - + By any measurement, the sprint was extremely successful. All participants left feeling accomplished both in the work they did and in the discussions they held. Being in the same room encouraged many discussions related to various [PEPs](https://www.python.org/dev/peps/), and many design decisions were made. There was also the camaraderie of working in the same room together — typically most of us only see each other at the annual PyCon US, where there are other distractions that prevent getting to simply spend time together. (This includes the Python development sprints at PyCon, where the focus is more on helping newcomers contribute to Python — that’s why this sprint was not public.) - + From a quantitative perspective, the sprint was the most productive week for Python ever! According to the graphs from the GitHub mirror of CPython, the week of September 4th saw [more commits](https://github.com/python/cpython/graphs/commit-activity) than the preceding 7 weeks combined! And in [terms of issues](http://bugs.python.org/issue?@template=stats), the number of open issues dropped by 62 with a total of 166 issues closed. - + A large portion of the work performed during the sprint week revolved around various PEPs that had either not yet been accepted or were not yet fully implemented. In the end, 12 PEPs were either implemented from scratch or had their work completed during the week, out of Python 3.6’s total of 16 PEPs: - + 1. Preserving the order of \*\*kwargs in a function ([PEP 468](https://www.python.org/dev/peps/pep-0468/)) 2. Add a private version to dict ([PEP 509](https://www.python.org/dev/peps/pep-0509/)) @@ -40,27 +40,27 @@ A large portion of the work performed during the sprint week revolved around var 11. Change Windows filesystem encoding to UTF-8 ([PEP 529](https://www.python.org/dev/peps/pep-0529/)) 12. Asynchronous Comprehensions ([PEP 530](https://www.python.org/dev/peps/pep-0530/)) - + Some large projects were also worked on that are not represented as PEPs. For instance, Python 3.6 now contains support for [DTrace](https://en.wikipedia.org/wiki/DTrace) and [SystemTap](https://en.wikipedia.org/wiki/SystemTap). This will give people more tools to introspect and monitor Python. See the [HOWTO](https://docs.python.org/3.6/howto/instrumentation.html) for usage instructions and examples showing some of the new possibilities. - + CPython also gained a more memory efficient dictionary implementation at the sprint. The new implementation shrinks memory usage of dictionaries by about 25% and also preserves insertion order, without speed penalties. Based on [a proposal](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) by Raymond Hettinger, the patch was written by INADA Naoki prior to the sprint but it was reviewed and heavily discussed at the sprint, as changing the underlying implementation of dictionaries can have profound implications on Python itself. In the end, the patch was accepted, directly allowing for PEP 468 to be accepted and simplifying PEP 520. - + Work was also done on the Gilectomy (see the [presentation](https://www.youtube.com/watch?v=P3AyI_u66Bw) on the topic from PyCon US for more background info on the project). Progress was made such that Python would run without any reference counting turned on (i.e. Python turned into a huge memory leak). Work then was started on trying the latest design on how to turn reference counting back on in a way that would allow Python to scale with the number of threads and CPU cores used. There’s still a long road ahead before the Gilectomy will be ready to merge though, and we even jokingly considered branding the result as Python 4. - + Much of the work done during the sprint led not only to improvements in the language and library, but to better performance as well. A [quick performance comparison](https://gist.github.com/brettcannon/b57a86a41b4eb0ea64c3b837690c9662) between Python 3.5.2+ and 3.6b1+ under OS X shows that 3.6 is generally faster, with double-digit speed improvements not uncommon. Similar benchmarking under Windows 10 has been reported to show similar performance gains. - + A huge thanks goes out to the participants of the sprints! They are listed below in alphabetical order, along with thanks to the organizations that helped finance their attendance. Many of them traveled to attend and gave up the US Labor Day holiday with their families to participate. In the end, we had participants from 3 countries on 2 continents (We actually invited more people from other countries and continents, but not everybody invited could attend.) - + - Brett Cannon (Microsoft) - Ned Deily @@ -80,9 +80,9 @@ A huge thanks goes out to the participants of the sprints! They are listed below - Victor Stinner (Red Hat) - Zachary Ware - + Special thanks to Łukasz for making the event happen and to Larry for designing the logo. - + [![](./image-2.jpg)](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNmfhBPLmnKg50bocRLTFhC2uLRSNdr_mUtzG1h8agz60wzS520nj4pu2vLQkaxmQ8mRWRgFzVwWLXIQzyVUfB7NPZrQbrtEvSPPXnZjRYsXDLoLlEuhsK_0AXt0xXSYJ6JvsvE5xr3A/s1600/python_sprint_instagram_2016.jpg) diff --git a/content/posts/python-releases-3107-3914-3814-and-3714/index.md b/content/posts/python-releases-3107-3914-3814-and-3714/index.md index d009c1d..69444c3 100644 --- a/content/posts/python-releases-3107-3914-3814-and-3714/index.md +++ b/content/posts/python-releases-3107-3914-3814-and-3714/index.md @@ -41,7 +41,7 @@ Thanks to all of the many volunteers who help make Python Development and these [https://www.python.org/psf/](https://www.python.org/psf/) - + Your friendly release team, diff --git a/scripts/migrate-blogger.ts b/scripts/migrate-blogger.ts index ab60162..0edd036 100644 --- a/scripts/migrate-blogger.ts +++ b/scripts/migrate-blogger.ts @@ -49,18 +49,6 @@ interface BloggerEntry { | null; } -interface MigratedPost { - slug: string; - title: string; - author: string; - publishDate: string; - updatedDate: string; - tags: string[]; - description: string; - legacyUrl: string; - content: string; -} - // ── Turndown Setup ──────────────────────────────────────────── function createTurndown(): TurndownService { const td = new TurndownService({ @@ -317,7 +305,7 @@ function generateDescription(markdown: string): string { function yamlEscape(str: string): string { // If string contains special chars, is numeric, or starts with special chars, wrap in single quotes if ( - /[:#\[\]{}&*!|>'"%@`?,\n]/.test(str) || + /[:#[{}&*!|>'"%@`?,\n\]]/.test(str) || str.startsWith("-") || str.startsWith(" ") || /^\d+(\.\d+)?$/.test(str) || diff --git a/src/components/showcase/ShowcasePostCards.astro b/src/components/showcase/ShowcasePostCards.astro index e4b1d04..4c6c6fe 100644 --- a/src/components/showcase/ShowcasePostCards.astro +++ b/src/components/showcase/ShowcasePostCards.astro @@ -1,6 +1,6 @@ --- import { getCollection } from "astro:content"; -import { formatDate, postUrl, slugify, withBase } from "../../lib/utils"; +import { formatDate, postUrl, withBase } from "../../lib/utils"; const allPosts = await getCollection("posts"); const recentPosts = allPosts diff --git a/src/pages/[year]/[month]/[slug].astro b/src/pages/[year]/[month]/[slug].astro index a951204..4975648 100644 --- a/src/pages/[year]/[month]/[slug].astro +++ b/src/pages/[year]/[month]/[slug].astro @@ -1,5 +1,4 @@ --- -import type { InferGetStaticPropsType } from "astro"; import BlogPostLayout from "../../../layouts/BlogPostLayout.astro"; import { getCollection, render } from "astro:content"; @@ -22,7 +21,6 @@ export async function getStaticPaths() { }); } -type Props = InferGetStaticPropsType; const { post } = Astro.props; const { Content, remarkPluginFrontmatter } = await render(post); const references = (remarkPluginFrontmatter?.references ?? []) as Array<{ type: string; label: string; url: string }>;