Skip to content

Commit 94d4c2a

Browse files
committed
feat(cli): Adopt POSIX-style argument parsing
Migrates command-line interface to POSIX-style syntax using System.CommandLine, a major breaking change. Updates BREAKING_CHANGES.md to document new argument mappings and details on the logging system replacement.
1 parent b7fa4c0 commit 94d4c2a

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

BREAKING_CHANGES.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,47 @@
11
## Unreleased
22

3+
### CLI Arguments — POSIX-style Syntax
4+
5+
The command-line interface has been migrated from Windows-style (`/switch` and single-dash `-switch`) arguments to POSIX-style `--long-name` arguments using [System.CommandLine](https://github.com/dotnet/command-line-api).
6+
7+
**Old-style arguments are no longer accepted by default.** Update any scripts, CI pipelines, or tooling accordingly.
8+
9+
As a temporary migration aid, set the environment variable `USE_V6_ARGUMENT_PARSER=true` to restore the legacy `/switch` and `-switch` argument handling. This escape hatch will be removed in a future release.
10+
11+
#### Full argument mapping
12+
13+
| Old argument | New argument | Short alias | Env var alternative |
14+
| ----------------------------- | -------------------------------- | ------------------------------ | ---------------------------- |
15+
| `/targetpath <path>` | `--target-path <path>` | _(positional `path` argument)_ | |
16+
| `/output <type>` | `--output <type>` | `-o` | |
17+
| `/outputfile <path>` | `--output-file <path>` | | |
18+
| `/showvariable <var>` | `--show-variable <var>` | `-v` | |
19+
| `/format <format>` | `--format <format>` | `-f` | |
20+
| `/config <path>` | `--config <path>` | `-c` | |
21+
| `/showconfig` | `--show-config` | | |
22+
| `/overrideconfig <k=v>` | `--override-config <k=v>` | | |
23+
| `/nocache` | `--no-cache` | | |
24+
| `/nofetch` | `--no-fetch` | | |
25+
| `/nonormalize` | `--no-normalize` | | |
26+
| `/allowshallow` | `--allow-shallow` | | |
27+
| `/verbosity <level>` | `--verbosity <level>` | | |
28+
| `/l <path>` | `--log-file <path>` | `-l` | |
29+
| `/diag` | `--diagnose` | `-d` | |
30+
| `/updateassemblyinfo [files]` | `--update-assembly-info [files]` | | |
31+
| `/updateprojectfiles [files]` | `--update-project-files [files]` | | |
32+
| `/ensureassemblyinfo` | `--ensure-assembly-info` | | |
33+
| `/updatewixversionfile` | `--update-wix-version-file` | | |
34+
| `/url <url>` | `--url <url>` | | |
35+
| `/b <branch>` | `--branch <branch>` | `-b` | |
36+
| `/u <username>` | `--username <username>` | `-u` | `GITVERSION_REMOTE_USERNAME` |
37+
| `/p <password>` | `--password <password>` | `-p` | `GITVERSION_REMOTE_PASSWORD` |
38+
| `/c <commit>` | `--commit <commit>` | _(no short alias)_ | |
39+
| `/dynamicRepoLocation <path>` | `--dynamic-repo-location <path>` | | |
40+
41+
> **Critical**: `-c` previously referred to the commit id. It is now aliased to `--config` (config file path). Any usage of `-c <commit-id>` must be changed to `--commit <commit-id>`.
42+
43+
The `GITVERSION_REMOTE_USERNAME` and `GITVERSION_REMOTE_PASSWORD` environment variables can be used as alternatives to `--username` and `--password`. Environment variables take lower precedence than explicit CLI arguments.
44+
345
### Logging System Replacement
446

547
* The custom `ILog` logging abstraction has been replaced with the industry-standard `Microsoft.Extensions.Logging` (M.E.L.) infrastructure using Serilog as the underlying provider.

0 commit comments

Comments
 (0)