Early praise for Forge Your Future with Open Source This book has needed to exist for a long time. Newcomers to free and open source software now have a thorough guide to participation, and the author’s real-world experience shows on every page. Among the book’s strengths is that it not only explains what steps to take (and their variants), but also shows new contributors how things look from the project’s point of view. I hope and expect to see this book referred to by contributors to projects across the internet. ➤ Karl Fogel Partner, Open Tech Strategies, LLC If you ever wished you could have a compendium of HOWTO open source from one of the most knowledgeable folks in this biz, this is the book for you. Vicky is an absolute gem and has successfully distilled decades of knowledge into an easy-to- access format that should be required reading for anyone wanting to get into FOSS. ➤ Katie McLaughlin Director, Django Software Foundation, Python Software Foundation The next time someone tells me they want to learn more about open source, I’ll have the perfect book recommendation. Vicky has written the concise, practical guidebook we were missing. Forge Your Future with Open Source is an excellent quick-start guide for anyone stepping into the world of open source. ➤ Rikki Endsley Community Manager, Opensource.com, Red Hat Wonderfully readable, not only as a practical manual, but as an engaging and inspirational introduction to the world of free software, one practical and people- oriented example at a time. This is the book I wish I had read many years ago. ➤ Chris Lamb Debian Project Leader I’ve been working in open source for almost two decades. I went to Microsoft a decade ago to open-source .NET and C#. I wish I’d had a copy of VM’s book. This book offers valuable historical context and practical guidelines on how and when to work on an Open Source project. Forge Your Future with Open Source will no doubt empower the next generation of contributors and I’m envious of their bright futures! ➤ Scott Hanselman Program Partner Manager, Open Source .NET, Microsoft Vicky’s book is the “Goldilocks” guide to participating in open source: just the right information, with neither too much obscure detail nor too little actionable advice. I look forward to recommending it to others. ➤ Cat Allman Board Member, USENIX Contributing to a free software project is one of the best ways to help the free software movement, and this book is the comprehensive, self-contained guide you need to get started. Brasseur skillfully balances depth and breadth, homing in on key points around the mechanics of contributing as well as the oft-neglected meta areas of effective communication, licensing, and employment ramifications. ➤ John Sullivan Debian Developer Forge Your Future with Open Source goes where no book has gone before, clearly teaching how to get started as a contributor to open source, explaining why con- tributing is valuable and rewarding, and exploring the technical and social challenges both new and experienced contributors face, in an honest and practical way. ➤ Allison Randal Board Member, Open Source Initiative In her inimitable style, VM Brasseur brings a useful cheat sheet for contributing to free and open source software. There is probably something in this book for everyone to learn. ➤ Karen Sandler Co-Organizer, Outreachy Vicky unflaggingly reminds us that creating software is a liberal art—and the foundational art of Open Source is courtesy. If every reader were to practice some of the advice in this book, the software world would be a more welcoming place. ➤ Robert “r0ml” Lefkowitz Distinguished Engineer, ACM Open Source runs most of the technology world, from mobile phones to the inter- net. Despite it being open, there are many hidden rules in how teams work togeth- er. Vicky’s glorious book removes the arcane barriers surrounding this field and takes us along a journey into Open Source from the practice, the culture, the community, the history, the motivation, and even how we talk to each other. It is a book built on years of practice that not only needed to be written but deserves to be read by anyone wanting to contribute to this field. ➤ Simon Wardley Researcher, Leading Edge Forum We've left this page blank to make the page numbers the same in the electronic and paper books. We tried just leaving it out, but then people wrote us to ask about the missing pages. Anyway, Eddy the Gerbil wanted to say “hello.” Forge Your Future with Open Source Build Your Skills. Build Your Network. Build the Future of Technology. VM (Vicky) Brasseur The Pragmatic Bookshelf Raleigh, North Carolina Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf, PragProg and the linking g device are trade- marks of The Pragmatic Programmers, LLC. Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein. Our Pragmatic books, screencasts, and audio books can help you and your team create better software and have more fun. Visit us at https://pragprog.com. The team that produced this book includes: Publisher: Andy Hunt VP of Operations: Janet Furlow Managing Editor: Brian MacDonald Copy Editor: Paula Robertson Indexing: Potomac Indexing, LLC Layout: Gilson Graphics For sales, volume licensing, and support, please contact [email protected]. For international rights, please contact [email protected]. Copyright © 2018 The Pragmatic Programmers, LLC. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. ISBN-13: 978-1-68050-301-2 Book version: P1.0—October 2018 Contents Preface . . . . . . . . . . . . . . xi 1. The Foundations and Philosophies of Free and Open Source . . . . . . . . . . . . 1 It’s About the People 1 Why Learn About the Philosophies? 2 Free and Open Source Software Is Everywhere 2 Other Open Movements 4 The Origins of Free Software 5 The Origins of Open Source 6 Difference Between Free Software and Open Source 8 An Aside About Terminology 9 A Brief Introduction to Copyright and Licensing 10 Types of Free and Open Source Software Licenses 13 Now You Have a Strong Foundation 14 2. What Free and Open Source Can Do for You . . . . . 15 FOSS Benefits to Your Skillset 15 FOSS Benefits to Your Career 20 FOSS Benefits to Your Personal Network 22 Benefit from Preparation 23 3. Prepare to Contribute . . . . . . . . . . 25 Ways to Contribute 26 Common Project and Community Roles 27 Files You Should Know About Before You Start 29 Issue Tracking 34 Common Communication Routes 34 Contents • viii Contributor License Agreement/Developer Certificate of Origin 36 You’re Ready to Find a Project 37 4. Find a Project . . . . . . . . . . . . 39 Set Your Goals 39 Collect Your Requirements 42 Collect Candidate Projects 45 Select a Project 47 Select a Task 49 What Is “Success”? 51 5. Make a Contribution . . . . . . . . . . . 53 Prepare for Your Contribution 53 Craft Your Contribution 57 Gotchas 58 Clone and Branch 59 Atomic Commits 61 Test Your Contribution 62 Submit Your Contribution 64 Review, Revise, Collaborate 68 Tidy Up 70 Special Considerations for Windows-based Contributors 71 There’s More to Contributing Than Just Code 72 6. Make a Difference Without Making a Pull Request . . . 73 Review Contributions 74 Provide Testing 80 Triage Issues 83 Volunteer for the Less Interesting Things 85 There Are So Many Options 86 7. Interact with the Community . . . . . . . . 87 After Your First Contribution 87 Get Help 90 General Tips for Participating in Discussions 92 The Importance of Setting Up and Maintaining Expectations 94 Communication Channels and How to Use Them 95 Mailing List 96 Issue Tracker 102 Real-Time Chat 107