Guide To Successful Graduation at Apache

57
Guide to Successful Graduation at the ASF Martijn Dashorst

Transcript of Guide To Successful Graduation at Apache

Page 1: Guide To Successful Graduation at Apache

Guide to Successful Graduation at the ASF

Martijn Dashorst

Page 2: Guide To Successful Graduation at Apache

Me

• Member of the ASF

• On the Incubator PMC

• Chair of Apache Wicket

• Software engineer

• Dutch guy

• Fan of photo booth

Page 3: Guide To Successful Graduation at Apache

Get your project accepted into the incubator and graduate within a year

Graduate

Page 4: Guide To Successful Graduation at Apache

Participants

Page 5: Guide To Successful Graduation at Apache

You

• Want to join an existing community

• Want to grow your own community

• Considering entering the ASF Incubator

• You’re in the ASF Incubator

Page 6: Guide To Successful Graduation at Apache

The ASF

• US Non-Profit

• Completely volunteer organization

• ~2000 committers, 250 members

• 60 open source projects

Page 7: Guide To Successful Graduation at Apache

“provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based

development process, an open and pragmatic software license, and a desire to create high quality software that

leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather

a community of developers and users.”

The ASF

Page 8: Guide To Successful Graduation at Apache

The ASF“provides support for the Apache community of open-

source software projects. The Apache projects are characterized by a collaborative, consensus based

development process, an open and pragmatic software license, and a desire to create high quality software that

leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather

a community of developers and users.”

Page 9: Guide To Successful Graduation at Apache

Apache is interested only in healthy communities

Page 10: Guide To Successful Graduation at Apache

Time has demonstrated that open and diverse meritocratic communities are more robust and productive than more closed ones

Page 11: Guide To Successful Graduation at Apache

The incubator

Page 12: Guide To Successful Graduation at Apache

Non-Apache Project↓

Incubator↓

Apache Project

Page 13: Guide To Successful Graduation at Apache

Roles

• Incubator PMC

• Podling

• Podling PMC (PPMC)

• Champion

• Sponsor

• Mentor

• Committers

Page 14: Guide To Successful Graduation at Apache

The process

accept Incubate Projectgraduatewrite proposal

+1 +1

Page 15: Guide To Successful Graduation at Apache

Graduation is a democratic process – in the end it all boils down to a vote

+1

Page 16: Guide To Successful Graduation at Apache

Ask yourself

• Do we want to join Apache?

• Why?

Page 17: Guide To Successful Graduation at Apache

Search

Then begins the search for the sometimes elusive champion and sponsor.

Page 18: Guide To Successful Graduation at Apache

Proposal

Page 19: Guide To Successful Graduation at Apache

The proposal

The proposal captures the intent of the podling. It also checks for certain critical signs of successful projects

Page 20: Guide To Successful Graduation at Apache

Proposal and rationale

• What is it that the project will do?

• Why Apache?

Page 21: Guide To Successful Graduation at Apache

Current status

• Meritocracy

• Community

• Core developers

• Alignment

Page 22: Guide To Successful Graduation at Apache

Known risks

• Orphaned Projects

• Inexperience with Open Source

• Homogeneous developers

• Reliance on salaried developers

• Relationships with other Apache products

Page 23: Guide To Successful Graduation at Apache

Important details

• IP handling

• Dependencies

• Crypto

Page 24: Guide To Successful Graduation at Apache

Required resources

• Mailing lists (dev, commit, private, user)

• Subversion repository

• Issue tracker (JIRA/Bugzilla)

• Champion + Sponsor

• Mentors

Page 25: Guide To Successful Graduation at Apache

Discuss

Revise

Vote

Page 26: Guide To Successful Graduation at Apache

Incubation

Page 27: Guide To Successful Graduation at Apache

• Setting up camp

• Filing required paperwork

• Legal vetting of code

• Growing your community

• Releasing your code

• Preparing for graduation

Incubation involves

Page 28: Guide To Successful Graduation at Apache

Setting up camp

Upon a successful vote, the Apache Infrastructure team will setup a website, mailing lists, subversion repository, wiki and issue trackers.

Page 29: Guide To Successful Graduation at Apache

Exit criteria

• open, diverse, meritocratic community

• legally sound code base

• work the Apache Way™

Page 30: Guide To Successful Graduation at Apache

Required paperwork

• Before accounts can be created, each contributor needs to send in an Individual CLA, a Corporate CLA, or a Software Grant

• Before the code can be released all paperwork has to be completed

Page 31: Guide To Successful Graduation at Apache

Podling Status file

• Lists all legal issues that need resolving

• Trademark, naming and branding

• Lists PPMC and committers

• Lists resources (issues, wiki, site, lists)

• Check list

Page 32: Guide To Successful Graduation at Apache

Reporting to the Incubator PMC

• first 3 months, then quarterly

• include a one liner to identify your project

• include your status regarding exit criteria

• report is sent to the board

Page 33: Guide To Successful Graduation at Apache

Growing your community

• Growing a community is hard work

• Add committers

• Add PPMC members

Page 34: Guide To Successful Graduation at Apache

Adding a committer1. DISCUSS on podling-private@

2. VOTE on podling-private@, notify Incubator PMC (private@)

3. VOTE on private@ by Incubator PMC

4. Welcome the newly appointed committer on public dev list

5. Make sure committer submits CLA

Page 35: Guide To Successful Graduation at Apache

Adding a PPMC member

• DISCUSS on podling-private@

• VOTE on podling-private@, notify Incubator PMC (private@)

• Welcome the new PPMC member on public dev list

Page 36: Guide To Successful Graduation at Apache

Vetting your code

• Apply Apache license header to all source files

• Remove all license incompatible source files and dependencies

• Provide proper attribution in NOTICE files

• List 3rd party dependencies’ licenses

• Establish the proper crypto export notifications

Page 37: Guide To Successful Graduation at Apache

Releasing your code

Because a podling release is an Apache release, policy must be followed. Because the podling is in the Incubator, additional Incubator policy must be followed.

Page 38: Guide To Successful Graduation at Apache

Release rules

• All code must be covered by a CLA or Software Grant

• All artifacts must be signed

• All artifacts must have LICENSE and NOTICE files in them

• All source files must have Apache 2.0 license header

Page 39: Guide To Successful Graduation at Apache

Incubator release rules

• All artifacts must have a disclaimer in them (DISCLAIMER)

• All artifacts must include ‘incubating’ in their name

Page 40: Guide To Successful Graduation at Apache

DisclaimerApache "Podling-Name" is an effort undergoing

incubation at The Apache Software Foundation (ASF), sponsored by "Sponsor-Name". Incubation is required of

all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While

incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully

endorsed by the ASF.

Page 41: Guide To Successful Graduation at Apache

Release process

• Build and sign the artifacts

• Create release tag

• VOTE on your dev list

• VOTE on general@ Incubator list

• Requires at least 3 binding PMC votes

Page 42: Guide To Successful Graduation at Apache

Workingthe Apache Way™

• Recruit users, developers, committers and PMCers

• Take responsible collective action

• disagree in public without destroying personal relationships

• create an open, positive and inclusive atmosphere on the mailing lists

Page 43: Guide To Successful Graduation at Apache

Graduation

Page 44: Guide To Successful Graduation at Apache

Graduation check list

• Complete all tasks in status file

• Demonstrate ability to create Apache releases

• Demonstrate community readiness

• Ensure mentors and Incubator PMC have no remaining issues

• Pick graduation members and Chair

Page 45: Guide To Successful Graduation at Apache

Graduation destination

• Top level project (TLP)

• Sub project

Page 46: Guide To Successful Graduation at Apache

Prepare a resolutionEstablish Apache Cayenne Project

WHEREAS, the Board of Directors deems it to be in the bestinterests of the Foundation and consistent with the Foundation'spurpose to establish a Project Management Committee charged withthe creation and maintenance of open-source software related toobject-relational mapping (ORM) and remoting services, fordistribution at no charge to the public.

NOW, THEREFORE, BE IT RESOLVED, that a Project ManagementCommittee (PMC), to be known as the "The Apache Cayenne Project",be and hereby is established pursuant to Bylaws of theFoundation; and be it further

RESOLVED, that The Apache Cayenne Project be and hereby isresponsible for the creation and maintenance of a softwareproject related to object-relational mapping (ORM) and remotingservices; and be it further

RESOLVED, that the office of "Vice President, Cayenne" be and

Page 47: Guide To Successful Graduation at Apache
Page 48: Guide To Successful Graduation at Apache

Life after graduation

Page 49: Guide To Successful Graduation at Apache

Post graduation tasks

• Work with Infrastructure to transfer your project’s resources to the final destination: top level project or sub project

Page 50: Guide To Successful Graduation at Apache

Post graduation tasks

• Move status file to graduated projects

• Finalize the status file

• Clean up incubator resources

Page 51: Guide To Successful Graduation at Apache

Continue working like you did in the Incubator – it’s the Apache Way™

Page 52: Guide To Successful Graduation at Apache

• First 3 months report to board, then quarterly

• Adding committer is PMC responsibility

• Adding PMC member needs acknowledgement of board

• Releases still need to comply with Apache Policy, but not anymore with Incubator policy

Page 53: Guide To Successful Graduation at Apache

Top 10 tips for successful graduation

Page 54: Guide To Successful Graduation at Apache

Top 10 graduation tips

10. Read all of Incubator site

9. Don’t be afraid to use your mentors

8. Update your status page regularly

7. Send your status reports on time

6. Read and ask questions on general@

Page 55: Guide To Successful Graduation at Apache

Top 10 graduation tips

5. Get involved in the Apache Software Foundation

4. Go forth and diversify

3. Commit early and often in the Apache repository

2. Build a release candidate ASAP and use RAT

1. Communicate in the open – use your dev@

Page 56: Guide To Successful Graduation at Apache

HAVE FUN!

Page 57: Guide To Successful Graduation at Apache

Questions?