Skip to content

Repository configuration file

Much like .circleci/config.yml for CircleCI or .github/workflows/main.yml for GitHub Actions, the repository configuration file defines how your repo is built and configured. Repository-level settings are read from a config file so you can set defaults for all artifacts in the repo without repeating them on every @artifact decorator. In the future, we will add more settings to the configuration file, such as the custom build environment and flow.

Location

The configuration file is located at .makerrepo/config.yaml in the root of your repository.

Schema

The config file is YAML. Top-level structure:

Key Type Description
pythonpaths array of strings Optional. Paths to prepend to Python's import path (sys.path) before importing your repo code. Useful for src/ layouts.
artifacts object Optional. Artifacts-related defaults.

pythonpaths

Paths that MakerRepo prepends to sys.path before loading user modules. Use this when your code is not importable from the repository root by default (for example, a src/ layout).

Each entry is typically a relative path from the repository root.

artifacts.default_config

Defaults used when the @artifact decorator omits export_step or export_3mf. See Artifacts for how these are used per artifact.

Key Type Default Description
export_step boolean true Default value for exporting the artifact as a STEP file when not set on the decorator.
export_3mf boolean true Default value for exporting the artifact as a 3MF file when not set on the decorator.

Example

# .makerrepo/config.yaml
pythonpaths:
  - src
  - libs/shared

artifacts:
  default_config:
    export_step: true
    export_3mf: true

Omitting pythonpaths means no additional paths are added to sys.path. Omitting artifacts or default_config uses the library defaults (both export_step and export_3mf are true). You only need to create .makerrepo/config.yaml if you want to change these defaults or add options like pythonpaths.