Checkmatrix for ‘eStep friendly’ projects.
- Prototype phase. The first step in most software development is trying out different things with no intention in keeping the intermediate results. Signs you could be in this phase:
- You switch programming languages.
- You throw away all of your code once in a while
- You work on the code by yourself
- You are waiting with showing other people your code until you “clean it up a bit first”.
- . Eventually you get software you intend to keep. Signs you could be in this phase:
- You have external contributors.
- You are working up to a release.
- Users ask you if the software is done yet.
- Maturity phase: Software that has reached maturity, has a clear function and scope, and is used. Signs you could be in this phase:
- The software has a release.
- The software has users: people actually using your software/code
- You have external contributor
Version Control
Releases
Item / Phase | Prototype | Pre-release | Mature |
---|---|---|---|
X | |||
tagged releases (github releases) | X | ||
CHANGELOG.md () | X | ||
one command install (pip, etc) | X | ||
package in package manager (pypi, etc) | X | ||
discuss release cycle with coordinator | X | ||
release quick-scan by other engineer (is documentation understandable, can it be installed, etc) | X | ||
notify Lode for dissemination (news item on site / annual report, etc) | X |
Communication
Item / Phase | Prototype | Pre-release | Mature |
---|---|---|---|
home page with all the necessary introduction information, links to documenation, source code (github) and latest release download (eg. ) | X | ||
project discussion list (github issues, mailing list, not private email) for all project related discussions from the beginning of the project | X | ||
for services: a demo docker image in dockerhub (with Dockerfile) | X | ||
for websites: an online demo | X | ||
Pitch presentation (1 to 3 slides) | X | ||
Few sentences about the project for the technology pages on our website | X |
Testing
Item / Phase | Prototype | Pre-release | Mature |
---|---|---|---|
README.md - clear explanation of the goal of the project with pointers to other documentation resources. Use GitHub flavored markdown for, e.g., . |
X | ||
well defined functionality | X | ||
source code documentation | X | ||
usage documentation | X | ||
documented development setup (good example is Getting started with khmer development) | X | ||
contribution guidelines | X | ||
code of conduct (contributor covenant) | X | ||
documented code style | X | ||
meaning of issue labels used | X | ||
DOI or PID () | X |
Development setup
Use standards
Item / Phase | Prototype | Pre-release | Mature |
---|---|---|---|
exchange format (Unicode, W3C, OGN, NetCDF, etc) | X | ||
protocols (HTTP, TCP, TLS, etc) | X |