- Communities want to grow
- Refer to previous lecture about community importance
- Generally, as projects grow, they move away from BDFL/Lone Wolf models
- More "stable" over time if more get involved
- With more heads come more ideas
- There is a general path for getting involved
- Not 100% of people take this route
- Some folks take the route only up to a certain point
- See definitions below
- A path for getting involved
- Obtain more merit
- Some do this over the course of many years
- Casual participation
- Busy with lots of projects
- Come and go as time allows
- Some do this very quickly
- Work on the project during their day job
- Can focus more resources, etc
- Some do this over the course of many years
- Important point: All contributions matter and earn merit
- User
- As a user of the software, you have some of the best information
- What bugs are out there?
- Lots of bugs are caught during development
- Some bugs ship so devs want to hear about it
- How are you using the software?
- What are unique things in your environment devs need to know about?
- What integration points are important to you?
- Does the software do what you think it should?
- Is the documentation good?
- Things a user does to earn merit
- Tests the builds and provides feedback
- Opens bug reports
- Identifies gaps in the documentation
- Hangs out in the various communications channels and helps answers questions
- These all provide value to the community
- This improves the standing of the user in the community
- The community begins to value their contributions
- Trust in the individual grows and they gain "weight"
- Contributor
- You've used the software but now want to scratch an itch
- Contributors do what the name implies - they contribute something of technical value to the project
- That is not to say the things an active user contributes isn't valuable
- It's a gray area, but we'll draw the line at the exchange of bits
- In addition to what a user may do, contributors...
- Provide code changes as patches or pull requests
- Add a new feature the contributor wants to see in the product
- Fixes a bug they have found
- Resolves bugs in the tracker by providing code
- Adds to or fixes documentation
- Provide code changes as patches or pull requests
- In short, a contributor does work on technical aspects of the project
- The work they do is shared with the project
- Someone with commit access will need to accept the contribution
- Work is usually implicitly covered under a Contributor License Agreement
- The contributor's input is highly valued by the community
- Code changes are almost always welcomed
- This shows the community the contributor is serious...
- ... enough about the project to give their own time
- ... enough about the project to invest in the project
- The end sum is that the contributor gains merit and thanks for the work they do
- Committer
- You have provided so much value to the community that you have earned the commit bit
- Formal recognition of contributions
- Trusted to have write access to the repository
- Being a committer on a project means that you are "officially" a developer on the project
- Yeah, that can go on your resume
- In addition to what a contributor may do, committers...
- Accept patches and pull requests to merge them into the code base
- Are given additional access and responsibilities
- Can update the web page
- Can sometimes speak on behalf of the project
- May be able to create categories in the tracker or communications tools
- Perform the tasks around releasing the project
- May be able to digitally sign a release
- These are the folks that are the "guts" of running the project
- You have provided so much value to the community that you have earned the commit bit
- Voter
- Quick note
- Not all projects distinguish between committer and voter
- Some consider a committer the top level
- Some consider a committer to have enough merit to write to the code base, but not vote on certain things
- Example:
- In the ASF, a committer can add code, but cannot vote on a release
- To vote on a release, you must be on the project management committee
- You have homework to read about voting in OSS projects (too much to cover here)
- These individuals have binding say in what the project does for the most critical of things
- In addition to what a committer may do, a voter...
- Release a version of the project (special because a release cannot be undone)
- Setting the direction for the project
- Making significant changes
- A voter participates in the democratic process in the project when conflicts arise
- Quick note
- Other roles
- Not all projects are run the same (see committer vs voter above)
- Sometimes there are additional levels or roles involved
- There is no official way that must be done
- Foundation participation creates its own set of levels and responsibilities
- Legal or marketing
- Conference or event planning
- Board or membership
- Not all projects are run the same (see committer vs voter above)
- Obtain more merit
- Major takeaways
- This is all about building merit and credibility in the community
- As you do more, you are trusted more
- Think of it as: By acting responsible, you are given more responsibilities
- With a meritocracy, those who DO are given the most "weight"
- Trust comes because one has shown their investment
- This is all about building merit and credibility in the community
- User - An individual who installs and actively engages with the software being produced
- Contributor - An individual who provides input of any sort to the software being produced.
- Committer - An individual who has write access to the code repository
- Voter - An individual who has gained the ability to influence the direction of the project via binding votes