42
How to open source an internal project All Things Open Meetup @vmbrasseur @vmbrasseur • CC BY-SA • Image: Library of Congress on Flickr; Public Domain 1

How to open source an internal project - Internet Archive

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: How to open source an internal project - Internet Archive

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

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

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

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

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

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

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

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

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

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

opensource.org/licenses

11

Page 12: How to open source an internal project - Internet Archive

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

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

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

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

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

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

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

ClearlyDefined.io

@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 19

Page 20: How to open source an internal project - Internet Archive

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

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

Documentation

@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 22

Page 23: How to open source an internal project - Internet Archive

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

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

CONTRIBUTORS file

@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 25

Page 26: How to open source an internal project - Internet Archive

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

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

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

"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

Please.

No.@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 30

Page 31: How to open source an internal project - Internet Archive

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

opensource.org/licenses

32

Page 33: How to open source an internal project - Internet Archive

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

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

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

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

Trust == Benefits

@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 37

Page 38: How to open source an internal project - Internet Archive

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

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

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

Be patient

@vmbrasseur • CC BY-SA • https://archive.org/details/ato2020meetup-internalproject 41

Page 42: How to open source an internal project - Internet Archive

Slides:

https://archive.org/details/ato2020meetup-internalproject

@vmbrasseur

[email protected]

fossforge.com