SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
THE EQUIPMENT OF CONTRIBUTION
                                   Chris Johnson
                                 Phase2 Technology
                          cjohnson@phase2technology.com




There are many ways to release your code, from ancient (in internet
terms) methods like posting a bundle to a news group or a mailing list
to more modern methods involving hosting code repositories, issue
trackers, wikis, mailing lists, etc. The central thing to remember when
deciding what tools and infrastructure you need when releasing an
open source project is
CONTRIBUTION IS COMMUNICATION
                 • Pick tools that support the type of communication you
                   want to have


                                       New Project   Existing Project

                         Publication

                        Conversation




Contribution is communication. The types of tools that you need and
the success of your project relate directly to the type of communication
you want to have with your users.

The tools you’ll use vary between new and existing projects. And the
tools for publication are much simpler than those that allow for a
conversation with others about your code.

But one of the essential aspects of open source is that a large part of
the value comes from the conversation and communication.
ESSENTIAL COMMUNICATION TOOLS
                       • Version control
                       • Issue Reporting and Tracking
                       • Documentation and Support
                       • Delegation




All projects have some essential tools to help facilitate conversation at different levels
(and note that developer and user can have quite a lot of overlap)

Version control - who said what at the code level - how developers talk to each other
but don’t overlook version control for documentation and non code based assets
Issue reporting and tracking - identification and prioritization of errors, roadmap
development
Documentation and support - helps users help themselves, reduces communication
burden on project maintainers
Delegation - other tools need to support this so that others can be given more
contribution capabilities to distribute workload
EXISTING PROJECT
                                                  • Problem Solved
                                                      • Get access to existing infrastructure
                                                  • Three Examples
                                                      • Linux, Drupal, Jenkins
                                                  • Be Aware of Licensing




Let’s talk about the easy stuff first. An existing project will likely already have code repositories, issue tracking and documentation infrastructure in place and it’s just a matter of learning how the
project works and asking the right person for the access you need. By the time you have contributions for an existing project you probably already know much of this.

As an example, the three projects listed have fairly different contribution mechanisms. For the linux kernel this is generally done through sets of discussions on a mailing list along with attached
patches. Trusted maintainers patch their repositories and then these flow to the main repository from which new distributions are released.

For Drupal, anyone can create an account on Drupal.org which lets them create a sandbox project, participate in issue queues (where patches are posted) and edit documentation. After going through
an approval process you can make sandboxed code an official contributed project.

Jenkins, which is a project that creates a continuous integration server, access to the code on GitHub is requested on the mailing list. Generally to transfer an existing GitHub repo containing your
contributions to the main Jenkins account. Access to the wiki and Jira is done via self service account creation.

Be aware that sometimes using a project’s infrastructure means using their licensing. If that is not acceptable, then your contributions should be considered a new project.
NEW PROJECT
                       • Conversation or Publication
                       • Be clear with users which you are doing




When you are starting one from scratch you need to decide whether you are trying to start a
conversation or just publish some code.

Publication is the most simple, you might not even need any new infrastructure as you can
place a download on your existing web site or post it to a mailing list.

It is also important to be clear about what you are doing, especially in the publication model.
The default stance with open source is that by making your code publicly available there is
some minimum level of involvement you would like to have with those trying to use your
code or contribute back to it. If you just want someone to take it as a starting point then you
should be very clear about that.
PUBLICATION
                   • Use systems that allow projects to evolve
                     • Distributed version control
                     • Some hosting options
                       •   SourceForge

                       •   Google Code

                       •   GitHub

                       •   BitBucket




Even if you want to use a publication model, I would encourage you to do it in a
way that a conversation can grow without your involvement. You can do this by
using tools where people can easily copy and extend what you have produced.

I’ve listed some hosting options that are particularly suited to open source,
there are a plethora of others. Some of these are particularly well suited to
turning a publication model into a conversation model (GitHub for example
allows easy forking of repositories so someone could take your code, extend it
and start a community around it if they had the desire). While this is possible
with any publication model, it’s easier on some systems than others.
MAKE IT EASY TO START
                           • Documentation, Documentation, Documentation
                           • Answer the right questions for new people
                              •   What does this do?

                              •   How do I get it?

                              •   How do I use it?

                              •   How do I improve this and contribute back?


                           • Publicize availability
                              • Blog Posts, Press Releases, Twitter, Conferences,
                                Journals Articles, Civic Commons

Regardless of what type of communication you want it’s critical to make it easy to start. Which usually involves
mainly documentation: examples, with screenshots, screencasts, tutorials, walk throughs, etc. The lower the
barrier between someone seeing your project, figuring out that it would be useful for them and downloading it
and having it running the better. And as soon as they’ve done that, you want to be sure they know how to
contribute back when they make improvements.

Especially for new projects don’t neglect letting the world know it’s out there. Go where people who would find
your project useful hang out and tell them about it.

Code for america has sponsored a project called Civic Commons especially for documenting and publicizing
projects that might be of interest to government. For those that might be in the DoD there’s Forge.mil,
NEW PROJECT TOOLS
                   • Version control
                   • Issue Reporting and Tracking
                   • Documentation
                   • Delegation
                   • Evangelism




When you are evaluating where to host your project, consider that you
are going to need at minimum some of the following capabilities:

Version control - to track code evolution
Issue reporting and tracking - bug tracking system
Documentation - wiki, forums, mailing lists
Delegation - ways to let trusted users join and take on some of the
workload of a project
Evangelism - not necessarily a tool of your hosting but all projects need
some sort of promotion so that people know they exist

Contenu connexe

Similaire à Equipment of Contribution

How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!Pradeep Singh
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liuStreamNative
 
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationJulian Werba
 
Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?Stefane Fermigier
 
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...WSO2
 
Marc Canter talk
Marc Canter talkMarc Canter talk
Marc Canter talkMarc Canter
 
Guide to open source
Guide to open source Guide to open source
Guide to open source Javier Perez
 
Essentials of Open Source Documentation
Essentials of Open Source DocumentationEssentials of Open Source Documentation
Essentials of Open Source DocumentationMoi Borah
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open SourceAmol A. Sale
 
SFO15-TR1: The Philosophy of Open Source Development
SFO15-TR1: The Philosophy of Open Source DevelopmentSFO15-TR1: The Philosophy of Open Source Development
SFO15-TR1: The Philosophy of Open Source DevelopmentLinaro
 
Open Source as an Instrument of Public Policy - Presented by Brian Behlendor
Open Source as an Instrument of Public Policy - Presented by Brian BehlendorOpen Source as an Instrument of Public Policy - Presented by Brian Behlendor
Open Source as an Instrument of Public Policy - Presented by Brian BehlendorAcquia
 
Open public 1.0 drupal Government Days
Open public 1.0   drupal Government DaysOpen public 1.0   drupal Government Days
Open public 1.0 drupal Government DaysPhase2
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?DuraSpace
 
Open source best practices (DARPA)
Open source best practices (DARPA)Open source best practices (DARPA)
Open source best practices (DARPA)Matt Massie
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupBen VanEvery
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupChris Aniszczyk
 

Similaire à Equipment of Contribution (20)

How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
InnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaborationInnerSourcing - Worldwide enterprise development teams collaboration
InnerSourcing - Worldwide enterprise development teams collaboration
 
Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?Créer une communauté open source: pourquoi ? comment ?
Créer une communauté open source: pourquoi ? comment ?
 
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
[Workshop] Building an Integration Agile Digital Enterprise with Open Source ...
 
Marc Canter talk
Marc Canter talkMarc Canter talk
Marc Canter talk
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Essentials of Open Source Documentation
Essentials of Open Source DocumentationEssentials of Open Source Documentation
Essentials of Open Source Documentation
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
SFO15-TR1: The Philosophy of Open Source Development
SFO15-TR1: The Philosophy of Open Source DevelopmentSFO15-TR1: The Philosophy of Open Source Development
SFO15-TR1: The Philosophy of Open Source Development
 
Open Source as an Instrument of Public Policy - Presented by Brian Behlendor
Open Source as an Instrument of Public Policy - Presented by Brian BehlendorOpen Source as an Instrument of Public Policy - Presented by Brian Behlendor
Open Source as an Instrument of Public Policy - Presented by Brian Behlendor
 
Open public 1.0 drupal Government Days
Open public 1.0   drupal Government DaysOpen public 1.0   drupal Government Days
Open public 1.0 drupal Government Days
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?
 
Open source best practices (DARPA)
Open source best practices (DARPA)Open source best practices (DARPA)
Open source best practices (DARPA)
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 
intro to DevOps
intro to DevOpsintro to DevOps
intro to DevOps
 
Oscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo groupOscon 2016: open source lessons from the todo group
Oscon 2016: open source lessons from the todo group
 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
 
Docs Like Code
Docs Like CodeDocs Like Code
Docs Like Code
 
Making Gentoo Tick
Making Gentoo TickMaking Gentoo Tick
Making Gentoo Tick
 

Plus de Phase2

Phase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2
 
A Modern Digital Experience Platform
A Modern Digital Experience PlatformA Modern Digital Experience Platform
A Modern Digital Experience PlatformPhase2
 
Beyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformBeyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformPhase2
 
Omnichannel For Government
Omnichannel For Government Omnichannel For Government
Omnichannel For Government Phase2
 
Bad camp2016 Release Management On Live Websites
Bad camp2016 Release Management On Live WebsitesBad camp2016 Release Management On Live Websites
Bad camp2016 Release Management On Live WebsitesPhase2
 
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8Phase2
 
The Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkThe Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkPhase2
 
Site building with end user in mind
Site building with end user in mindSite building with end user in mind
Site building with end user in mindPhase2
 
Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Phase2
 
Performance Profiling Tools and Tricks
Performance Profiling Tools and TricksPerformance Profiling Tools and Tricks
Performance Profiling Tools and TricksPhase2
 
NORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftNORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftPhase2
 
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapeDrupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapePhase2
 
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...Phase2
 
Site Building with the End User in Mind
Site Building with the End User in MindSite Building with the End User in Mind
Site Building with the End User in MindPhase2
 
The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"Phase2
 
User Testing For Humanitarian ID App
User Testing For Humanitarian ID AppUser Testing For Humanitarian ID App
User Testing For Humanitarian ID AppPhase2
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyPhase2
 
The New Design Workflow
The New Design WorkflowThe New Design Workflow
The New Design WorkflowPhase2
 
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Phase2
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Phase2
 

Plus de Phase2 (20)

Phase2 Health and Wellness Brochure
Phase2 Health and Wellness BrochurePhase2 Health and Wellness Brochure
Phase2 Health and Wellness Brochure
 
A Modern Digital Experience Platform
A Modern Digital Experience PlatformA Modern Digital Experience Platform
A Modern Digital Experience Platform
 
Beyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience PlatformBeyond websites: A Modern Digital Experience Platform
Beyond websites: A Modern Digital Experience Platform
 
Omnichannel For Government
Omnichannel For Government Omnichannel For Government
Omnichannel For Government
 
Bad camp2016 Release Management On Live Websites
Bad camp2016 Release Management On Live WebsitesBad camp2016 Release Management On Live Websites
Bad camp2016 Release Management On Live Websites
 
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
A FUTURE-FOCUSED DIGITAL PLATFORM WITH DRUPAL 8
 
The Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 TalkThe Future of Digital Storytelling - Phase2 Talk
The Future of Digital Storytelling - Phase2 Talk
 
Site building with end user in mind
Site building with end user in mindSite building with end user in mind
Site building with end user in mind
 
Fields, entities, lists, oh my!
Fields, entities, lists, oh my!Fields, entities, lists, oh my!
Fields, entities, lists, oh my!
 
Performance Profiling Tools and Tricks
Performance Profiling Tools and TricksPerformance Profiling Tools and Tricks
Performance Profiling Tools and Tricks
 
NORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShiftNORTH CAROLINA Open Source, OpenPublic, OpenShift
NORTH CAROLINA Open Source, OpenPublic, OpenShift
 
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital LandscapeDrupal 8 for Enterprise: D8 in a Changing Digital Landscape
Drupal 8 for Enterprise: D8 in a Changing Digital Landscape
 
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...Riding the Drupal Wave:  The Future for Drupal and Open Source Content Manage...
Riding the Drupal Wave: The Future for Drupal and Open Source Content Manage...
 
Site Building with the End User in Mind
Site Building with the End User in MindSite Building with the End User in Mind
Site Building with the End User in Mind
 
The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"The Yes, No, and Maybe of "Can We Build That With Drupal?"
The Yes, No, and Maybe of "Can We Build That With Drupal?"
 
User Testing For Humanitarian ID App
User Testing For Humanitarian ID AppUser Testing For Humanitarian ID App
User Testing For Humanitarian ID App
 
Redhat.com: An Architectural Case Study
Redhat.com: An Architectural Case StudyRedhat.com: An Architectural Case Study
Redhat.com: An Architectural Case Study
 
The New Design Workflow
The New Design WorkflowThe New Design Workflow
The New Design Workflow
 
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
Drupal 8, Don’t Be Late (Enterprise Orgs, We’re Looking at You)
 
Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8Memorial Sloan Kettering: Adventures in Drupal 8
Memorial Sloan Kettering: Adventures in Drupal 8
 

Dernier

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 

Dernier (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 

Equipment of Contribution

  • 1. THE EQUIPMENT OF CONTRIBUTION Chris Johnson Phase2 Technology cjohnson@phase2technology.com There are many ways to release your code, from ancient (in internet terms) methods like posting a bundle to a news group or a mailing list to more modern methods involving hosting code repositories, issue trackers, wikis, mailing lists, etc. The central thing to remember when deciding what tools and infrastructure you need when releasing an open source project is
  • 2. CONTRIBUTION IS COMMUNICATION • Pick tools that support the type of communication you want to have New Project Existing Project Publication Conversation Contribution is communication. The types of tools that you need and the success of your project relate directly to the type of communication you want to have with your users. The tools you’ll use vary between new and existing projects. And the tools for publication are much simpler than those that allow for a conversation with others about your code. But one of the essential aspects of open source is that a large part of the value comes from the conversation and communication.
  • 3. ESSENTIAL COMMUNICATION TOOLS • Version control • Issue Reporting and Tracking • Documentation and Support • Delegation All projects have some essential tools to help facilitate conversation at different levels (and note that developer and user can have quite a lot of overlap) Version control - who said what at the code level - how developers talk to each other but don’t overlook version control for documentation and non code based assets Issue reporting and tracking - identification and prioritization of errors, roadmap development Documentation and support - helps users help themselves, reduces communication burden on project maintainers Delegation - other tools need to support this so that others can be given more contribution capabilities to distribute workload
  • 4. EXISTING PROJECT • Problem Solved • Get access to existing infrastructure • Three Examples • Linux, Drupal, Jenkins • Be Aware of Licensing Let’s talk about the easy stuff first. An existing project will likely already have code repositories, issue tracking and documentation infrastructure in place and it’s just a matter of learning how the project works and asking the right person for the access you need. By the time you have contributions for an existing project you probably already know much of this. As an example, the three projects listed have fairly different contribution mechanisms. For the linux kernel this is generally done through sets of discussions on a mailing list along with attached patches. Trusted maintainers patch their repositories and then these flow to the main repository from which new distributions are released. For Drupal, anyone can create an account on Drupal.org which lets them create a sandbox project, participate in issue queues (where patches are posted) and edit documentation. After going through an approval process you can make sandboxed code an official contributed project. Jenkins, which is a project that creates a continuous integration server, access to the code on GitHub is requested on the mailing list. Generally to transfer an existing GitHub repo containing your contributions to the main Jenkins account. Access to the wiki and Jira is done via self service account creation. Be aware that sometimes using a project’s infrastructure means using their licensing. If that is not acceptable, then your contributions should be considered a new project.
  • 5. NEW PROJECT • Conversation or Publication • Be clear with users which you are doing When you are starting one from scratch you need to decide whether you are trying to start a conversation or just publish some code. Publication is the most simple, you might not even need any new infrastructure as you can place a download on your existing web site or post it to a mailing list. It is also important to be clear about what you are doing, especially in the publication model. The default stance with open source is that by making your code publicly available there is some minimum level of involvement you would like to have with those trying to use your code or contribute back to it. If you just want someone to take it as a starting point then you should be very clear about that.
  • 6. PUBLICATION • Use systems that allow projects to evolve • Distributed version control • Some hosting options • SourceForge • Google Code • GitHub • BitBucket Even if you want to use a publication model, I would encourage you to do it in a way that a conversation can grow without your involvement. You can do this by using tools where people can easily copy and extend what you have produced. I’ve listed some hosting options that are particularly suited to open source, there are a plethora of others. Some of these are particularly well suited to turning a publication model into a conversation model (GitHub for example allows easy forking of repositories so someone could take your code, extend it and start a community around it if they had the desire). While this is possible with any publication model, it’s easier on some systems than others.
  • 7. MAKE IT EASY TO START • Documentation, Documentation, Documentation • Answer the right questions for new people • What does this do? • How do I get it? • How do I use it? • How do I improve this and contribute back? • Publicize availability • Blog Posts, Press Releases, Twitter, Conferences, Journals Articles, Civic Commons Regardless of what type of communication you want it’s critical to make it easy to start. Which usually involves mainly documentation: examples, with screenshots, screencasts, tutorials, walk throughs, etc. The lower the barrier between someone seeing your project, figuring out that it would be useful for them and downloading it and having it running the better. And as soon as they’ve done that, you want to be sure they know how to contribute back when they make improvements. Especially for new projects don’t neglect letting the world know it’s out there. Go where people who would find your project useful hang out and tell them about it. Code for america has sponsored a project called Civic Commons especially for documenting and publicizing projects that might be of interest to government. For those that might be in the DoD there’s Forge.mil,
  • 8. NEW PROJECT TOOLS • Version control • Issue Reporting and Tracking • Documentation • Delegation • Evangelism When you are evaluating where to host your project, consider that you are going to need at minimum some of the following capabilities: Version control - to track code evolution Issue reporting and tracking - bug tracking system Documentation - wiki, forums, mailing lists Delegation - ways to let trusted users join and take on some of the workload of a project Evangelism - not necessarily a tool of your hosting but all projects need some sort of promotion so that people know they exist