Project command
Documentation home · Command reference
tronador project detects the implementation from a regular marker file under
.cloudopsworks/ and runs a logical capability without dispatching through a
Makefile.
tronador project detect
tronador project capabilities
tronador project init
tronador project init aws # Terraform module provider
tronador project version
tronador project lint
tronador project format
tronador project clean --yes # Terragrunt only
The command is namespace-free: do not write project go init or
project terraform-module lint. Use project capabilities to see the valid
capabilities for the detected marker.
Detection
Only <workdir>/.cloudopsworks/ is inspected. The supported markers are
.android, .docker, .dotnet, .fluttermobile, .golang, .java,
.node, .python, .rust, .terraform-module, .iac, and .xcode.
Markers must be regular files. Unknown files are ignored; no marker or markers
from different implementations produce structured errors.
Use --workdir to target another repository and --json for stable machine-
readable output:
tronador project detect --workdir ../service --json
tronador project capabilities --workdir ../service --json
Tools and safety
Tool-backed capabilities resolve only their declared tools through the shared
Tronador catalog: PATH, the provisioned cache, then direct provisioning. A
download requires --allow-network; --no-install-tools disables installation.
Use --tools-dir, --tools-config, --tool-version name=version, and
--tool-path name=path to control resolution. Terraform/OpenTofu lint and
format operations use OpenTofu by default and accept
--engine terraform|tofu|auto; auto prefers OpenTofu when only one
candidate is available and fails when both are available.
Initialization does not resolve an IaC engine.
Every mutating capability except project version supports the global --dry-run
operation plan without tool resolution. Destructive Terragrunt cleanup requires --yes.
Tool calls use typed argument arrays and never invoke Make, shell bootstrap scripts, or
tag-management workflows.
Version generation
tronador project version writes VERSION and the detected profile’s metadata when it
exists. Its default policy writes the tag at HEAD; when HEAD is untagged, it writes
GitVersion’s FullSemVer with + translated to - for non-Java profiles. Java keeps
the selected SemVer unchanged in VERSION; only the Maven pom.xml version converts
qualifier and build separators after x.y.z to hyphens. For example,
x.y.z-feature.branch_name.1+build_2 remains unchanged in VERSION, while
pom.xml receives x.y.z-feature-branch-name-1-build-2.
| Command | Supported profiles | Result |
|---|---|---|
tronador project version |
All application profiles | Default version policy described above. |
tronador project version --plain |
Node and Python only | Uses GitVersion’s MajorMinorPatch and writes exactly x.y.z, including when HEAD is tagged. |
tronador project version --snapshot |
Untagged Java only | Uses GitVersion’s MajorMinorPatch and writes x.y.z-SNAPSHOT. |
tronador project version --generate --yes |
Catalog-managed versioned templates and explicitly registered private source repositories | Writes the guarded upgrade marker as vX.Y.Z; it does not tag, commit, or push. |
The profile-specific flags are rejected for every other capability or profile. Use
tronador project version --help for the executable’s version-specific usage and flags.
project version --dry-run is the evaluated-preview exception: it always calculates
GitVersion (using a repo-local configuration when present) but never changes project
files. It prints deterministic unified file patches (or `No file changes for version