Skip to content

Contributing

Thank you for contributing.

Reporting

Bugs and feature requests go to the issues of the library.

A security problem is not an issue. Do not open a public issue, pull request or discussion for one: doing so hands a working exploit to every user of the library before a fix exists. Report it privately, either through GitHub private vulnerability reporting or by email to security AT spomky-labs.com. The security policy says what a report should contain and what happens next.

The code

Pull requests go to the branch of the maintained line.

  • Follow PSR-12. make cs fixes what it can.
  • Run the test suite: make tests.
  • Write or update tests. A fix without a test that fails before it is not a fix.
  • Static analysis must pass: make st.
  • Mutation testing runs in continuous integration: make mu.
  • Rebase your branch before you open the pull request, and write commit messages that say what changed and why. You may be asked to squash.
git clone https://github.com/Spomky-Labs/pki-framework.git
cd pki-framework
composer install
make tests

CONTRIBUTING.md holds the same rules, and the code of conduct applies to every exchange.

This documentation

Every documentation of Slabs lives in one repository, Spomky-Labs/docs, under projects/<project>/<version>/. These pages are in projects/pki/1.6/. The pencil at the top right of a page opens its source there.

git clone https://github.com/Spomky-Labs/docs.git
cd docs
make install                 # the toolchain, in .venv
make serve p=pki v=1.6   # http://127.0.0.1:8000, rebuilt as you save
make check                   # the strict build continuous integration runs

make check is the gate: a broken internal link, an anchor that does not exist, a page absent from the navigation or a navigation entry without a page fails the build.

One directory of that repository is one version of the library. A correction that applies to every version is made in each of them: the versions are directories, not branches.

Titles are in sentence case; names keep their capitals. Every code block is expected to run against the version the page documents.