Configuration
Configure Nyron for your project structure
Configuration
The nyron.config.ts file defines your versioning strategy and project structure.
Configuration File
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
// GitHub repository (owner/repo)
repo: "your-org/your-repo",
// Projects to version (supports monorepos)
projects: {
// Key is the project name
backend: {
tagPrefix: "@my-app/backend@", // Git tag format
path: "apps/backend", // Path to project
},
frontend: {
tagPrefix: "@my-app/frontend@",
path: "apps/frontend",
},
},
})Configuration Options
repo
Type: string
Required: Yes
Your GitHub repository in the format owner/repo.
repo: "your-org/your-repo"projects
Type: Record<string, ProjectConfig>
Required: Yes
An object defining all projects in your repository. Each key is a project name, and the value contains:
tagPrefix: The prefix used for git tags (e.g.,"v","@pkg/name@")path: The path to the project directory relative to repository root
Note: The tagPrefix you configure here is used for project tags (version tracking), not for nyron-release tags. Nyron-release tags always use the format nyron-release@* and are independent of your tagPrefix configuration. Your existing tags won't interfere with Nyron, and Nyron won't use them as release boundaries.
Monorepo Setup
For monorepos, define multiple projects with different tag prefixes:
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
repo: "your-org/monorepo",
projects: {
api: {
tagPrefix: "@monorepo/api@",
path: "packages/api",
},
sdk: {
tagPrefix: "@monorepo/sdk@",
path: "packages/sdk",
},
cli: {
tagPrefix: "@monorepo/cli@",
path: "packages/cli",
},
},
})Nyron will track each project independently based on their tag prefixes.
Understanding Tag Systems: Remember that Nyron uses two separate tag systems:
- Project tags (from
tagPrefix): Used for version tracking and created bynyron bump - Nyron-release tags (
nyron-release@*): Used as release boundaries and created bynyron push-tagornyron release
These are independent - your project tag prefixes don't affect nyron-release tags, and existing tags in your repo won't interfere with Nyron's operation.
Single Package Setup
For single-package repositories:
import { defineConfig } from "@nyron/cli/config"
export default defineConfig({
repo: "your-org/single-package",
projects: {
main: {
tagPrefix: "v",
path: ".",
},
},
})