Repository Layout
The repository keeps a development layout and builds the Octave package layout during release packaging.
Development Layout
src/: loadable MATLAB/Octave functions.examples/: runnable demos, plots, report generation, and benchmark scripts.tests/: Octave-compatible regression tests.docs/: source documentation used by GitHub Pages and package docs.images/: generated PNG figures used by docs and the website.tools/: build, packaging, and site-validation scripts.cache/,_site/,dist/: generated local output ignored by git.
This layout keeps source, tests, examples, and docs easy to inspect in a cloned checkout.
Package Layout
Octave packages expect loadable .m files in an inst/ directory inside the package archive. The repository does not keep a checked-in inst/ copy because that would duplicate every source file in src/.
Instead, tools/build_octave_package.py stages the release archive:
src/*.m->inst/*.mdocs/->doc/examples/->doc/examples/tests/->doc/tests/images/->doc/images/DESCRIPTION,INDEX, andCOPYING-> package metadata
Build the package with:
make package
The generated archive is written to dist/qec-0.3.0.tar.gz and can be attached to a GitHub Release.
Why Not Move src/ To inst/?
Keeping src/ in the repository is friendlier for contributors and for the existing examples/tests, while the release artifact still follows Octave package conventions. The package builder is the boundary between the contributor layout and the installable layout.