Skip to content

feat(cli): Run Go projects end to end - #423

Open
Gr-i-niy wants to merge 16 commits into
Gr-i-niy/cli-improvementsfrom
Gr-i-niy/go
Open

Gr-i-niy wants to merge 16 commits into
Gr-i-niy/cli-improvementsfrom
Gr-i-niy/go

Conversation

@Gr-i-niy

@Gr-i-niy Gr-i-niy commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

House style: no semicolons in prose. Semicolon-joined sentences in the
Long descriptions, flag help, the dry-run status line, and comments are
split into separate sentences, and '; defaults to X' flag suffixes become
'(defaults to X)'. The mirrored line in docs/usage.md is updated to match.
The four spots predate this branch (the external-methods paragraph, the
summary section intro, and the global --color bullet). Rewritten as
separate sentences to match the no-semicolon prose rule.
…ll metacharacters

Registering a renamed flag and its deprecated alias as two stock pflag
StringArrayVar flags bound to one slice made the alias's first value
replace whatever the new spelling had already collected, silently
dropping models from the analysis. The two spellings now share an
appending value type, so mixed invocations accumulate in command-line
order. Applies to --passthrough-models and --java-models on scan and
the test-run commands.

shellQuote quoted only whitespace and quote characters, so a suggested
re-run containing a glob or a variable was mangled by the shell on
paste. It now quotes anything outside the shlex-style inert set.
Every command's Long text now follows ASD-STE100 style: short
sentences, one instruction per sentence, active voice, and simple
words. Every command has an Examples section, and each Examples section
ends with recipes that show complete use cases as command sequences,
from the first scan on a new machine to the rule-test edit loop.

The summary, prune, and reachability Shorts are simplified to match,
and the docs tables that quote them are synced.
The help rewrite mentioned Go in the root and pull help, and the docs
mentioned go.mod, the go-ssa-server, and the Go toolchain. Go support
lands in its own branch. That branch states it, in its own words.
The comments of the Go wiring follow the ASD-STE100 style of the rest of
the stack: short sentences, one idea per sentence, and simple words. The
toolchain-missing messages read the same way, and a stale plan reference
in the EnsureGoServerAvailable comment is removed.

The scan help says that a Go project needs the go command on PATH. The
usage guide gets a short Go paragraph in the scan section: the toolchain
requirement, the go-ssa-server download, and the mixed-project warning.
The docs README now names Go next to Java and Kotlin.
…archives

health now shows the go-ssa-server next to the other components, with
the same single-component script mode, and the GoServer artifact carries
the --go-server-binary override the same way the analyzer and the
autobuilder carry their JAR overrides. The version display strips the
go-server/ tag prefix through the new ArtifactDef.TagPrefix, since the
tag prefix differs from the artifact kind.

Release archives now bundle the go-ssa-server the same way they bundle
the analyzer, the autobuilder, and the rules. The binary is platform
specific, so scripts/bundle-go-server.sh injects the correct asset into
the opentaint and opentaint-full archives after GoReleaser, as
bundle-jre.sh does for the JREs. The docs name the new component in the
health section and in the archive variant tables.
The root and pull help, the prerequisites, and the scan and compile
descriptions name Go again. The cli-improvements branch dropped these
mentions because Go support lands here, not there.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants