My recommendation tho of course is to find an existing project you’re passionate about, find their tracker, and dig in! Few softwares are ever truly done. Make one you love even better.
That is how you end up never contributing anything or having your first pull request be rejected.
The random driveby contributor strategy has never worked for me. Most of my projects had me as their "long term" contributor or the opposite, I let one of my contributors become one.
Organization is critical to the success of a project and you're basically telling someone to forget about it and waste the maintainers time.
As a maintainer of a lot of large/popular projects, this couldn't be further from the truth. I stick that label onto things that are typically trivial and I don't want to allot much time to aside from approving/merging a PR and letting it get stuffed into the next release cycle.
> That is how you end up never contributing anything or having your first pull request be rejected.
Best way to avoid having your pull request rejected, is to make sure the change is actually wanted, which you can figure out by communicating.
So if some random webapp has a button in the wrong place, don't open a PR moving the button to the right place, open a issue and confirm it's wrong, and confirm the maintainer(s) would be fine with the suggested change. If something is unclear, clear it up before spending time on the PR.
Once consensus is reached, it'll be trivial to get the PR merged.
By just using common sense one can still contribute to a project without making a huge commitment. One of the most important things to do is to check how they respond to pull requests. The vast majority of projects are positive and responsive towards them. There are some that seem to sit in limbo for various reasons but even those can later be merged into an unofficial fork and still be useful.
I've had dozens of "driveby" contributions get approved and merged. Just check the CONTRIBUTING.md if there's one and make sure your pull request includes everything the maintainer may want to know.
I'd like to make a pitch for Openlibrary.org the free online library from Internet Archive that includes a fulltext search of millions of books.
I've been volunteering with them on and off for several years and it's always a lovely experience. Their backend is python and frontend mostly from python templates and some Vue for librarian stuff.
Every Tuesday they have a call on Zoom that everyone is welcome to join to share what they're working on, ask for help, and generally chat a bit. It's a great time.
Depending on what you're interested in there's a lot to do from helping build import pipelines for more book entries, writing bots to cleanup data, Performance improvements, better documenting public APIs, etc
I'm currently slowly working on a wikidata integration for their authors page. We also could use some help upgrading to Vue 3, mentors for Google summer of code would be helpful, find of ML projects needing help, moving away from old jQuery libraries, etc.
Cool project. Where is the data and how was it acquired / what's the provenance? I found this:
> Data: We have a bunch of catalog data and fulltext acquired from various sources, either sitting in the Archive or to be uploaded to there. I think the acquisition processes (including web crawling scripts for some of the data) is outside the scope of an Open Library software install. There are a bunch of additional scripts to make the stuff usable in openlibrary and these need to be documented. These include TDB Conversion Scripts written by dbg, and (for OCA fulltext) Archive Spidering and Solr Importing scripts written by phr.
edit: I should add the question: does openlibrary support fulltext search of actual books or fulltext search of the metadata?
If you would like to see the data that's currently in Open library, there are dumps published every month or so. Where the data comes from is either partners or one off projects to scrape from public sources or sometimes just people adding what they like.
Fulltext search of actual books! And also metadata.
If you're serious about getting involved I'd say the best thing to do it just come to the meeting if you can. The GitHub has a lot of things that without context can be hard to pickup. Most of the easy stuff is on the JS side.
Small Python library, slowly and steadily growing in use.
New contributors, junior devs welcome. Mainly just maintenance work, occasional bug fixes and small feature development. Fine someone looking for casual involvement.
Sure, I write small python CLI utils that help me solve media organization, media consumption, and sometimes data analysis. I use this every day on Linux and Android but I haven't tested it on other platforms. There are a lot of different subcommands and, although the CLI package will always be opinionated to some extent, there is a lot of niche functionality which might not need to exist. So I'm open to things being refactored or new subcommands being added. [1]
I have a lot of ideas for new ones, for example, I want a CLI that can take an artist name like "Theodor Kittelsen" and fetch highest quality public domain images--but I realize any implementation that does this well will be somewhat fragile so I haven't really attempted that yet. Other ideas that I have are often solved by piping output from one of my existing commands to another or adding some optional args to an existing command.
My recommendation tho of course is to find an existing project you’re passionate about, find their tracker, and dig in! Few softwares are ever truly done. Make one you love even better.
The random driveby contributor strategy has never worked for me. Most of my projects had me as their "long term" contributor or the opposite, I let one of my contributors become one.
Organization is critical to the success of a project and you're basically telling someone to forget about it and waste the maintainers time.
Also, there's a lot to learn from closed PRs.
Best way to avoid having your pull request rejected, is to make sure the change is actually wanted, which you can figure out by communicating.
So if some random webapp has a button in the wrong place, don't open a PR moving the button to the right place, open a issue and confirm it's wrong, and confirm the maintainer(s) would be fine with the suggested change. If something is unclear, clear it up before spending time on the PR.
Once consensus is reached, it'll be trivial to get the PR merged.
I've been volunteering with them on and off for several years and it's always a lovely experience. Their backend is python and frontend mostly from python templates and some Vue for librarian stuff.
Every Tuesday they have a call on Zoom that everyone is welcome to join to share what they're working on, ask for help, and generally chat a bit. It's a great time.
Depending on what you're interested in there's a lot to do from helping build import pipelines for more book entries, writing bots to cleanup data, Performance improvements, better documenting public APIs, etc
I'm currently slowly working on a wikidata integration for their authors page. We also could use some help upgrading to Vue 3, mentors for Google summer of code would be helpful, find of ML projects needing help, moving away from old jQuery libraries, etc.
They can be quite responsive to PRs too like I blogged about here: https://blog.rayberger.org/idea-to-merged-in-less-than-30-mi...
For example, here's a small issue that could use some help on the python side: https://github.com/internetarchive/openlibrary/issues/8928
> Data: We have a bunch of catalog data and fulltext acquired from various sources, either sitting in the Archive or to be uploaded to there. I think the acquisition processes (including web crawling scripts for some of the data) is outside the scope of an Open Library software install. There are a bunch of additional scripts to make the stuff usable in openlibrary and these need to be documented. These include TDB Conversion Scripts written by dbg, and (for OCA fulltext) Archive Spidering and Solr Importing scripts written by phr.
edit: I should add the question: does openlibrary support fulltext search of actual books or fulltext search of the metadata?
Fulltext search of actual books! And also metadata.
Check it out:
https://openlibrary.org/search/inside?q=hackernews
If you're serious about getting involved I'd say the best thing to do it just come to the meeting if you can. The GitHub has a lot of things that without context can be hard to pickup. Most of the easy stuff is on the JS side.
https://github.com/borgbase/vorta
Or if you join as mentor, you will be supporting the Python Foundation.
If interested, just email the address in my HN profile.
Would love to join as a mentor
Small Python library, slowly and steadily growing in use. New contributors, junior devs welcome. Mainly just maintenance work, occasional bug fixes and small feature development. Fine someone looking for casual involvement.
There are loads of low hanging improvements to the build system that can be made (not least to support 3.12). Contributions gratefully received!
I have a lot of ideas for new ones, for example, I want a CLI that can take an artist name like "Theodor Kittelsen" and fetch highest quality public domain images--but I realize any implementation that does this well will be somewhat fragile so I haven't really attempted that yet. Other ideas that I have are often solved by piping output from one of my existing commands to another or adding some optional args to an existing command.
1. https://github.com/chapmanjacobd/library