How To Contribute
Apache Hop is developed by an open and friendly community. Everybody is cordially welcome to join the community and contribute to Apache Hop. There are several ways to interact with the community and to contribute to Hop including asking questions, filing bug reports, proposing new features, joining discussions on the mailing lists, contributing code or documentation, improving the website, or testing release candidates.
What do you want to do?
Contributing to Hop goes beyond writing code for the project. Below, we list different opportunities to help the project:
Report a Bug
To report a problem with Hop, open Hop’s Jira, log in if necessary, and click on the "+" in the left side bar (Shortcut "c"). Please give detailed information about the problem you encountered and, if possible, add a description that helps to reproduce the problem. For more information go to our info page.
Read the Code Contribution Guide (Work in progress)
Help With Code Reviews
Read the Code Review Guide (Work in progress)
Help Prepare a Release
A release candidate will be announced using our form/twitter and chat. We will then ask as many people as possible to test this candidate and give feedback before proceeding to an actual release.
Read the Documentation Contribution Guide (Work in progress)
Read the Translation Contribution Guide
Support Hop Users
- Join us on our Mattermost server and answer questions
- Reply to Hop related questions on Stack Overflow with the hop tag or the Hop forums
- Check the latest issues in Jira for tickets which are actually user questions
Improve the Website
Read the Website Contribution Guide (Work in progress)
Spread the Word about Hop
- Organize or attend a Hop Meetup
- Contribute to the Hop blog (comming soon)
Any other questions? Reach out on the Hop chat to get help.
Submit a Contributor License Agreement
Please submit a contributor license agreement to the Apache Hop if you are contributing a lot of code to Apache Hop. The following quote from http://www.apache.org/licenses gives more information about the ICLA and CCLA and why they are necessary.
The ASF desires that all contributors of ideas, code, or documentation to the Apache projects complete, sign, and submit (via postal mail, fax or email) an Individual Contributor License Agreement (CLA) [ PDF form ]. The purpose of this agreement is to clearly define the terms under which intellectual property has been contributed to the ASF and thereby allow us to defend the project should there be a legal dispute regarding the software at some future time. A signed CLA is required to be on file before an individual is given commit rights to an ASF project.
For a corporation that has assigned employees to work on an Apache project, a Corporate CLA (CCLA) is available for contributing intellectual property via the corporation, that may have been assigned as part of an employment agreement. Note that a Corporate CLA does not remove the need for every developer to sign their own CLA as an individual, to cover any of their contributions which are not owned by the corporation signing the CCLA.
Becoming a Hop Committer and PMC member
How to become a committer
Committers are community members that have write access to the project’s repositories, i.e., they can modify the code, documentation, and website by themselves and also accept other contributions.
There is no strict protocol for becoming a committer or PMC member. Candidates for new committers are typically people that are active contributors and community members.
Candidates for new committers are suggested by current committers or PMC members, and voted upon by the PMC.
If you would like to become a committer, you should engage with the community and start contributing to Apache Hop in any of the above ways. You might also want to talk to other committers and ask for their advice and guidance.
What are we looking for in Committers
Being a committer means being recognized as a significant contributor to the project (community or technology), and having the tools to help with the development. Committer candidates are community members who have made good contributions over an extended period of time and want to continue their contributions.
Community contributions include helping to answer user questions on the mailing list, verifying release candidates, giving talks, organizing community events, and other forms of evangelism and community building. The “Apache Way” has a strong focus on the project community, and committers can be recognized for outstanding community contributions even without any code contributions.
Code/technology contributions include contributed pull requests (patches), design discussions, reviews, testing, and other help in identifying and fixing bugs. Especially constructive and high quality design discussions, as well as helping other contributors, are strong indicators.
While the prior points give ways to identify promising candidates, the following are “must haves” for any committer candidate: - Being community minded: The candidate understands the meritocratic principles of community management. They do not always optimize for as much as possible personal contribution, but will help and empower others where it makes sense. - We trust that a committer candidate will use their write access to the repositories responsibly, and if in doubt, conservatively. Hop is a big system, and it is important that committers are aware of what they know and what they don’t know. In doubt, committers should ask for a second pair of eyes rather than commit to parts that they are not well familiar with. (Even the most seasoned committers follow this practice.) - They have shown to be respectful towards other community members and constructive in discussions.
What are we looking for in PMC members
The PMC is the official controlling body of the project. PMC members “must” be able to perform the official responsibilities of the PMC (verify releases and growth of committers/PMC). We “want” them to be people that have a vision for Hop, technology and community wise.
For the avoidance of doubt, not every PMC member needs to know all details of how exactly Hop’s release process works (it is okay to understand the gist and how to find the details). Likewise, not every PMC member needs to be a visionary. We strive to build a PMC that covers all parts well, understanding that each member brings different strengths.
Ideally, we find candidates among active community members that have shown initiative to shape the direction of Hop (technology and community) and have shown willingness to learn the official processes, such as how to create or verify for releases.
A PMC member is also a committer. Candidates are already committers or will automatically become also a committer when joining the PMC. Hence, the “What are we looking for in committers?” also applies to PMC candidates.
A PMC member has a lot of power in a project. A single PMC member can block many decisions and generally stall and harm the project in many ways. We hence must trust the PMC candidates to be level-headed, constructive, supportive, and willing to “disagree and commit” at times.