Development Conventions
=======================

ONF has many (over 300) software repositories as of 2022, and to effectively
develop across all of these projects, the following development conventions are
used.

Strategy
--------

The general strategy for ONF software development is as follows:

Make it easy to start contributing to any repo
""""""""""""""""""""""""""""""""""""""""""""""

A convention we've embraced in nearly all repos is to have a ``Makefile`` in
their base directory, which has a few common targets:

* ``make help``:  Get a list of ``make`` targets
* ``make build`` run
* ``make test`` run all tests, as they'd be run in CI by a


Most ``Makefiles`` use the GNU Make syntax variant.

Automated tests should be identical for the developer and automation
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

The CI test runner (Jenkins or similar) that performs automated testing should
run the same tests in the same way that a developer would on their local
system, by running ``make test``. There should be no (or very rare) cases where
a test will pass locally but fail in CI.

Additionally, this greatly simplifies the configuration of the test runner - it
only needs to run ``make test``.  In some cases, it may be necessary for the
Makefile to include commands that generate Jenkins-consumable output, such as
test results (usually in JUnit, xUnit, or TAP formats) or coverage information
(usually in Cobertura XML format).


Style, formatting, linting, license compliance should be automated
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

Code review should be about the structure and design of the code, and should

To that end, automated tools should be used that verify and conform the code to
a specific convention and standard:

* Formatting tools such as ``go fmt``, ``black`` and similar should be used to
  conform code to style guidelines

* Linting tools such as ``pylint``, ``yamllint``

In the documentation space, spelling and other checks should also be performed.

Versioning and Releasing Software
---------------------------------

Versioning software and performing releases are fundamentally for two audiences:

1. Providing compatibility claims about
2. Developers who use the

Two common and recommended versioning schemes are;

* SemVer
* CalVer

Division of responsibilities
""""""""""""""""""""""""""""

Automated tools should perform low-level versioning tasks like creating tags on
repos.
