Configuration
Customize Shipmark to fit your workflow.
Configuration File
Shipmark uses .shipmarkrc.yml in your project root. Create one with:
$ shipmark init
Full Configuration Example
changelog:
file: "CHANGELOG.md"
includeHash: true
includeDate: true
version:
files:
- "package.json" # Node.js
- "pyproject.toml" # Python (PEP 621, Poetry, Setuptools)
- path: "helm/values.yaml" # YAML with custom key
key: "image.tag"
prefix: "" # No "v" prefix for Docker tags
tagPrefix: "v"
tagMessage: "Release {version}"
commitMessage: "chore(release): {version}"
syncCheck: true # Warn if versions differ
commits:
conventional: true
git:
push: true
pushTags: true
signTags: false
signCommits: false
Multi-File Version Support
Shipmark can update versions across multiple file types, perfect for mixed technology stacks.
Supported File Types
| File Type | Auto-detected | Example |
|---|---|---|
package.json |
Yes | "package.json" |
pyproject.toml |
Yes (PEP 621, Poetry, Setuptools) | "pyproject.toml" |
*.yaml / *.yml |
With key path | path: "values.yaml", key: "image.tag" |
YAML File Configuration
For YAML files (Helm values, Kubernetes manifests), specify the key path using dot notation:
version:
files:
- path: "helm/values.yaml"
key: "image.tag" # Dot notation for nested keys
prefix: "" # Optional: override tag prefix
Monorepo Example
Perfect for React + Python monorepos with Helm deployments:
version:
files:
- "frontend/package.json"
- "backend/pyproject.toml"
- path: "deploy/helm/values.yaml"
key: "image.tag"
prefix: ""
syncCheck: true
Configuration Options
changelog
| Option | Type | Default | Description |
|---|---|---|---|
file |
string | "CHANGELOG.md" | Changelog file path |
includeHash |
boolean | true | Include commit hashes in changelog |
includeDate |
boolean | true | Include release date in header |
includeAuthor |
boolean | false | Include commit author |
version
| Option | Type | Default | Description |
|---|---|---|---|
files |
(string | object)[] | ["package.json"] | Files to update version in. Can be strings or objects with path/key/prefix |
tagPrefix |
string | "v" | Prefix for git tags |
tagMessage |
string | "Release {version}" | Tag annotation message |
commitMessage |
string | "chore(release): {version}" | Release commit message |
syncCheck |
boolean | false | Warn if versions differ between files before release |
File Entry Object Options
| Option | Type | Required | Description |
|---|---|---|---|
path |
string | Yes | Path to the file |
key |
string | For YAML | Dot notation path to version (e.g., "image.tag") |
prefix |
string | No | Override version prefix (empty string for no prefix) |
git
| Option | Type | Default | Description |
|---|---|---|---|
push |
boolean | true | Push commits to remote |
pushTags |
boolean | true | Push tags to remote |
signTags |
boolean | false | GPG sign tags |
signCommits |
boolean | false | GPG sign commits |