SlideShare a Scribd company logo
1 of 15
Application Development
            Jed Moffitt
          Lori Bowen Ayre



  Evergreen International Conference
         Indianapolis, Indiana
            April 26, 2012
How it works
1.   Verify no one else working on the idea
2.   Write requirements
3.   Find developer
4.   Introduce developer to EG dev community
5.   Flesh out dev requirements into dev plan
6.   Track progress
7.   “Accept” code from your developer
8.   Submit code to community devs
9.   Keep fingers crossed that new code will
     make it into the next release
Where to Find Developers
Companies doing development work on Evergreen already (besides Equinox of course!)
• http://edoceo.com – Main contact is David Busby who has been working with KCLS
• http://libtech-consult.com - Main contact is Kyle Banerjee who has been working with Michigan
   on NCIP support for Evergreen
• http://catalystitservices.com/ - Jeffrey Bond introduced himself on general mailing list.
Other people I’ve talked to:
• Thomas Berezansky (tsbere@mvlc.org)
• Scott Prater (sprater@gmail.com)
• Vicent Mas (uvemas@gmail.com)

Search resumes at http://Craigslist.org
Post job listing at http://perl.meetup.com/
               or http://mysql.meetup.com/
               or http://jobs.perl.com/.

Attend Open Source Bridge (Portland, June 26-29, 2012)
     or LITA National Forum (Columbus, OH October 4-7, 2012)
                                                 Photo source: http://techcrunch.com/2010/09/28/girls-in-blech/
Evergreen Developer Skill Set
Main programming languages
  –   Perl 5
  –   JavaScript
  –   PL/pgSQL and PL/Perl
  –   HTML and CSS
Other languages and
  frameworks used:
  –   C
  –   XUL
  –   Dojo 1.3 (framework)
  –   Template Toolkit
      Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:contributing_code
Are you sure this is a new idea?
• Share your development idea with the
  community via mailing lists (-dev and –gen)
• Search Launchpad – anything like it there
  already?
• Once you’ve verified that no one else is
  already working on this idea….proceed to next
  step.
Create a Requirements Document
DEVELOPMENT NAME
Background Information:
   [Library: Provide any background information
   about the existing software, library environment
   or situation that will help the developers
   understand the purpose of the development
   project]

Use Case:
  [Library: Describe the reasons this development is needed and how it will
  be used by the end users]
Requirements:
  [Library: Describe the functional requirements of the development in
  detail]
Getting your Developer Started
1. Review the Requirements Document
2. Provide any additional background info
     •   Explain what an ILS does?
     •   Review Use Cases
     •   Discuss acceptance testing tests and methodology
3. Facilitate introductions with EG developer
   community – find a mentor.
4. Have developer write a Development Plan based
   on your requirements document
5. Draft a Development Plan and Contract (based
   on Plan)
Requirements Document  Development Plan
                          Add these sections to your
                          Requirements Document:
                          Objects Affected:
   DEVELOPMENT NAME
                             [Library and Developer: List all
                   Use       Evergreen components that will
                   Case
                             be affected by code changes]
                          Acceptance Criteria:
   Requirements:            [Library and Developer: Describe
                            the tests that will be performed
                            on the supplied code to
                            determine that the project has
                            been successfully completed]
Copyright Issues
• Agree on how you’d like to copyright the code
• Valid options:
  – In developers name
  – In library’s name
  – In developer and library’s name
• Make sure all work is
  copyrighted as “GPL v2 or later”
Submit Development Plan to
                      Community
Once it is clear that the development idea is new, submit a Development Plan…

What Developer Needs to Do                     Example

Add the development information to the         http://evergreen-
wiki in the dev:proposal name space.           ils.org/dokuwiki/doku.php?id=dev:proposal:
                                               patron_statistical_categories

Add a Blueprint entry at Launchpad with the    https://blueprints.launchpad.net/evergreen/
basic overview. Link the Blueprint entry to    +spec/enhanced-patron-stistical-categories
the wiki page.
Send the basic overview and links to the       http://libmail.georgialibraries.org/pipermail/
Blueprint and wiki page to the Evergreen       open-ils-dev/2011-November/007700.html
development mailing list with a subject line
beginning with Feature Proposal.
Subscribe to your Development in
           Launchpad
Git 101
• Version control system
   for Evergreen code and documentation
• Git repositories contain chunks of code arranged in
  “branches”
• “Master” refers to the branches of code currently
  staged for the next release
• Developers make their work available as “topic
  branches” which can be pushed and pulled for
  testing against master

Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git with help from Galen Charlton.
Your Developer and Git
• Developers may have
  their own Git repository
  (e.g. GitHub)
• Testing of the code being
  developed for you will
  come from your
  developer’s “repo”
• When the code is
  approved by
  Library, developer
  submits code to Dev
  Community
Evergreen Code Repositories
• Evergreen Git Repositories
   – Evergreen http://git.evergreen-ils.org/?p=Evergreen.git;a=summary
   – OpenSRF http://git.evergreen-ils.org/?p=OpenSRF.git;a=summary
   – Documentation https://github.com/rsoulliere/Evergreen-DocBook
• Other public Git repositories
   –   Equinox
   –   Sitka
   –   MVLC
   –   Your developer!


          Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:code_repositories
Protocol for Contributing Code
1. Request working branch access from one of the Git
   server administrators
     •   Thomas Berezansky
     •   Galen Charlton
2. Publish working branch - raise awareness of available
   branch and link to Launchpad bug ticket for more
   info.
3. Dev’s mentor (and others in the Community) will
   sign off on changes, or make other final suggestions.
4. One of the core committers will eventually merge
   code into master.
5. Celebrate your contribution to Evergreen!

              Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git

More Related Content

What's hot

What's hot (20)

Gerrit Workshop
Gerrit WorkshopGerrit Workshop
Gerrit Workshop
 
Git Everyday
Git EverydayGit Everyday
Git Everyday
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
Do + ldo for developers(full)
Do + ldo for developers(full)Do + ldo for developers(full)
Do + ldo for developers(full)
 
Perforce Innovations Showcase 
Perforce Innovations Showcase Perforce Innovations Showcase 
Perforce Innovations Showcase 
 
Introducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQLIntroducing Gitora,the version control tool for PL/SQL
Introducing Gitora,the version control tool for PL/SQL
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...La importancia de versionar el código: GitHub, portafolio y recursos para est...
La importancia de versionar el código: GitHub, portafolio y recursos para est...
 
Source Control for the Oracle Database
Source Control for the Oracle DatabaseSource Control for the Oracle Database
Source Control for the Oracle Database
 
Git essentials
Git essentialsGit essentials
Git essentials
 
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan BouTyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
Tyrion Cannister Neural Styles by Dora Korpar and Siphan Bou
 
13 practical tips for writing secure golang applications
13 practical tips for writing secure golang applications13 practical tips for writing secure golang applications
13 practical tips for writing secure golang applications
 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Advanced Git: Functionality and Features
Advanced Git: Functionality and FeaturesAdvanced Git: Functionality and Features
Advanced Git: Functionality and Features
 
Gitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQLGitora, Version Control for PL/SQL
Gitora, Version Control for PL/SQL
 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
 
Devops interview-questions-PDF
Devops interview-questions-PDFDevops interview-questions-PDF
Devops interview-questions-PDF
 
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
Code Review with Git and Gerrit - Devoxx 2011 - Tools in Action - 2011-11-14
 

Similar to Guidelines for Working with Contract Developers in Evergreen

DockerCon14 Keynote
DockerCon14 KeynoteDockerCon14 Keynote
DockerCon14 Keynote
Docker, Inc.
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradle
Swain Loda
 

Similar to Guidelines for Working with Contract Developers in Evergreen (20)

Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Managing Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub EraManaging Open Source Software in the GitHub Era
Managing Open Source Software in the GitHub Era
 
Scaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOpsScaling Git for Enterprise DevOps
Scaling Git for Enterprise DevOps
 
Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
Javascript mynotes
Javascript mynotesJavascript mynotes
Javascript mynotes
 
Github
GithubGithub
Github
 
DockerCon14 Keynote
DockerCon14 KeynoteDockerCon14 Keynote
DockerCon14 Keynote
 
DockerCon Keynote Ben Golub
DockerCon Keynote Ben GolubDockerCon Keynote Ben Golub
DockerCon Keynote Ben Golub
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Github 101 An Adventurer's Guide To Open Source
Github 101   An Adventurer's Guide To Open SourceGithub 101   An Adventurer's Guide To Open Source
Github 101 An Adventurer's Guide To Open Source
 
Delivering Developer Tools at Scale
Delivering Developer Tools at ScaleDelivering Developer Tools at Scale
Delivering Developer Tools at Scale
 
Creating and Maintaining an Open Source Library
Creating and Maintaining an Open Source LibraryCreating and Maintaining an Open Source Library
Creating and Maintaining an Open Source Library
 
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
PHPFrameworkDay 2020 - Different software evolutions from Start till Release ...
 
"Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa..."Different software evolutions from Start till Release in PHP product" Oleksa...
"Different software evolutions from Start till Release in PHP product" Oleksa...
 
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor CommunityA Peek Behind the Curtain: Managing the Kubernetes Contributor Community
A Peek Behind the Curtain: Managing the Kubernetes Contributor Community
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
 
Build your android app with gradle
Build your android app with gradleBuild your android app with gradle
Build your android app with gradle
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
 
Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Leverage the power of Open Source in your company
Leverage the power of Open Source in your company
 
The Power of Azure DevOps
The Power of Azure DevOpsThe Power of Azure DevOps
The Power of Azure DevOps
 

More from loriayre

Top Tech Trends in Materials Handling Technology, Ayre, 2012
Top Tech Trends in Materials Handling Technology, Ayre, 2012Top Tech Trends in Materials Handling Technology, Ayre, 2012
Top Tech Trends in Materials Handling Technology, Ayre, 2012
loriayre
 
2011 os ol- edgy librarian speaker-notes
2011 os ol- edgy librarian speaker-notes2011 os ol- edgy librarian speaker-notes
2011 os ol- edgy librarian speaker-notes
loriayre
 

More from loriayre (20)

Keys to Self Service Success
Keys to Self Service SuccessKeys to Self Service Success
Keys to Self Service Success
 
Radicalize Your Library Catalog with Ebooks Your Patrons Can Keep Forever
Radicalize Your Library Catalog with Ebooks Your Patrons Can Keep ForeverRadicalize Your Library Catalog with Ebooks Your Patrons Can Keep Forever
Radicalize Your Library Catalog with Ebooks Your Patrons Can Keep Forever
 
On Creating a Public Library Consortia
On Creating a Public Library ConsortiaOn Creating a Public Library Consortia
On Creating a Public Library Consortia
 
The Skinny on RFID and Automated Materials Handling in Library
The Skinny on RFID and Automated Materials Handling in Library The Skinny on RFID and Automated Materials Handling in Library
The Skinny on RFID and Automated Materials Handling in Library
 
Optimizing Library Materials Handling on the Cheap: How to Lean Your Workflows
Optimizing Library Materials Handling on the Cheap: How to Lean Your WorkflowsOptimizing Library Materials Handling on the Cheap: How to Lean Your Workflows
Optimizing Library Materials Handling on the Cheap: How to Lean Your Workflows
 
Optimizing Materials Handling on the Cheap: How to Lean your Workflows
Optimizing Materials Handling on the Cheap: How to Lean your WorkflowsOptimizing Materials Handling on the Cheap: How to Lean your Workflows
Optimizing Materials Handling on the Cheap: How to Lean your Workflows
 
Cents and Sensibility: Will your Technology Pay off?
Cents and Sensibility: Will your Technology Pay off?Cents and Sensibility: Will your Technology Pay off?
Cents and Sensibility: Will your Technology Pay off?
 
RFID and the Metric System: Lessons to be Learned?
RFID and the Metric System: Lessons to be Learned?RFID and the Metric System: Lessons to be Learned?
RFID and the Metric System: Lessons to be Learned?
 
Open source and rfid update
Open source and rfid updateOpen source and rfid update
Open source and rfid update
 
Ayre discovery to delivery state of art and future of delivery final
Ayre discovery to delivery state of art and future of delivery finalAyre discovery to delivery state of art and future of delivery final
Ayre discovery to delivery state of art and future of delivery final
 
RFID: What is it? Where is it going? Is it right for you library?
RFID: What is it?  Where is it going? Is it right for you library?RFID: What is it?  Where is it going? Is it right for you library?
RFID: What is it? Where is it going? Is it right for you library?
 
Top Tech Trends in Materials Handling - For UW Madison Circulation Conference
Top Tech Trends in Materials Handling - For UW Madison Circulation ConferenceTop Tech Trends in Materials Handling - For UW Madison Circulation Conference
Top Tech Trends in Materials Handling - For UW Madison Circulation Conference
 
Materials Handling to Reduce Operating Costs
Materials Handling to Reduce Operating CostsMaterials Handling to Reduce Operating Costs
Materials Handling to Reduce Operating Costs
 
Sample Contract for Contracting with a Developer (Evergreen)
Sample Contract for Contracting with a Developer (Evergreen)Sample Contract for Contracting with a Developer (Evergreen)
Sample Contract for Contracting with a Developer (Evergreen)
 
Top Tech Trends in Materials Handling Technology, Ayre, 2012
Top Tech Trends in Materials Handling Technology, Ayre, 2012Top Tech Trends in Materials Handling Technology, Ayre, 2012
Top Tech Trends in Materials Handling Technology, Ayre, 2012
 
Top Tech Trends in Materials Handling
Top Tech Trends in Materials HandlingTop Tech Trends in Materials Handling
Top Tech Trends in Materials Handling
 
Open Source (ILS) and RFID Update
Open Source (ILS) and RFID UpdateOpen Source (ILS) and RFID Update
Open Source (ILS) and RFID Update
 
The ladies that changed the world - kudos11 ayre
The ladies that changed the world - kudos11 ayreThe ladies that changed the world - kudos11 ayre
The ladies that changed the world - kudos11 ayre
 
2011 os ol- edgy librarian speaker-notes
2011 os ol- edgy librarian speaker-notes2011 os ol- edgy librarian speaker-notes
2011 os ol- edgy librarian speaker-notes
 
Open Source ILS Add-Ons
Open Source ILS Add-OnsOpen Source ILS Add-Ons
Open Source ILS Add-Ons
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Guidelines for Working with Contract Developers in Evergreen

  • 1. Application Development Jed Moffitt Lori Bowen Ayre Evergreen International Conference Indianapolis, Indiana April 26, 2012
  • 2. How it works 1. Verify no one else working on the idea 2. Write requirements 3. Find developer 4. Introduce developer to EG dev community 5. Flesh out dev requirements into dev plan 6. Track progress 7. “Accept” code from your developer 8. Submit code to community devs 9. Keep fingers crossed that new code will make it into the next release
  • 3. Where to Find Developers Companies doing development work on Evergreen already (besides Equinox of course!) • http://edoceo.com – Main contact is David Busby who has been working with KCLS • http://libtech-consult.com - Main contact is Kyle Banerjee who has been working with Michigan on NCIP support for Evergreen • http://catalystitservices.com/ - Jeffrey Bond introduced himself on general mailing list. Other people I’ve talked to: • Thomas Berezansky (tsbere@mvlc.org) • Scott Prater (sprater@gmail.com) • Vicent Mas (uvemas@gmail.com) Search resumes at http://Craigslist.org Post job listing at http://perl.meetup.com/ or http://mysql.meetup.com/ or http://jobs.perl.com/. Attend Open Source Bridge (Portland, June 26-29, 2012) or LITA National Forum (Columbus, OH October 4-7, 2012) Photo source: http://techcrunch.com/2010/09/28/girls-in-blech/
  • 4. Evergreen Developer Skill Set Main programming languages – Perl 5 – JavaScript – PL/pgSQL and PL/Perl – HTML and CSS Other languages and frameworks used: – C – XUL – Dojo 1.3 (framework) – Template Toolkit Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:contributing_code
  • 5. Are you sure this is a new idea? • Share your development idea with the community via mailing lists (-dev and –gen) • Search Launchpad – anything like it there already? • Once you’ve verified that no one else is already working on this idea….proceed to next step.
  • 6. Create a Requirements Document DEVELOPMENT NAME Background Information: [Library: Provide any background information about the existing software, library environment or situation that will help the developers understand the purpose of the development project] Use Case: [Library: Describe the reasons this development is needed and how it will be used by the end users] Requirements: [Library: Describe the functional requirements of the development in detail]
  • 7. Getting your Developer Started 1. Review the Requirements Document 2. Provide any additional background info • Explain what an ILS does? • Review Use Cases • Discuss acceptance testing tests and methodology 3. Facilitate introductions with EG developer community – find a mentor. 4. Have developer write a Development Plan based on your requirements document 5. Draft a Development Plan and Contract (based on Plan)
  • 8. Requirements Document  Development Plan Add these sections to your Requirements Document: Objects Affected: DEVELOPMENT NAME [Library and Developer: List all Use Evergreen components that will Case be affected by code changes] Acceptance Criteria: Requirements: [Library and Developer: Describe the tests that will be performed on the supplied code to determine that the project has been successfully completed]
  • 9. Copyright Issues • Agree on how you’d like to copyright the code • Valid options: – In developers name – In library’s name – In developer and library’s name • Make sure all work is copyrighted as “GPL v2 or later”
  • 10. Submit Development Plan to Community Once it is clear that the development idea is new, submit a Development Plan… What Developer Needs to Do Example Add the development information to the http://evergreen- wiki in the dev:proposal name space. ils.org/dokuwiki/doku.php?id=dev:proposal: patron_statistical_categories Add a Blueprint entry at Launchpad with the https://blueprints.launchpad.net/evergreen/ basic overview. Link the Blueprint entry to +spec/enhanced-patron-stistical-categories the wiki page. Send the basic overview and links to the http://libmail.georgialibraries.org/pipermail/ Blueprint and wiki page to the Evergreen open-ils-dev/2011-November/007700.html development mailing list with a subject line beginning with Feature Proposal.
  • 11. Subscribe to your Development in Launchpad
  • 12. Git 101 • Version control system for Evergreen code and documentation • Git repositories contain chunks of code arranged in “branches” • “Master” refers to the branches of code currently staged for the next release • Developers make their work available as “topic branches” which can be pushed and pulled for testing against master Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git with help from Galen Charlton.
  • 13. Your Developer and Git • Developers may have their own Git repository (e.g. GitHub) • Testing of the code being developed for you will come from your developer’s “repo” • When the code is approved by Library, developer submits code to Dev Community
  • 14. Evergreen Code Repositories • Evergreen Git Repositories – Evergreen http://git.evergreen-ils.org/?p=Evergreen.git;a=summary – OpenSRF http://git.evergreen-ils.org/?p=OpenSRF.git;a=summary – Documentation https://github.com/rsoulliere/Evergreen-DocBook • Other public Git repositories – Equinox – Sitka – MVLC – Your developer! Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:code_repositories
  • 15. Protocol for Contributing Code 1. Request working branch access from one of the Git server administrators • Thomas Berezansky • Galen Charlton 2. Publish working branch - raise awareness of available branch and link to Launchpad bug ticket for more info. 3. Dev’s mentor (and others in the Community) will sign off on changes, or make other final suggestions. 4. One of the core committers will eventually merge code into master. 5. Celebrate your contribution to Evergreen! Source: http://evergreen-ils.org/dokuwiki/doku.php?id=dev:git

Editor's Notes

  1. Image source: http://indico.sagrid.ac.za/conferenceDisplay.py?confId=64
  2. Photo from : http://www.motivatingwords.net/7-steps-to-more-confidence