diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..1f5ea789 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,40 @@ +# CODEOWNERS file for automatic PR review assignment +# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners + +# Default owners +* @niccokunzmann @stevepiercy + +# Documentation, except docstrings in `src` +*.md @stevepiercy @abe-101 +*.rst @stevepiercy @abe-101 +/.readthedocs.yml @stevepiercy @niccokunzmann @abe-101 +/.vale.ini @stevepiercy @abe-101 +/CONTRIBUTING.md @niccokunzmann @stevepiercy @abe-101 +/docs/ @stevepiercy @abe-101 +/Makefile @stevepiercy @abe-101 +/styles @stevepiercy @abe-101 + +# Core calendar logic +/src/ @niccokunzmann @SashankBhamidi @stevepiercy @angatha + +# Tests +/src/icalendar/tests/ @niccokunzmann @SashankBhamidi + +# Fuzzing +/src/icalendar/fuzzing/ @ennamarie19 @niccokunzmann @SashankBhamidi + +# CI and infrastructure +/.coveragerc @niccokunzmann +/.github/ @niccokunzmann @SashankBhamidi @stevepiercy +/.pre-commit-config.yaml @niccokunzmann @SashankBhamidi @stevepiercy +/bootstrap.py @niccokunzmann @stevepiercy +/buildout.cfg @niccokunzmann @stevepiercy +/pyproject.toml @niccokunzmann @stevepiercy +/tox.ini @niccokunzmann @stevepiercy + +# Security +/SECURITY.md @niccokunzmann @stevepiercy @abe-101 @angatha + +# Release stuff +/CHANGES.rst @niccokunzmann @stevepiercy +/MANIFEST.in @niccokunzmann diff --git a/CHANGES.rst b/CHANGES.rst index 82dd1961..c25f586b 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -70,7 +70,8 @@ Minor changes: - Document ``icalendar.version`` module. - Use ``CONTRIBUTING.md`` in favour of ``.rst`` file. - Add type hints to ``icalendar.tools`` module. -- Fix more examples link failed in ``README.md`` by renewing its link. See `Issue 958 `_. +- Fix more examples link in ``README.md``. See `Issue 958 `_. +- Add ``CODEOWNERS`` file for automatic pull request review assignment. See `Issue 945 `_. Breaking changes: diff --git a/docs/contribute/maintenance.rst b/docs/contribute/maintenance.rst index 8f191a8b..81d1fd9a 100644 --- a/docs/contribute/maintenance.rst +++ b/docs/contribute/maintenance.rst @@ -15,17 +15,16 @@ Currently the maintainers are the following people. Maintainers need the following permissions. -- ``Admin`` access to the `repository `_. +``Admin`` access to the `repository `_. These can be enabled by a current maintainer or a GitHub organization administrator in the `settings `_. -- ``Maintainer`` or ``Owner`` access to the `PyPI project `_. +``Maintainer`` or ``Owner`` access to the `PyPI project `_. Each owner and maintainer needs a PyPI account. All PyPI accounts require two-factor authentication (2FA) enabled. Owners can invite either new owners or maintainers in the `collaboration Section `_ on PyPI. -- ``Maintainer`` access to the `Read the Docs project `_. +``Maintainer`` access to the `Read the Docs project `_. Existing maintainers can invite another maintainer through the `Maintainers `_ page. -- ``Environments/Configure PyPI`` access for GitHub Workflows to grant new releases from tags. - Organization owners and repository administrators can grant this access in `Settings → Environments → PyPI `_ - by adding the GitHub username to the list of :guilabel:`Required Reviewers`. +``Environments/Configure PyPI`` access for GitHub Workflows to grant new releases from tags. + Organization owners and repository administrators can grant this access in :menuselection:`Settings --> Environments --> PyPI`, or at https://github.com/collective/icalendar/settings/environments/674266024/edit, by adding their GitHub username to the list of :guilabel:`Required Reviewers`. Collaborators @@ -34,21 +33,36 @@ Collaborators Collaborators have write access to the repository. As a collaborator, you can -- merge pull requests, and -- initiate a new release. +- merge pull requests, +- initiate a new release, and +- become a :ref:`code-owner`. The maintainers of icalendar want to have as many knowledgeable people with write access taking responsibility as possible for these reasons: -- a constant flow of fixes and new features -- better code review -- lower bus factor and backup -- future maintainers +- a constant flow of fixes and new features +- better code review +- lower bus factor and backup +- future maintainers Nobody should merge their own pull requests. If you like to review or merge pull requests of other people and you have shown that you know how to contribute, you can ask to become a collaborator. A maintainer may ask if you would like to become one. +.. _code-owner: + +Code owner +---------- + +A code owner is a type of collaborator or maintainer who is responsible for a specific part of the code. +Code owners are automatically requested for review when someone opens a pull request that modifies code that they own. + +You may ask, or be invited, to become a code owner as part of becoming a collaborator or maintainer. +When doing so, you or the inviter may submit a pull request to update the :file:`.github/CODEOWNERS` file. + +.. seealso:: `About code owners `_ + + New releases ------------ diff --git a/docs/styles/config/vocabularies/Base/accept.txt b/docs/styles/config/vocabularies/Base/accept.txt index e69de29b..6e93ba3f 100644 --- a/docs/styles/config/vocabularies/Base/accept.txt +++ b/docs/styles/config/vocabularies/Base/accept.txt @@ -0,0 +1 @@ +inviter