SlideShare une entreprise Scribd logo
1  sur  17
Developer
guidelines for
using third-party
code



Mark Aberdour
Head of Learning Platforms
Why it matters
It’s good to use code found on the web. It can be very robust and
well tested, and generally makes a programmer’s life easier.
However, third party code comes with some licensing dangers
which can seriously impact both employee and employer if the law
is broken.
While most code libraries are fine to use, some do require more
care than others to stay on the right side of the law.
This quick guide is aimed to help Epic programmers make the right
decisions on what code to use in their projects.
By necessity this guide contains some simplifications of what is a
complex legal area. If in doubt, please just ask.
License types
Most code found on the web is open source. There are three
main types of open source license, and these dictate what we
can and can’t do with the code.

   License type           Commercial use
   Strongly-protective/   CANNOT use in closed-
   copyleft (GPL/AGPL)    source, commercial products
   Weakly-protective      Can use in closed-source,
   (LGPL)                 commercial products WITH CARE
   Permissive             FREE TO USE in closed-source,
   (Apache, MIT, BSD)     commercial products
   Non-OS license         Terms will vary so read the license!
Licenses: strongly protective
Licenses: GPL, AGPL
Implications of using code:
If the code is used in a product that is redistributed, then the entire
codebase must inherit the same license. For this reason, these are
also known as viral licenses.
Epic policy:
Do NOT use any GPL or AGPL licensed code without getting
permission first, unless the project you are working on is already GPL or
AGPL licensed.
Licenses: weakly protective
Licenses: LGPL
Implications of using code:
This license is commonly used for code libraries. It allows the code to
be used in closed source, commercial products; however, any
modifications to the library must be fed back upstream to the
creator.
Epic policy:
It is fine to use LGPL licensed code, but any changes MUST be fed
back to the library creator, and the developer should manage this
process.
Licenses: permissive
Licenses: Apache, MIT, BSD
Implications of using code:
Allows the code to be used in closed source, commercial products
with no obligations. Some licenses have an ‘attribution clause’ which
simply asks that the original creator is credited.
Epic policy:
It is absolutely fine to use any Apache, MIT or BSD licensed code.
Licenses: non-open source
Licenses: Custom license or ‘terms and conditions’ page
Implications of using code:
This will depend entirely on the terms that the creator has outlined.
Sometimes there is just a statement on the webpage with some brief
terms of use.
Epic policy:
Find the terms and conditions or statement of use and make an
appropriate decision. If in doubt, please ask for assistance. Take a
dated screenshot in case the terms change over time.
Three questions to always ask
1. What are the license terms of the code you are thinking of
using?
Be sure to find out what license it is released under. If it’s not open
source or if you cannot find a license, then contact a senior
manager for approval to reuse it.
2. What are the license terms of the Epic project you are working
on?
This will impact what licenses you can use. For example, the
webinar plug-in we built for Moodle is GPL anyway.
3. Is the product for just one customer, or will it be distributed to
many?
Open source license terms kick in when a product is redistributed.
So if the code is for the private use of a single customer, it is fine to
reuse code from ANY license, GPL included.
Re-use conventions
The following are best practices that you should follow every time
you reuse third party code. If you get in the habit of doing this, you
should always be on the right side of the law.
- Always retain the original license info in the code files.
- Always credit the original author. Even if is not always required, it
is the right thing to do.
- If you make modifications, ensure they carry prominent notices.
- If you make modifications, send the amends back to the original
author. Again, it is not always required, but it’s the right thing to
do.
- Finally, please keep a record in the project folder of all third-party
code used and include the license type and source URL.
Detailed
license info
This is a PERMISSIVE license.
                                  We can use, modify and redistribute
Apache v2                         this code as part of a commercial
                                  product.

license                           The license info must be retained in
                                  the file.
                                  Any modifications must carry
                                  prominent notices.
                                  If the work includes a NOTICE text
                                  file containing author attributions,
                                  then those attribution notices must
                                  be provided with the new work.

http://opensource.org/licenses/Apache-2.0
This is a PERMISSIVE license.
                                     We can use, modify and
                                     redistribute this code as part of a
                                     commercial product.

MIT license                          There are no obligations at all,
                                     therefore we can do what we like
                                     with it.




http://opensource.org/licenses/MIT
This is a PERMISSIVE license.
                                 This is similar to the MIT license,

BSD 3-clause                     with the addition of a third clause
                                 that says we cannot use the
                                 author's organisation name or
license                          any contributor names to
                                 promote the product.
                                 The BSD-2 clause license is newer,
                                 omits the third clause and is
                                 roughly equivalent to the MIT
                                 license.




http://opensource.org/licenses/BSD-3-Clause
This is a WEAKLY PROTECTIVE
                                   license; reuse requires some care.

LGPL v3                            We can use, modify and
                                   redistribute this code as part of a
                                   commercial product.
license                            We MUST include a notice that
                                   the library is used (e.g. in a
                                   NOTICE file) within the product
                                   and include copies of the GPL
                                   and LGPL (but these won't apply
                                   to the whole product, don’t
                                   worry!).
                                   If we make modifications, then
                                   the library must also be released
                                   under the LGPL.
http://opensource.org/licenses/lgpl-3.0.html
This is a COPYLEFT license; reuse is
                                   highly restrictive.

GPL v2/v3                          We CANNOT use, modify or
                                   redistribute this code as part of a
                                   commercial product.
license                            If we redistribute the derivative
                                   work then the entire product must
                                   itself inherit the GPL.




http://opensource.org/licenses/gpl-license
This is a COPYLEFT license; reuse is
                                 highly restrictive.

AGPL v3                          We CANNOT use, modify or
                                 redistribute this code as part of a
                                 commercial product.
license                          If we redistribute the derivative
                                 work, then the entire product
                                 must itself inherit the GPL.
                                 Redistribution in this case includes
                                 applications accessed remotely
                                 from a server (e.g. Cloud/SaaS
                                 services).



http://opensource.org/licenses/AGPL-3.0
Further
information
If you have any questions at all
regarding the above or any licenses we
have not covered, please contact:
Mark Aberdour
Email:
maberdour@epiclearninggroup.com
Twitter: @maberdour

Contenu connexe

Similaire à Developer guidelines for using third-party code

Introduction To Open Source Licenses
Introduction To Open Source LicensesIntroduction To Open Source Licenses
Introduction To Open Source LicensesHarley Pascua
 
Software Licensing.pptx
Software Licensing.pptxSoftware Licensing.pptx
Software Licensing.pptxAaliyanShaikh
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesIresha Rubasinghe
 
Open Source Software Licensing
Open Source Software LicensingOpen Source Software Licensing
Open Source Software LicensingAlexander Davis
 
GDSC - Software Licensing.pdf
GDSC - Software Licensing.pdfGDSC - Software Licensing.pdf
GDSC - Software Licensing.pdfAaliyanShaikh
 
Open Source Business Case
Open Source Business CaseOpen Source Business Case
Open Source Business CaseFITT
 
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)Falainix
 
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib..."Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...eLiberatica
 
Magento and licensing
Magento and licensingMagento and licensing
Magento and licensingYireo
 
Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentJamie Coleman
 
Open Source: A New Software Paradigm
Open Source: A New Software ParadigmOpen Source: A New Software Paradigm
Open Source: A New Software ParadigmYe Joo Park
 
Open Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceOpen Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceAll Things Open
 
Open source announcement
Open source announcementOpen source announcement
Open source announcementRaman Pundir
 

Similaire à Developer guidelines for using third-party code (20)

Introduction To Open Source Licenses
Introduction To Open Source LicensesIntroduction To Open Source Licenses
Introduction To Open Source Licenses
 
Software Licensing.pptx
Software Licensing.pptxSoftware Licensing.pptx
Software Licensing.pptx
 
GNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and DifferencesGNU GPL, LGPL, Apache licence Types and Differences
GNU GPL, LGPL, Apache licence Types and Differences
 
Open Source Software Licensing
Open Source Software LicensingOpen Source Software Licensing
Open Source Software Licensing
 
Open Source licenses
Open Source licensesOpen Source licenses
Open Source licenses
 
Open Source Licensing
Open Source LicensingOpen Source Licensing
Open Source Licensing
 
GDSC - Software Licensing.pdf
GDSC - Software Licensing.pdfGDSC - Software Licensing.pdf
GDSC - Software Licensing.pdf
 
Software license
Software licenseSoftware license
Software license
 
Software license
Software licenseSoftware license
Software license
 
Open Source Licences
Open Source LicencesOpen Source Licences
Open Source Licences
 
Open Source Business Case
Open Source Business CaseOpen Source Business Case
Open Source Business Case
 
fg.workshop: Opensource licenses
fg.workshop: Opensource licensesfg.workshop: Opensource licenses
fg.workshop: Opensource licenses
 
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)
Power Dvd Mpeg 4 Avc Pack License Disclaimer (Lgpl)
 
Open source licenses training
Open source licenses trainingOpen source licenses training
Open source licenses training
 
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib..."Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
"Open Source licensing and software quality" by Monty Michael Widenius @ eLib...
 
Magento and licensing
Magento and licensingMagento and licensing
Magento and licensing
 
Open Source Licence to Kill in Software Development
Open Source Licence to Kill in Software DevelopmentOpen Source Licence to Kill in Software Development
Open Source Licence to Kill in Software Development
 
Open Source: A New Software Paradigm
Open Source: A New Software ParadigmOpen Source: A New Software Paradigm
Open Source: A New Software Paradigm
 
Open Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and ComplianceOpen Source Licensing: Types, Strategies and Compliance
Open Source Licensing: Types, Strategies and Compliance
 
Open source announcement
Open source announcementOpen source announcement
Open source announcement
 

Plus de Epic

Holistic design - An integrated approach to accelerate performance improvement
Holistic design - An integrated approach to accelerate performance improvementHolistic design - An integrated approach to accelerate performance improvement
Holistic design - An integrated approach to accelerate performance improvementEpic
 
User Experience vs. the Visual Designer - LINE Communications
User Experience vs. the Visual Designer - LINE CommunicationsUser Experience vs. the Visual Designer - LINE Communications
User Experience vs. the Visual Designer - LINE CommunicationsEpic
 
iMoot – Tin Can in Moodle
iMoot – Tin Can in MoodleiMoot – Tin Can in Moodle
iMoot – Tin Can in MoodleEpic
 
20 tips for mobile learning in Moodle – Moodlemoot 2014
20 tips for mobile learning in Moodle – Moodlemoot 201420 tips for mobile learning in Moodle – Moodlemoot 2014
20 tips for mobile learning in Moodle – Moodlemoot 2014Epic
 
Using mobiles to support active learning with Moodle – Moodlemoot 2014
Using mobiles to support active learning with Moodle – Moodlemoot 2014Using mobiles to support active learning with Moodle – Moodlemoot 2014
Using mobiles to support active learning with Moodle – Moodlemoot 2014Epic
 
Tin Can Learning Design – Andrew Downes
Tin Can Learning Design – Andrew DownesTin Can Learning Design – Andrew Downes
Tin Can Learning Design – Andrew DownesEpic
 
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...Epic
 
A learning platform just for you - Mark Aberdour @ Learning Technologies
A learning platform just for you - Mark Aberdour @ Learning TechnologiesA learning platform just for you - Mark Aberdour @ Learning Technologies
A learning platform just for you - Mark Aberdour @ Learning TechnologiesEpic
 
LearningNow: performance support – Simon Martin
LearningNow: performance support – Simon MartinLearningNow: performance support – Simon Martin
LearningNow: performance support – Simon MartinEpic
 
Lars Hyland – What's stopping performance support?
Lars Hyland – What's stopping performance support?Lars Hyland – What's stopping performance support?
Lars Hyland – What's stopping performance support?Epic
 
LearningNow: performance support – Jane Hart
LearningNow: performance support – Jane HartLearningNow: performance support – Jane Hart
LearningNow: performance support – Jane HartEpic
 
LearningNow: performance support – Imogen Casebourne
LearningNow: performance support – Imogen CasebourneLearningNow: performance support – Imogen Casebourne
LearningNow: performance support – Imogen CasebourneEpic
 
LearningNow: performance support – Laura Overton
LearningNow: performance support – Laura OvertonLearningNow: performance support – Laura Overton
LearningNow: performance support – Laura OvertonEpic
 
Putting the smart into smart phone with performance support
Putting the smart into smart phone with performance supportPutting the smart into smart phone with performance support
Putting the smart into smart phone with performance supportEpic
 
Induction strategies that work
Induction strategies that workInduction strategies that work
Induction strategies that workEpic
 
Induction needs to change
Induction needs to changeInduction needs to change
Induction needs to changeEpic
 
Rethinking induction design
Rethinking induction designRethinking induction design
Rethinking induction designEpic
 
Bringing new managers on board
Bringing new managers on boardBringing new managers on board
Bringing new managers on boardEpic
 
What works: five mobile learning success stories
What works: five mobile learning success storiesWhat works: five mobile learning success stories
What works: five mobile learning success storiesEpic
 
Introduction to Open Source
Introduction to Open SourceIntroduction to Open Source
Introduction to Open SourceEpic
 

Plus de Epic (20)

Holistic design - An integrated approach to accelerate performance improvement
Holistic design - An integrated approach to accelerate performance improvementHolistic design - An integrated approach to accelerate performance improvement
Holistic design - An integrated approach to accelerate performance improvement
 
User Experience vs. the Visual Designer - LINE Communications
User Experience vs. the Visual Designer - LINE CommunicationsUser Experience vs. the Visual Designer - LINE Communications
User Experience vs. the Visual Designer - LINE Communications
 
iMoot – Tin Can in Moodle
iMoot – Tin Can in MoodleiMoot – Tin Can in Moodle
iMoot – Tin Can in Moodle
 
20 tips for mobile learning in Moodle – Moodlemoot 2014
20 tips for mobile learning in Moodle – Moodlemoot 201420 tips for mobile learning in Moodle – Moodlemoot 2014
20 tips for mobile learning in Moodle – Moodlemoot 2014
 
Using mobiles to support active learning with Moodle – Moodlemoot 2014
Using mobiles to support active learning with Moodle – Moodlemoot 2014Using mobiles to support active learning with Moodle – Moodlemoot 2014
Using mobiles to support active learning with Moodle – Moodlemoot 2014
 
Tin Can Learning Design – Andrew Downes
Tin Can Learning Design – Andrew DownesTin Can Learning Design – Andrew Downes
Tin Can Learning Design – Andrew Downes
 
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...
What can we learn from the future? - Imogen Casebourne and Lars Hyland @ Lear...
 
A learning platform just for you - Mark Aberdour @ Learning Technologies
A learning platform just for you - Mark Aberdour @ Learning TechnologiesA learning platform just for you - Mark Aberdour @ Learning Technologies
A learning platform just for you - Mark Aberdour @ Learning Technologies
 
LearningNow: performance support – Simon Martin
LearningNow: performance support – Simon MartinLearningNow: performance support – Simon Martin
LearningNow: performance support – Simon Martin
 
Lars Hyland – What's stopping performance support?
Lars Hyland – What's stopping performance support?Lars Hyland – What's stopping performance support?
Lars Hyland – What's stopping performance support?
 
LearningNow: performance support – Jane Hart
LearningNow: performance support – Jane HartLearningNow: performance support – Jane Hart
LearningNow: performance support – Jane Hart
 
LearningNow: performance support – Imogen Casebourne
LearningNow: performance support – Imogen CasebourneLearningNow: performance support – Imogen Casebourne
LearningNow: performance support – Imogen Casebourne
 
LearningNow: performance support – Laura Overton
LearningNow: performance support – Laura OvertonLearningNow: performance support – Laura Overton
LearningNow: performance support – Laura Overton
 
Putting the smart into smart phone with performance support
Putting the smart into smart phone with performance supportPutting the smart into smart phone with performance support
Putting the smart into smart phone with performance support
 
Induction strategies that work
Induction strategies that workInduction strategies that work
Induction strategies that work
 
Induction needs to change
Induction needs to changeInduction needs to change
Induction needs to change
 
Rethinking induction design
Rethinking induction designRethinking induction design
Rethinking induction design
 
Bringing new managers on board
Bringing new managers on boardBringing new managers on board
Bringing new managers on board
 
What works: five mobile learning success stories
What works: five mobile learning success storiesWhat works: five mobile learning success stories
What works: five mobile learning success stories
 
Introduction to Open Source
Introduction to Open SourceIntroduction to Open Source
Introduction to Open Source
 

Developer guidelines for using third-party code

  • 1. Developer guidelines for using third-party code Mark Aberdour Head of Learning Platforms
  • 2. Why it matters It’s good to use code found on the web. It can be very robust and well tested, and generally makes a programmer’s life easier. However, third party code comes with some licensing dangers which can seriously impact both employee and employer if the law is broken. While most code libraries are fine to use, some do require more care than others to stay on the right side of the law. This quick guide is aimed to help Epic programmers make the right decisions on what code to use in their projects. By necessity this guide contains some simplifications of what is a complex legal area. If in doubt, please just ask.
  • 3. License types Most code found on the web is open source. There are three main types of open source license, and these dictate what we can and can’t do with the code. License type Commercial use Strongly-protective/ CANNOT use in closed- copyleft (GPL/AGPL) source, commercial products Weakly-protective Can use in closed-source, (LGPL) commercial products WITH CARE Permissive FREE TO USE in closed-source, (Apache, MIT, BSD) commercial products Non-OS license Terms will vary so read the license!
  • 4. Licenses: strongly protective Licenses: GPL, AGPL Implications of using code: If the code is used in a product that is redistributed, then the entire codebase must inherit the same license. For this reason, these are also known as viral licenses. Epic policy: Do NOT use any GPL or AGPL licensed code without getting permission first, unless the project you are working on is already GPL or AGPL licensed.
  • 5. Licenses: weakly protective Licenses: LGPL Implications of using code: This license is commonly used for code libraries. It allows the code to be used in closed source, commercial products; however, any modifications to the library must be fed back upstream to the creator. Epic policy: It is fine to use LGPL licensed code, but any changes MUST be fed back to the library creator, and the developer should manage this process.
  • 6. Licenses: permissive Licenses: Apache, MIT, BSD Implications of using code: Allows the code to be used in closed source, commercial products with no obligations. Some licenses have an ‘attribution clause’ which simply asks that the original creator is credited. Epic policy: It is absolutely fine to use any Apache, MIT or BSD licensed code.
  • 7. Licenses: non-open source Licenses: Custom license or ‘terms and conditions’ page Implications of using code: This will depend entirely on the terms that the creator has outlined. Sometimes there is just a statement on the webpage with some brief terms of use. Epic policy: Find the terms and conditions or statement of use and make an appropriate decision. If in doubt, please ask for assistance. Take a dated screenshot in case the terms change over time.
  • 8. Three questions to always ask 1. What are the license terms of the code you are thinking of using? Be sure to find out what license it is released under. If it’s not open source or if you cannot find a license, then contact a senior manager for approval to reuse it. 2. What are the license terms of the Epic project you are working on? This will impact what licenses you can use. For example, the webinar plug-in we built for Moodle is GPL anyway. 3. Is the product for just one customer, or will it be distributed to many? Open source license terms kick in when a product is redistributed. So if the code is for the private use of a single customer, it is fine to reuse code from ANY license, GPL included.
  • 9. Re-use conventions The following are best practices that you should follow every time you reuse third party code. If you get in the habit of doing this, you should always be on the right side of the law. - Always retain the original license info in the code files. - Always credit the original author. Even if is not always required, it is the right thing to do. - If you make modifications, ensure they carry prominent notices. - If you make modifications, send the amends back to the original author. Again, it is not always required, but it’s the right thing to do. - Finally, please keep a record in the project folder of all third-party code used and include the license type and source URL.
  • 11. This is a PERMISSIVE license. We can use, modify and redistribute Apache v2 this code as part of a commercial product. license The license info must be retained in the file. Any modifications must carry prominent notices. If the work includes a NOTICE text file containing author attributions, then those attribution notices must be provided with the new work. http://opensource.org/licenses/Apache-2.0
  • 12. This is a PERMISSIVE license. We can use, modify and redistribute this code as part of a commercial product. MIT license There are no obligations at all, therefore we can do what we like with it. http://opensource.org/licenses/MIT
  • 13. This is a PERMISSIVE license. This is similar to the MIT license, BSD 3-clause with the addition of a third clause that says we cannot use the author's organisation name or license any contributor names to promote the product. The BSD-2 clause license is newer, omits the third clause and is roughly equivalent to the MIT license. http://opensource.org/licenses/BSD-3-Clause
  • 14. This is a WEAKLY PROTECTIVE license; reuse requires some care. LGPL v3 We can use, modify and redistribute this code as part of a commercial product. license We MUST include a notice that the library is used (e.g. in a NOTICE file) within the product and include copies of the GPL and LGPL (but these won't apply to the whole product, don’t worry!). If we make modifications, then the library must also be released under the LGPL. http://opensource.org/licenses/lgpl-3.0.html
  • 15. This is a COPYLEFT license; reuse is highly restrictive. GPL v2/v3 We CANNOT use, modify or redistribute this code as part of a commercial product. license If we redistribute the derivative work then the entire product must itself inherit the GPL. http://opensource.org/licenses/gpl-license
  • 16. This is a COPYLEFT license; reuse is highly restrictive. AGPL v3 We CANNOT use, modify or redistribute this code as part of a commercial product. license If we redistribute the derivative work, then the entire product must itself inherit the GPL. Redistribution in this case includes applications accessed remotely from a server (e.g. Cloud/SaaS services). http://opensource.org/licenses/AGPL-3.0
  • 17. Further information If you have any questions at all regarding the above or any licenses we have not covered, please contact: Mark Aberdour Email: maberdour@epiclearninggroup.com Twitter: @maberdour