diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index fce062d..0000000 --- a/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -service_name: github diff --git a/.cruft.json b/.cruft.json index bb77f83..af366b9 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/Ouranosinc/cookiecutter-pypackage", - "commit": "cb8b26cb78a428f6ce447a0ab1b08c0c171ad5aa", + "commit": "770fc5056ab143530fcee23d7914551956916b8d", "checkout": null, "context": { "cookiecutter": { @@ -20,10 +20,22 @@ "command_line_interface": "No command-line interface", "create_author_file": "y", "open_source_license": "MIT license", + "ai_tools_policy": "Standard", "generated_with_cruft": "y", "__gh_slug": "https://github.com/hydrologie/xdatasets", + "_copy_without_render": [ + ".github/workflows/auto-accept-ci-changes.yml", + ".github/workflows/cache-cleaner.yml", + ".github/workflows/codeql.yml", + ".github/workflows/dependency-review.yml", + ".github/workflows/label.yml", + ".github/workflows/publish-pypi.yml", + ".github/workflows/scorecard.yml", + ".github/workflows/tag-testpypi.yml", + ".github/workflows/workflow-warning.yml" + ], "_template": "https://github.com/Ouranosinc/cookiecutter-pypackage", - "_commit": "cb8b26cb78a428f6ce447a0ab1b08c0c171ad5aa" + "_commit": "770fc5056ab143530fcee23d7914551956916b8d" } }, "directory": null diff --git a/.github/workflows/auto-accept-ci-changes.yml b/.github/workflows/auto-accept-ci-changes.yml index d854631..ea2b906 100644 --- a/.github/workflows/auto-accept-ci-changes.yml +++ b/.github/workflows/auto-accept-ci-changes.yml @@ -35,6 +35,8 @@ jobs: with: app-id: ${{ secrets.HYDROLOGIE_HELPER_BOT_ID }} private-key: ${{ secrets.HYDROLOGIE_HELPER_BOT_KEY }} + permission-contents: write + permission-pull-requests: write - name: Fetch Dependabot metadata id: dependabot-metadata diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index e9da202..10eef71 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -44,7 +44,7 @@ jobs: runs-on: ubuntu-latest environment: automation permissions: - actions: read + contents: write strategy: matrix: python-version: [ "3.13" ] @@ -66,6 +66,7 @@ jobs: with: app-id: ${{ secrets.HYDROLOGIE_HELPER_BOT_ID }} private-key: ${{ secrets.HYDROLOGIE_HELPER_BOT_KEY }} + permission-contents: write - name: Checkout Repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -73,7 +74,7 @@ jobs: persist-credentials: false token: ${{ steps.token_generator.outputs.token }} - - name: Set up Python3 + - name: Set up Python${{ matrix.python-version }} uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ matrix.python-version }} diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index c4eaf78..c466617 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -24,13 +24,7 @@ jobs: uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: disable-sudo: true - egress-policy: block - allowed-endpoints: > - files.pythonhosted.org:443 - github.com:443 - pypi.org:443 - ruf-repo-cdn.sigstore.dev:443 - upload.pypi.org:443 + egress-policy: audit - name: Checkout Repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/tag-testpypi.yml b/.github/workflows/tag-testpypi.yml index 2e18abf..ed18550 100644 --- a/.github/workflows/tag-testpypi.yml +++ b/.github/workflows/tag-testpypi.yml @@ -51,13 +51,7 @@ jobs: uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 with: disable-sudo: true - egress-policy: block - allowed-endpoints: > - files.pythonhosted.org:443 - github.com:443 - pypi.org:443 - ruf-repo-cdn.sigstore.dev:443 - test.pypi.org:443 + egress-policy: audit - name: Checkout Repository uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.readthedocs.yml b/.readthedocs.yml index 67929a9..5391c9b 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,10 +11,12 @@ sphinx: fail_on_warning: true build: - os: "ubuntu-24.04" + os: "ubuntu-26.04" tools: - python: "mambaforge-23.11" + python: "miniforge3-25.11" jobs: + post_create_environment: + - python -m pip install --group docs pre_build: - sphinx-apidoc -o docs/apidoc --private --module-first src/xdatasets # - sphinx-build -M gettext docs docs/_build @@ -26,5 +28,3 @@ python: install: - method: pip path: . - extra_requirements: - - docs diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..c8b512e --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,35 @@ +# Agents + +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 + +## Setup + +> Add your project's setup commands here (npm install, go build, make, etc.) + +## Testing + +Write tests for new functionality. Run the full suite before submitting. + +## Commits + +- Use clear, descriptive commit messages +- One logical change per commit +- Reference relevant issues when applicable +- Include `Assisted-by: ` trailer on AI-assisted commits + +## Review + +Changes touching more than one module or any security-relevant code require human review. Minor fixes and doc updates follow the standard process. + +--- +*Generated by [aipolicy.1mb.dev](https://aipolicy.1mb.dev) · v1.0* diff --git a/AI_POLICY.md b/AI_POLICY.md new file mode 100644 index 0000000..c4f4cc2 --- /dev/null +++ b/AI_POLICY.md @@ -0,0 +1,58 @@ +# AI Policy + +## Accountability + +You are responsible for every line of code you submit, regardless of how it was produced. If you use AI tools, review and verify all output before committing. + +## AI Tool Usage + +AI tools are permitted. Standard review process applies to all contributions. + +## AI-Generated Code + +AI-generated code must be reviewed by a human maintainer before merging. Keep changes atomic -- you must be able to explain any line on request. + +## Disclosure + +Mark AI involvement in commit messages with a trailer: + +```text +Assisted-by: +``` + +Code changes from less sophisticated phrase-completion tools do not require an AI disclosure. + +## Prohibited Uses + +- Submitting AI output you have not read and understood +- Using AI to generate code that circumvents tests or CI checks +- Feeding reviewer feedback back into AI without understanding it first +- AI-generated PR descriptions -- describe your own work +- AI-generated review comments on other contributors' PRs + +## AI in CI/CD + +AI tools may be used in CI/CD pipelines for code analysis, test generation, and deployment. + +## Training Data + +This project requests that its code not be used for AI model training. We ask that AI tool providers honor this preference. + +## Low Effort Contributions + +AI-generated low-effort contributions are unacceptable; Human and AI contributors must be capable of explaining their changes, responding to review comments, and precisely adapting their contributions as requested. + +## Licensing + +AI-generated contributions must be compatible with this project's license. Contributors must be able to certify their submissions under the project's contribution terms. + +## Enforcement + +Maintainers may close AI-generated PRs that do not meet these standards without detailed feedback. + +## Policy Evolution + +This policy will evolve as tooling and conventions change. Contributions to the policy itself are welcome. + +--- +*Generated by [aipolicy.1mb.dev](https://aipolicy.1mb.dev) · v1.0* diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f3911fe..45f5178 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,7 +5,7 @@ Changelog `Unreleased `_ (latest) ---------------------------------------------------------------- -Contributors: Trevor James Smith (:user:`Zeitsperre`) +Contributors: Trevor James Smith (:user:`Zeitsperre`). Changes ^^^^^^^ @@ -18,6 +18,15 @@ Changes * `pre-commit` has been replaced by `prek`. * `Makefile` now handles some dependency installation logic. * Configuration issues in `tox.toml` have been resolved. +* `xdatasets` now has guidance documents on acceptable usages of AI and the expected methods of AI usage disclosure. See the documentation for more details. +* Updated the cookiecutter template to use the latest commit. (:pull:`300`): + * Adjusted the permissions for some workflows to address security issues. + * Added the new "standard" AI disclosure guidance for code contributions. + * Updated the ReadTheDocs configuration to use newer OS and conda images. + * Modified ``make servedocs`` to use `sphinx-autobuild` (``make livehtml``). + * Added guidance for maintainers on git commit signing and immutable releases. + * Adjusted the source distribution inclusion/exclusion list. + * Set `bump-my-version` to sign tags by default. Fixes ^^^^^ @@ -25,10 +34,10 @@ Fixes .. _changes_0.3.9: -`v0.3.9 `_ ------------------------------------------------------------------------------- +`v0.3.9 `_ (2026-02-19) +--------------------------------------------------------------------------- -Contributors: Juliette Lavoie (:user:`juliettelavoie`), Trevor James Smith (:user:`Zeitsperre`) +Contributors: Juliette Lavoie (:user:`juliettelavoie`), Trevor James Smith (:user:`Zeitsperre`). Changes ^^^^^^^ @@ -57,8 +66,8 @@ Changes .. _changes_0.3.7: -v0.3.7 (2025-02-10) -------------------- +`v0.3.7 `_ (2025-02-10) +--------------------------------------------------------------------------- Contributors: Trevor James Smith (:user:`Zeitsperre`), Gabriel Rondeau-Genesse (:user:`RondeauG`), Sebastien Langlois (:user:`sebastienlanglois`) @@ -92,10 +101,10 @@ Changes .. _changes_0.3.6: -v0.3.6 (2024-07-12) -------------------- +`v0.3.6 `_ (2024-07-12) +--------------------------------------------------------------------------- -Contributors: Trevor James Smith (:user:`Zeitsperre`) +Contributors: Trevor James Smith (:user:`Zeitsperre`). Changes ^^^^^^^ @@ -113,10 +122,10 @@ Changes .. _changes_0.3.5: -v0.3.5 (2024-02-19) -------------------- +`v0.3.5 `_ (2024-02-19) +--------------------------------------------------------------------------- -Contributors: Trevor James Smith (:user:`Zeitsperre`) +Contributors: Trevor James Smith (:user:`Zeitsperre`). Changes ^^^^^^^ @@ -135,10 +144,10 @@ Changes .. _changes_0.3.4: -v0.3.4 (2024-01-31) -------------------- +`v0.3.4 `_ (2024-01-31) +--------------------------------------------------------------------------- -Contributors: Sebastien Langlois (:user:`sebastienlanglois`) +Contributors: Sebastien Langlois (:user:`sebastienlanglois`). Fixes ^^^^^ @@ -146,10 +155,10 @@ Fixes .. _changes_0.3.3: -v0.3.3 (2024-01-11) -------------------- +`v0.3.3 `_ (2024-01-11) +--------------------------------------------------------------------------- -Contributors: Sebastien Langlois (:user:`sebastienlanglois`) +Contributors: Sebastien Langlois (:user:`sebastienlanglois`). Changes ^^^^^^^ @@ -157,10 +166,10 @@ Changes .. _changes_0.3.2: -v0.3.2 (2024-01-10) -------------------- +`v0.3.2 `_ (2024-01-10) +--------------------------------------------------------------------------- -Contributors: Sebastien Langlois (:user:`sebastienlanglois`) +Contributors: Sebastien Langlois (:user:`sebastienlanglois`). Changes ^^^^^^^ @@ -169,10 +178,10 @@ Changes .. _changes_0.3.1: -v0.3.1 (2023-12-01) -------------------- +`v0.3.1 `_ (2023-12-01) +--------------------------------------------------------------------------- -Contributors: Trevor James Smith (:user:`Zeitsperre`) +Contributors: Trevor James Smith (:user:`Zeitsperre`). Fixes ^^^^^ @@ -180,10 +189,10 @@ Fixes .. _changes_0.3.0: -v0.3.0 (2023-11-30) -------------------- +`v0.3.0 `_ (2023-11-30) +--------------------------------------------------------------------------- -Contributors: Trevor James Smith (:user:`Zeitsperre`) +Contributors: Trevor James Smith (:user:`Zeitsperre`). Changes ^^^^^^^ @@ -200,6 +209,6 @@ Changes v0.1.2-alpha (2023-01-13) ------------------------- -Contributors: Sebastien Langlois (:user:`sebastienlanglois`) +Contributors: Sebastien Langlois (:user:`sebastienlanglois`). First release on PyPI. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 62c811f..7411f42 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -193,7 +193,7 @@ Before you submit a pull request, check that it meets these guidelines: #. 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. -#. If you haven't already, ensure that you have read and agreed to the `Developer Certificate of Origin (DCO) `_, and that you have signed your commits using: +#. 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 @@ -201,6 +201,75 @@ Before you submit a pull request, check that it meets these guidelines: This will add a `Signed-off-by:` line to your commit message, which indicates that you agree to the DCO. +AI Assistance Notice +-------------------- + +.. note:: + + The following information has been adapted from AI assistance usage policies developed by `Avocado `_ and `ghostty `_ + with suggestions from software developers and maintainers at Ouranos Inc. + +What is AI Assistance ? +~~~~~~~~~~~~~~~~~~~~~~~ + +Within the context of xdatasets development, AI assistance constitutess any code, code snippets, configurations, documentation, or other programmatic assets produced, suggested, or significantly modified by an artificial intelligence model, tool, or service. + +AI assistance can also include code that is heavily adapted from or influenced by outputs from prompts made to generative artificial intelligence models, tools, or services. + +Usage Disclosure +~~~~~~~~~~~~~~~~ + +If you are using any kind of AI assistance while contributing to xdatasets, **this must be disclosed in the pull request**, along with the extent to which AI assistance was used (e.g. documentation, code generation, review comments). +Using AI to help draft responses is allowed only if the contributor meaningfully reviews, edits, and takes full responsibility for the content. +Submitting AI-generated replies without human verification or understanding is not permitted. +Misrepresenting AI-generated content as purely human-authored is considered a violation of the contribution guidelines. + +Some example disclosures: + +.. admonition:: Pull Request Description + + ### Other information: + + * This PR was primarily written using a combination of OpenClaw (Kimi K2.5) and ChatGPT (GPT-o4-mini). After using these tools, I reviewed the content. + + + + * This PR was primarily written by me with small code snippets copy-pasted from chats with Claude (Sonnet 4.6). + + + + * I asked GitHub Copilot to clean up and improve code I had written. I then reviewed the final product. + +As a small exception, trivial tab-completion doesn't need to be disclosed, so long as it is limited to single keywords or short phrases. + +For commits originating exclusively from AI, we also ask that their commits are signed with "Assisted-by: " disclosure (this demand is repeated in `AGENTS.md`): + +.. admonition:: Commit Message + + Added new method that implements the ReallyCoolNewFeature algorithm. + + Assisted-by: Claude Opus 4.5 + +Failing to disclose the use of artificial intelligence models, tools, or services is disrespectful to the developers and maintainers of open source software projects. +We ask that contributors are forthcoming with this information so that the effort and scrutiny applied to Pull Request reviews can be adjusted accordingly. + +Code Review +~~~~~~~~~~~ + +All AI-assisted code contributions should be reviewed by the contributor before opening a Pull Request, except for minor or marginal changes, which may not require that step. +All contributions should still be reviewed by at least one human reviewer before approval and merging into the `main` branch. + +Low Effort Contributions +~~~~~~~~~~~~~~~~~~~~~~~~ + +AI-generated low-effort contributions are unacceptable; Human contributors must be capable of explaining their changes, responding to review comments, and precisely adapting their contributions as requested. + +Disclaimer +~~~~~~~~~~ + +The xdatasets maintainers reserve the right to reject Pull Requests and contributions for many different reasons (functionality out-of-scope, code quality issues, non-adherence to code of conduct, etc.) +and this extends to code that has not been adequately disclosed as being assisted by artificial intelligence models, tools, or services. + Tips ---- diff --git a/Makefile b/Makefile index 964c3f6..7bffd2f 100644 --- a/Makefile +++ b/Makefile @@ -115,7 +115,7 @@ ifndef READTHEDOCS endif servedocs: autodoc ## compile the docs while watching for changes - watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D . + $(MAKE) -C docs livehtml dist: clean ## builds source and wheel package python -m flit build diff --git a/docs/Makefile b/docs/Makefile index d88ec4c..b3b966b 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -18,3 +18,6 @@ help: # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +livehtml: + sphinx-autobuild --port 54345 --open-browser --delay 3 --re-ignore "$(BUILDDIR)|apidoc|Makefile|__pycache__" "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/index.rst b/docs/index.rst index 34bd574..07d5ead 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,8 +1,7 @@ Xdatasets documentation ======================= -**Useful links**: Coming Soon! - +**xdatasets**: Easy access to Earth observation datasets with xarray. The ``xdatasets`` library enables users to effortlessly access a vast collection of large-scale earth observation datasets that are compatible with `xarray` formats all through a single query. @@ -10,9 +9,18 @@ The library adopts an opinionated approach to data querying and caters to the sp The genesis of this project can be traced back to a crucial requirement of effortlessly sharing standard earth observation data sources during inter-organizational collaboration. Although the advent of cloud computing has streamlined the data centralization process, it cannot be denied that there is still a considerable learning curve involved in accessing these datasets and leveraging them for practical engineering computations. +Need help? +^^^^^^^^^^ + +* If you encounter any errors or problems with `xdatasets`, please let us know! Open an issue at the `GitHub main repository `_. +* To be aware of changes in `xdatasets`, feel free to “watch” the GitHub repository. You can customize the watch function to notify you of new releases or more. + +Navigation +========== + .. toctree:: :maxdepth: 2 - :caption: Contents: + :caption: Table of Contents :hidden: readme diff --git a/docs/releasing.rst b/docs/releasing.rst index f91638e..5c93969 100644 --- a/docs/releasing.rst +++ b/docs/releasing.rst @@ -11,6 +11,13 @@ A reminder for the **maintainers** on how to deploy. This section is only releva It is important to be aware that any changes to files found within the ``src/xdatasets`` folder (with the exception of ``src/xdatasets/__init__.py``) will trigger the ``bump-version.yml`` workflow. Be careful not to commit changes to files in this folder when preparing a new release. +.. note:: + + Before beginning, it is a good idea to practice `commit signing`_ at the very least for _tags_ and _releases_. This is a method of cryptographically signing your work to ensure that packages can verifiably be traced to a known and trusted developer. + Once a GPG key has been `created`_ and `added`_ to your GitHub profile, you can enable GPG signing for all commits by launching `$ git config --local/--global commit.gpgsign true` within a shell running in your local clone (or anywhere if `--global`). + +For creating tags and releases, we **strongly recommend** enabling the "release immutability" option in the repository settings. This prevents _tags_ and _releases_ from being modified of GitHub after they have been published. + #. Create a new branch from `main` (e.g. `release-0.2.0`). #. Update the `CHANGELOG.rst` file to change the `Unreleased` section to the current date. #. Bump the version in your branch to the next version (e.g. `v0.1.0 -> v0.2.0`): @@ -26,16 +33,20 @@ A reminder for the **maintainers** on how to deploy. This section is only releva .. code-block:: console - git tag v0.2.0 + git tag -s/--sign "v0.2.0" -m "Release v0.2.0" git push --tags This will trigger a GitHub workflow to build the package and upload it to TestPyPI. At the same time, the GitHub workflow will create a draft release on GitHub. Assuming that the workflow passes, the final release can then be published on GitHub by finalizing the draft release. -#. Once the release is published, the `publish-pypi.yml` workflow will go into an `awaiting approval` mode on Github Actions. Only authorized users may approve this workflow (notifications will be sent) to trigger the upload to PyPI. +#. Once the release is **published**, the `publish-pypi.yml` workflow will go into an `awaiting approval` mode on Github Actions. Only authorized users may approve this workflow (notifications will be sent) to trigger the upload to PyPI. .. warning:: - Uploads to PyPI can **never** be overwritten. If you make a mistake, you will need to bump the version and re-release the package. If the package uploaded to PyPI is broken, you should modify the GitHub release to mark the package as broken, as well as yank the package (mark the version "broken") on PyPI. + Uploads to PyPI (and releases on GitHub if using release immutability) can **never** be overwritten. If you make a mistake, you will need to bump the version and re-release the package. If the package uploaded to GitHub and PyPI is broken, you should modify the GitHub release to mark the package as broken, as well as yank the package (mark the version "broken") on PyPI. + +.. _`commit signing`: https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work +.. _created: https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key +.. _added: https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account Packaging --------- diff --git a/environment-docs.yml b/environment-docs.yml index c033b15..b4a1584 100644 --- a/environment-docs.yml +++ b/environment-docs.yml @@ -41,6 +41,7 @@ dependencies: - panel - pooch >=1.8.0 - sphinx >=8.2 + - sphinx-autobuild >=2024.4.16 - sphinx-codeautolink >=0.16.2 - sphinx-copybutton >=0.5.2 - sphinx-intl >=2.2.0 diff --git a/pyproject.toml b/pyproject.toml index bb0f145..3ef282e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,7 @@ docs = [ "nc-time-axis", "panel", "sphinx >=8.2.0", + "sphinx-autobuild >=2024.4.16", "sphinx-codeautolink >=0.16.2", "sphinx-copybutton >=0.5.2", "sphinx-intl", @@ -137,6 +138,7 @@ commit = true commit_args = "--no-verify" tag = false tag_name = "v{new_version}" +sign_tags = true allow_dirty = true parse = "(?P\\d+)\\.(?P\\d+)\\.(?P\\d+)(\\-(?P[a-z]+)(\\.(?P\\d+)))?" serialize = [ @@ -168,8 +170,8 @@ replace = """\ .. _changes_{new_version}: -`v{new_version} `_ ------------------------------------------------------------------------------- +`v{new_version} `_ ({now:%Y-%m-%d}) +----------------------------------------------------------------------------- """ [[tool.bumpversion.files]] @@ -226,6 +228,8 @@ include = [ ".zenodo.json", "AUTHORS.rst", "CHANGELOG.rst", + "CITATION.cff", + "CODE_OF_CONDUCT.md", "CONTRIBUTING.rst", "LICENSE", "Makefile", @@ -233,13 +237,12 @@ include = [ "docs/notebooks/*.ipynb", "environment-dev.yml", "environment-docs.yml", - "docs/_static/_images/*.gif", - "docs/_static/_images/*.jpg", - "docs/_static/_images/*.png", - "docs/_static/_images/*.rst", - "docs/Makefile", + "docs/_static/*", + "docs/*.rst", "docs/conf.py", "docs/make.bat", + "docs/Makefile", + "pyproject.toml", "src/xdatasets", "tests/*.py", "tox.toml" @@ -247,15 +250,16 @@ include = [ exclude = [ "*.py[co]", "__pycache__", - ".coveralls.yml", ".cruft.json", ".editorconfig", ".flake8", + ".github", ".gitignore", ".pre-commit-config.yaml", ".readthedocs.yml", ".yamllint.yaml", ".zizmor.yml", + "CI/requirements_ci.*", "docs/_*", "docs/apidoc/modules.rst", "docs/apidoc/xdatasets*.rst",