- Common location for sharing code for Apache projects.
- Was jakarta commons (jakarta being the apache java project).
- Current mission: Provide a place for other ASF projects to
come together, collaborate and share
common code.
Does anyone not know what an open source project is?
Def'n. In general, open source refers to any program whose source code
is made available for use or modification as users or other developers see fit.
What are the benefits of open source software?
- Accommodation of a type of standardization.
- More eyes = fewer bugs.
- Long term support.
[Benedikt] Ritter's Law
Everything that is not part of our domain/business logic or the crazy legacy
systems we need to integrate has already been developed by somebody
much smarter than us....
Don't re-invent the wheel!
Why did I get involved?
- To keep my mathematics sharp(er).
- Career advancement?
- You're not constrained by timelines...you can get it right.
Ok, so what did you do to get involved?
- Pick a subject that you're passionate about.
- If it's on git check the stats page to see who
frequent committers are. For example consider
this github
contributors page
How to ask people what to work on?
- Find emails or mailing lists.
- Email someone directly.
How do I figure out what to work on?
- Tests, tests, and more tests.
- No one has 100% coverage, there's always room for test improvements.
- Find a ticket. My first major contribution other than tests was
LANG-1252.
- After 4 months of writing tests.
Becoming familiar with the community
- Read the documentation on all project aspects.
-
Don't be afraid to weigh in on mailing list discussions, but do be polite
- Try to stick to +/- 0 votes
On ASF Style voting.
- +1 - Yes.
- +0 - I'm ok with this, but I think it has issues.
- -0 - I'm ok with this, but I'd like to express a dissenting
opinion because I see potentially veto-worthy issues.
-
-1
- Veto.
This is used to gauge consensus, not really "majority rule." In fact with releases,
generally, any -1 vote cancels the release.
Regarding privileges
(commit, voting, establishing votes, ect.)
Clearly this is all community dependent, but commons (and Apache generally) has the following:
- user - anyone consuming the software.
- contributor - anyone who has made a contribution.
-
committer - anyone who can commit directly
- Can make any changes to site or component.
- Can present votes.
- Can perform releases (according to the process).
- committee member - has voting privileges
- Voting privileges particularly matter with releases, new components,
and such.
- Proposing new committers.
- committee chair - prepares the quarterly reports......ugh.
After I got commit rights.
- Asked Benedikt, and Gary what they thought I should do.
[text], a sandbox component, needed to be taken out.
- Read up on release process:
Releasing Components.
- Beta release.
- Two dot releases.
Other activities.
- Spoke on
[text] at ApacheCon:
video of presentation.
- Helped release
[fileupload] for security fixes.
- Helped to validate releases (non-binding).
- Voted into PMC in June 2017.
- Fixed
CVE-2017-12621
- Created commons-release-plugin
Questions?
Appetite for exploring commons?