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.
- https://github.com/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+language%3Apython+sort%3Aupdated-desc
- https://github.com/issues?page=2&q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted+language%3ApythonI'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.
I feel for the author of this comment, you want to help out and work on stuff you have energy at the beginning, I find it easier to write my own code than to get up to speed with someone else's code. Because you lose steam or the activation energy to get the project built and ran and then played with and customised/changed/"hacked on" is a major effort.
I have been thinking a lot on an idea inspired by compiler design: intermediate representations and term rewriting.
If software features were an arbitrary stack of crisscrossing intermediate representations that are rewritten and mutually recursive/referential or parsed or transpiled into actual code, then we could inspect the intermediate representations to work out how things work.
It would be nice to narrow down on a piece of behaviour and see how it works from end-to-end. But in practice, you have an opaque wholeness of a codebase to understand.
A modern system or codebase at a company or mature open source project: it's like those games of wooden sticks or wooden bricks jenga where they're arranged in a pile and you're piling things on-top of things and if you unsettle it slightly, it falls over or doesn't work.
I used a piece of software called OpenGrok which renders a large code base as clickable surfable wiki in the browser. So you can explore codebases.
I have a primitive python SQL database on my github that can execute simple graph cypher queries, simple joins of multiple tables, "dynamodb" style queries and document database queries.
It's a great thing that different projects have different scopes! If you're just looking to contribute to some project to gain experience, it might be a good idea to start with some smaller scoped-project before jumping into larger ones.
For example, if you're interested to contributing to the core of Kubernetes, maybe start by contributing to a plugin that interact with Kubernetes. Eventually, while trying to contribute to the plugin, you get indirectly exposed to some of the internals of the parent project, and eventually you'll be able to faster jump into contributing to Kubernetes itself.
• C 48.0%
• JavaScript 43.5%
• Python 2.3%
Maybe share more info on what you like so we can suggest something you might enjoy?
It is however much easier if you contribute to a project that you already know and use personally.
Looks pretty useful
I have been working on a static site generator which uses Flask.
https://github.com/siecje/htmd
I have been learning trio (async Python library) by implementing beanstalkd.
https://github.com/ericoporto/agstoolbox
There are a few number of open issues but if you play with it and find something else you want to add just open an issue and ask about it.
I have no experience with the platform myself, just bumped into it by coincidence when my OSS project (written it Typescript) was featured
I have a project now in Python. Feel free to reach out.
Plus, if you create your own project, you can make it into a product, and try to market and sell it.
It's fun!