Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
How to open sourcean internal project
All Things Open Meetup@vmbrasseur
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 1
Pleasehold questionsfor the end
!
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 2
Setting up expectationsBy the end of this talk you'll have a very rough roadmap for how to release a project, but you'll have to do the driving yourself.
• One size does NOT fit all
• Won't give you a silver bullet
• Releasing the software is just the start
(community is important)
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 3
The TL;DR• Identify company goals & business needs
• Perform pre-release due diligence
• Define processes, procedures, policies, legal requirements (Governance)
• Choose & apply a license
• Intentionally & patiently invest
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 4
What even isOpen Source?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 5
Open Source Definition (OSD) 1
1. Free Redistribution 6. No Discrimination Against Fields of Endeavour
2. Source Code 7. Distribution of License
3. Derived Works 8. License Must not Be Specific to a Product
4. Integrity of the Author's Source Code 9. License Must not Restrict Other Software
5. No Discrimination Against Persons or Groups 10. License Must be Technology Neutral
1 https://opensource.org/osd-annotated
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 6
Why should you care about this?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 7
WhyYou Should CareAbout This
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 8
The OSD preventsthis problem
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 9
Open Source Initiative (OSI) Approved Licenses
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 10
opensource.org/licenses
11
Identifycompany goalsand business needs
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 12
It's OK to want to get something out of releasing this project as free/open source.
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 13
So……what does your company want to get out of it, anyway?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 14
Without a goalthis entire effortwill probably fail
…but you won't notice until it's too late
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 15
Perform pre-release due diligence
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 16
Review for time bombs !
• Credentials
• Trademarks
• Profanity or rudeness
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 17
Review for compliance with licenses
So, you want to release your project as FOSS, huh?
Do you know what free and open source softwareyour project relies upon?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 18
ClearlyDefined.io
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 19
Define processes, procedures, policies, legal requirements (Governance)@vmbrasseur • CC BY-SA • Image: NASA Commons on Flickr; Public Domain 20
To CLA/DCO?
Not to CLA/DCO?
Contributor License Agreement (CLA): A legal document intended to certify that the person sharing a contribution has the right to do so, and that once the contribution is accepted the project has a license to alter, distribute,and administer those contributions however it sees fit.
Developer Certificate of Origin (DCO): A confirmation by a developer that they have the right to share their contribution with the project. The developer provides their confirmation by "signing" their contribution using a -s flag on the git commit. The DCO is intended as a paperwork-free and low hassle alternative to the CLA.
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 21
Documentation
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 22
Issue templates?Styleguides?CI/CD?Website?Community chat/portal?Marketing?@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 23
Code of Conduct
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 24
CONTRIBUTORS file
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 25
Choose and apply a license
@vmbrasseur • CC BY-SA • Image: Internet Archive Book Images on Flickr; Public Domain 26
Psssst!
This should be the last thing you do,
not the first.
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 27
Many licenses, many options
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 28
"How about we just create our own new open source license?"
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 29
Please.
No.@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 30
It's only an Open Source license if it's been reviewed and
approved by the Open Source Initiative.
Otherwise it's just a sparkling end user license agreement
(EULA).@vmbrasseur • CC BY-SA • Bottle with Popping Cork emoji: EmojiTwo, CC BY 4.0 International 31
opensource.org/licenses
32
Applying a license
• LICENSE (or COPYING) in the repository
• Add copyright notice to each file
• Add license notice to each file
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 33
Maven.java
package org.apache.maven;
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 34
Release and Build Community
@vmbrasseur • CC BY-SA • Image: US National Archives on Flickr; Public Domain 35
Respect community expectations and autonomy
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 36
Trust == Benefits
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 37
Your company is now a community member,not a project dictator
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 38
Work in the open
• Accept contributions from the community
• Community driven roadmap
• Features developed in the open with the community
• Build processes operate in the open and are reproducible by others
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 39
Listen, collaborate
• Open decision making process and leadership
• Community must be a primary stakeholder, not simply a low-cost workforce
• Community participates in all elements of project governance
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 40
Be patient
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 41
Slides:
https://archive.org/details/ato2020meetup-internalproject
@vmbrasseur
fossforge.com