SlideShare a Scribd company logo
1 of 8
Download to read offline
Open-Source:
Community, Code and
Infrastructure
Matt Massie
University of California, Berkeley
AMPLab
The Fire Tetrahedron
The Open-Source Tetrahedron

CO

CODE
M

E

R
TU

M

UN

IT

Y

RA
NF
I

UC
TR
S
Community
• Community provides the “oxygen” your OSS fire needs
• New members can bring in enthusiasm and new ideas. Keep a list of “pick me up!”
issues for people who are want to chip in
• Have a welcome page for new developers that tells them what they need to know
about contributing -- source repo layout, code review process, etc.
• Setup a mailing list and encourage group decision making and collaboration
• The goal is allow people to take ownership -- requires letting go of control at some
level
• Hackathons, Meetups and Training Camps are a great way to build camaraderie,
grow your team and open communication lines
Code
• Be explicit and diligent about licensing -- it defines how you share your fire
• Be pragmatic and open to change
• Differentiate your “core” source and interfaces from auxiliary code and have a welldefined branching strategy for your source repo.
• Keep your documentation with your source. Provide example code.
• Provide utility classes that make testing easier and require tests with contributions
• Use a standard build environment for your project when possible -- makes it easier for
new developers to use, integrate with IDEs, release artifacts, etc
• Push code upstream!
Infrastructure (Testing)
• Use a Continuous Integration systems like Jenkins or Travis to test every
commit or pull request.
• Share your test infrastructure results publicly -- builds trust
• Don’t allow failing tests to continually fail. Find the root cause and fix it.
• As your project grows, separate out fast unit tests from longer end-to-end
tests.
Infrastructure (Sharing)
• Setup your test infrastructure to create (and optionally deploy) your binary
artifacts
• Consider technology like Docker (containers) or Vagrant (VMs)
• Write documentation with your audience in mind - have a deployment guide
and a developer’s guide
• Publish binary artifacts to well-known repositories, e.g. Maven Central, aptget/yum package repositories, Docker, etc -- increases your project visibility
• Use social media to get out the word about your software
Thank you. Have fun!

More Related Content

Viewers also liked

Communication journals and open access
Communication journals and open accessCommunication journals and open access
Communication journals and open accessErnest Abadal
 
Open access to your content
Open access to your contentOpen access to your content
Open access to your contentMary Molinaro
 
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...Robyn Hall
 
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...Helping Faculty Help Themselves: Open Access and Data Management Consulting A...
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...Spencer Keralis
 
Open access in chemistry: from ACS Spring Meeting 2011
Open access in chemistry: from ACS Spring Meeting 2011Open access in chemistry: from ACS Spring Meeting 2011
Open access in chemistry: from ACS Spring Meeting 2011ChemistryCentral
 
Open Access for Research: A Librarian Overview
Open Access for Research: A Librarian OverviewOpen Access for Research: A Librarian Overview
Open Access for Research: A Librarian OverviewPavlinka Kovatcheva
 
Open Access Journals: promoting best publishing practice and increasing disse...
Open Access Journals: promoting best publishing practice and increasing disse...Open Access Journals: promoting best publishing practice and increasing disse...
Open Access Journals: promoting best publishing practice and increasing disse...DOAJ (Directory of Open Access Journals)
 
The Open Access movement gains momentum – should young scientists care?
The Open Access movement gains momentum – should young scientists care?The Open Access movement gains momentum – should young scientists care?
The Open Access movement gains momentum – should young scientists care?Martin Ballaschk
 
SocArxiv - Philip Cohen - OpenCon 2016
SocArxiv - Philip Cohen - OpenCon 2016SocArxiv - Philip Cohen - OpenCon 2016
SocArxiv - Philip Cohen - OpenCon 2016Right to Research
 
A snapshot of open education initiatives & projects by the Open Education Con...
A snapshot of open education initiatives & projects by the Open Education Con...A snapshot of open education initiatives & projects by the Open Education Con...
A snapshot of open education initiatives & projects by the Open Education Con...Right to Research
 
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016Right to Research
 
Open Global Health - Peter Grabitz - OpenCon 2016
  Open Global Health - Peter Grabitz - OpenCon 2016  Open Global Health - Peter Grabitz - OpenCon 2016
Open Global Health - Peter Grabitz - OpenCon 2016Right to Research
 
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016Sharing is not a crime - Maria Juliana Soto - OpenCon 2016
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016Right to Research
 
Elsevier and STM
Elsevier  and STMElsevier  and STM
Elsevier and STMEternaljoy
 

Viewers also liked (20)

Demystifying open access
Demystifying open accessDemystifying open access
Demystifying open access
 
Tetrahedron
TetrahedronTetrahedron
Tetrahedron
 
Communication journals and open access
Communication journals and open accessCommunication journals and open access
Communication journals and open access
 
Open access to your content
Open access to your contentOpen access to your content
Open access to your content
 
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...
Digital Scholarship From the Bottom Up: The Library's Role in Open Access Stu...
 
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...Helping Faculty Help Themselves: Open Access and Data Management Consulting A...
Helping Faculty Help Themselves: Open Access and Data Management Consulting A...
 
Open access in chemistry: from ACS Spring Meeting 2011
Open access in chemistry: from ACS Spring Meeting 2011Open access in chemistry: from ACS Spring Meeting 2011
Open access in chemistry: from ACS Spring Meeting 2011
 
Open Access for Research: A Librarian Overview
Open Access for Research: A Librarian OverviewOpen Access for Research: A Librarian Overview
Open Access for Research: A Librarian Overview
 
Open Access-Service an der TU Berlin
Open Access-Service an der TU BerlinOpen Access-Service an der TU Berlin
Open Access-Service an der TU Berlin
 
Von A wie Artikel recherchieren bis U wie Upload im Repository: Umsetzung von...
Von A wie Artikel recherchieren bis U wie Upload im Repository: Umsetzung von...Von A wie Artikel recherchieren bis U wie Upload im Repository: Umsetzung von...
Von A wie Artikel recherchieren bis U wie Upload im Repository: Umsetzung von...
 
Open Access Journals: promoting best publishing practice and increasing disse...
Open Access Journals: promoting best publishing practice and increasing disse...Open Access Journals: promoting best publishing practice and increasing disse...
Open Access Journals: promoting best publishing practice and increasing disse...
 
Verbunddienstleistungen im Open-Access-Umfeld
Verbunddienstleistungen im Open-Access-UmfeldVerbunddienstleistungen im Open-Access-Umfeld
Verbunddienstleistungen im Open-Access-Umfeld
 
The Open Access movement gains momentum – should young scientists care?
The Open Access movement gains momentum – should young scientists care?The Open Access movement gains momentum – should young scientists care?
The Open Access movement gains momentum – should young scientists care?
 
Publishing in open access journals workshop 2016
Publishing in open access journals workshop 2016Publishing in open access journals workshop 2016
Publishing in open access journals workshop 2016
 
SocArxiv - Philip Cohen - OpenCon 2016
SocArxiv - Philip Cohen - OpenCon 2016SocArxiv - Philip Cohen - OpenCon 2016
SocArxiv - Philip Cohen - OpenCon 2016
 
A snapshot of open education initiatives & projects by the Open Education Con...
A snapshot of open education initiatives & projects by the Open Education Con...A snapshot of open education initiatives & projects by the Open Education Con...
A snapshot of open education initiatives & projects by the Open Education Con...
 
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016
OABOT: Making Wikipedia's Citations Accessible - Jake Orlowitz - OpenCon 2016
 
Open Global Health - Peter Grabitz - OpenCon 2016
  Open Global Health - Peter Grabitz - OpenCon 2016  Open Global Health - Peter Grabitz - OpenCon 2016
Open Global Health - Peter Grabitz - OpenCon 2016
 
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016Sharing is not a crime - Maria Juliana Soto - OpenCon 2016
Sharing is not a crime - Maria Juliana Soto - OpenCon 2016
 
Elsevier and STM
Elsevier  and STMElsevier  and STM
Elsevier and STM
 

Similar to Open source best practices (DARPA)

Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liuStreamNative
 
OpenChain at EOLE 2017
OpenChain at EOLE 2017OpenChain at EOLE 2017
OpenChain at EOLE 2017Shane Coughlan
 
Guide to open source
Guide to open source Guide to open source
Guide to open source Javier Perez
 
Equipment of Contribution
Equipment of ContributionEquipment of Contribution
Equipment of ContributionPhase2
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS Kenzan
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project ManagementSemen Arslan
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software disseminationAnubhav Jain
 
Experiences with the Apache Software Foundation
Experiences with the Apache Software Foundation Experiences with the Apache Software Foundation
Experiences with the Apache Software Foundation marpierc
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineersstefan vallin
 
Next generation repositories
Next generation repositoriesNext generation repositories
Next generation repositoriesPaul Walk
 
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
 
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUHow to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUCarlos Santana
 
French Scrum User Group @Google - The Agile and Open Source Way
French Scrum User Group @Google - The Agile and Open Source WayFrench Scrum User Group @Google - The Agile and Open Source Way
French Scrum User Group @Google - The Agile and Open Source WayAlexis Monville
 
FSOSS - Enter the 4th Dimension: Documentation
FSOSS - Enter the 4th Dimension: DocumentationFSOSS - Enter the 4th Dimension: Documentation
FSOSS - Enter the 4th Dimension: DocumentationBeth Agnew, CPTC™
 
OpenStack Documentation in the Open
OpenStack Documentation in the OpenOpenStack Documentation in the Open
OpenStack Documentation in the OpenAnne Gentle
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentationJavier Perez
 

Similar to Open source best practices (DARPA) (20)

Case study
Case studyCase study
Case study
 
Management de communaute
Management de communauteManagement de communaute
Management de communaute
 
Docs Like Code
Docs Like CodeDocs Like Code
Docs Like Code
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
OpenChain at EOLE 2017
OpenChain at EOLE 2017OpenChain at EOLE 2017
OpenChain at EOLE 2017
 
Guide to open source
Guide to open source Guide to open source
Guide to open source
 
Equipment of Contribution
Equipment of ContributionEquipment of Contribution
Equipment of Contribution
 
EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS EBSCO Digital Transformation with AWS
EBSCO Digital Transformation with AWS
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project Management
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
 
Experiences with the Apache Software Foundation
Experiences with the Apache Software Foundation Experiences with the Apache Software Foundation
Experiences with the Apache Software Foundation
 
DevOps for Network Engineers
DevOps for Network EngineersDevOps for Network Engineers
DevOps for Network Engineers
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 
Next generation repositories
Next generation repositoriesNext generation repositories
Next generation repositories
 
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 ?
 
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSUHow to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
How to contribute to Serverless Apache OpenWhisk OpenSource101 NCSU
 
French Scrum User Group @Google - The Agile and Open Source Way
French Scrum User Group @Google - The Agile and Open Source WayFrench Scrum User Group @Google - The Agile and Open Source Way
French Scrum User Group @Google - The Agile and Open Source Way
 
FSOSS - Enter the 4th Dimension: Documentation
FSOSS - Enter the 4th Dimension: DocumentationFSOSS - Enter the 4th Dimension: Documentation
FSOSS - Enter the 4th Dimension: Documentation
 
OpenStack Documentation in the Open
OpenStack Documentation in the OpenOpenStack Documentation in the Open
OpenStack Documentation in the Open
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 

Recently uploaded

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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
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
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 

Recently uploaded (20)

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
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
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
 
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
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Open source best practices (DARPA)

  • 1. Open-Source: Community, Code and Infrastructure Matt Massie University of California, Berkeley AMPLab
  • 4. Community • Community provides the “oxygen” your OSS fire needs • New members can bring in enthusiasm and new ideas. Keep a list of “pick me up!” issues for people who are want to chip in • Have a welcome page for new developers that tells them what they need to know about contributing -- source repo layout, code review process, etc. • Setup a mailing list and encourage group decision making and collaboration • The goal is allow people to take ownership -- requires letting go of control at some level • Hackathons, Meetups and Training Camps are a great way to build camaraderie, grow your team and open communication lines
  • 5. Code • Be explicit and diligent about licensing -- it defines how you share your fire • Be pragmatic and open to change • Differentiate your “core” source and interfaces from auxiliary code and have a welldefined branching strategy for your source repo. • Keep your documentation with your source. Provide example code. • Provide utility classes that make testing easier and require tests with contributions • Use a standard build environment for your project when possible -- makes it easier for new developers to use, integrate with IDEs, release artifacts, etc • Push code upstream!
  • 6. Infrastructure (Testing) • Use a Continuous Integration systems like Jenkins or Travis to test every commit or pull request. • Share your test infrastructure results publicly -- builds trust • Don’t allow failing tests to continually fail. Find the root cause and fix it. • As your project grows, separate out fast unit tests from longer end-to-end tests.
  • 7. Infrastructure (Sharing) • Setup your test infrastructure to create (and optionally deploy) your binary artifacts • Consider technology like Docker (containers) or Vagrant (VMs) • Write documentation with your audience in mind - have a deployment guide and a developer’s guide • Publish binary artifacts to well-known repositories, e.g. Maven Central, aptget/yum package repositories, Docker, etc -- increases your project visibility • Use social media to get out the word about your software