Supporting files

This file describes the source for supporting files; that is, files that are not part of the library, but define the infrastructure and other aspects of the project.

Continuous Integration

.github/workflows

The GitHub Actions workflows that build, test, and analyze the library. Each file in this folder defines one workflow:

  • ubuntu.yml, macos.yml, windows.yml — build and run the test suite on Linux, macOS, and Windows.
  • check_amalgamation.yml — verify that the single-header amalgamation in single_include is up to date on pull requests.
  • comment_check_amalgamation.yml — comment on a pull request when the amalgamation check failed.
  • cifuzz.yml — run short fuzzing sessions via OSS-Fuzz CIFuzz on pull requests.
  • codeql-analysis.yml — run CodeQL code scanning.
  • flawfinder.yml — run the Flawfinder static analysis.
  • semgrep.yml — run Semgrep static analysis.
  • scorecards.yml — run the OpenSSF Scorecard supply-chain security checks.
  • dependency-review.yml — scan dependency changes in pull requests for known vulnerabilities.
  • labeler.yml — the “Pull Request Labeler” workflow (see .github/labeler.yml).
  • stale.yml — comment on and close stale issues and pull requests.
  • publish_documentation.yml — build and publish the documentation on every merge to the develop branch.

Further documentation:

[!IMPORTANT] The folder .github/workflows is predetermined by GitHub.

.cirrus.yml

Configuration file for the pipeline at Cirrus CI.

Further documentation:

[!IMPORTANT] The filename .cirrus.yml and position (root of the repository) are predetermined by Cirrus CI.

.github/external_ci/appveyor.yml

Configuration for the pipelines at AppVeyor.

Further documentation:

[!NOTE] The filename can be freely configured in the AppVeyor project.

GitHub

CITATION.cff

A file to configure the citation for the repository which is displayed in the sidebar of the project.

Further documentation:

[!IMPORTANT] The filename CITATION.cff and position (root of the repository) are predetermined by GitHub.

.github/CODE_OF_CONDUCT.md

The code of conduct for the project. This is the Markdown version of the Contributor Covenant Code of Conduct. The code of conduct is linked on the Community Standards page and is mentioned by the Sentiment Bot.

Further documentation:

[!IMPORTANT] The filename .github/CODE_OF_CONDUCT.md is predetermined by GitHub.

[!NOTE] The file is part of the documentation and is included in docs/mkdocs/docs/community/code_of_conduct.md.

.github/CODEOWNERS

The code owners file for the project which is used to select reviewers for new pull requests.

Further documentation:

[!IMPORTANT] The filename .github/CODEOWNERS is predetermined by GitHub.

.github/config.yml

Configuration file for probot, in particular the Sentiment Bot and the Request Info.

[!IMPORTANT] The filename .github/config.yml is predetermined by probot.

.github/CONTRIBUTING.md

The contribution guidelines which are linked in the Community Standards and at https://github.com/nlohmann/json/contribute.

Further documentation:

[!IMPORTANT] The filename .github/CONTRIBUTING.md is predetermined by GitHub.

[!NOTE] The file is part of the documentation and is included in docs/mkdocs/docs/community/contribution_guidelines.md.

.github/dependabot.yml

The configuration of dependabot which ensures the dependencies (GitHub actions and Python packages used in the CI) remain up to date.

Further documentation:

[!IMPORTANT] The filename .github/dependabot.yml is predetermined by GitHub.

.github/FUNDING.yml

A file to configure the sponsor button of the repository which is displayed in the sidebar of the project.

Further documentation:

[!IMPORTANT] The filename .github/FUNDING.yml is predetermined by GitHub.

.github/ISSUE_TEMPLATE/bug.yaml

Issue form template for bugs.

Further documentation:

[!IMPORTANT] The folder .github/ISSUE_TEMPLATE is predetermined by GitHub.

.github/ISSUE_TEMPLATE/config.yml

Issue template chooser configuration. The file is used to configure the dialog when a new issue is created.

Further documentation:

[!IMPORTANT] The filename .github/ISSUE_TEMPLATE/config.yml is predetermined by GitHub.

.github/labeler.yml

Configuration file for the “Pull Request Labeler” workflow defined in workflows/labeler.yml. This file defines rules how labels are assigned to pull requests based on which files are changed.

Further documentation:

[!NOTE] The filename defaults to .github/labeler.yml and can be configured in the workflow.

.github/PULL_REQUEST_TEMPLATE.md

The pull request template which prefills new pull requests.

Further documentation:

[!IMPORTANT] The filename .github/PULL_REQUEST_TEMPLATE.md is predetermined by GitHub.

.github/SECURITY.md

The goal is to describe how to securely report security vulnerabilities for this repository. The security policy is linked at https://github.com/nlohmann/json/security/policy.

Further documentation:

[!IMPORTANT] The filename .github/SECURITY.md is predetermined by GitHub.

[!NOTE] The file is part of the documentation and is included in docs/mkdocs/docs/community/security_policy.md.

LICENSE.MIT

The license of the project.

Further documentation:

[!IMPORTANT] The filename LICENSE.MIT is partly predetermined by GitHub. The root filename must be LICENSE.

REUSE

.reuse/dep5

The file defines the licenses of certain third-party components in the repository. The root Makefile contains a target reuse that checks for compliance.

Further documentation:

[!IMPORTANT] The filename .reuse/dep5 is predetermined by REUSE. Alternatively, a REUSE.toml file can be used.

.reuse/templates

Copyright header templates for source files. The root Makefile contains a target reuse that updates copyright headers with the templates.

Further information:

[!IMPORTANT] The folder name .reuse/templates is predetermined by REUSE.

LICENSES

A folder that contains every license of all license files (library and third-party code).

Further documentation:

[!IMPORTANT] The folder name LICENSES is predetermined by REUSE.

Package Managers

BUILD.bazel

The file can be updated by calling

make BUILD.bazel

meson.build

The build definition for the Meson build system.

Package.swift

The package manifest for the Swift Package Manager.

MODULE.bazel

The module definition for Bazel's Bzlmod dependency system. It complements BUILD.bazel and replaces the previously used WORKSPACE.bazel.

Further documentation: