-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement Phase 1 maintenance on the repo's root directory #79
Merged
Merged
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
b5370b3
Add license to repo root and drop the file suffix
willingc a9ca54b
Add a placeholder for CHANGELOG with a title and badge
willingc 0661f4f
Simplify readme by splitting content to a contributing file. Add badg…
willingc 022adc8
Remove unused README and License in src directory
willingc e745e00
Add code of conduct file at repo root and update README to link to py…
willingc c4b886e
Restore auto generated text in readme
willingc c0ea95f
Fix end of file
willingc 16c5e9d
Fix codacy style suggestions
willingc 5b25d00
Fix trailing whitespace
willingc 1708279
Lint with remark in vscode
willingc File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# pyosmeta Changelog | ||
|
||
[](https://pypi.org/project/pyosmeta/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Code of Conduct | ||
|
||
Everyone interacting in the pyOpenSci project's codebases, issue trackers, chat rooms, and communication venues is | ||
expected to follow the [pyOpenSci Code of Conduct](https://www.pyopensci.org/governance/CODE_OF_CONDUCT.html). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,195 @@ | ||||||
# Contributing | ||||||
|
||||||
To run `update-reviewers` you will need to run both `update-reviews` and `update-contributors` first to create the required input `.pickle` files. | ||||||
|
||||||
The scripts run as follows: | ||||||
|
||||||
## update-contributors script | ||||||
|
||||||
To run this script, you can call the following at the command line: | ||||||
|
||||||
`update-contributors` | ||||||
|
||||||
This script parses data from all-contributors bot `.json` | ||||||
files in the following repos: | ||||||
|
||||||
* [software-submission repo](https://github.com/pyOpenSci/software-submission) where peer review happens | ||||||
* [python-package-guide repo](https://github.com/pyOpenSci/python-package-guide) | ||||||
* [peer review guide repo](https://github.com/pyOpenSci/software-peer-review) | ||||||
* [pyopensci.github.io (website) repo](https://github.com/pyOpenSci/pyopensci.github.io) | ||||||
* [update-package-meta repo](https://github.com/pyOpenSci/update-web-metadata) *(this repo)* | ||||||
|
||||||
Running this script: | ||||||
|
||||||
1. Parses through all of the all-contributors bot `.json` files across our pyOpenSci repos to gather contributors to | ||||||
our organization. This allows us to [acknowledge contributors on our website](https://www.pyopensci.org/our-community/#pyopensci-community-contributors) | ||||||
who are not always making explicit code contributions (thus might not have commits). These contributors are | ||||||
reviewing guidebooks, participating in peer review, and performing other important tasks that are critical to our | ||||||
pyOpenSci mission. We acknowledge all contributions at pyOpenSci regardless of volume or size. | ||||||
2. Updates the existing [contributors.yml](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/_data/contributors.yml) | ||||||
file found in our website repo with new contributors and the contributor role (package guides, code workflows, peer review, etc). | ||||||
If you run the script using `--update update_all`, this script will also use the GitHub api to update the users metadata from their GitHub profile. | ||||||
|
||||||
## update-reviews script | ||||||
|
||||||
To run this script, you can call the following at the command line: | ||||||
|
||||||
`update-reviews` | ||||||
|
||||||
This script parses through our (*accepted*) review issues to find packages that have been accepted. It then grabs each | ||||||
reviews editor, reviewers and package authors / maintainers. This information allows us to | ||||||
|
||||||
1. Update a contributor's peer review metadata in the contributors.yml file in the third script. | ||||||
2. Update the pyOpenSci website's package listing with the package's DOI, documentation URL. | ||||||
3. Update the package's stats including stars, contributors, etc. using the GitHub API | ||||||
|
||||||
## process\_reviews.py script | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
To run this script, you can call the following at the command line: | ||||||
|
||||||
`update-review-teams` | ||||||
|
||||||
This final script is a bridge between the first it uses pickle files outputted from the | ||||||
first two scripts to update each contributors peer review contributions including | ||||||
|
||||||
1. packages submitted or reviewed | ||||||
2. packages in which the contributor served as editors | ||||||
3. contributor types associated with peer review including: | ||||||
|
||||||
* peer-review | ||||||
* package-maintainer | ||||||
* package-reviewer | ||||||
* package-editor | ||||||
|
||||||
These general contributor types are used to drive our | ||||||
[website's contributor search and filter functionality that you can see here.](https://www.pyopensci.org/our-community/index.html#pyopensci-community-contributors) | ||||||
|
||||||
## Local setup | ||||||
|
||||||
1. Create a local environment and activate it. If you are using conda: | ||||||
|
||||||
```bash | ||||||
mamba create -n pyos-meta python=3.10 | ||||||
mamba activate pyos-meta | ||||||
``` | ||||||
|
||||||
2. Install the package in editable mode and associated development dependencies: | ||||||
|
||||||
``` | ||||||
pip install -e ".[dev]" | ||||||
``` | ||||||
|
||||||
### Setup token to authenticate with the GitHub API | ||||||
|
||||||
To run this you need to [create a TOKEN that can be used to access the GitHub | ||||||
API.](https://docs.github.com/en/rest/guides/getting-started-with-the-rest-api?apiVersion=2022-11-28#about-tokens) | ||||||
|
||||||
After obtaining a token; | ||||||
|
||||||
1. Duplicate the `.env-default` file and rename the copy to `.env` | ||||||
2. Assign your token to the `GITHUB_TOKEN` variable in the `.env` file. | ||||||
|
||||||
## How to run each script | ||||||
|
||||||
Each script is available through the command line through entry points specified in our `pyproject.toml` file. | ||||||
|
||||||
## update-contributors script | ||||||
|
||||||
To run: | ||||||
|
||||||
`update-contributors` | ||||||
`update-contributors --update update_all` | ||||||
|
||||||
The `update-contributors` script does the following: | ||||||
|
||||||
1. It grabs the `all-contribs.json` files from each repository and turns that json data into a dictionary of all unique | ||||||
contributors across repos. Repos include: | ||||||
* peer review guide | ||||||
* packaging guide | ||||||
* website | ||||||
* software-review | ||||||
* update-package-meta (this repo) | ||||||
2. It then: | ||||||
|
||||||
If you use the `--update update_all` flag, it will: | ||||||
|
||||||
* Update contrib profile information including name using whatever information is available their public github | ||||||
account for website, location, organization, twitter, etc). | ||||||
* Check to see that the website in their profile works, if not removes it so it doesn't begin to fail our website ci tests. | ||||||
|
||||||
Without the `update` flag, running `update-contributors` will only add any new users that | ||||||
are not already in the website `contributors.yml` file to a output `.pickle` file. | ||||||
|
||||||
### update-reviews Returns: | ||||||
|
||||||
* `all-contributors.pickle` file that will be used in the final update-reviewers script to update all reviewer contribution data. | ||||||
|
||||||
## update-reviews script | ||||||
|
||||||
To run: | ||||||
`update-reviews` or | ||||||
`update-reviews --update update_all` | ||||||
|
||||||
* This script parses through all pyOpenSci issues in the [software-submissions repo](https://github.com/pyOpenSci/software-submission) issues where the issue has a label of 6/`pyOS-approved 🚀🚀🚀`. | ||||||
* Grabs crucial metadata including the reviewers and editors for each. | ||||||
* Adds people who have participated in peer review who are NOT listed currently in the website `contributors.yml` file | ||||||
|
||||||
It then collects the | ||||||
GitHub id and user information for: | ||||||
|
||||||
* reviewers, | ||||||
* submitting authors, | ||||||
* editors and | ||||||
* maintainers. | ||||||
|
||||||
Finally, it updates GitHub statistics for | ||||||
each packages including stars, last commit date and more repo metadata. | ||||||
|
||||||
### Returns | ||||||
|
||||||
This returns a `packages.pickle` file that will be used in the final script which bridges data between the first two scripts. | ||||||
|
||||||
## update\_reviewers script\` | ||||||
|
||||||
This script is a bridge between `update-contributors` and `update-reviews`. It parses each review in the output | ||||||
`update-reviews.pickle` file and | ||||||
|
||||||
1. updates contributor name in the review data (often the github username is there but the first and last name is missing). | ||||||
This allows us to publish the maintainer names (rather than github usernames) [on our website package listing.](https://www.pyopensci.org/python-packages.html#explore-our-accepted-scientific-python-open-source-packages) | ||||||
2. Updates each review issue contributor's name in the contributor metadata. This allows us to ensure we have updated | ||||||
contributor types, package submission information etc, in the contributor.yml file on our website. | ||||||
|
||||||
To run: | ||||||
`update_reviewers` | ||||||
|
||||||
### Returns | ||||||
|
||||||
This final script uses the two pickle files | ||||||
to update information. It then returns | ||||||
two output files: | ||||||
|
||||||
1. `_data/contributors.yml` | ||||||
2. `_data/packages.yml` | ||||||
|
||||||
Each are stored in the `/_data/file.yml` directory to mimic the directory structure of our website. | ||||||
|
||||||
## How these scripts are used in our organization | ||||||
|
||||||
The scripts above are called in the [GitHub | ||||||
actions located here](https://github.com/pyOpenSci/pyopensci.github.io/tree/main/.github/workflows). These actions can be run manually via workflow dispatch but also have a cron job to update our metadata periodically. | ||||||
|
||||||
### Data that these scripts update / maintain | ||||||
|
||||||
* [website contributors.yml file](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/_data/contributors.yml) | ||||||
* [website packages.yml file is here](https://github.com/pyOpenSci/pyopensci.github.io/blob/main/_data/packages.yml). | ||||||
|
||||||
## Rate limiting | ||||||
|
||||||
TODO: right now this isn't an issue but it will be in the future I suspect.... | ||||||
Rate limiting - how to handle this... | ||||||
|
||||||
## Using this | ||||||
|
||||||
Create environment: | ||||||
|
||||||
`mamba env create -f environment.yml` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
MIT License | ||
|
||
Copyright (c) 2023-present Leah Wasser <[email protected]> | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated | ||
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the | ||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit | ||
persons to whom the Software is furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the | ||
Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | ||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | ||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR | ||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been meaning to add an organization wide COC in our .github repo -- I just made an asana task for this as it doesn't belong to a single repo rather to the organization