By Ryan May (Unidata)
The Python programming language is a tool near and dear to the hearts of the regular readers of this blog. What truly separates Python from other open-source languages is something distinctly non-technical: the community. This is a frequently heard theme, best expressed in Brett Cannon’s opening remarks at PyCon 2014: “I came for the language, but I stay for the community.” For over ten years I’ve been fortunate to be a part of this welcoming, helpful, and friendly group. For the future of AOS Python, we need to continue to grow and expand our own community; this happens by increased participation and contribution, whether that be from code, documentation, reporting bugs, or even asking and answering questions.
As open-source, community-driven projects, the Python tools we use in the atmospheric and oceanic sciences are tools that are ours; with few exceptions, there is no company driving the direction of these projects, only the projects’ respective user bases. These projects rely upon the efforts of users who have a vested interest in the success and advancement of these tools, which happens one bug report, one documentation fix, one Pull Request at a time. We the community have a say in how these projects progress–provided we put in the effort. The future of AOS Python projects will only be successful if it is a community effort.
By contributing to the projects you use, you can help sustain their success. Selfishly, that means that you have a say in their direction, ensuring that the project helps solve your particular problems. In the big picture, though, a vibrant, active community is the lifeblood of a project, helping sustain it.
Contributions to projects take many forms. Your assistance can be as straightforward as reporting the issues you encounter when using a project. While that might sound like putting a burden on other people, as an open-source maintainer I want to know if people are having problems with my project. Not only do you benefit from having the bugs you encounter fixed, but the project as a whole gets better and everyone benefits.
Other contributions take the form of submitting improvements for the project. This is where many feel “unqualified”, a consequence of the so-called “Imposter Syndrome.” One of my goals in writing this is to dispel the notion that only some people are qualified to contribute. Documentation improvements, from correcting typos, to improving clarity, to adding new tutorials are valuable contributions; these, for example, are within the reach of any user.
As Python users, any one of us also inherently possesses the requisite skills to contribute code changes to a project. Writing code is fundamentally no different than writing prose: we all have different abilities, and the best way to improve is to read what others have written, write a lot, and have others review our writing. I can say unequivocally that my skills as a programmer (and computational scientist) have greatly benefited from my experience contributing to scientific Python projects.
So I ask today: get involved in the projects you depend upon. Your contributions to the project, in whatever form, are valuable and important to the project’s sustained success. Speaking for the MetPy project (as well as the rest of Unidata’s open source offerings for the community), we’re always interested in having new contributions. Other projects have their own processes, but the GitHub guide on contributing to open source is another good starting point. You can also meet this fantastic community by attending conferences like PyData or, my personal favorite, SciPy. Working together we can ensure that the tools we rely upon are sustained into the future.