Skip to content

Latest commit

 

History

History
112 lines (109 loc) · 6.01 KB

GettingInvolved.md

File metadata and controls

112 lines (109 loc) · 6.01 KB

Getting Involved

  • 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
    • 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
      • 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
    • 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
    • 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
  • 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

Vocabulary

  • 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