Description
🙏 Welcome
Thank you for participating in PyCascades 2022 Sprinting with Openverse! We're so excited to bring new contributors into the fold in WordPress, Openverse and FOSS in general.
❤️ Code of Conduct
Please be aware that as a project of the WordPress Foundation, all Openverse repositories follow the WordPress Etiquette, a code of conduct that you should read and agree to abide by before contributing to WordPress projects.
😍 Ongoing contributions (after sprinting)
For folks who'd like to continue contributing after this sprint is over, please feel free to join us in the WordPress make chat (https://make.wordpress.org/chat/). We have weekly community meetings on Tuesdays at 15:00 UTC (https://everytimezone.com/s/d1d42c7b). All are welcome! During the meetings we discuss ongoing work and assign new issues. Attendance is not mandatory to contribute, however. Any issues labeled as "good first issue" or "help wanted" in our repositories are all up for grabs. Just @
a maintainer in the issue with questions or requesting the issue be assigned to you when you're ready to work on it.
📖 Translations
This issue mostly covers code and documentation-based contributions. However, you may also contribute by lending a hand in translating Openverse.
An overview of Openverse translations is here: https://translate.wordpress.org/projects/meta/openverse/
A getting started guide for translating on GlotPress (the software behind translate.wordpress.org
) is here: https://make.wordpress.org/polyglots/handbook/translating/glotpress-translate-wordpress-org/#getting-started
🤔 Choosing an issue
Below is a list of issues that encompass a variety of different technologies, from Airflow to Django to GitHub Actions to Vue.js. You're welcome to take on any of the issues. Most require development environment set up, but some do not. Expect development environment set up to take 1 to 2 hours depending on experience and how much software you've already got installed. If you have git, a text editor/IDE, Python or Node and Docker set up, things will go a little more smoothly. If not, that's totally fine! We're here to help and our repositories all have README files that should include helpful instructions for self-guided environment set up.
Once you've picked an issue to work on, please leave a comment saying so on the issue and include @sarayourfriend
in the comment. That way I'll get a notification and can assign the issue to you.
🤓 Initial set up
🪟 Note for Windows users
Windows Subsystem for Linux can be a much more versatile and familiar environment for software development on Windows. Everything from installing git
and other dependencies to using command line tools that will be familiar to the wider community of software developers are more likely to be easier under WSL. Openverse projects should all be able to be developed under native Windows, but many OSS projects will not be configured to allow easy local development under Windows.
Installation instructions for WSL on Windows 10 and 11 can be found here on Microsoft's official documentation website.
✍️ General set up
Skip any steps you've already completed on your own. This is meant as an exhaustive list for brand new devs who might not have these tools yet.
- Install
git
- Most Linux distributions and macOS will already have this installed. Open up your terminal app and type
which git
. If the response is anything other thangit not found
then you've already got it installed. - If you need to install it, follow the official instructions here: https://git-scm.com/downloads
- Most Linux distributions and macOS will already have this installed. Open up your terminal app and type
- Install a text editor.
- PyCascades has a good list of common editors here. VSCode in particular is very popular for Python and JavaScript developers alike.
- Create a GitHub account https://github.com/signup
- Install pyenv or Anaconda
- These tools make it simpler to manage multiple different versions of Python on a single machine. This is useful for contributing to multiple projects, each of which may be using a different specific version of Python.
- Skip this if you only want to do a JavaScript issue
- https://github.com/pyenv/pyenv
- https://www.anaconda.com/products/individual
- Install volta
- Similar to pyenv/Anaconda but for Node.js
- Skip this if you only want to do a Python issue
- https://volta.sh/
- Install Docker
- Skip this if you only want to do a JavaScript issue
- Windows with WSL: https://dev.to/felipecrs/simply-run-docker-on-wsl2-3o8
- All other scenarios (macOS, Linux, Native Windows): https://docs.docker.com/engine/install/
- Choose an issue from the list below and add a comment as described in the second paragraph of the "Choosing an issue" section above
- Fork the repository for the issue you chose
- Go to the repository page on GitHub and find the "Fork" button in the upper corner of the page. Click this and GitHub will guide you through the process of forking the repository
- Clone the repository into your computer
- On the page for your fork, find the "<> Code" dropdown button. Click it and copy the link provided under the "Local" tab of the dropdown.
- Open up your terminal app and type
git clone <copied URL>
replacing<copied URL>
with the URL you copied from the GitHub website.
- Follow the environment set up instructions in the README or CONTRIBUTING document in the repository
- Start working on the issue you chose 🎉
🏃 Sprintable issues
Most of these issues are potentially able to be completed in less than 4 hours, development environment set up included. It may take significantly more or less than 4 hours depending on experience and how smoothly development environment set up goes. Unfortunately sometimes dev env set up can sometimes be tricky! In these cases it would be helpful to the Openverse project to share your experience in an issue so we can try to remove any roadblocks for future contributors. Even if you don't get to the touch the issue you chose to work on today, you can still make meaningful contributions to the project in the form of valuable feedback!
🐍 Python (Airflow, Django, GitHub actions)
- Incorrectly formatted OAuth requests cause uncaught errors #734 (Error handling)
- ✅ (Assigned) Cache waveform data openverse-api#490 (API data caching, Database stuff - Requires research)
- ✅ (Assigned) Reference quickstart guide in top level README.md openverse-api#488 (Documentation - no code)
- Move off of grequests openverse-api#486 (Dependency swap)
- ✅ (Assigned) Run integration tests on all PRs openverse-api#443 (Developer experience, GitHub actions)
- Audit request argument parsing #741 (Error handling - probably lots of small changes)
- Move API keys from .env to Airflow Variables openverse-catalog#209 (Airflow infrastructure)
- ✅ (Assigned) Update user agent for Wikimedia Commons #1720 (One liner [I think])
🕷️🐒 JavaScript (JavaScript, Nuxt, Vue.js)
- Investigate switching to a cheaper/quicker source map option in development #624 (Developer experience)
- Closing the global audio player does not stop audio playback openverse-frontend#775 (Vue.js interface)
- ✅ (Assigned) Audio waveform progress bar extends beyond the end of the waveform body openverse-frontend#692 (Vue.js interface - requires browser UI calculation debugging)
- Add
svglint
andsvgo
to lint SVGs #633 (Developer experience)