Difference between revisions of "Software Projects"
From SCECpedia
Jump to navigationJump to search(21 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
* https://docs.python-guide.org/writing/structure/ | * https://docs.python-guide.org/writing/structure/ | ||
* http://nsls-ii.github.io/scientific-python-cookiecutter/philosophy.html | * http://nsls-ii.github.io/scientific-python-cookiecutter/philosophy.html | ||
− | |||
− | |||
== Developing Effective Python Documentation == | == Developing Effective Python Documentation == | ||
+ | * https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1006561 | ||
* https://realpython.com/documenting-python-code/ | * https://realpython.com/documenting-python-code/ | ||
* https://divio.com/blog/documentation | * https://divio.com/blog/documentation | ||
+ | * https://www.writethedocs.org/guide/ | ||
− | + | [[Image:Screen Shot 2020-04-06 at 2.55.46 PM.png|right|150px]] | |
== Open Source Software Practices == | == Open Source Software Practices == | ||
+ | * https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002802 | ||
+ | * https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745 | ||
+ | * https://producingoss.com/en/index.html Producing Open-Source Software | ||
* http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html | * http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html | ||
* https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/ | * https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/ | ||
− | * https:// | + | * https://github.com/agu-ossi/2019-agu-oss |
− | * https:// | + | * https://joss.theoj.org/ |
== Open Source Software Licenses == | == Open Source Software Licenses == | ||
Line 24: | Line 27: | ||
== USGS Software and Data Acceptance Criteria == | == USGS Software and Data Acceptance Criteria == | ||
+ | * https://www.usgs.gov/about/organization/science-support/survey-manual/im-osqi-2019-01-review-and-approval-scientific | ||
* https://www.usgs.gov/about/organization/science-support/science-quality-and-integrity/fundamental-science-practices | * https://www.usgs.gov/about/organization/science-support/science-quality-and-integrity/fundamental-science-practices | ||
* https://www.usgs.gov/about/organization/science-support/office-science-quality-and-integrity/acceptable-digital | * https://www.usgs.gov/about/organization/science-support/office-science-quality-and-integrity/acceptable-digital | ||
* https://code.gov/#/ | * https://code.gov/#/ | ||
− | |||
− | |||
− | |||
== Developing a Community == | == Developing a Community == | ||
Line 40: | Line 41: | ||
* https://bssw.io/ | * https://bssw.io/ | ||
* https://www.nature.com/articles/d41586-019-02046-0 | * https://www.nature.com/articles/d41586-019-02046-0 | ||
+ | * https://medium.com/cardstack/growing-a-healthy-software-ecosystem-746c3f7eefb1 | ||
== Defining Interfaces == | == Defining Interfaces == | ||
Line 45: | Line 47: | ||
* https://earthquake.usgs.gov/fdsnws/event/1/ | * https://earthquake.usgs.gov/fdsnws/event/1/ | ||
* https://service.iris.edu/ | * https://service.iris.edu/ | ||
+ | * https://www.openapis.org/ | ||
== Data Management Systems == | == Data Management Systems == | ||
* https://www2.cisl.ucar.edu/dash | * https://www2.cisl.ucar.edu/dash | ||
+ | * http://schema.org/ | ||
+ | * https://www.slideshare.net/balaiyer/software-ecosystem-visualization-methodology | ||
+ | * https://12factor.net/ | ||
== Continuous Testing Links == | == Continuous Testing Links == | ||
+ | * https://bssw.io/blog_posts/adopting-continuous-integration-for-long-timescale-materials-simulation | ||
* https://www.blazemeter.com/blog/how-to-integrate-your-github-repository-to-your-jenkins-project/ | * https://www.blazemeter.com/blog/how-to-integrate-your-github-repository-to-your-jenkins-project/ | ||
Line 56: | Line 63: | ||
* https://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html | * https://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html | ||
* https://github.com/danielskatz/sustaining-research-projects | * https://github.com/danielskatz/sustaining-research-projects | ||
+ | * https://geodynamics.org/cig/dev/best-practices/ | ||
== Example Projects == | == Example Projects == | ||
* https://wrench-project.org/ | * https://wrench-project.org/ | ||
* https://yt-project.org | * https://yt-project.org | ||
+ | |||
+ | == Standard Practices == | ||
+ | SCEC is standardized software project practices: | ||
+ | * Standard elements in git repo (readme.md, license.txt, authors etc) | ||
+ | * Standard git repo organization to support open-source releases and automated testing | ||
+ | * Connecting git project to run tests on commit | ||
+ | * Process of contributing new releases to pypi, conda (conda-forge) | ||
== Related Entries == | == Related Entries == | ||
*[[CME_Project]] | *[[CME_Project]] | ||
+ | *[[CSEP Working Group]] | ||
+ | * Design codes and distribution as python modules, packages (and libraries if that term is used) | ||
+ | * Potential build and deploy tools (ansible, others?) |
Latest revision as of 22:07, 7 April 2020
Collection of links related to creating software distributions
Contents
- 1 Packaging Python Projects
- 2 Developing Effective Python Documentation
- 3 Open Source Software Practices
- 4 Open Source Software Licenses
- 5 USGS Software and Data Acceptance Criteria
- 6 Developing a Community
- 7 Defining Interfaces
- 8 Data Management Systems
- 9 Continuous Testing Links
- 10 Software Release Practices
- 11 Example Projects
- 12 Standard Practices
- 13 Related Entries
Packaging Python Projects
- https://packaging.python.org/tutorials/packaging-projects/
- https://docs.python-guide.org/writing/structure/
- http://nsls-ii.github.io/scientific-python-cookiecutter/philosophy.html
Developing Effective Python Documentation
- https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1006561
- https://realpython.com/documenting-python-code/
- https://divio.com/blog/documentation
- https://www.writethedocs.org/guide/
Open Source Software Practices
- https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002802
- https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745
- https://producingoss.com/en/index.html Producing Open-Source Software
- http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html
- https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/
- https://github.com/agu-ossi/2019-agu-oss
- https://joss.theoj.org/
Open Source Software Licenses
USGS Software and Data Acceptance Criteria
- https://www.usgs.gov/about/organization/science-support/survey-manual/im-osqi-2019-01-review-and-approval-scientific
- https://www.usgs.gov/about/organization/science-support/science-quality-and-integrity/fundamental-science-practices
- https://www.usgs.gov/about/organization/science-support/office-science-quality-and-integrity/acceptable-digital
- https://code.gov/#/
Developing a Community
- https://opensource.guide/
- https://dev.to/carlillo/how-to-reach-your-goals-1000-github-stars-in-the-first-open-source-software-337h
- https://www.altexsoft.com/blog/engineering/5-best-practices-for-managing-open-source-components/
- https://dri.es/balancing-makers-and-takers-to-scale-and-sustain-open-source
- https://opensource.com/business/14/9/community-best-practices-new-era-open-source
- https://www.nature.com/news/the-unsung-heroes-of-scientific-software-1.19100
- https://bssw.io/
- https://www.nature.com/articles/d41586-019-02046-0
- https://medium.com/cardstack/growing-a-healthy-software-ecosystem-746c3f7eefb1
Defining Interfaces
- https://restful.io/rest-api-back-to-basics-c64f282d972
- https://earthquake.usgs.gov/fdsnws/event/1/
- https://service.iris.edu/
- https://www.openapis.org/
Data Management Systems
- https://www2.cisl.ucar.edu/dash
- http://schema.org/
- https://www.slideshare.net/balaiyer/software-ecosystem-visualization-methodology
- https://12factor.net/
Continuous Testing Links
- https://bssw.io/blog_posts/adopting-continuous-integration-for-long-timescale-materials-simulation
- https://www.blazemeter.com/blog/how-to-integrate-your-github-repository-to-your-jenkins-project/
Software Release Practices
- http://opensha.usc.edu/trac/wiki/ReleasingApplications
- https://www.usability.gov/how-to-and-tools/methods/system-usability-scale.html
- https://github.com/danielskatz/sustaining-research-projects
- https://geodynamics.org/cig/dev/best-practices/
Example Projects
Standard Practices
SCEC is standardized software project practices:
- Standard elements in git repo (readme.md, license.txt, authors etc)
- Standard git repo organization to support open-source releases and automated testing
- Connecting git project to run tests on commit
- Process of contributing new releases to pypi, conda (conda-forge)
Related Entries
- CME_Project
- CSEP Working Group
- Design codes and distribution as python modules, packages (and libraries if that term is used)
- Potential build and deploy tools (ansible, others?)