All notable changes to Terrabuild are documented in this file.
- Normalize repository identity before hashing projects and build graphs so equivalent local GitHub remotes and
GITHUB_REPOSITORYresolve to the same namespace while preserving multi-repository workspace separation by host/path. - Normalize GitHub repository owner/name case during repository hashing so local remotes like
git@github.com:MagnusOpera/Terrabuild.gitmatch CIGITHUB_REPOSITORY=magnusopera/terrabuild.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.192.2-next...0.192.3-next
- Support both dotted and bracketed project version lookups in expressions (
project.foo.version,project.["foo"].version,project.[terrabuild.project].version) and restore project-reference discovery so those expressions load referenced projects correctly during graph construction.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.192.1-next...0.192.2-next
- Add first-class
Repositorysource-control metadata to Terrabuild options, use it directly for remote Insights reporting, and include repository/origin identity in local project and graph hashes so cache keys remain stable across Git worktrees. - Upload build graph snapshots to Insights after
StartBuild(), including node execution metadata (artifacts,build,batch,action,required,isBatchNode) so downstream flow and architecture metrics can compute transitive graph impact.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.192.0-next...0.192.1-next
- Add artifact
startedAt/endedAttimestamps to Insights cache publication so Terrabuild sends per-target execution windows withadd-artifact.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.191.1-next...0.192.0-next
- Revert
+=-= - Revert
includesandoutputsoverrides - Add ordered
outputsand project-targetdepends_onoperations (=,+=,-=), allowingPROJECTfiles to update outputs and to extend, remove, or replace workspace target dependencies in declaration order.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.190.3...0.191.1
- Revert
+=-= - Revert
includesandoutputsoverrides
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.191.0-next...0.191.1-next
- Add ordered
outputsand project-targetdepends_onoperations (=,+=,-=), allowingPROJECTfiles to update outputs and to extend, remove, or replace workspace target dependencies in declaration order.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.190.3-next...0.191.0-next
- Fix cache summary generation to omit the
outputsartifact marker when batched or managed builds did not materialize any outputs, avoiding broken restore attempts against non-existent output archives. - Fix cache artifact publication to send logical file names (
logs,outputs) to Insights while keeping full<ProjectHash>/<Target>/<TargetHash>/...storage keys internal to cache uploads. - Change project-level
includesandoutputsto act as true overrides of inferred/default values instead of being merged implicitly. - Reuse existing artifacts for batched
Restoremembers by linking them to the current build withuse-artifactinstead of republishing cache/artifact state after batch execution.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.22...0.190.3
- Fix cache summary generation to omit the
outputsartifact marker when batched or managed builds did not materialize any outputs, avoiding broken restore attempts against non-existent output archives.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.190.2-next...0.190.3-next
- Fix cache artifact publication to send logical file names (
logs,outputs) to Insights while keeping full<ProjectHash>/<Target>/<TargetHash>/...storage keys internal to cache uploads.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.190.1-next...0.190.2-next
- Change project-level
includesandoutputsto act as true overrides of inferred/default values instead of being merged implicitly.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.190.0-next...0.190.1-next
- Reuse existing artifacts for batched
Restoremembers by linking them to the current build withuse-artifactinstead of republishing cache/artifact state after batch execution.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.21-next...0.190.0-next
- Flatten GitHub live batch progress output to one status line per project (for example
install apps/Api) and remove nested⦙hierarchy rows while keeping progress indicators.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.21...0.189.22
- Update
make release-prepare version=X.Y.Zto aggregate stable release notes fromUnreleasedplus all changelog sections since the previous stable tag (while keeping-nextrelease-prepare behavior unchanged). - Update
@dotnet restoredocumentation example forargsto use--force(documentation-only, behavior unchanged). - Default Terrabuild.UI build configuration now starts with
Retryenabled when the console opens. - Add a dedicated Terrabuild.UI Cache Management section (between build configuration and build details) with
Cache/Homescope checkboxes, a redClear Cacheaction, in-progress toast, and automatic graph/status reload after successful cache clearing. - Add GraphServer
POST /api/cache/clearendpoint to clear selected cache scopes (cache,home) for the UI. - Fix Terrabuild.UI graph-node click behavior to always resolve a target and open cached logs, including first selection when no prior target was active.
- Terrabuild.UI now shows a startup toast while workspace targets/projects are being collected and keeps Build Controls disabled until that initialization completes.
- Terrabuild.UI now shows a loading toast and disables Build Controls while fetching graph and build status after target selection changes.
- Add
dependenciessupport to@dotnetrestore/build/pack/publish, mappingdependencies = falseto--no-dependencies, while preserving imperativerestore/buildno-flag behavior (false=>--no-restore/--no-build). - Simplify CI markdown batch detail headers to
build <hash>(without[members ...]) since project members are already listed below. - Enforce extension declaration safety by requiring
scriptfor non-@extension blocks, forbidding built-in script overrides (for example@dotnet), and resolving FScript imports relative to importer origin (workspace file-relative or URL-relative) with workspace-boundary and deny-path checks for local files. - Update markdown batch log summaries to list one row per project with shared batch anchors, split batch duration evenly across those project rows, and render batch detail headers in terminal style (
build <hash> [members]) without theProjects:prefix. - Align GitHub Actions batch log labeling with local style by rendering
target batch <hash>and listing all batch projects under aProjects:section in step summary details. - Change
@pnpm installdefault to not pass--force;force = trueis now required to opt in. - Revert default extension build configs to debug profiles (
dotnet=Debug,gradle=Debug,cargo=dev). - Fix
make docsgeneration target by declaring it as.PHONYto avoid collisions with thedocs/directory. - Fix Terraform
@terraform applydefault behavior to passterrabuild.planfilewhenplanis omitted. - Restore extension-focused unit tests in
Terrabuild.Tests/Scriptswith one file per built-in FScript extension (cargo,docker,dotnet,gradle,make,npm,npx,null,openapi,playwright,pnpm,sentry,shell,terraform,yarn) covering defaults, cacheability, command rendering, and batch regressions. - Add expression source-location tracking (
file:line:column) through parsing and evaluation so configuration errors report exact anchors. - Preserve legacy parser shape for existing consumers while using source-aware parsing in WORKSPACE/PROJECT loading paths.
- Render configuration expression error anchors with workspace-relative file paths for clearer diagnostics in multi-project workspaces.
- Improve local-evaluation diagnostics by including failing local names in error chaining.
- Fix dotnet extension batching by generating one per-batch
.slnxfile in-script and using it for batcheddotnetcommands. - Fix dotnet local dependency discovery by querying
//ProjectReference/@Includefrom XML and normalizing Windows-style separators, so graph dependencies and batching match GA behavior. - Remove trailing
.in single-project dotnet command invocation to reduce debug/action log noise. - Deduplicate batch reporting logs so batched nodes link/report under a single batch log entry in terminal, markdown, and GitHub Actions outputs.
- Upgrade Terrabuild FScript runtime/language to
0.57.0. - Remove dotnet extension string interpolation workaround (
dq) and rely on fixedString.*pipeline semantics in FScript0.56.0. - Add opt-in
UseLocalFScript=truebuild switch to resolve FScript via local../FScriptproject references instead of NuGet for faster integration loops. - Add Makefile
flags=fscriptsupport to propagate/p:UseLocalFScript=trueacrossdotnetbuild/test/publish/doc flows. - Add debug-time FScript performance profiling (phase durations, script load/cache counters, invocation/conversion totals) to diagnose configuration and graph overhead.
- Improve FScript runtime integration performance with cached method resolution and cached object/return type converters; optimize batch
.slnxproject resolution indotnet.fssto avoid unnecessary file scans. - Remove TargetsForTfmSpecificContentInPackage on dotnet pack.
- Add unit tests for full configuration/graph pipeline validation covering batch and non-batch scenarios.
- Rename
Terrabuild.Expressionsproject/module toTerrabuild.Expressionand update all solution/project references. - Extend expression unit tests to cover all evaluation functions and dependency extraction helpers.
- Switch
Terrabuild.LangFsLexYacc generation to standard incremental build workflow (always-onFsLex/FsYacc) and remove themake parser/GENERATE_PARSERworkaround. - Upgrade FScript runtime/language packages to
0.59.0. - Upgrade Terrabuild FScript runtime/language to
0.54.2. - Use FScript
HostContext.DeniedPathGlobsand pass workspace script sandbox deny patterns fromworkspace.deny. - Default script sandbox deny list to
[ ".git" ]whenworkspace.denyis not specified. - Add scripting tests for denied-path traversal bypass attempts and custom deny glob behavior.
- Upgrade Terrabuild FScript runtime/language to
0.52.0. - Exclude
<workspace-root>/.git/**from FScript extension filesystem extern access. - Adopt FScript
String.*helpers in built-in extension scripts where behavior is preserved. - Upgrade Terrabuild FScript runtime/language to
0.50.0. - Align extension script/docs literal formatting to FScript compact multiline compatibility rules.
- Upgrade Terrabuild FScript runtime/language to
0.41.0. - Make extension batch support dynamic per command by requiring command handlers to return
{ Batchable; Operations }. - Remove static
Batchabledescriptor/attribute semantics and update built-in extensions, protocol docs, and scripting tests accordingly. - Document and align extension protocol/type definitions on compact multiline record indentation style.
- Upgrade Terrabuild FScript runtime to 0.40.0 and initialize
Env(ScriptName,Arguments) when loading.fssextension scripts. - Fix FScript
Envprelude injection to preserve leadingimportdirectives in embedded scripts. - Create annotated release tags in
release-preparesogit push --follow-tagspushes releases - Update contributor workflow docs and add local architecture docs index
- Add a usage skill guide for day-to-day Terrabuild workflows
- Rename release helper target to
make release-prepareto avoid implying remote push/publish - Revert entitlements changes.
- Initialize changelog-driven draft release notes for tag workflows
- Load built-in extension scripts from embedded resources only and remove filesystem fallback/copy
- Fix embedded extension loading to preserve workspace host context in smoke-test scenarios
- Add
make release-prepareto automate changelog versioning, compare link, commit, and local tag creation
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.188.29...0.189.21
- Default Terrabuild.UI build configuration now starts with
Retryenabled when the console opens.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.20-next...0.189.21-next
- Add a dedicated Terrabuild.UI Cache Management section (between build configuration and build details) with
Cache/Homescope checkboxes, a redClear Cacheaction, in-progress toast, and automatic graph/status reload after successful cache clearing. - Add GraphServer
POST /api/cache/clearendpoint to clear selected cache scopes (cache,home) for the UI. - Fix Terrabuild.UI graph-node click behavior to always resolve a target and open cached logs, including first selection when no prior target was active.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.19-next...0.189.20-next
- Terrabuild.UI now shows a startup toast while workspace targets/projects are being collected and keeps Build Controls disabled until that initialization completes.
- Terrabuild.UI now shows a loading toast and disables Build Controls while fetching graph and build status after target selection changes.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.18-next...0.189.19-next
- Add
dependenciessupport to@dotnetrestore/build/pack/publish, mappingdependencies = falseto--no-dependencies, while preserving imperativerestore/buildno-flag behavior (false=>--no-restore/--no-build).
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.17-next...0.189.18-next
- Simplify CI markdown batch detail headers to
build <hash>(without[members ...]) since project members are already listed below.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.16-next...0.189.17-next
- Enforce extension declaration safety by requiring
scriptfor non-@extension blocks, forbidding built-in script overrides (for example@dotnet), and resolving FScript imports relative to importer origin (workspace file-relative or URL-relative) with workspace-boundary and deny-path checks for local files.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.15-next...0.189.16-next
- Update markdown batch log summaries to list one row per project with shared batch anchors, split batch duration evenly across those project rows, and render batch detail headers in terminal style (
build <hash> [members]) without theProjects:prefix.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.14-next...0.189.15-next
- Align GitHub Actions batch log labeling with local style by rendering
target batch <hash>and listing all batch projects under aProjects:section in step summary details.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.13-next...0.189.14-next
- Change
@pnpm installdefault to not pass--force;force = trueis now required to opt in. - Revert default extension build configs to debug profiles (
dotnet=Debug,gradle=Debug,cargo=dev). - Fix
make docsgeneration target by declaring it as.PHONYto avoid collisions with thedocs/directory.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.12-next...0.189.13-next
- Fix Terraform
@terraform applydefault behavior to passterrabuild.planfilewhenplanis omitted. - Restore extension-focused unit tests in
Terrabuild.Tests/Scriptswith one file per built-in FScript extension (cargo,docker,dotnet,gradle,make,npm,npx,null,openapi,playwright,pnpm,sentry,shell,terraform,yarn) covering defaults, cacheability, command rendering, and batch regressions.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.11-next...0.189.12-next
- Add expression source-location tracking (
file:line:column) through parsing and evaluation so configuration errors report exact anchors. - Preserve legacy parser shape for existing consumers while using source-aware parsing in WORKSPACE/PROJECT loading paths.
- Render configuration expression error anchors with workspace-relative file paths for clearer diagnostics in multi-project workspaces.
- Improve local-evaluation diagnostics by including failing local names in error chaining. Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.10-next...0.189.11-next
- Fix dotnet extension batching by generating one per-batch
.slnxfile in-script and using it for batcheddotnetcommands. - Fix dotnet local dependency discovery by querying
//ProjectReference/@Includefrom XML and normalizing Windows-style separators, so graph dependencies and batching match GA behavior. - Remove trailing
.in single-project dotnet command invocation to reduce debug/action log noise. - Deduplicate batch reporting logs so batched nodes link/report under a single batch log entry in terminal, markdown, and GitHub Actions outputs.
- Upgrade Terrabuild FScript runtime/language to
0.57.0. - Remove dotnet extension string interpolation workaround (
dq) and rely on fixedString.*pipeline semantics in FScript0.56.0. - Add opt-in
UseLocalFScript=truebuild switch to resolve FScript via local../FScriptproject references instead of NuGet for faster integration loops. - Add Makefile
flags=fscriptsupport to propagate/p:UseLocalFScript=trueacrossdotnetbuild/test/publish/doc flows. - Add debug-time FScript performance profiling (phase durations, script load/cache counters, invocation/conversion totals) to diagnose configuration and graph overhead.
- Improve FScript runtime integration performance with cached method resolution and cached object/return type converters; optimize batch
.slnxproject resolution indotnet.fssto avoid unnecessary file scans. - Remove TargetsForTfmSpecificContentInPackage on dotnet pack.
- Add unit tests for full configuration/graph pipeline validation covering batch and non-batch scenarios.
- Rename
Terrabuild.Expressionsproject/module toTerrabuild.Expressionand update all solution/project references. - Extend expression unit tests to cover all evaluation functions and dependency extraction helpers.
- Switch
Terrabuild.LangFsLexYacc generation to standard incremental build workflow (always-onFsLex/FsYacc) and remove themake parser/GENERATE_PARSERworkaround. - Upgrade FScript runtime/language packages to
0.59.0.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.9-next...0.189.10-next
- Upgrade Terrabuild FScript runtime/language to
0.54.2. - Use FScript
HostContext.DeniedPathGlobsand pass workspace script sandbox deny patterns fromworkspace.deny. - Default script sandbox deny list to
[ ".git" ]whenworkspace.denyis not specified. - Add scripting tests for denied-path traversal bypass attempts and custom deny glob behavior.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.8-next...0.189.9-next
- Upgrade Terrabuild FScript runtime/language to
0.52.0. - Exclude
<workspace-root>/.git/**from FScript extension filesystem extern access. - Adopt FScript
String.*helpers in built-in extension scripts where behavior is preserved.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.7-next...0.189.8-next
- Upgrade Terrabuild FScript runtime/language to
0.50.0. - Align extension script/docs literal formatting to FScript compact multiline compatibility rules.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.6-next...0.189.7-next
- Upgrade Terrabuild FScript runtime/language to
0.41.0. - Make extension batch support dynamic per command by requiring command handlers to return
{ Batchable; Operations }. - Remove static
Batchabledescriptor/attribute semantics and update built-in extensions, protocol docs, and scripting tests accordingly. - Document and align extension protocol/type definitions on compact multiline record indentation style.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.5-next...0.189.6-next
- Upgrade Terrabuild FScript runtime to 0.40.0 and initialize
Env(ScriptName,Arguments) when loading.fssextension scripts. - Fix FScript
Envprelude injection to preserve leadingimportdirectives in embedded scripts.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.4-next...0.189.5-next
- Create annotated release tags in
release-preparesogit push --follow-tagspushes releases - Update contributor workflow docs and add local architecture docs index
- Add a usage skill guide for day-to-day Terrabuild workflows
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.3-next...0.189.4-next
- Rename release helper target to
make release-prepareto avoid implying remote push/publish - Revert entitlements changes.
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.2-next...0.189.3-next
- Initialize changelog-driven draft release notes for tag workflows
- Load built-in extension scripts from embedded resources only and remove filesystem fallback/copy
- Fix embedded extension loading to preserve workspace host context in smoke-test scenarios
- Add
make release-prepareto automate changelog versioning, compare link, commit, and local tag creation
Full Changelog: https://github.com/magnusopera/terrabuild/compare/0.189.1-next...0.189.2-next
- feat: fix embedded extension location with AOT by @pchalamet in #384
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.189.0-next...0.189.1-next
- Update extension descriptions and defaults
- Migrate extensions to FScript and remove legacy extension projects by @pchalamet in #378
- feat: update entitlements by @pchalamet in #377
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.188.29...0.189.0-next
- fix: ensure PubSub does not deadlock by @pchalamet in #375
- feat: add unit tests for reentrant get by @pchalamet in #376
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.188.27...0.188.29
- feat: add web ui with graph and terminal by @pchalamet in #348
- feat: embed web application into Terrabuild exe by @pchalamet in #349
- feat: add notifications by @pchalamet in #350
- feat: log to file & add crtl-c message for user by @pchalamet in #351
- feat: eagerly abort build on error by @pchalamet in #352
- fat: mute terminal operations and preserve cursor by @pchalamet in #353
- feat: add build info panel by @pchalamet in #354
- feat: add build params by @pchalamet in #355
- feat: cleanup ui implementation by @pchalamet in #356
- feat: edges highlights on drag by @pchalamet in #357
- feat: default auto theme by @pchalamet in #358
- feat: display log date and simplify log by @pchalamet in #359
- feat: add log/debug option on web app by @pchalamet in #360
- fix: force build must be enforced by @pchalamet in #361
- feat: left to right layout by @pchalamet in #362
- feat: add exit code and ended at in title by @pchalamet in #363
- feat: better sidebar by @pchalamet in #364
- feat: use project name and change shape of nodes by @pchalamet in #365
- feat: check workspace before running graph by @pchalamet in #366
- feat: add edges selection by @pchalamet in #367
- feat: rename graph command as console by @pchalamet in #368
- feat: add random port for the web app by @pchalamet in #369
- feat: do not show build log on node select by @pchalamet in #370
- feat: toggle build log by @pchalamet in #371
- feat: better node selection handling by @pchalamet in #372
- feat: collapse/expand terminal by @pchalamet in #373
- fix: incomplete root node shall lead to build error by @pchalamet in #374
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.187.1...0.188.27
- fix: incomplete root node shall lead to build error by @pchalamet in #374
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.188.26-next...0.188.27-next
- feat: collapse/expand terminal by @pchalamet in #373
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.188.25-next...0.188.26-next
- feat: better node selection handling by @pchalamet in #372
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.188.24-next...0.188.25-next
- fat: rename all batch strategy as single by @pchalamet in #347
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.187.0...0.187.1
- feat: add cpus on extensions by @pchalamet in #346
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.186.5...0.187.0
- fix: remove previous config if any by @pchalamet in #345
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.186.4...0.186.5
- fix: rendering issue by @pchalamet in #344
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.186.3...0.186.4
- feat: simplify sign and release workflow by @pchalamet in #335
- feat: update self build by @pchalamet in #337
- feat: merge pr and push workflows by @pchalamet in #339
- feat: implement new obvious dependency management by @pchalamet in #341
- feat: do not upload outputs if descriptor is empty by @pchalamet in #342
- feat: enable SxS install by @pchalamet in #343
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.18...0.186.3
Changes:
- allow side by side install
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.18...0.185.19
- feat: add fast path for required nodes by @pchalamet in #334
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.17...0.185.18
- feat: skip non required nodes in Runner by @pchalamet in #333
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.16...0.185.17
- feat: delegate restore to cascade by @pchalamet in #332
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.15...0.185.16
- fix: restore external shall not be required by @pchalamet in #331
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.14...0.185.15
- feat: add more relaxation rules by @pchalamet in #330
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.185.13...0.185.14
- feat: proper batch computation by @pchalamet in #314
- feat: configurable batch mode by @pchalamet in #315
- feat: remove extension/batch and extend target/batch meaning by @pchalamet in #316
- feat: implement cascade to compute exact node requirements by @pchalamet in #317
- feat: add support for outputs in WORKSPACE's target by @pchalamet in #318
- fix: correct requirement computation by @pchalamet in #319
- feat: add support for lazy targets by @pchalamet in #320
- feat: run whole cluster if exec node found by @pchalamet in #321
- chore: use Generic collections for better perfs by @pchalamet in #322
- fix: invalid task name for job by @pchalamet in #323
- feat: simplify hash computation by @pchalamet in #324
- feat: faster pubsub by @pchalamet in #325
- feat: use Lock on Hub and logger by @pchalamet in #326
- fix: fix log + use serilog interpolation by @pchalamet in #327
- chore: update logs by @pchalamet in #328
- fix: USER identification is fixed via $HOME by @pchalamet in #329
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.184.3...0.185.13
Changes:
- 0.184.3 is same as 0.184.1 and reverts changes in 0.184.2 as this break rebuild idempotency assumptions.
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.184.2...0.184.3
- fix: parent must rebuild if child has changed by @pchalamet in #313
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.184.1...0.184.2
- feat: add support for env block for extension by @pchalamet in #311
- feat: version is only checked on release builds by @pchalamet in #312
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.183.5...0.184.1
- feat: differentiated subscribe by @pchalamet in #310
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.183.4...0.183.5
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.183.3...0.183.4
- feat: download logs if log is enabled by @pchalamet in #309
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.183.2...0.183.3
- feat: encrypt artifacts before storing them server side by @pchalamet in #308
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.182.6...0.183.2
- chore: silent sentry errors as they are useless by @pchalamet in #306
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.182.4...0.182.5
- feat: extension owned project identifier by @pchalamet in #303
- chore: unify npm package management by @pchalamet in #304
- feat: adjust error level on sentry upload for local build by @pchalamet in #305
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.181.4...0.182.4
- fix: enforce tb var prefix by @pchalamet in #302
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.181.3...0.181.4
- feat: variable names are case insensitive by @pchalamet in #301
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.181.2...0.181.3
- feat: download external artifacts summary by @pchalamet in #300
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.181.1...0.181.2
- feat: environments pattern matching by @pchalamet in #299
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.181.0...0.181.1
- feat: add environments filter on projects by @pchalamet in #298
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.180.1...0.181.0
- fix: always add --link-workspace-packages for pnpm install by @pchalamet in #297
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.180.0...0.180.1
- feat: add support for optional comma in list and map by @pchalamet in #296
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.179.1...0.180.0
- chore: align code with syntax by @pchalamet in #294
- fix: single project must not specify --recursive by @pchalamet in #295
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.179.0...0.179.1
- feat: rename rebuild as build by @pchalamet in #293
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.178.6...0.179.0
- feat: .net 10 by @pchalamet in #285
- feat: add pnpm support by @pchalamet in #286
- fix: debug mode must log by @pchalamet in #288
- feat: check docs can be generated by @pchalamet in #289
- fix: cleanup up lock files mess by @pchalamet in #290
- feat: update extension docs by @pchalamet in #291
- feat: invert lockfile flag by @pchalamet in #292
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.177.3...0.178.6
- feat: configuration engine in workspace by @pchalamet in #275
- feat: update api for bulk insertions by @pchalamet in #276
- feat: sentry cli extension by @pchalamet in #278
- feat: add support for max error level for commands by @pchalamet in #279
- feat: port sentry extension from 0.176 by @pchalamet in #280
- feat: update single artifact to keep api compatibility by @pchalamet in #281
- feat: force summary download of failed restorable nodes by @pchalamet in #282
- feat: rename build-graph as node-graph by @pchalamet in #283
- feat: rename container as image by @pchalamet in #284
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.10...0.177.3
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.17...0.176.18
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.16...0.176.17
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.15...0.176.16
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.13...0.176.14
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.12...0.176.13
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.11...0.176.12
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.176.10...0.176.11
- feat: add support for external cache policy by @pchalamet in #263
- feat: skip ignored nodes by @pchalamet in #264
- feat: align use remote by @pchalamet in #265
- feat: unify use remote computation by @pchalamet in #266
- feat: option to disable SSL cert validation for terrabuild api by @pchalamet in #267
- feat: add back hub to compute node action by @pchalamet in #268
- feat: implement rebuild strategy by @pchalamet in #269
- feat: implement cascade cluster build by @pchalamet in #270
- feat: cascaded targets are locals by @pchalamet in #271
- feat: faster action evaluation by @pchalamet in #272
- feat: add enum syntax ~ by @pchalamet in #273
- feat: rename cache as artifacts by @pchalamet in #274
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.175.3...0.176.10
- feat: prioritize background task over normal task by @pchalamet in #259
- feat: track and kill processes if required by @pchalamet in #260
- fix: exec error must fail task by @pchalamet in #261
- feat: ensure errors are correctly reported on build by @pchalamet in #262
- feat: better looking groups
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.174.13...0.175.3
Changes
- fix: exec error must fail task (#261)
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.174.13...0.174.14
- fix: invalid up to date computation by @pchalamet in #258
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.174.12...0.174.13
- feat: batch build by @pchalamet in #246
- feat: batch docs by @pchalamet in #247
- feat: batch node status by @pchalamet in #248
- feat: humanize build duration by @pchalamet in #249
- feat: delay progress display for parent tasks by @pchalamet in #250
- feat: abbreviated humanized timespan by @pchalamet in #251
- feat: atomic batch progress by @pchalamet in #252
- feat: run io tasks as background continuations by @pchalamet in #253
- feat: dotnet publish as batchable command by @pchalamet in #254
- feat: remove IsLeaf on Node by @pchalamet in #255
- feat: simplify version check by @pchalamet in #256
- feat: stop scheduling tasks on first error by @pchalamet in #257
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.173.14...0.174.12
- feat: default labels by @pchalamet in #235
- feat: add locked mode support by @pchalamet in #236
- feat: implement filter by project types by @pchalamet in #238
- feat: fix project selection by @pchalamet in #239
- feat: more configuration log by @pchalamet in #240
- feat: rewrite builder by @pchalamet in #237
- feat: use gitignore to determine project contents by @pchalamet in #241
- feat: configure terminal autoflush by @pchalamet in #242
- feat: fix timer + rendering by @pchalamet in #243
- feat: use LibGit2Sharp for better performance and correct file matching by @pchalamet in #244
- feat: restore node but not its dependencies by @pchalamet in #245
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.172.0...0.173.14
- feat: use sync updates by @pchalamet in #234
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.171.0...0.172.0
- feat: generate mermaid as markdown by @pchalamet in #230
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.170.2...0.171.0
- feat: update icons on graph
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.170.1...0.170.2
- fix: add status nodes on graph
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.170.0...0.170.1
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.169.0...0.170.0
- feat: cleanup graph implementation + phony targets by @pchalamet in #232
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.168.1...0.169.0
- fix: restore shall not install dependencies by @pchalamet in #231
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.168.0...0.168.1
- feat: continuation based build by @pchalamet in #229
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.167.1...0.168.0
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.167.0...0.167.1
- feat: optimize restore idempotent targets by @pchalamet in #228
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.166.0...0.167.0
- feat: idempotent target by @pchalamet in #227
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.165.0...0.166.0
- feat: scaffold with attributes by @pchalamet in #226
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.164.0...0.165.0
- feat: deferred targets by @pchalamet in #225
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.163.2...0.164.0
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.163.1...0.163.2
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.163.0...0.163.1
- feat: add support for workspace target cache by @pchalamet in #224
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.5...0.163.0
feat: add dotnet tool support
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.4...0.162.5
fix: use terraform destroy instead of terraform apply -destroy
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.3...0.162.4
fix: ephemeral tasks shall not discard outputs
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.2...0.162.3
fix: remove --shm-size and --init as this generates more problems than it solves
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.1...0.162.2
fix: remove --ipc=host since it's not compatible with shared memory settings
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.162.0...0.162.1
- feat: use init for containers by @pchalamet in #217
- feat: increase shared memory by @pchalamet in #219
- feat: playwright support by @pchalamet in #218
- feat: update extensions parameters by @pchalamet in #220
- feat: cacheability is implemented as attribute on extensions by @pchalamet in #221
- fix: upload iif target is remote cacheable by @pchalamet in #222
- feat: update docs by @pchalamet in #223
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.161.0...0.162.0
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.160.0...0.161.0
- feat: dotnet restore only current project by @pchalamet in #216
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.159.5...0.160.0
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.159.4...0.159.5
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.159.3...0.159.4
- feat: parallel downloads by @pchalamet in #215
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.158.0...0.159.3
- feat: add version check by @pchalamet in #214
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.157.2...0.158.0
- feat: enhance exit code handling by @pchalamet in #212
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.157.0...0.157.1
- fix: dotnet test is cacheable by @pchalamet in #206
- fix: terraform plan is unmanaged by @pchalamet in #207
- feat: update retry logic for unmanaged task by @pchalamet in #208
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.154.0...0.155.0
- feat: use only snake_case identifiers by @pchalamet in #204
- feat: numbers are int only by @pchalamet in #205
Full Changelog: https://github.com/MagnusOpera/terrabuild/compare/0.153.0...0.154.0
- fix: invalid hash computation on automatic dependencies by @pchalamet in #203
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.152.2...0.153.0
- fix: mermaid graph shall not have extra nodes by @pchalamet in #202
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.152.1...0.152.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.152.0...0.152.1
feat: PROJECT and WORKSPACE are now part of hash
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.151.2...0.152.0
fix: restore implies both managed and outputs
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.151.1...0.151.2
fix: restore force managed
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.151.0...0.151.1
- feat: force restore flag by @pchalamet in #201
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.150.0...0.151.0
- Fix: filename in hash by @pchalamet in #200
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.149.0...0.150.0
- feat: add support for npx
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.148.3...0.149.0
fix: terraform requires variables for destroy 🤷♂️
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.148.1...0.148.2
- fix: enforce truthy eval for boolean operation by @pchalamet in #199
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.147.1...0.148.1
- fix: boolean operators shall be && and || by @pchalamet in #198
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.146.0...0.147.0
- feat: implement ~= operator (regex match) by @pchalamet in #197
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.145.0...0.146.0
- feat: option to create terraform workspace on plan if it does not exist by @pchalamet in #195
- feat: implement terraform destroy by @pchalamet in #196
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.144.2...0.145.0
- fix: shared files shall not crash on hash computation by @pchalamet in #194
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.144.0...0.144.2
- feat: update configuration listing by @pchalamet in #193
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.5...0.144.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.4...0.143.5
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.3...0.143.4
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.2...0.143.3
- feat: expand $TERRABUILD_HOME for containers by @pchalamet in #192
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.1...0.143.2
- feat: use regex for describing container vars by @pchalamet in #191
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.143.0...0.143.1
- feat: support for TERRABUILD_CREDENTIALS by @pchalamet in #190
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.142.2...0.143.0
- feat: additionnal props for openapi gen by @pchalamet in #189
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.142.1...0.142.2
- feat: update settings emoji 🦄 by @pchalamet in #188
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.142.0...0.142.1
- feat: ability to filter by project id by @pchalamet in #187
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.141.3...0.142.0
feat: update build graph emoji 👀 Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.141.2...0.141.3
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.141.1...0.141.2
- feat: change pattern npm & yarn + remove support for inner npm module by @pchalamet in #186
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.140.2...0.141.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.140.1...0.140.3
- feat: add colors on mermaid graph by @pchalamet in #185
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.140.0...0.140.1
- feat: array access by @pchalamet in #184
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.139.9...0.140.0
- upgrade to .net 9.0.300 by @pchalamet in #177
- feat: managed artifacts by @pchalamet in #179
- feat: add support for managed at workspace level by @pchalamet in #180
- fix: rebuild not propagated by @pchalamet in #181
- chore: rework node scheduling by @pchalamet in #182
- fix: if task is older than children then rebuild by @pchalamet in #183
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.138.0...0.139.9
- add terrabuild.environment by @pchalamet in #175
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.137.2...0.138.0
Fix labels output. Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.137.1...0.137.2
- bold target on mermaid graph by @pchalamet in #174
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.137.0...0.137.1
- expose arch and os by @pchalamet in #173
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.136.2...0.137.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.136.1...0.136.2
- remove version by @pchalamet in #170
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.136.0...0.136.1
- rename for consistency with project.id.version by @pchalamet in #169
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.135.26...0.136.0
- fix success computation when filter is used by @pchalamet in #168
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.135.25...0.135.26
- configuration is a collection of attributes now by @pchalamet in #133
- use block syntax for defaults by @pchalamet in #134
- HCL Parser + syntax change by @pchalamet in #135
- fix invalid optimization for nop nodes by @pchalamet in #137
- add support for homebrew alpha/beta formulae by @pchalamet in #138
- Use env variable content to detect configuration changes by @pchalamet in #139
- chore: merge env vars by @pchalamet in #140
- Enable F# Nullable Reference Types by @pchalamet in #141
- split publish targets by @pchalamet in #142
- fix release config by @pchalamet in #143
- filter out auth error by @pchalamet in #144
- do not get variable values as this can lead to graph reevaluation by @pchalamet in #145
- no need for duration - just diff end and start by @pchalamet in #146
- standalone lang parser by @pchalamet in #147
- fix project dependencies by @pchalamet in #148
- terraform force reconfigure by @pchalamet in #149
- fix project dependencies when using depends_on by @pchalamet in #150
- cleanup nunit by @pchalamet in #151
- code cleanup by @pchalamet in #152
- add * and / by @pchalamet in #153
- remove useless function, use string interpolation instead by @pchalamet in #154
- Add tests for lang and transpiler by @pchalamet in #155
- remove target. prefix by @pchalamet in #156
- add test cases for transpiler errors by @pchalamet in #157
- update brew template: rename terrabuild-beta as terrabuild-next by @pchalamet in #158
- fix docs by @pchalamet in #159
- update scaffold to latest syntax by @pchalamet in #160
- use lowercase for project unique id by @pchalamet in #161
- use falsy behavior for ? and ?? by @pchalamet in #162
- configuration is optional by @pchalamet in #163
- more falsy behavior on eval by @pchalamet in #164
- move initializer to project block by @pchalamet in #165
- enable multiple initializers by @pchalamet in #166
- update error msg by @pchalamet in #167
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.134.0...0.135.25
- add logs by @pchalamet in #128
- remove // comments by @pchalamet in #129
- string interpolation by @pchalamet in #130
- Add project locals by @pchalamet in #131
- upgrade to .net 9.0.202 by @pchalamet in #132
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.130.0...0.134.0
--logsis no more, use--loginstead
- log is no more linked to debug by @pchalamet in #127
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.129.2...0.130.0
- Pending tasks must not raise error in build
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.129.1...0.129.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.129.0...0.129.1
- add support for github actions commands by @pchalamet in #126
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.128.0...0.129.0
- Add exception area by @pchalamet in #121
- rename tests by @pchalamet in #122
- allow overriding sentry dsn by @pchalamet in #123
- better reporting for pubsub by @pchalamet in #124
- better cli handler by @pchalamet in #125
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.127.0...0.128.0
- upgrade to .net 9.0.201 by @pchalamet in #118
- rename run-smoke-tests as smoke-tests by @pchalamet in #119
- add case insensitive scan by @pchalamet in #120
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.126.4...0.127.0
- add sentry to collect exception by @pchalamet in #117
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.125.2...0.126.4
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.126.1...0.126.2
- add sentry to collect exception by @pchalamet in #117
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.125.2...0.126.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.124.1...0.125.2
- fix crash on detached hea
- fix commit email
** Full Changelog**: https://github.com/MagnusOpera/Terrabuild/compare/0.124.0...0.124.1
- collect commit & subject by @pchalamet in #114
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.123.2...0.124.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.123.1...0.123.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.122.1...0.123.1
- use string instead of guid for workspace Id by @pchalamet in #111
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.122.0...0.122.1
- change profile structure by @pchalamet in #110
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.121.3...0.122.0
- add config for Terraform init by @pchalamet in #108
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.121.2...0.121.3
- fix start build api
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.121.1...0.121.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.121.0...0.121.1
- override variable (CLI or TB_VAR) for latest built context
- upgrade to .net 9.0.200 by @pchalamet in #103
- change api route by @pchalamet in #104
- Adapt for new API by @pchalamet in #106
- container platform support by @pchalamet in #107
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.8...0.121.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.7...0.120.8
- unify backstick identifier handling
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.5...0.120.6
- fix reserved identifier: use backquote around identifier
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.3...0.120.4
- fix variables override
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.2...0.120.3
- fix $ in strings
- npm -dispatch_ shall not install packages
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.120.0...0.120.1
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.119.0...0.120.0
- change terrabuild location injection in makefile by @pchalamet in #100
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.118.0...0.119.0
- track values not vars by @pchalamet in #99
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.117.4...0.118.0
- container attribute is an expression by @pchalamet in #98
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.117.3...0.117.4
- restored task must send status at build time - not restore time by @pchalamet in #97
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.117.2...0.117.3
- default container was not explicit - feature discarded by @pchalamet in #96
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.117.1...0.117.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.117.0...0.117.1
- add open-api-generator extension by @pchalamet in #94
- Container override on extension and project by @pchalamet in #95
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.116.0...0.117.1
- Private dependencies as projects by @pchalamet in #92
- Chore: required qualified on ast by @pchalamet in #93
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.6...0.116.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.5...0.115.6
- add force to npm install by @pchalamet in #86
- silent null extension by @pchalamet in #87
- ignore subprojects on dependencies by @pchalamet in #88
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.4...0.115.5
- add unit test for scan folders by @pchalamet in #85
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.3...0.115.4
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.1...0.115.2
- do not forbid scripts if native - just this won't build by @pchalamet in #84
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.115.0...0.115.1
- disable scripts for native deployments by @pchalamet in #81
- scanning is ignoring ignored folders by @pchalamet in #83
- doc generator must use correct syntax for arguments by @pchalamet in #82
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.114.0...0.115.0
- integration test with custom script by @pchalamet in #80
- implement cache configuration at target level by @pchalamet in #78
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.113.0...0.114.0
- fix script loading by @pchalamet in #79
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.112.0...0.113.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.111.0...0.112.0
- Ability to ignores folders at workspace level by @pchalamet in #71
- .terrabuild is no more required by @pchalamet in #72
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.107.1...0.108.0
Fix project scan issue when PROJECT and WORKSPACE are in the same sub-directory.
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.107.0...0.107.1
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.106.0...0.107.0
- Prepare brew environment by @pchalamet in #67
- add & and | operator for booleans by @pchalamet in #68
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.104.0...0.106.0
- new functions: better format (using template) and tostring by @pchalamet in #66
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.102.1...0.104.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.102.0...0.102.1
- migrate to .net 9 by @pchalamet in #63
- Rework Docker interface by @pchalamet in #64
- Use kebab-case for arguments by @pchalamet in #65
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.100.4...0.102.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.100.3...0.100.4
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.100.2...0.100.3
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.100.1...0.100.2
- make some variables immediately available by @pchalamet in #62
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.100.0...0.100.1
- fix circular variable evaluation by @pchalamet in #59
- add yarn support by @pchalamet in #60
- Eager evaluation to avoid circular dependencies by @pchalamet in #61
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.98.0...0.100.0
- ignore WORKSPACE and PROJECT for hash computation by @pchalamet in #55
- Support add operator for list and map by @pchalamet in #56
- add format support by @pchalamet in #57
- function expression use tuple syntax (comma separated) by @pchalamet in #58
- add support for multi-arch by @pchalamet in #54
- fix circular variable evaluation by @pchalamet in #59
- add yarn support by @pchalamet in #60
- Eager evaluation to avoid circular dependencies by @pchalamet in #61
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.98.1...0.100.0
- Add Podman support by @pchalamet in #53
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.96.4...0.98.0
Bug fix:
- ensure container info are considered in hash computation
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.96.3...0.96.4
- container not part of hash by @pchalamet in #52
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.96.2...0.96.3
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.96.1...0.96.2
Changes:
- Add
!(not) operator
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.96.0...0.96.1
- add terrabuild_debug var by @pchalamet in #47
- remove BranchOrTag in command context by @pchalamet in #48
- rename ProjectHash as Hash by @pchalamet in #49
- Add replace function by @pchalamet in #50
- Change accessors + add count function by @pchalamet in #51
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.94.1...0.96.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.94.0...0.94.1
Changes:
- Rename Dynamic task as External task. Breaking change for custom extensions.
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.92.0...0.94.0
- Optimizer is officially removed. Unused artifacts are still not downloaded.
- No more universal binary for macOS: download correct version now (either arm64 or x64)
- State can be synchronized with external state (Terraform for example). See --checkstate and Extensions for dynamic operations
terrabuild_head_commitvariable is available in workflow now. It's discourage to use it anyway since this interferes with task caching
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.90.4...0.92.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.90.3...0.90.4
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.90.2...0.90.3
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.90.1...0.90.2
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.90.0...0.90.1
- Remove batch build support by @pchalamet in #43
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.88.1...0.90.0
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.88.0...0.88.1
- Notarize terrabuild by @pchalamet in #42
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.86.0...0.88.0
- Cleanup exec commands in build by @pchalamet in #32
- isolate consistency computation by @pchalamet in #33
- add metadata to CI by @pchalamet in #34
- rename api args by @pchalamet in #35
- cleanup GraphDef by @pchalamet in #36
- remove file size from artifact - compute server side instead by @pchalamet in #38
- rename field (breaking change) by @pchalamet in #39
- track artifact completion by @pchalamet in #40
- implement links (loose dependencies) for build optimizations by @pchalamet in #41
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.84.5...0.86.0
Changes:
- Fix npm run
Changes:
- Add
@systemextension withwritecommand - Add run command to
@npmextension - Expose current project hash
$terrabuild_hash
Changes:
- Fix logs on build failure
Graph:
- multi-steps graph construction
- multi-nodes targets
- decoupling graph processing from cache api
- optimizer can optimize multi-steps targets
Performance:
- only download what's required and nothing more (if not used, no download at all)
Reporting:
- node status on GitHub Summary
- better report of timings
Changes:
- Better optimizer
- Build summary on GitHub Actions
- Stable
- I/O performance
See https://terrabuild.io/blog/beta/
Changes:
- Add integration tests by @pchalamet in #27
- Run for real integration tests by @pchalamet in #28
- Fix ignores for rust projects
Changes:
- fix: dotnet test must not rebuild
Changes:
- add link on badge
Changes:
- Enhance build reports
Changes:
- Fix poor anchor management on github actions
Changes:
- Shorten identifier on logs
Changes:
- Remove randomness in structures to enforce testability
Changes:
- Graph at top of report
Changes:
- Title for build graph in logs
Changes:
- Fix optimizer was ignoring batchability of current node
Changes:
- New optimizer
Changes:
- Back to LR graph
Changes:
- add option to disable batch builds (--nobatch)
Changes:
- Fix documentation
Changes:
- simplify name on graph for clusters
Changes:
- better looking graph for clusters
Changes:
- dotnet test is batchable
- graph optimization can spawn new clusters
- better looking mermaid graph
Changes:
- add colors on graph (from cluster info)
Changes:
- revert name change after optimizer pass
Changes:
- use nuget lock for building Terrabuild
- simplify dotnet extensions commands
- fix bug in optimizer removing dependencies after optimization
Changes:
- revert --no-dependencies on bulk .net build
Changes:
- revert --no-dependencies on dotnet build extension
Changes:
- common home cache for containers
Changes:
- throttle dotnet restore (--disable-parallel)
- dump proc count in logs
Changes:
- Add annotations in GitHub for failed targets
Changes:
- Reduce links size in markdown
Changes:
- Remove post-xxx for batched nodes - better with markdown and logs
Changes:
- Split total as cost/gain
Changes:
- Segregate workflows on GitHub
- Total duration on markdown
Changes:
- Add mermaid graph to markdown
Changes:
- Fix duration in markdown
Changes:
- Add target duration on markdown
Changes:
- Fix anchors on github
Changes:
- better markdown with summary
Changes:
- Optimizer use forced flag to batch optimize tasks
Changes:
- Add markdown output on GitHub
Changes:
- add variables
terrabuild_retryandterrabuild_force
Changes:
- add
tagon docker push
Changes:
- add variable
terrabuild_note
Changes:
- fix target sources for force
Changes:
- Fix forced nodes not being built
Changes:
- force only apply to selection
Changes:
- add logs
Changes:
- Remove top level target shortcuts
- Report logs for all nodes leading to success or failure on build
Fix:
- rebuild shall not track used variables
Changes:
- Rename top level targets
Changes:
- WhatIf is moved from top level to target
Changes:
- add option to disable containers (--nocontainer)
- configuration default is always used as base configuration
- reenable home mapping on containers
Changes:
- Remove home mapping on extensions
Changes:
- Use stable hash computation across local and CI
- rebuild is an expression by @pchalamet in #12
- invalidate cache as required by @pchalamet in #11
- Fix tasks count by @pchalamet in #10
Changes:
- Fix child task triggering parent task
- Use PubSub by @pchalamet in #9
Changes:
- rename
filesasincludesin project
Changes:
- Cache for logs
- Dump all build logs on error
Changes:
- rename
.completefile asstatusin cache
Changes:
- enable cache summary only again on build end
Changes:
- Fix invalid cache usage in build
Changes:
- Fix required node scheduling
Changes:
- Fix root node computation for trim
- dotnet extension now restores dependencies :-(
Changes:
- Fix non-triggered dependant nodes for non-required nodes
Changes:
- Fix regression in cache init
Changes:
- trim graph: build only required nodes
Changes:
- report tag on insights
Changes:
- Update reading configuration header
Changes:
files,outputs,dependenciesandignoresspecified onprojectblock are now merged with configuration (from extension or default one)
Changes:
- Ensure graph idempotency when dump logs
- Add terrabuild_tag (flag -t)
Changes:
- Fix regression in graph computation
Changes:
- Support for build note
- Better error reporting for invalid project dependencies
- Fix bug in graph when requested target does not exist
Changes:
- remove useless environment switch
Changes:
- enhance logs title
Changes:
- add not equal operator (
!=) - add try get item (
.?[ ])
Changes:
- Fix logs output for multiple actions on command
Changes:
- add support for project file content (attribute files on project)
- display meta command on logging
Changes:
- Add null-coalesce operator ??
Changes:
- Add support for map and list
- Add item function (
.[ ]syntax)
Changes:
- allow passing environment variables to container
- cleanup notifications
Changes:
- remove useless --localonly switch for logs
Changes:
- Fix logs always dumped (even when not requested)
- Add support for terraform validate
Changes:
- add logs command
Changes:
- use
--net=hostfor container builders - override variables using environment variables - override must respect variable type
- add discovery of local dependency discovery for npm
- fix error reporting (was not not complete) also add more context information
Changes:
- Terraform init does not attempt to -reconfigure anymore
Fix:
- Deploy target shortcut was incorrect
Fix:
- docker arguments could generate a new version
Changes:
- Add docker platform support
Changes:
- change loginspace route api
Changes:
- Stricter rules for identifier parsing
Changes:
- Use project hash instead of project name in cache entry
Changes:
- Remove project name from hash to allow relocation
Changes:
- Find workspace root if none provided
Changes:
- Fix command line parsing when global switches were involved
- Fix unknown variables in hash computation
- Fix log in graph
- Log all fatal errors
Changes:
- enable multiple auths so different spaces with different tokens can be used. NOTE: it's no more an error not to be authenticated in a space and still having a token for another space.
- default environment variables must exist now (was empty env before if not found).
- Add variables tracking on targets so this can safely impact project hash computation.
Enhancement beta-test:
- Ability to connect to multiple spaces
Fix for beta-version:
- Better error handling
- Restore shell cursor upon abnormal termination
- Terrabuild is available as a .net tool
First alpha release !
Check documentation !
Full Changelog: https://github.com/MagnusOpera/Terrabuild/compare/0.1.0...0.2.0
First stable release with HCL syntax and graph optimization.