nostr icon indicating copy to clipboard operation
nostr copied to clipboard

project: create rules for editing, testing and documenting.

Open niamtokik opened this issue 2 years ago • 0 comments

nostr project has been created as an academic/educational project. The main goal is to teach Erlang programming by using a recent and modern protocol from scratch, and delivering a high quality level application, highly tested and documented. This project is trying to follow the KISS principles.

Documentation

  • user documentation must include examples
  • user documentation must be accessible and correct
  • development documentation should be available
  • exported interfaces must be documented
  • private interfaces should be documented internally to explain the "why" or point to an issue on github
  • if literate programming can be used, use it.
  • if a schema or a diagram is needed, creates one (using draw.io)

Testing

  • functions and modules should be designed using TDD principle with eunit module
  • eunit module can be included in any modules if required
  • new features must be tested with common_test module
  • regression testing must use common_test module
  • all tests must succeed before merging in main branch

Benchmarking

  • before merging, a benchmark should be available
  • the benchmark should be done automatically on a pipeline (github action workflow)

Packaging

  • must work on all major operating systems available on the market
  • virtual machines should be available to help developers
  • docker image should be available to help deployment

Versions, Releases and Milestones

  • nostr is following semantic versioning
  • releases are following milestones
  • releases are named with artists names and one of their song
  • the 0.X.Y releases are using jazz band/artist names (hard bop if possible) with a song
  • the 1.X.Y release will use metal band/artist names with a song

niamtokik avatar Feb 11 '23 08:02 niamtokik