Thank you for helping improve this ipelet collection.
- Keep each change focused on one ipelet or one repository-wide concern.
- Preserve the single-file runtime distribution of each ipelet.
- Keep development tools and automation outside the runtime
.luafile. - Add a regression test for behavior changes whenever practical.
- Update the relevant changelog and documentation.
Install Python 3, Lua 5.4, and the Lua 5.4 compiler, then run:
./scripts/validate.shFor a focused Circles check:
luac5.4 -p circles/circles.lua
python3 -m unittest discover -s circles/tests -vFor a focused Conics check:
./scripts/validate.sh conicsFor a focused Triangles check:
./scripts/validate.sh trianglesFor a focused Vectors check:
./scripts/validate.sh vectorsWhen a change affects generated geometry or dialogs:
- test it in a real Ipe installation;
- update the editable
.ipeexample when the visible result changes; - render PNG documentation images from the editable
.ipesource; - do not substitute synthetic or separately redrawn SVG previews for real Ipe output;
- inspect the exported images rather than relying only on file creation.
Follow RELEASING.md. Release tags must be namespaced as <ipelet>-v<version>, and published assets must be rebuilt from the tagged commit rather than from a dirty working tree.
Describe the behavior change, the checks that were actually run, and any compatibility limitations. Do not include generated caches, temporary files, local configuration, or private development infrastructure.