Difference between revisions of "Software Projects"
From SCECpedia
Jump to navigationJump to search(2 intermediate revisions by one other user not shown) | |||
Line 74: | Line 74: | ||
* Standard git repo organization to support open-source releases and automated testing | * Standard git repo organization to support open-source releases and automated testing | ||
* Connecting git project to run tests on commit | * Connecting git project to run tests on commit | ||
− | * Process of contributing new releases to | + | * Process of contributing new releases to pypi, conda (conda-forge) |
== Related Entries == | == Related Entries == | ||
Line 80: | Line 80: | ||
*[[CSEP Working Group]] | *[[CSEP Working Group]] | ||
* Design codes and distribution as python modules, packages (and libraries if that term is used) | * 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?)