Flock CI builds against DuckDB v1.5.4. User-facing docs require DuckDB 1.5.0+.
Local Development Setup
- Clone the repository:
- Initialize submodules (if you forgot
--recursive):
- Build and run via helper script:
- Check for required tools (CMake, compiler, Ninja/Make, etc.).
- Configure dependencies via
vcpkg. - Build Flock (Debug/Release).
- Launch DuckDB with the Flock extension preloaded.
README.md for a concise overview of these steps.
For a CLion-specific walkthrough (open the DuckDB CMake project, vcpkg, and run configs), see docs/development/clion.md in the repository. That guide is not part of this docs site.
Building the Extension Manually
While./scripts/build_and_run.sh is the recommended path, you can also build manually:
LOAD with the appropriate path.
WASM builds
Flock CI produces DuckDB-WASM extension artifacts viaextension-ci-tools (see .github/workflows/MainDistributionPipeline.yml). To build locally:
- Clone with submodules and follow the steps above.
- Use the extension distribution toolchain with
WASM_EXTENSIONS=1and an Emscripten target, following the patterns inextension-ci-tools/.github/workflows/_extension_distribution.yml.
Running Tests
Flock comes with both unit and integration tests:- C++ unit tests live under
test/unit/. - Integration tests (Python + DuckDB) live under
test/integration/.
Coding Conventions
When contributing code:- Follow the surrounding C++ style (namespaces, includes, brace style).
- Avoid introducing new dependencies without a clear reason.
- Prefer small, focused pull requests with clear descriptions.
llm_complete or the metrics manager.
Working on Providers & Models
- Provider-specific adapters live under
src/model_manager/providers/adapters/. - HTTP and batching logic is centralized in provider handlers under
src/include/flock/model_manager/providers/handlers/. - New providers should:
- Integrate with the existing metrics API.
- Respect the
context_columnsabstraction. - Provide clear, actionable error messages when a feature is unsupported.
Docs & Developer Experience
The Mintlify docs live indocs/. Install the CLI once:
mint dev — fast editing
Best for writing and layout while you iterate on MDX, nav, and components.
- Hot reload on save
- Mintlify dev server (root URL, no
/flockprefix) - Mintlify cloud search when the CLI is authenticated (optional)
- Does not run the GitHub Pages export, path rewrites, or Pagefind index
build-and-serve.sh — production parity
Best before merging doc changes, when testing search, or when verifying links and assets under the GitHub Pages base path.
From the repo root:
http://localhost:3000/flock/ (the /flock/ prefix matters).
This script:
mint export→ static HTMLprepare-github-pages.mjs→ rewrites paths for/flockand injects the Pagefind search bridgepagefind→ builds the client-side search index- Serves the result with the same layout as GitHub Pages
PORT (default 3000), GITHUB_PAGES_BASE_PATH (default /flock), SITE_DIR, SITE_ZIP, DOCS_TMPDIR. If mint export fails with ENOSPC, set DOCS_TMPDIR=/tmp.
When adding new Flock features, update
- The home page (
index.mdx) for high-level positioning - The relevant function or feature page (e.g.
llm-complete.mdxmodalities,llm-metrics.mdx) static/llms.txtso entry points stay currentdocs.jsonnavigation if you add or regroup pages- This Developer Guide for build, testing, or contribution-related changes

