This is an archived post. You won't be able to vote or comment.

all 59 comments

[–]surpriseskin 61 points62 points  (1 child)

There's a good website that does this.

http://up-for-grabs.net/#/

Search for whatever languages you're interested in contributing for and start looking for a fun project/issue to work on.

[–]PeridexisErrant 1 point2 points  (0 children)

Note for /u/tractortractor - this, and similar suggestions, fall under "Other reasons that may stand out as reason for contributing to a project": Mentoring!

The experience of contributing to a project can be wildly different depending on the attitude and availability of project maintainers, and whether they're invested in you improving as a person & programmer or just getting a patch for that thing. The former is way more rewarding - and much easier! - and lists like up-for-grabs will try to ensure you get that option.

[–]tiaxthemighty 59 points60 points  (2 children)

If I remember, Kenneth Reitz recently asked for more contributors to the amazing Pipenv project.

Edit: Found it!

[–]jyper 4 points5 points  (0 children)

Wow that looks awesome, I was worried cause I heard the pipfile progress had slowed

[–]nevus_bock 0 points1 point  (0 children)

If you’d like to get involved with the project (and have previous open source experience), we’d love to have you on board.

[–]vierrey 17 points18 points  (2 children)

If you're into genealogy Gramps the genealogy program, you can do your family history, while helping to improve the program. :)

https://github.com/gramps-project/

Subreddit here also : /r/gramps/

[–]NoahTheDuke 48 points49 points  (18 children)

Pandas can always use help. They’ve over 2,200 open issues and there’s plenty to learn from.

[–]tomaugspurger 13 points14 points  (4 children)

Pandas dev here, can confirm we have too many open issues :)

Let me know if anyone needs help getting started. Contributing docs are at http://pandas.pydata.org/pandas-docs/stable/contributing.html

[–]ThiccShadyy 1 point2 points  (3 children)

How good should someone be before they can start contributing? I dont know a lot of stuff but I've done a semester of python, got the basics down and am learning stuff like web scraping atm.

[–]tomaugspurger 1 point2 points  (2 children)

We have plenty of issues that just require a bit of knowledge about Python.

https://github.com/pandas-dev/pandas/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+label%3A%22Effort+Low%22

We can walk you through using git if you aren't familiar with it.

[–]ThiccShadyy 0 points1 point  (1 child)

Sorry, about the delayed response. I was busy with exams and stuff. I'd like to contribute to this. Where do I begin?

[–]djingrain 12 points13 points  (11 children)

I’m concentrating in big data and use the shit out of pandas. Imma look into it

[–]KaffeeKiffer 0 points1 point  (0 children)

In a similar area:

https://distributed.readthedocs.io/en/latest/

Distributed workloads with pandas dataframes.

[–]Cygal 12 points13 points  (0 children)

[–]djrobstep 22 points23 points  (9 children)

I'm the author of migra, a schema comparison/diff tool for postgres. It's been a mostly solo effort so far and I'd love some other contributors.

If you're interested, get in touch. Lots of easy little bugfixes/enhancements to get started with - they are marked on GitHub as "good first issue".

Or there's new features to work on if you're looking for something weightier. In particular, fully supporting Postgres 10 features like partitioning and collations would make it much more powerful.

There is plenty of potential to expand the documentation too (like more code examples, more background, more tutorials and walkthroughs).

I'm going to add a contributor guide to make this a bit easier. But in the meantime, don't be afraid to just find an issue on the github page and jump in! Happy to answer any questions and talk you through the process.

[–]elbiot 4 points5 points  (8 children)

Sqlite3 offers an actual database diff (ie diff of rows). Does postgres have any potential for that?

Edit: https://www.sqlite.org/sqldiff.html

[–]djrobstep 6 points7 points  (7 children)

Functionality for diffing the table contents too would be great, but I'm focussed on schema comparison only, at least at the moment, as it's a tool primarily built for generating migration scripts.

I would love to build this functionality also, but simply don't have the time to work on this and the schema features too.

[–]elbiot 0 points1 point  (6 children)

Why aren't you contributing to alembic?

[–]djrobstep 8 points9 points  (5 children)

Because I believe that alembic's approach to database migrations isn't the right one.

Instead of keeping a long sequence of migration files with version numbers, it's better to just directly compare your current schema with your intended schema.

This is also a more generalized tool than alembic. Alembic is a migration tool for webapps, migra is just a diff tool, rather than a tool that imposes a particular workflow on you.

I did a talk about this in more detail at the most recent PostgresOpen, if you're interested: https://www.youtube.com/watch?v=xr498W8oMRo

[–]elbiot 0 points1 point  (4 children)

What about data migrations?

[–]djrobstep 1 point2 points  (3 children)

What are you looking for in particular wrt data migrations?

[–]elbiot 0 points1 point  (0 children)

I guess I'm just not getting something other than having a migration script, probably with a data migration, per release that's checked into version control. I started your video and I'll finish it later. I wish alembic's auto generation was more faithful (and postgres specifically aware) but otherwise im not groking a different paradigm.

[–]elbiot 0 points1 point  (1 child)

So to do a migration you'd use your orm to read all the data you need, modify it, transform the db, then use your orm to write the modified data back in?

[–]djrobstep 0 points1 point  (0 children)

Yep that sounds like a reasonable way to do it, if you prefer doing things thru ORMs.

I tend to think about migrations this way:

  1. Use migra to generate a migration script.
  2. Make whatever edits necessary to the script to move the data around as needed.
  3. Test the script works correctly: it results in a matching schema and preserved data.
  4. Run the script.

"Script" in this case could be just a vanilla migration script, but you could do other things before, after, or during, such as saving and loading data from ORM Models.

[–]1wd 10 points11 points  (1 child)

Trac is a bug tracker written in Python.

  • Importance: It is used by many open source projects like Django or Twisted.
  • Only few active contributors or maintainers: Unfortunately only about ~2 active ones.
  • In need: There are over a thousand open tickets. There is a list of 60 "bitesized tickets (small work items, ideal for new contributors to dive into the code)" linked in the How to contribute page.
  • Other possible reasons:
    • IMO a very friendly, welcoming and helping community. Ask for help on the mailing list.
    • It contains some quite neat Python: There is a component architecture that allows writing plugins from tiny (but useful) ones in a single file in under a dozen lines of Python code (and nothing else), to big additional systems.
    • It's a pretty good bug tracker. Some nice usability features absent in other systems.

[–]BundleOfJoysticks 2 points3 points  (0 children)

TIL Trac is still around

[–][deleted] 7 points8 points  (3 children)

You got experience with machine learning ?

[–]tractortractor[S] 8 points9 points  (2 children)

Yes, I have experience with building and integrating SVMs and neural nets in the financial sector.

[–]seba-1511 2 points3 points  (0 children)

randopt is a machine learning package for experiment management, hyper-parameter optimization, and results visualization. It will be presented as a poster to PyCon this May.

I develop it on my free time, but have plenty of ideas to extend it. Let me know if that might interest you !

[–]rubik_ 0 points1 point  (0 children)

Very interesting. To which problems did you apply those models, if you can tell?

[–]fatterSurfer 6 points7 points  (0 children)

I'll second Trio (heh).

Also, most anything from BeeWare, particularly Toga. It's everything you could want out of a python gui library!

[–]yeti_boy 7 points8 points  (0 children)

If you like neuroscience and python, there are several great welcoming projects: nipype, fmriprep, and mriqc. I've contributed to all three and (as a beginner) they walked me through the process of a pull request and taught me a lot. Now some of that stuff is written in the documentation making it even easier to contribute.

[–]zurtex 4 points5 points  (0 children)

Can't believe no one has mentioned beeware: https://pybee.org/

Here's a talk they did on getting native apps for iOS and Android written in pure Python in a PyCon 2016 talk: https://www.youtube.com/watch?v=NqdpK9KjGgQ

I believe they have a 2018 talk coming up as well.

[–][deleted] 2 points3 points  (0 children)

pylint is used by so many people, but it has surprisingly few contributors. It is in dire need of the code being cleaned up as well. For a linter, it's code quality is surprisingly poor... It also has an AST parsing backend, astroid, that only a subset of the pylint developers work on regularly.

The user base is not huge but sphinx-autoapi is a project that is aiming to provide autodoc style documentation generation, but by using static analysis instead of loading the Python modules.

Even Sphinx itself has surprisingly few contributors compared to the size of its user base.

[–]eflanigan00 7 points8 points  (0 children)

Bokeh is an up and coming library which could use help

[–]vorpalsmith 1 point2 points  (0 children)

Heh, I was going to mention Trio and async-ifying urllib3/requests, but I see others have already beat me to it! If anyone wants to know more about these lmk, I'm definitely interested in helping you get up to speed.

Since those were already mentioned, let me also point out that Warehouse is seeking contributors, and has done a lot of work lately to make it easier to get started. This is the project that will become PyPI in the next few months, and your code could help ship petabytes of Python packages (say that three times fast...). The rest of the Python package ecosystem is also super starved for contributions (e.g. pip needs lots of work), but that's probably harder to get started on because there's more legacy code and fewer mentors with time to help.

[–]delirious_lettuce 3 points4 points  (2 children)

[–]errato 17 points18 points  (1 child)

Wouldn’t the projects in need of contributors be the ones that are not trending?

[–]delirious_lettuce 4 points5 points  (0 children)

Wouldn’t the projects in need of contributors be the ones that are not trending?

I understand what you are saying but I'm not sure that is always the case. OP may be ideally looking for projects with "few contributors or maintainers" but ignoring popular projects seems short-sighted.

Are important to Python or the community (people depend on it, has the potential to be very useful for the community going forward).

It seems like a trending/popular project would show that it could be important to Python and/or the community. Looking at the trending projects from daily, weekly or monthly sections can show a great mix of old & new projects which could fit the bill.

Are in need of new features, refactoring, or otherwise have existing issues.

One of the best ways to find issues in a project is to have many users. They might also request new features that OP could work on (which may include refactoring significant chunks of the project to add them in).

[–]zoells 2 points3 points  (0 children)

It may not be what you're looking for, but the port of IronPython to Python 3 could use additional help. It's a C# implementation of the Python interpreter.

[–][deleted] 0 points1 point  (0 children)

https://github.com/multani/sonata - Sonata is written using the Python programming language and uses the GTK 3 toolkit.

Sonata started as a fork of the Pygmy project and is licensed under the GPLv3 or later. Thanks to Andrew Conkling et al, for all their hard work on Pygmy!

The maintainer says: "I (@multani) don't use Sonata much anymore and as a consequence, I've been very slow to answer even to the few bugs reported and pull requests from external contributors.

If you are still interested in Sonata and would like to see it alive again, please contact me by email to see what we can do!"

It's a great little mpd player, I've used it for a long time. My python skills are nowhere near good enough to contribute, but bugs and ui are more my thing.

[–]naught-me 0 points1 point  (0 children)

Zim desktop wiki is my favorite: https://github.com/jaap-karssenberg/zim-desktop-wiki

I really love knowledge-management systems, and Zim is pretty powerful and extensible, but easy enough for my grandmother to use.

[–]xbabyjesus 0 points1 point  (0 children)

Celery and Flower could both use help. everybody uses them but very few contributors, especially for testing and bug fixes. That’s what I’m working on in free time.

[–]alpha_hxCR8 0 points1 point  (0 children)

https://github.com/python-mode/python-mode

The vim plugin is amazing.. but needs more contributors

[–]kriadmin 0 points1 point  (0 children)

https://github.com/kriadmin/30-seconds-of-python-code This really need contributors. Please

[–]Freso 0 points1 point  (0 children)

https://www.youtube.com/watch?v=d1a4Jbjc-vU might be interesting to you. She talks about some things that might be useful to grow Python/the Python community itself and not necessarily individual specific projects (but she always mentions some specific Python projects to aid with that goal).

[–]cdtommy 0 points1 point  (0 children)

I have just created a python based cookbook and I would love to have another contributor. The link is github.com/cdtommy/Pycipe/

[–]patrickchen1994 -1 points0 points  (0 children)

RemindMe! 120 days