Bootstrap a developer environment

Table of Contents

This page documents a runbook — a named, repeatable composition of recipes and skills for a complete multi-step procedure. Each step references a recipe or skill by id-link.

Goal

Set up a fresh ORE Studio development environment from zero using the genesis environment model: clone into the conventional ores_dev_prime_origin path, configure the environment with compass, build, run tests, and verify. Additional worktrees for feature work are provisioned from this genesis environment via compass env provision.

Preconditions

  • Git, CMake, Ninja, and a supported C++23 compiler are installed.
  • PostgreSQL is available (local or container).
  • Emacs is installed — the build's literate-doc targets (site, manual, skills, codegen templates, ores-shell script tangling) run it in batch mode and assume it is present.
  • Python 3 is available (compass runs on it).

Steps

In execution order:

  1. Clone into the genesis path. Clone the repository into the conventional genesis directory:

    mkdir -p ~/Development/OreStudio
    git clone git@github.com:OreStudio/OreStudio.git \
        ~/Development/OreStudio/ores_dev_prime_origin
    cd ~/Development/OreStudio/ores_dev_prime_origin
    

    (Use https://github.com/OreStudio/OreStudio.git if SSH is not set up yet.) Running compass bearings immediately after clone will confirm this is the genesis env and show the next step.

  2. Install dependencies. Follow How do I set up a development environment? for vcpkg bootstrap and system packages.
  3. Configure the environment. Generate the .env file with credentials and port assignments:

    compass env configure --preset linux-clang-debug-ninja
    

    This is a one-time step per checkout; re-running it is safe and preserves existing secrets.

  4. Configure CMake. Follow How do I configure the project?: cmake --preset linux-clang-debug-ninja.
  5. Build. Follow How do I build the system?: cmake --build --preset linux-clang-debug-ninja.
  6. Run tests. Follow How do I run the tests?: cmake --build ... --target rat.
  7. Verify. Run ores.cli --help or launch the Qt desktop client to confirm a working end-to-end setup.

Provisioning additional worktrees

Once the genesis environment is set up, create named worktrees for feature work with:

compass env provision <adjective-noun>

This creates a sibling directory ores_dev_<name> with isolated ports and a pre-seeded .env, then optionally runs compass env configure automatically when --preset is given.

Postconditions

  • ~/Development/OreStudio/ores_dev_prime_origin is the genesis checkout.
  • .env is generated and contains valid credentials.
  • All build targets compile.
  • All tests pass.
  • CLI and Qt binaries are functional.

See also

Emacs 29.1 (Org mode 9.6.6)