Software Projects: Difference between revisions

From SCECpedia
Jump to navigationJump to search
Maechlin (talk | contribs)
No edit summary
Wsavran (talk | contribs)
 
(18 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
* https://journals.plos.org/ploscompbiol/article?id=10.1371%2Fjournal.pcbi.1006561


== 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]]
[[Image:Screen Shot 2020-04-06 at 2.55.46 PM.png|right|150px]]


== Open Source Software Practices ==
== Open Source Software Practices ==
* 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://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002802
* 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://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745
* https://producingoss.com/en/index.html Producing Open-Source Software
* 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 ==
== 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/#/
== Software Ecosystem ==
* https://www.slideshare.net/balaiyer/software-ecosystem-visualization-methodology


== 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

Packaging Python Projects

Developing Effective Python Documentation

Open Source Software Practices

Open Source Software Licenses

USGS Software and Data Acceptance Criteria

Developing a Community

Defining Interfaces

Data Management Systems

Continuous Testing Links

Software Release 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?)