Contributing guidelines for v2

This abbreviated guidelines augments the main contributing guidelines and is tailored for maintenance of v2

Testing

Performance benchmarking

Running the performance benchmark application in Release mode will produce benchmark performance data that we include on our documentation site.

# from /tests/performance folder
# run all performance benchmarks
dotnet run -c Release

# run individual performance benchmark
dotnet run -c Release --filter *.GetAdx

Documentation

Our documentation site code is in the docs folder. When adding or updating indicators:

See [docs/README.md] for more information about setup and usage.

Package versioning and deployment

Packages are deployed via two separate GitHub Actions workflows using two different modes:

  1. Incremental CI packages (2.7.2-ci.1234 versions) are available via GitHub Packages and are intended for contributor and internal use.
  2. Generally available packages (2.7.3 versions) are available on NuGet.org and are intentionally deployed for public use.

Internal and CI package deploy (automatic)

Trigger: Push to main or v* branches

Workflow: .github/workflows/deploy-package-github.yml

Production package deploy (manual)

Trigger: Creating a GitHub Release

Workflow: .github/workflows/deploy-package-nuget.yml

Versioning

We use a standard semantic versioning convention

Component Format Description
Major x.-.- Breaking changes. Use +semver: major in commit message.
Minor -.x.- New features, backward compatible. Use +semver: minor in commit message.
Patch -.-.x Bug fixes, documentation. Use +semver: patch (or default auto-increment).
Suffix -label.N Pre-release identifier. Automatically set based on branch and build type.
Version examples
Scenario Trigger Version Registry Notes
CI build Push to main 2.7.2-ci.1234 GitHub Packages Run 1234
CI build Push to main 2.7.2-ci.1235 GitHub Packages Run 1235 (next commit)
CI build Push to v3 3.0.0-ci.567 GitHub Packages Run 567
Production Release tag 2.8.0 2.8.0 nuget.org Stable version
Production Release tag 3.0.0-preview.2 3.0.0-preview.2 nuget.org Preview version
Draft release Release tag 2.8.1 (draft) 2.8.1 None (dry-run) Build only, no deploy

For technical details, see:

Development environment setup

In order to develop, you can either use our repo-defined Dev Container or install prerequisites on your computer. You’ll need:

Getting help

Start a new discussion or submit an issue if it is publicly relevant.

PREVIEW