Orbit v0.15.2 (Preview)
What changed
Everything here came from one person running --dacpac-dir for the first time. The feature's core held; its edges did not.
publish could not find the target under --instance. It derived the environment's resource name by trimming orbit- off the container name. In shared mode that is accidentally right — orbit-sql-server trims to sql-server. Under --instance the container is orbit-instance-<name>-<hash>-sql-server, so the trim produced a name no status response contains: publish reported the target unavailable seconds after up reported it healthy, and the hint told the user to start a resource orbit then rejected as unknown. It now reads the resource name the daemon already publishes for the dashboard.
--parallel said what it does but not when it works. Concurrent first-time publishes race on the logins and roles the projects share, and all but one fail with Msg 15025. On a server that already has the databases it roughly halves the wall clock. Neither half was in --help, which is where the flag gets found; both are now, along with the measurements and their caveats in the SQL workflow docs.
--all with a stray number now explains itself. --parallel takes an optional value, so --parallel 4 leaves the 4 as a positional argument and the old error — "--all takes no database argument" — described a mistake nobody had made.
Why it matters
The prebuilt-dacpac path shipped in v0.15.0 after three rounds of review. Those rounds settled the directory layout, the fingerprint rule, and the error taxonomy, and the first real run confirmed all three: the published schema matched a hand-run sqlpackage baseline object for object, including the shared objects that composite deployment contributes.
What review could not settle was everything the feature depends on rather than defines. The target name came from a field whose meaning was documented but read one layer too literally. The flag parsing came from cobra. The performance surprise came from SQL Server. All three needed a run, not a reader — and all three were reachable from the first command a new user types.
Upgrade notes
No configuration changes. If you use orbit sqlserver publish with --instance, this release is the one where it works.