how to open source an internal project - internet archive
TRANSCRIPT
![Page 1: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/1.jpg)
How to open sourcean internal project
All Things Open Meetup@vmbrasseur
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 1
![Page 2: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/2.jpg)
Pleasehold questionsfor the end
!
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 2
![Page 3: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/3.jpg)
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
![Page 4: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/4.jpg)
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
![Page 5: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/5.jpg)
What even isOpen Source?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 5
![Page 6: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/6.jpg)
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
![Page 7: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/7.jpg)
Why should you care about this?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 7
![Page 8: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/8.jpg)
WhyYou Should CareAbout This
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 8
![Page 9: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/9.jpg)
The OSD preventsthis problem
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 9
![Page 10: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/10.jpg)
Open Source Initiative (OSI) Approved Licenses
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 10
![Page 11: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/11.jpg)
opensource.org/licenses
11
![Page 12: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/12.jpg)
Identifycompany goalsand business needs
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 12
![Page 13: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/13.jpg)
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
![Page 14: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/14.jpg)
So……what does your company want to get out of it, anyway?
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 14
![Page 15: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/15.jpg)
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
![Page 16: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/16.jpg)
Perform pre-release due diligence
@vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 16
![Page 17: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/17.jpg)
Review for time bombs !
• Credentials
• Trademarks
• Profanity or rudeness
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 17
![Page 18: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/18.jpg)
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
![Page 19: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/19.jpg)
ClearlyDefined.io
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 19
![Page 20: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/20.jpg)
Define processes, procedures, policies, legal requirements (Governance)@vmbrasseur • CC BY-SA • Image: NASA Commons on Flickr; Public Domain 20
![Page 21: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/21.jpg)
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
![Page 22: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/22.jpg)
Documentation
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 22
![Page 23: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/23.jpg)
Issue templates?Styleguides?CI/CD?Website?Community chat/portal?Marketing?@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 23
![Page 24: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/24.jpg)
Code of Conduct
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 24
![Page 25: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/25.jpg)
CONTRIBUTORS file
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 25
![Page 26: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/26.jpg)
Choose and apply a license
@vmbrasseur • CC BY-SA • Image: Internet Archive Book Images on Flickr; Public Domain 26
![Page 27: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/27.jpg)
Psssst!
This should be the last thing you do,
not the first.
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 27
![Page 28: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/28.jpg)
Many licenses, many options
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 28
![Page 29: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/29.jpg)
"How about we just create our own new open source license?"
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 29
![Page 30: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/30.jpg)
Please.
No.@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 30
![Page 31: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/31.jpg)
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
![Page 32: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/32.jpg)
opensource.org/licenses
32
![Page 33: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/33.jpg)
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
![Page 34: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/34.jpg)
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
![Page 35: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/35.jpg)
Release and Build Community
@vmbrasseur • CC BY-SA • Image: US National Archives on Flickr; Public Domain 35
![Page 36: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/36.jpg)
Respect community expectations and autonomy
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 36
![Page 37: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/37.jpg)
Trust == Benefits
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 37
![Page 38: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/38.jpg)
Your company is now a community member,not a project dictator
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 38
![Page 39: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/39.jpg)
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
![Page 40: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/40.jpg)
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
![Page 41: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/41.jpg)
Be patient
@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 41
![Page 42: How to open source an internal project - Internet Archive](https://reader035.vdocument.in/reader035/viewer/2022071613/6157d3b1ce5a9d02d46f861e/html5/thumbnails/42.jpg)
Slides:
https://archive.org/details/ato2020meetup-internalproject
@vmbrasseur
fossforge.com