Files
create/CONTRIBUTING.md
forbes 7f02fd182e
All checks were successful
Build and Test / build (pull_request) Successful in 24m46s
docs: comprehensive documentation refresh — remove stale references, add missing content
Root documentation:
- README.md: add Datums description, update addon load order and SDK references,
  fix project structure tree, update issue reporting guidance
- CONTRIBUTING.md: update submodule table (remove ztools, add gears/datums/solver),
  fix QSS guidance (single canonical source, not three copies)
- docs/ARCHITECTURE.md: update bootstrap flow (5 addons, split deferred timers
  between Create core and Silo addon), update load order and source layout
- docs/COMPONENTS.md: add Datums and Solver sections, update Gears description,
  fix Silo origin registration reference
- docs/KNOWN_ISSUES.md: create missing file referenced by CLAUDE.md and CONTRIBUTING.md
- docs/INTEGRATION_PLAN.md: update layer 5 diagram, fix load order references,
  update Phase 6 install rules, fix Layer 2/3/5 descriptions
- docs/OVERVIEW.md: add datums submodule entry
- docs/UPSTREAM.md: update Phase 1 directory table and Phase 4 submodule list

mdBook documentation (docs/src/):
- SUMMARY.md: replace dead architecture/ links with existing reference pages,
  remove deleted silo-server files, add new silo-server pages
- introduction.md: rewrite — replace ztools with current addons (Silo, Gears,
  Datums, KCSDK), update version to v0.1.5/FreeCAD 1.2.0
- guide/getting-started.md: update first-run addon list
- guide/installation.md: update verification console output
- guide/workbenches.md: rewrite — replace ztools with Gears, Datums, Solver
- guide/building.md: update submodule table, fix error message guidance
- development/contributing.md: fix scope example and issue reporting
- development/repo-structure.md: rewrite — add SDK, datums, gears, solver,
  reference/ folder; update submodule and key files tables
- development/writing-an-addon.md: fix priority range table
- reference/create-module-bootstrap.md: rewrite — reflect addon_loader system,
  split deferred timers between Create core and Silo addon
- reference/datum-creator.md: update from ZTools to datums addon paths and naming
- reference/glossary.md: add KCSDK entry, update FreeCAD version, remove ztools
  entry, update repository URLs table
2026-03-03 13:52:53 -06:00

3.7 KiB

Contributing to Kindred Create

Kindred Create is maintained at git.kindred-systems.com/kindred/create. Contributions are submitted as pull requests against the main branch.

Getting started

git clone --recursive ssh://git@git.kindred-systems.com:2222/kindred/create.git
cd create
pixi run configure
pixi run build
pixi run freecad

See the README for full build instructions.

Branch and PR workflow

  1. Create a feature branch from main:
    git checkout -b feat/my-feature main
    
  2. Make your changes, commit with conventional commit messages (see below).
  3. Push and open a pull request against main.
  4. CI builds and tests run automatically on all PRs.

Commit messages

Use Conventional Commits:

Prefix Purpose
feat: New feature
fix: Bug fix
chore: Maintenance, dependencies
docs: Documentation only
art: Icons, theme, visual assets

Examples:

  • feat: add datum point creation mode
  • fix(gui): correct menu icon size on Wayland
  • chore: update silo submodule

Code style

C/C++

Formatted with clang-format (config in .clang-format). Static analysis via clang-tidy (config in .clang-tidy).

Python

Formatted with black (100-character line length). Linted with pylint (config in .pylintrc).

Pre-commit hooks

pip install pre-commit
pre-commit install

This runs clang-format, black, and pylint automatically on staged files.

Submodules

Kindred Create uses git submodules for addon workbenches:

Submodule Path Repository
silo-mod mods/silo git.kindred-systems.com/kindred/silo-mod
gears mods/gears git.kindred-systems.com/kindred/gears
datums mods/datums git.kindred-systems.com/kindred/datums
solver mods/solver git.kindred-systems.com/kindred/solver

To update a submodule:

cd mods/silo
git checkout main && git pull
cd ../..
git add mods/silo
git commit -m "chore: update silo submodule"

If you cloned without --recursive, initialize submodules with:

git submodule update --init --recursive

Theme and QSS changes

The Catppuccin Mocha theme canonical source is src/Gui/Stylesheets/KindredCreate.qss. The copy at src/Gui/PreferencePacks/KindredCreate/KindredCreate.qss is generated at build time via configure_file() in CMake -- do not edit it directly.

Only edit src/Gui/Stylesheets/KindredCreate.qss when modifying the theme.

Preference pack

Default preferences are defined in resources/preferences/KindredCreate/KindredCreate.cfg. This XML file uses FreeCAD's parameter format:

<FCParamGroup Name="GroupName">
  <FCBool Name="Setting" Value="1"/>
  <FCInt Name="Setting" Value="42"/>
  <FCText Name="Setting">value</FCText>
</FCParamGroup>

Changes here affect the out-of-box experience for all users.

CI/CD

  • Build workflow (build.yml): Runs on every push to main and on PRs. Builds in Ubuntu 24.04 container, runs C++ and Python tests.
  • Release workflow (release.yml): Triggered by v* tags. Builds AppImage and .deb packages.

See docs/CI_CD.md for full details.

Architecture

For an overview of the codebase structure, bootstrap flow, and design decisions, see:

License

All contributions must be compatible with LGPL-2.1-or-later.