Contribute changes

This workflow continues from a working source build. Enable the developer options needed for your changes.

Create a feature branch from develop and submit the change as a merge request back to develop.

git switch develop
git pull --ff-only
git switch -c my-feature

For a release fix, use the corresponding rMAJOR.MINOR branch instead of develop, both as your starting point and as the merge-request target.

Generated files

Files below auto/ are generated but tracked by Git. Never edit them directly. Edit their sources instead:

  • Python example sources are below rawEx/ and generate auto/Examples/, auto/FigExamples/, and auto/MiniExamples/.
  • Python API wrappers below auto/Wrap/ are generated from the C++ API and control files below Wrap/Swig/.

Enable the matching generator before rebuilding. Inspect and commit the generated changes together with their sources.

The web copies of examples and their figures use separate build targets. See Update documentation before changing examples used by the manual.

Tests

Add or update focused tests with every behavioral change. Before submitting a merge request, run the relevant tests and the full suite.

Submit the change

Keep one topic per feature branch. Add a concise entry to CHANGELOG for a user-visible change or fix. Push the branch and set its upstream:

git push -u origin my-feature

Open a merge request targeting the branch you started from. Describe the purpose and important design decisions, and resolve all CI failures before requesting review.