good first issuehelp wanted✨ goal: improvement🌟 goal: addition🏷 status: label work required💬 talk: discussion💻 aspect: code🟨 priority: medium🤖 aspect: dx
Repository metrics
- Stars
- (48 stars)
- PR merge metrics
- (PR metrics pending)
説明
Overview
⚠️ This meta-issue should not be worked on itself. Instead it is a place for me (@TimidRobot) to document ways to engage with this project.
First
- Read the documentation on Welcome — Creative Commons Open Source
Ways to Contribute
- Pull Requests (PRs)
- Contribute a PR for an existing issue per Contribution Guidelines — Creative Commons Open Source
- Help review PRs
- Issues
- Create a new issue recommending a data source that should be included. Include information like:
- quantity of records
- types of metadata available
- API documentation link
- API requirements and limitations
- Also see
sources.md- Sources | Openverse (any of the listed sources are potential sources for this project)
pre-automation/
- Create a new issue related to a single script or data source:
- Scripts should be using
.env(theskumar/python-dotenv) and notquery_secrets.pyor similar - Scripts mustn't be monolithic--they should be limited to a single phase (ex. query, process, report. See #22)
- Scripts must be designed to be run from the repository root via pipenv (ex.
pipenv run PATH/SCRIPT.PY)- Script should determine its own path and set appropriate global variables (ex.
DIR_ROOT,DIR_SCRIPT)
- Script should determine its own path and set appropriate global variables (ex.
- Scripts have a lot of duplication between them. Begin a shared library (remember to keep issues as small and descrete as possible--limit each issue/PR to a single script or data source).
- Scripts should be using retries with exponential backoff (ex. #2)
- Scripts should be using
- Create a new issue recommending a data source that should be included. Include information like:
Tips
Conventions and best practices
- Always sort data and lists (both implicit and explicit) naturally (Natural sort order - Wikipedia)
- Example: sorted constants https://github.com/creativecommons/quantifying/blob/46dcd3ff9d66e172b87d79b097adcb9b348c6f2c/scripts/1-fetch/wikipedia_fetch.py#L32-L44
- Example: sorted data
from operator import itemgetterdata.sort(key=itemgetter("TOOL_IDENTIFIER", "CATEGORY_CODE"))
- #2
- #217
Plot process data
Any plots in phase 3-report should graph data without significantly modifying it. This means that development of phase 2-process and phase 3-report usually needs to be done at the same time.
Put another way, there should be a 1:1 relationship between phase 3-report plots and phase 2-process CSV files.