Skip to content

Commit 64f51f7

Browse files
committed
Add: ci and pr's content
1 parent 0eb4410 commit 64f51f7

File tree

3 files changed

+80
-61
lines changed

3 files changed

+80
-61
lines changed

community/github/continuous-integration.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ free from errors or issues related to the specific checks that have passed.
2222

2323
* **Red X's**: These indicate that the code has failed the associated CI checks. This means there are issues that need to be addressed before the code can be merged. The issues could be related to code style, formatting, tests, or other criteria specified by the CI configuration.
2424

25-
#### If a CI check is red:
25+
#### If a CI check is red
2626

2727
1. **Click on "Details"** next to the failed check to get more information about the failure.
2828
2. **Review the logs or output** provided to understand what went wrong.
@@ -39,7 +39,6 @@ If you don't know who to ping, no worries. Someone from the pyOpenSci organizati
3939
Generally we require a single passing approval in order to merge a pull request. However, in some cases, if you are a pyOpenSci staff member or community member with admin / write access, it could be the case that you need to merge something immediately (i.e. fixing a small piece of breaking code, a spelling error, or adding a new piece of content that has already been agreed upon).
4040
:::
4141

42-
4342
## CI and outside contributors
4443

4544
If someone from outside of the pyOpenSci organization submits a pull request, then someone within the organization needs to approve and run CI. If you
@@ -48,14 +47,15 @@ have those super powers, please go ahead and allow CI to run for new contributor
4847
Next to each CI step that was run, there is a details button. If you click on that link, it will give you more information about what has run / not run as expected in the build.
4948

5049
## Website CI checks
50+
5151
All of our website repositories have several CI builds including:
5252

5353
1. A link checker
5454
2. `htmlproofer`, which checks both links and alt tags, as well as images
5555
3. a CI build that shows you what the rendered site looks like when built online. Currently we are using [CircleCI](https://circleci.com/) for a live rendered build, as CircleCI allows for in-browser website build checks. GitHub requires you to download, unzip and view and archive with the build site locally.
5656

57-
5857
(pre-commit-ci)=
58+
5959
## About the Pre-Commit CI Bot
6060

6161
The [Pre-commit CI bot](https://pre-commit.ci/) is a continuous integration service that automatically
@@ -100,7 +100,7 @@ To setup the bot in a new repository:
100100

101101
1. **Enable pre-commit.ci** on your repository through the
102102
[pre-commit.ci website](https://pre-commit.ci/).
103-
2. The bot will automatically run checks and apply fixes on pull requests.
103+
2. The pre-commit.ci bot will automatically run checks and apply fixes on pull requests.
104104
3. Review the bot's output and ensure all checks pass before merging your code.
105105

106106
This approach ensures that all contributions meet our pyOpenSci code and

community/github/our-repositories.md

Lines changed: 63 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# pyOpenSci GitHub Repositories
1+
# pyOpenSci GitHub repositories
22

33
:::{todo}
44
Add repositories from the pyOpenSci organization.
@@ -7,96 +7,114 @@ Add repositories from the pyOpenSci organization.
77
pyOpenSci manages multiple GitHub repositories to support various community
88
activities. Below is a description of each repository.
99

10-
### [Software-review Repository](https://www.pyopensci.org/software-peer-review/)
10+
### [Software-review repository](https://www.pyopensci.org/software-peer-review/)
1111

1212
The software-review repository is where community package submissions are
13-
peer-reviewed. All submissions are made through GitHub Issues. [Learn more about
14-
our peer review process here.](https://www.pyopensci.org/software-peer-review/)
13+
peer-reviewed. All submissions are made through GitHub Issues. [Learn more
14+
about our peer review process here.](https://www.pyopensci.org/software-peer-review/)
1515

1616
:::{important}
1717
Important: If a pyOpenSci core member identifies an issue with the review
18-
submission template, consult both the editorial team and core team before making
19-
any changes. This template's data are processed by a Python workflow, and even
20-
small modifications could disrupt the language processing.
18+
submission template, consult both the editorial team and core team before
19+
making any changes. This template's data are processed by a Python workflow,
20+
and even small modifications could disrupt the language processing.
2121
:::
2222

23-
## Software-peer-review Guidebook Repository
23+
## Software-peer-review guidebook repository
2424

25-
This repository hosts our [software peer review guidebook](https://www.pyopensci.org/software-peer-review/),
26-
which documents the processes and guidelines for authors, editors, the Editor in
27-
Chief, and the peer review triage team as they manage our open peer review process. It also details our peer review policies,
28-
partnerships, and the templates used in the review process.
25+
This repository hosts our [software peer review
26+
guidebook](https://www.pyopensci.org/software-peer-review/), which documents
27+
the processes and guidelines for authors, editors, the Editor in Chief, and the
28+
peer review triage team as they manage our open peer review process. It also
29+
details our peer review policies, partnerships, and the templates used in the
30+
review process.
2931

30-
## Python-package-guide Repository
32+
## Python-package-guide repository
3133

32-
The [python-package-guide repository](https://www.pyopensci.org/python-package-guide/)
33-
contains our community-developed guidelines and tutorials on Python packaging.
34-
These resources are beginner-friendly and reflect Python packaging best practices.
34+
The [python-package-guide
35+
repository](https://www.pyopensci.org/python-package-guide/) contains our
36+
community-developed guidelines and tutorials on Python packaging. These
37+
resources are beginner-friendly and reflect Python packaging best practices.
3538

36-
## [pyosMeta Repository](https://github.com/pyOpenSci/pyosMeta)
39+
## [pyosMeta repository](https://github.com/pyOpenSci/pyosMeta)
3740

38-
The pyosMeta repository contains a Python package published on PyPI that we use to track our
39-
package review and contributor data. This data is used in a GitHub action to
40-
update our website.
41+
The pyosMeta repository contains a Python package published on PyPI that we use
42+
to track our package review and contributor data. This data is used in a GitHub
43+
action to update our website.
4144

4245
:::{todo}
4346
Add more information about the contributor data workflow ...
4447
:::
4548

46-
## [pyopensci.github.io Repository](https://github.com/pyOpenSci/pyopensci.github.io)
49+
## [pyopensci.github.io repository](https://github.com/pyOpenSci/pyopensci.github.io)
4750

48-
This repository contains code and content that builds and publishes our pyOpenSci website. The website, [pyOpenSci](https://www.pyopensci.org/), is hosted on GitHub and
49-
uses the [Jekyll Minimal Mistakes](https://mmistakes.github.io/minimal-mistakes/) theme. The Python packages page, contributor page and peer review team page are all updated automagically using a
50-
GitHub action workflow that is supported by the pyosMeta Python package discussed above. The workflow runs every other week but can be triggered manually as a **workflow
51-
dispatch**.
51+
This repository contains code and content that builds and publishes our
52+
pyOpenSci website. The website, [pyOpenSci](https://www.pyopensci.org/), is
53+
hosted on GitHub and uses the [Jekyll Minimal
54+
Mistakes](https://mmistakes.github.io/minimal-mistakes/) theme. The Python
55+
packages page, contributor page, and peer review team page are all updated
56+
automatically using a GitHub action workflow that is supported by the pyosMeta
57+
Python package discussed above. The workflow runs every other week but can be
58+
triggered manually as a **workflow dispatch**.
5259

5360
### Critical CI workflows in this repository
5461

55-
The [contributor workflow action](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/.github/workflows/update-contribs-reviews.yml) is a custom GitHub
56-
action that is used to update the following website pages:
62+
The [contributor workflow
63+
action](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/.github/workflows/update-contribs-reviews.yml)
64+
is a custom GitHub action that is used to update the following website pages:
5765

5866
* contributor page
5967
* package listing page
60-
* editorial, advisory council and executive council listing
68+
* editorial, advisory council, and executive council listing
6169

62-
It runs as a cron job every other week but also can be run manually as a workflow
63-
dispatch. If you need to update our package listing or contributor list on
64-
the fly, please run this action.
70+
It runs as a cron job every other week but also can be run manually as a
71+
workflow dispatch. If you need to update our package listing or contributor
72+
list on the fly, please run this action.
6573

6674
The action will:
6775

68-
1. parse through all of our accepted pyOpenSci packages
69-
2. collect package names, authors, reviewers and editors
70-
3. collect metadata for the packages authors reviewers and editors using the GitHub (REST) API
76+
1. Parse through all of our accepted pyOpenSci packages.
77+
2. Collect package names, authors, reviewers, and editors.
78+
3. Collect metadata for the package authors, reviewers, and editors using the
79+
GitHub (REST) API.
7180
4. Create 2 output YAML files discussed below.
7281

73-
The YAML output files and then used to populate content on the website.
82+
The YAML output files are then used to populate content on the website.
7483

7584
### Metadata stored in this repository
7685

77-
1. **Packages.yml**: Updates the [Python Packages page](https://www.pyopensci.org/python-packages.html)
78-
by parsing reviews from software-review repository issues.
79-
2. **Contributors.yml**: Updates the [Our Community page](https://www.pyopensci.org/our-community/index.html)
80-
by parsing data from all organization repositories.
86+
1. **Packages.yml**: Updates the [Python Packages
87+
page](https://www.pyopensci.org/python-packages.html) by parsing reviews
88+
from software-review repository issues.
89+
2. **Contributors.yml**: Updates the [Our Community
90+
page](https://www.pyopensci.org/our-community/index.html) by parsing data
91+
from all organization repositories.
8192

8293
:::{todo}
8394
Update the website contributors guide with general CI and specific Jekyll
8495
information.
8596
:::
8697

87-
## [pyOpenSci Sphinx Theme](https://github.com/pyOpenSci/pyos-sphinx-theme)
98+
## [pyOpenSci Sphinx theme](https://github.com/pyOpenSci/pyos-sphinx-theme)
8899

89100
**Platform:** Sphinx book template that builds on top of the pydata_sphinx_theme
90101

91-
All of our pyOpenSci Sphinx books (handbook, packaging guide, software review guide ) have been customized to match our pyOpenSci branding. This repo contains the start of a Sphinx theme that will incorporate all of our branding, so we do not have to manually apply the branding and update it individually in each repo. Instead, we can update branding in the theme and it will be applied across all of our repositories that use the theme.
102+
All of our pyOpenSci Sphinx books (handbook, packaging guide, software review
103+
guide) have been customized to match our pyOpenSci branding. This repo contains
104+
the start of a Sphinx theme that will incorporate all of our branding, so we do
105+
not have to manually apply the branding and update it individually in each repo.
106+
Instead, we can update branding in the theme, and it will be applied across all
107+
of our repositories that use the theme.
92108

93-
Creating a theme was inspired by [Chris Holdgraf's](https://chrisholdgraf.com/) 2i2c Sphinx theme.
109+
Creating a theme was inspired by the
110+
[2i2c Sphinx theme](https://sphinx-2i2c-theme.readthedocs.io/en/latest/).
94111

95-
## [Handbook Repository](https://github.com/pyOpenSci/handbook)
112+
## [Handbook repository](https://github.com/pyOpenSci/handbook)
96113

97-
**Platform:** Sphinx book running the pydata_sphinx_theme
114+
**Platform:** Sphinx book running the `pydata_sphinx_theme`
98115

99-
This is where we store our organization governance, code of conduct and processes around how we operate as an organization.
116+
This is where we store our organization governance, code of conduct, and
117+
processes around how we operate as an organization.
100118

101119
## [pyosPackage repository](https://github.com/pyOpenSci/pyosPackage)
102120

community/github/pull-requests.md

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ New pull requests should:
99
* be created from a fork rather than the pyOpenSci owned parent repository.
1010
* never be submitted from the `main` branch of your fork.
1111

12-
Authors of new pull requests should, whenever possible, do their best to create clean pull requests.
12+
Authors of new pull requests should, whenever possible, do their best to create clean pull requests.
1313

1414
A clean pull request:
1515

@@ -21,9 +21,9 @@ A clean pull request:
2121
Review your own pull request before asking someone else to review it for you. You might be surprised that you notice things in the pull request that you didn't notice when working on the content locally.
2222
:::
2323

24-
### Pull request content
24+
### Pull request content
2525

26-
Below are some guidelines for pull request content. Clean pull requests lead to simpler reviews & faster merging!
26+
Below are some guidelines for pull request content. Clean pull requests lead to simpler reviews & faster merging!
2727

2828
1. **Keep It Small**: Aim for one logical change per pull request to simplify review.
2929
1. **Create a descriptive PR Title and Summary**: Clearly state what the PR achieves and why, including any related issue numbers or discussions.
@@ -39,8 +39,9 @@ Below are some guidelines for pull request content. Clean pull requests lead to
3939
1. **Keep your branch updated**: Regularly rebase your fork from the main branch (if possible) to avoid / clean up any merge conflicts and to keep your PR up to date.
4040

4141
:::{info}
42+
4243
* [tips for better pull requests](https://opensource.com/article/18/6/anatomy-perfect-pull-request)
43-
* pyOpenSci has also enabled an "update branch" feature in the pull request, which will update your branch to be in sync with main. In most cases, this creates a merge commit rather than a rebase.
44+
* pyOpenSci has also enabled an "update branch" feature in the pull request, which will update your branch to be in sync with main. In most cases, this creates a merge commit rather than a rebase.
4445
:::
4546

4647
### Regular vs New Contributors
@@ -68,7 +69,6 @@ The above process is often implemented on a case-by-case basis depending on the
6869
:::{todo}
6970
Did we address these questions above??
7071

71-
7272
What are the expectations for an external contributor?
7373
What should they have done locally?
7474
Do we expect someone to have done all the wrangling with Ruby and Jekyll?
@@ -102,14 +102,14 @@ specified style and format rules before it gets committed to the repository.
102102
We generally use the following hooks:
103103

104104
* **Autoformat**: Makes sure files end in a newline and only a newline.
105-
- `end-of-file-fixer`
105+
* `end-of-file-fixer`
106106
* **Lint**: Check for files with names that would conflict on a
107107
case-insensitive filesystem like MacOS HFS+ or Windows FAT.
108-
- `check-case-conflict`
108+
* `check-case-conflict`
109109
* **Whitespace**: Clean up trailing white space at the end of individual lines.
110-
- `trailing-whitespace`
110+
* `trailing-whitespace`
111111
* **Spelling**: Check for spelling issues within the repository.
112-
- `codespell`
112+
* `codespell`
113113

114114
Setting up pre-commit locally is optional because we have the pre-commit bot
115115
setup in our CI workflows. However, if you are a pyOpenSci staff member regularly contributes, we suggest that you set it up locally in our repos to ensure
@@ -124,17 +124,18 @@ To set up pre-commit locally, follow these steps:
124124
```bash
125125
pip install pre-commit
126126
```
127+
127128
2. From the root of the pyOpenSci repository that you wish to run pre-commit
128129
hooks on, run
129130

130131
```bash
131132
pre-commit install
132133
```
134+
133135
This will install all of the hooks that pyOpenSci has setup for that repository.
134136
Most often there is a spell checker, and several markdown file formatters, which
135137
will remove excess white space.
136138

137-
138139
3. To run pre-commit on all files in the repository -
139140

140141
```bash
@@ -174,6 +175,7 @@ contributors across all of our GitHub repositories. Contributor information
174175
is then published on [our website](https://www.pyopensci.org/our-community/index.html#pyopensci-community-contributors).
175176

176177
### Who we acknowledge
178+
177179
pyOpenSci is liberal in acknowledging all contributions, regardless of their size. When
178180
someone new submits an issue or PR, add them as a contributor to the repo using
179181
the bot.
@@ -193,18 +195,17 @@ When you add a user, the bot will open a pull request that can be squashed
193195
and merged. Once merged, their profile image and name will appear in the
194196
README file of that repository.
195197

196-
197198
pyOpenSci then has an automated build that will parse contributors across all of
198199
our repos, adding them to
199200
the contributor list and noting the type(s) of contributions that they have made
200201
(e.g., packaging guide, peer review guide).
201202

202203
:::{todo}
204+
203205
## GitHub & CI
204206

205207
* CI (Continuous integration) will be run on each new commit added to all of our public repositories (that have content).
206208

207-
208209
### Permissions to run CI
209210

210211
In general, things are setup so CI doesn’t run automagically for new contributors. Rather, someone with triage rights will need to approve the workflow to run by hitting the approve and run button that will appear (see image below). We have things set up this way to avoid spam PRs and commits that will abuse our CI use. We could potentially adjust in the future, but also can adjust by allowing more people with “access levels” that can approve CI.

0 commit comments

Comments
 (0)