diff --git a/.cruft.json b/.cruft.json index 9c53f411..e7c1f92c 100755 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/Ouranosinc/cookiecutter-pypackage.git", - "commit": "3c1f362148b15e97a7a7d252f39f40d4175dfcb2", + "commit": "ca71222b12478c5123bb4f1d973ccbec53b965eb", "checkout": null, "context": { "cookiecutter": { @@ -35,7 +35,7 @@ ".github/workflows/workflow-warning.yml" ], "_template": "https://github.com/Ouranosinc/cookiecutter-pypackage.git", - "_commit": "3c1f362148b15e97a7a7d252f39f40d4175dfcb2" + "_commit": "ca71222b12478c5123bb4f1d973ccbec53b965eb" } }, "directory": null diff --git a/.github/labeler.yml b/.github/labeler.yml index b1d529ce..f7f018ed 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -19,7 +19,8 @@ - '.github/workflows/*' - 'docs/Makefile' - 'tox.toml' - - 'CI/**/*' + - '.github/*.in' + - '.github/*.txt' - 'Makefile' 'docs': diff --git a/.github/requirements_ci.txt b/.github/requirements_ci.txt index b6c938ab..dc91b689 100644 --- a/.github/requirements_ci.txt +++ b/.github/requirements_ci.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --generate-hashes --output-file=CI/requirements_ci.txt CI/requirements_ci.in +# pip-compile --generate-hashes --output-file=.github/requirements_ci.txt .github/requirements_ci.in # annotated-types==0.7.0 \ --hash=sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 \ @@ -23,7 +23,7 @@ bracex==2.4 \ bump-my-version==1.4.1 \ --hash=sha256:b4ad672b4e8b9f560f36a9ae0aff80088727ce2b3e0f1b7ea00d3f75846b09dd \ --hash=sha256:c434736066cd835adddbfa37dc18dfe522c7cf2d1836bedcb2ca2967d2015fb0 - # via -r requirements_ci.in + # via -r .github/requirements_ci.in cachetools==7.0.4 \ --hash=sha256:0c8bb1b9ec8194fa4d764accfde602dfe52f70d0f311e62792d4c3f8c051b1e9 \ --hash=sha256:7042c0e4eea87812f04744ce6ee9ed3de457875eb1f82d8a206c46d6e48b6734 @@ -31,10 +31,7 @@ cachetools==7.0.4 \ certifi==2024.7.4 \ --hash=sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b \ --hash=sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90 - # via - # httpcore - # httpx - # requests + # via requests charset-normalizer==3.3.2 \ --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ @@ -155,7 +152,7 @@ deptry==0.25.1 \ --hash=sha256:df88952a2bab7517ef23cb304b979199b28449e5d9db2e9ba9bc27a286ac852b \ --hash=sha256:e3fa3321078e11cd1ac3f10ce3ff0547731c53f9253b87c757a8749c76fe8fa9 \ --hash=sha256:e6f7b8fa72932e51e86799b10dcd29381b2132dc799c790dca3b28ab08dffb28 - # via -r requirements_ci.in + # via -r .github/requirements_ci.in dill==0.3.8 \ --hash=sha256:3ebe3c479ad625c4553aca177444d89b486b1d84982eeacded644afc0cf797ca \ --hash=sha256:c36ca9ffb54365bdd2f8eb3eff7d2a21237f8452b57ace88b1ac615b7e815bd7 @@ -172,7 +169,7 @@ exceptiongroup==1.3.1 \ --hash=sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219 \ --hash=sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598 # via - # -r requirements_ci.in + # -r .github/requirements_ci.in # anyio filelock==3.25.0 \ --hash=sha256:5ccf8069f7948f494968fc0713c10e5c182a9c9d9eef3a636307a20c2490f047 \ @@ -184,7 +181,7 @@ filelock==3.25.0 \ flit==3.12.0 \ --hash=sha256:1c80f34dd96992e7758b40423d2809f48f640ca285d0b7821825e50745ec3740 \ --hash=sha256:2b4e7171dc22881fa6adc2dbf083e5ecc72520be3cd7587d2a803da94d6ef431 - # via -r requirements_ci.in + # via -r .github/requirements_ci.in flit-core==3.12.0 \ --hash=sha256:18f63100d6f94385c6ed57a72073443e1a71a4acb4339491615d0f16d6ff01b2 \ --hash=sha256:e7a0304069ea895172e3c7bb703292e992c5d1555dd1233ab7b5621b5b69e62c @@ -256,7 +253,7 @@ pydantic==2.13.4 \ --hash=sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba \ --hash=sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6 # via - # -r requirements_ci.in + # -r .github/requirements_ci.in # bump-my-version # pydantic-settings pydantic-core==2.46.4 \ @@ -512,7 +509,7 @@ pygments==2.20.0 \ pylint==4.0.6 \ --hash=sha256:52f19191bee08bf103f9705ad1a0ece4aa5a0a4ef2bdcbd969375a1e6f6579d5 \ --hash=sha256:d11a0e1fdb7b1cd46ec5d6fc78fee8b95f28695b2d6140e5809925f61e32ea54 - # via -r requirements_ci.in + # via -r .github/requirements_ci.in pyproject-api==1.10.0 \ --hash=sha256:40c6f2d82eebdc4afee61c773ed208c04c19db4c4a60d97f8d7be3ebc0bbb330 \ --hash=sha256:8757c41a79c0f4ab71b99abed52b97ecf66bd20b04fa59da43b5840bac105a09 @@ -618,12 +615,12 @@ tox==4.58.0 \ --hash=sha256:ab0b126a04dd56bc18e6d216386db09335247f2289b54cf534deb5c4ae3a8d2e \ --hash=sha256:dcae21f5f015f3a67658e35644cce0d1aa0dedcd06f3927f95d84e1717f6cea5 # via - # -r requirements_ci.in + # -r .github/requirements_ci.in # tox-gh tox-gh==1.8.0 \ --hash=sha256:19c151525e6ed383b2fd23f8f3a35301ee12f3438c19ac7062f81c30958626ad \ --hash=sha256:c29a109dc4c1a51bc472b4989bd7063ac9be07bf0c16a2b0fcbe57f16757e397 - # via -r requirements_ci.in + # via -r .github/requirements_ci.in truststore==0.10.4 \ --hash=sha256:9d91bd436463ad5e4ee4aba766628dd6cd7010cf3e2461756b3303710eebc301 \ --hash=sha256:9d91bd436463ad5e4ee4aba766628dd6cd7010cf3e2461756b3303710eebc301 \ diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index d43e2a5a..809aebb4 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -34,7 +34,6 @@ on: - tests/**.py - tox.toml - src/cdm_reader_mapper/__init__.py - workflow_dispatch: permissions: contents: read diff --git a/AGENTS.md b/AGENTS.md index 7d08de51..a733d0a7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,13 +4,13 @@ Rules for AI coding agents working in this repository. ## General -- Follow existing code conventions and patterns -- Do not modify files outside the scope of the current task -- Prefer editing existing files over creating new ones -- Do not add dependencies without explicit approval -- Keep changes atomic -- one concern per commit -- Ask for clarification when requirements are ambiguous -- Do not generate PR descriptions or review comments on others' code +- Follow existing code conventions and patterns. +- Do not modify files outside the scope of the current task. +- Prefer editing existing files over creating new ones. +- Do not add dependencies without explicit approval. +- Keep changes atomic -- one concern per commit. +- Ask for clarification when requirements are ambiguous. +- Do not generate PR descriptions or review comments on others' code. ## Code Style @@ -33,6 +33,7 @@ The package can be installed in developer mode in Python using the `$ make devel Do not modify: - `.*` +- `LICENSE` - `.github` - `docs` - `tox.toml` @@ -41,18 +42,18 @@ Do not modify: - Changes must be summarized in one or two sentences within the `CHANGELOG.rst` file. - New additions must be placed under the section labelled "(unreleased)". -- Acceptable category types are all previously categories found in `CHANGELOG.rst` +- Acceptable category types are all previously categories found in `CHANGELOG.rst`. - Entries must end with the issue number and PR number appended to the end: "(:issue:`#`, :pull:`#`)". ## Commits -- Use clear, descriptive commit messages -- One logical change per commit -- Do not bundle unrelated changes -- Reference relevant issues when applicable -- Never push directly to main -- Always use a PR branch and get human approval before merging -- Include `Assisted-by: ` trailer on AI-assisted commits +- Use clear, descriptive commit messages. +- One logical change per commit. +- Do not bundle unrelated changes. +- Reference relevant issues when applicable. +- Never push directly to main. +- Always use a PR branch and get human approval before merging. +- Include `Assisted-by: ` trailer on AI-assisted commits. ## Review diff --git a/AI_POLICY.md b/AI_POLICY.md index f9cc811e..8ff116f7 100644 --- a/AI_POLICY.md +++ b/AI_POLICY.md @@ -6,8 +6,9 @@ You are responsible for every line of code you submit, regardless of how it was ## Pull Requests -Pull Requests descriptions must be drafted by a human and adhere to the template selected on creation. -Summaries of changes posted by AI are not accepted in Pull Requests. +- Pull Requests descriptions must be drafted by a human and adhere to the template selected on creation. +- Summaries of changes posted by AI are not accepted in Pull Requests. +- AI-generated responses to reviewer comments are not accepted in Pull Requests. ## AI Tool Usage @@ -53,7 +54,8 @@ AI-generated contributions must be compatible with this project's license. Contr ## Enforcement -Maintainers may close AI-generated PRs that do not meet these standards without detailed feedback. +- Maintainers may close AI-generated PRs that do not meet these standards at their sole discretion without detailed feedback. +- Repeated low-quality AI submissions may result in the contributor being asked to stop using AI tools. ## Policy Evolution diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index e95cd042..2e283309 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -189,15 +189,15 @@ Before you submit a pull request, check that it meets these guidelines: #. If the pull request adds functionality, either update the documentation or create a new notebook that demonstrates the feature. Library-defining features should also be listed in ``README.rst``. -#. The pull request should work for all currently supported Python versions. Check the `pyproject.toml` or `tox.ini` files for the list of supported versions. +#. The pull request should work for all currently supported Python versions. Check the `pyproject.toml` or `tox.toml` files for the list of supported versions. #. If you haven't already, ensure that you have read and agreed to the `Developer Certificate of Origin (DCO) `_, and that you have signed off on your commits using: - .. code-block:: bash +.. code-block:: bash - git commit -s/--signoff + git commit -s/--signoff - This will add a `Signed-off-by:` line to your commit message, which indicates that you agree to the DCO. +This will add a `Signed-off-by:` line to your commit message, which indicates that you agree to the DCO. AI Assistance Notice --------------------