Repository navigation
v9.0.0 - #299
Open
pytooling-claude[bot] wants to merge 21 commits into
Open
v9.0.0#299pytooling-claude[bot] wants to merge 21 commits into
pytooling-claude[bot] wants to merge 21 commits into
Conversation
Co-Authored-By: Patrick Lehmann <[email protected]>
'Parameters' warns when 'system_list' still names it and creates no job for it. Co-Authored-By: Patrick Lehmann <[email protected]>
The default 'system_list' runs MSYS2 on 'ucrt64' only. 'UnitTesting' and 'ApplicationTesting' lose the input 'mingw64_before_script'. 'Parameters' warns when 'system_list' still names 'mingw64' and creates no job for it. Co-Authored-By: Patrick Lehmann <[email protected]>
PyPy 8.0 ships Python 3.12 for every runner except Windows on aarch64, so 'windows-arm:pypy-3.12' joins the default 'disable_list'. The PyPy icons shift by one color, 'pypy-3.12' becomes the latest PyPy. Co-Authored-By: Patrick Lehmann <[email protected]>
'pypy-3.9' and 'pypy-3.10' leave the list of known versions, 'windows-arm:pypy-3.10' the default 'disable_list'. Co-Authored-By: Patrick Lehmann <[email protected]>
Versions 3.9 to 3.15 with the icons 'Parameters' uses: 3.14 is the latest release, 3.15 the pre-release. Co-Authored-By: Patrick Lehmann <[email protected]>
Python 3.15 becomes the default 'python_version' of every template, and the default 'python_version_list' is '3.11 3.12 3.13 3.14 3.15'. Python 3.9 leaves the list of known versions; listing 3.10 warns that its support ended. The pre-release version is now 3.16. Co-Authored-By: Patrick Lehmann <[email protected]>
'3.16' maps to '3.16.0-alpha.1', spelled as in setup-python's version manifest ('alpha', not 'a').
Co-Authored-By: Patrick Lehmann <[email protected]>
'py-0' is 3.15 now, so every 'py-N' test case and its expected job matrix move up by one version. The default 'exclude_list' loses 'windows-arm:3.9', as 3.9 is no known version any more. Co-Authored-By: Patrick Lehmann <[email protected]>
The documentation built on GitHub Actions - the one published to GitHub Pages - loads GoatCounter's script, which counts each page view for the site 'pytooling'. A local build has no script. Co-Authored-By: Patrick Lehmann <[email protected]>
…jsonschema pyEDAA.Reports reads JSON reports validated with jsonschema (coverage.py's JSON format, edaa-org/pyEDAA.Reports#204). Its transitive entry, and the one of sphinx_reports depending on it, list python-jsonschema:p, so MSYS2 jobs of packages depending on pyEDAA.Reports install it from MSYS2 instead of building rpds-py from source. Co-Authored-By: Patrick Lehmann <[email protected]>
… extra pyTooling.Sphinx took over the reports of sphinx_reports. It needs python-aiohttp:p (pyTooling[pypi]) and python-markupsafe:p (Sphinx, through Jinja2); its 'reports' extra adds pyEDAA.Reports (jsonschema, lxml, ruamel.yaml) and docstr_coverage (PyYAML). Co-Authored-By: Patrick Lehmann <[email protected]>
…for pyTooling.Sphinx (#295)
…ownload_artifacts') New inputs 'download_artifacts' - a glob of artifact names, empty by default - and 'artifacts_directory' - 'artifacts' by default. After the wheel is installed, the matching artifacts are downloaded, each into a subdirectory named after the artifact, so application tests can read what other jobs of the pipeline wrote, e.g. the reports of example jobs. '_Checking_JobTemplates.yml' uploads an example report from a new job 'ExampleReport' and lets 'AppTesting' download 'Example-*'; a new app test reads it, and skips where no artifacts were downloaded. Co-Authored-By: Patrick Lehmann <[email protected]>
…ttern' Like 'unittest_artifacts_pattern' (PublishTestResults) and 'coverage_artifacts_pattern' (PublishCoverageResults). Co-Authored-By: Patrick Lehmann <[email protected]>
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
A new major version,
@r9: Python 3.15 becomes the default, MSYS2 runs on UCRT64 only.mingw32andmingw64removed (with the inputmingw64_before_script); Python 3.9, PyPy 3.9and 3.10 removed.
pyTooling.Sphinx.
Important
Merge after Python 3.15.0 is installable on the runners. Until
actions/python-versionslists3.15.0(it lists3.15.0-rc.3today), every job asking for the new default3.15fails at setup - including this repository'sverifications, which is why
devis red since the v9.0.0 preparation.✨ New Features
Python 3.15 is the latest CPython release, Python 3.16 the pre-release (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). 3.15 gets 🟢, 3.16 🟣
(
3.16.0-alpha.1); the older versions move down one level: 3.14 🟢, 3.13 🟡, 3.12 🟠, 3.11 🔴, 3.10 ⚫.PyPy 3.12 (
pypy-3.12, PyPy 8.0.0) (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). It runs on Linux, macOS and Windows on x86-64 and on Linux and macOSon arm64; PyPy publishes no Windows-on-arm64 build, so
windows-arm:pypy-3.12is in the defaultdisable_list. Icons:pypy-3.11⟲🟠,pypy-3.12⟲🟡.ApplicationTesting.ymldownloads artifacts the application tests read (ApplicationTesting: download artifacts the application tests read #296):artifacts_pattern: a glob of artifact names, e.g.'Example-*'. Empty by default - no download, so existingpipelines are unchanged. Named like
unittest_artifacts_pattern(PublishTestResults.yml) andcoverage_artifacts_pattern(PublishCoverageResults.yml).artifacts_directory: where they go, default'artifacts'; each artifact is extracted into a subdirectory namedafter it.
mingw64is removed (Remove the MSYS2 runtime 'mingw64' #291). The defaultsystem_list(Parameters,CompletePipeline)runs MSYS2 on
ucrt64only. Asystem_liststill namingmingw64gets the warning "System 'mingw64' isn'tsupported anymore." and no job. The deprecation warning of
msys2points toucrt64.UnitTestingandApplicationTestinglose the inputmingw64_before_script(Remove the MSYS2 runtime 'mingw64' #291), with its step. A callerstill passing it fails at startup (Invalid input) - use
ucrt64_before_script.mingw_requirementskeeps its name;its description says MSYS2.
mingw32is removed (Remove the MSYS2 runtime 'mingw32' #290). Asystem_listnaming it gets the warning "System 'mingw32'isn't supported anymore." instead of a job.
python_versiondefaults to'3.15'in every template having it,python_version_listto'3.11 3.12 3.13 3.14 3.15'(Parameters,CompletePipeline) (Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).Moving a pipeline from
@r8to@r9:mingw64_before_script→ucrt64_before_script.mingw32/mingw64fromsystem_list,exclude_list,disable_listandinclude_list(only warnsotherwise).
python_versionof3.9or apypy-3.9/pypy-3.10entry creates no job any more.🔧 Changes
Parameters;CompletePipeline'sunittest_*/apptest_*lists):exclude_list:'windows-arm:3.10'(Shift the relative Python versions of the verifications to Python 3.15 #293).disable_list:'windows-arm:pypy-3.11 windows-arm:pypy-3.12'(Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).ComputePacboyPackages(ComputePacboyPackages: python-jsonschema for pyEDAA.Reports, entries for pyTooling.Sphinx #295):pyedaa.reportsandsphinx_reportslistpython-jsonschema:p- pyEDAA.Reports validates JSONreports with
jsonschema, whose dependencyrpds-pyhas compiled code.pytooling.sphinx:python-aiohttp:p(pyTooling[pypi]),python-markupsafe:p(Sphinx); its extrareportsadds what pyEDAA.Reports needs (jsonschema,lxml,ruamel.yaml) anddocstr_coverage(PyYAML).myPackageandmyFramework.Extensionlose their MinGW32/MinGW64 branches,tests/platformitsMinGW testcases (Remove the MSYS2 runtime 'mingw32' #290, Remove the MSYS2 runtime 'mingw64' #291).
📖 Documentation
mingw32andmingw64removed (Remove the MSYS2 runtime 'mingw32' #290, Remove the MSYS2 runtime 'mingw64' #291).Parameters(Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292).python_version,python_version_list,system_list,exclude_listanddisable_list; UnitTesting/ApplicationTesting dropmingw64_before_script(Remove the MSYS2 runtime 'mingw32' #290-Shift the relative Python versions of the verifications to Python 3.15 #293).artifacts_patternandartifacts_directory, and the download step (ApplicationTesting: download artifacts the application tests read #296).no cookies (Count the page views of the published documentation with GoatCounter #294).
🧪 Unit Tests
_Checking_Parameters: the relative test cases (py-0,py-1, ...) follow Python 3.15 aspy-0; the defaultmatrices expect
3.15(MSYS2:ucrt64:3.14);Params_Systemscheckswindows clang64 ucrt64,Params_PythonVersionspypy-3.11 pypy-3.12(Remove the MSYS2 runtime 'mingw32' #290-Shift the relative Python versions of the verifications to Python 3.15 #293)._Checking_JobTemplates: unit tests also on3.15andpypy-3.12, platform tests onclang64anducrt64(Remove the MSYS2 runtime 'mingw64' #291, Add PyPy 3.12 and Python 3.15, Python 3.16 as pre-release #292). New job
ExampleReportuploads an artifactExample-Report, whichAppTestingdownloads; the newtestcase
DownloadedArtifactsreads it (ApplicationTesting: download artifacts the application tests read #296)._Checking_CleanupArtifacts:3.14 3.15(Shift the relative Python versions of the verifications to Python 3.15 #293).Known Issues
of them fails at setup until
actions/python-versionslists it.pypy-3.11,pypy-3.12), packages without app80wheel are built from source, e.g. Pillow (formatplotlib) fails on Linux for missing libjpeg headers - Skip the matplotlib testcases on PyPy 8.0 on Linux pyTooling#474.
CompletePipeline.ymldoesn't forwardartifacts_pattern/artifacts_directory; pipelines with example jobs wireApplicationTestingby hand.tests/pacman_packages.py, the standalone copy ofComputePacboyPackages, lags behind the action.@r9:pyEDAA.CLIToolpassesmingw64_before_script; pyTooling namesmingw32and
mingw64in system lists,pyEDAA.ProjectModelmingw64:*in a disable list.Related Issues and Pull-Requests
mingw32removed.mingw64andmingw64_before_scriptremoved.ComputePacboyPackages:python-jsonschemafor pyEDAA.Reports, entries for pyTooling.Sphinx.ApplicationTesting: download artifacts the application tests read.