Skip to main content
When you release a Go project, commitdog compiles a binary for each configured build target before uploading assets to your platform. You control which targets are active using commitdog release config, which presents an interactive toggle menu and saves your selection to a .commitdog file in the repository root.

Available targets

commitdog supports five build targets:

Configuring targets

1

Run the config command

From the root of your repository, run:
2

Toggle targets in the menu

An interactive menu shows all targets with their current selection state:
  • Enter one or more numbers separated by spaces or commas to toggle those targets on or off.
  • Press a to toggle all targets at once. If all are currently selected, pressing a deselects all; otherwise it selects all.
  • Press enter with no input to confirm your selection.
  • Press q to quit without saving.
3

Confirm and save

After you press enter, commitdog saves your selection:
The .commitdog file is written to your repository root. You can re-run commitdog release config at any time to change the selection.

The .commitdog config file

Your target selection is stored in .commitdog at the root of your repository. The file uses a simple key-value format:
Commit this file alongside your code so that everyone working in the repository uses the same release targets.

First-time prompt

If you run commitdog release on a Go project before configuring targets, commitdog pauses and asks once:
  • Choose 1 to open the interactive config menu immediately.
  • Choose 2 to accept all five targets as defaults and save that choice — commitdog will not ask again.
  • Choose q to abort the release.
Build targets only affect Go projects. For Node.js, Rust, Python, Java, and VERSION-based projects, commitdog skips the binary build step entirely and no target selection is required.