* feat: add CPython 3.15 support for iOS Assisted-by: OpenCode:Kimi-K2.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * fix: copy in iOS support files Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * fix: skip directories when copying iOS support files When copying multiarch-specific support files (e.g. _cross_arm64_iphoneos.py), the code was trying to copy all items in the directory including __pycache__ directories. The shutil.copy() function only works with files, not directories, which caused an IsADirectoryError. This fix adds a check to only copy files, skipping any directories like __pycache__ that may have been created by Python imports. Assisted-by: Copilot:claude-haiku-4.5 * fix: - in dir fine for now Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * fix: apply review suggestions Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * fix: only do this on 3.15+ Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * Ensure target Python directory exists before build Add assertion to check if target Python directory exists. * fix(ios): use stdlib dir directly instead of copying to platform-config Remove the _inject_support_files workaround for python.org 3.15+ distributions. Instead of copying sysconfig files from the stdlib into a synthetic platform-config/ directory, pass the stdlib directory directly to make_cross_venv.py. make_cross_venv.py is updated to derive the multiarch tag from the _sysconfigdata_ filename rather than assuming it comes from the directory name. Co-authored-by: Russell Keith-Magee <russell@keith-magee.com> Assisted-by: OpenCode:Kimi-K2.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu> * Minor format cleanups on pre-commit skipped files. * Clarify path names in make_cross_venv script. --------- Signed-off-by: Henry Schreiner <henryfs@princeton.edu> Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
104 lines
2.9 KiB
YAML
104 lines
2.9 KiB
YAML
ci:
|
|
autoupdate_schedule: monthly
|
|
exclude: "^cibuildwheel/resources/ios-support/(?!make_cross_venv\\.py)"
|
|
|
|
repos:
|
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
|
|
hooks:
|
|
- id: check-case-conflict
|
|
- id: check-merge-conflict
|
|
- id: check-yaml
|
|
- id: check-toml
|
|
- id: debug-statements
|
|
- id: end-of-file-fixer
|
|
exclude: (cibuildwheel/resources/pinned_docker_images.cfg)|(.svg$)
|
|
- id: mixed-line-ending
|
|
- id: trailing-whitespace
|
|
exclude: ^cibuildwheel/resources/android/android.patch$
|
|
|
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
rev: 6fec9b7edb08fd9989088709d864a7826dc74e80 # frozen: v0.15.12
|
|
hooks:
|
|
- id: ruff-check
|
|
args: ["--fix"]
|
|
- id: ruff-format
|
|
|
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
rev: fc0f09a29bb495f4a91f00266155d6282d52485d # frozen: v1.20.2
|
|
hooks:
|
|
- id: mypy
|
|
name: mypy 3.11 on cibuildwheel/
|
|
args: ["--python-version=3.11"]
|
|
exclude: ^cibuildwheel/resources/android/_cross_venv.py$ # Requires Python 3.13 or later
|
|
additional_dependencies: &mypy-dependencies
|
|
- bracex
|
|
- build
|
|
- dependency-groups>=1.2
|
|
- humanize
|
|
- nox>=2025.2.9
|
|
- orjson
|
|
- packaging
|
|
- pyelftools
|
|
- pygithub
|
|
- pytest
|
|
- rich
|
|
- tomli_w
|
|
- types-certifi
|
|
- types-click
|
|
- types-jinja2
|
|
- types-pyyaml
|
|
- types-requests
|
|
- types-setuptools
|
|
- uv
|
|
- validate-pyproject
|
|
- id: mypy
|
|
name: mypy 3.14
|
|
args: ["--python-version=3.14"]
|
|
additional_dependencies: *mypy-dependencies
|
|
|
|
- repo: https://github.com/shellcheck-py/shellcheck-py
|
|
rev: 745eface02aef23e168a8afb6b5737818efbea95 # frozen: v0.11.0.1
|
|
hooks:
|
|
- id: shellcheck
|
|
|
|
- repo: local
|
|
hooks:
|
|
- id: disallow-caps
|
|
name: Disallow improper capitalization
|
|
language: pygrep
|
|
entry: PyBind|Numpy|Cmake|Github|PyTest
|
|
types: [markdown]
|
|
exclude: ^docs/working-examples\.md$ # Autogenerated
|
|
- id: cog
|
|
name: Cog the README
|
|
language: python
|
|
pass_filenames: false
|
|
entry: cog -c -P -r -I ./bin README.md
|
|
files: '^(README\.md|docs/changelog\.md|docs/options\.md|bin/readme.*)$'
|
|
additional_dependencies: [cogapp>=3.5]
|
|
|
|
- repo: https://github.com/codespell-project/codespell
|
|
rev: 2ccb47ff45ad361a21071a7eedda4c37e6ae8c5a # frozen: v2.4.2
|
|
hooks:
|
|
- id: codespell
|
|
args: ["-w"]
|
|
exclude: ^docs/working-examples\.md$ # Autogenerated
|
|
|
|
|
|
- repo: https://github.com/python-jsonschema/check-jsonschema
|
|
rev: 943377262562a12b57292fc98fabd7dbf81451fe # frozen: 0.37.2
|
|
hooks:
|
|
- id: check-dependabot
|
|
- id: check-github-actions
|
|
- id: check-github-workflows
|
|
- id: check-gitlab-ci
|
|
- id: check-readthedocs
|
|
- id: check-travis
|
|
- id: check-jsonschema
|
|
name: Check projects
|
|
args: [--schemafile, docs/data/projects.schema.json]
|
|
files: '^docs/data/projects.yml$'
|
|
- id: check-metaschema
|
|
files: '^docs/data/projects.schema.json$'
|