All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.7.2] - 2026-04-23
Changed
- publish Weld with a current Telemetry dependency requirement (
~> 1.4) so downstream welded-package verification can use the latest Telemetry 1.4.x line without stale owned-package constraints. - refresh development quality tooling to the latest available Credo patch release.
[0.7.1] - 2026-04-13
Added
- repo-layout autodiscovery for Weld CLI tasks. When no manifest path is
passed, Weld now prefers
build_support/weld.exs, thenbuild_support/weld_contract.exs, then a singlepackaging/weld/*.exs - plain
mix release.prepare,mix release.track, andmix release.archivewrapper tasks that delegate to the Weld release flow
Changed
- the recommended consumer steady state now uses Weld's standard manifest locations plus direct task invocation instead of repo-local alias blocks that only forward manifest paths and artifact names
[0.7.0] - 2026-04-13
Changed
- prepared release bundles now treat the projected source tree as the canonical tracked payload and the tarball as optional bundle content
weld.release.prepare,weld.release.track, andweld.release.archivenow work for internal-only artifacts that intentionally setverify.hex_build: false- consumer guidance now recommends plain Hex consumption of Weld
~> 0.7.0and prerelease version bumps for coordinated pre-release validation instead of baking repo-local path/git override logic into every consumer repo
Fixed
Weld.Release.prepare!/1no longer crashes when verification intentionally omits a tarball- archive and projection tracking now work from prepared bundles that do not contain a tarball
[0.6.0] - 2026-04-13
Added
mix weld.release.trackand the corresponding public API for tracking prepared bundles on durableprojection/<package_name>branches.- thin Git helpers for branch detection, worktree management, tagging, and push operations used by projection tracking.
- real Git fixture coverage for projection tracking, including orphan-branch initialization, no-op sync, content updates, and tag/push behavior.
- a root
mix cialias that runs the full formatter, compiler, test, Credo, Dialyzer, and docs gate.
Changed
- projection tracking now treats orphan
projection/<package_name>branches as the default durable generated-source history surface. - README and guides now document tracked projections, consumer override policy,
and the
0.6.0dependency line.
[0.5.0] - 2026-04-11
Changed
- Weld now depends on
multigraph ~> 0.16.1-mg.3directly instead of the oldlibgraphalias shape, matching the dependency's current package and OTP app contract. - workspace graph operations now target
Multigraph.*throughout the codebase, which restores compatibility with the current graph backend API. - README and guide installation examples now target the
0.5.0dependency line.
[0.4.1] - 2026-04-11
Added
- explicit
verify.hex_buildandverify.hex_publishmanifest controls so artifacts can opt out of Hex-only verification steps by policy.
Changed
- README and guide examples now target the
0.4.1dependency line and document when Hex build and dry-run publish verification should be disabled.
Fixed
- verifier results now mark skipped Hex-only steps explicitly and only record a
tarball path when
mix hex.buildactually ran successfully.
[0.4.0] - 2026-04-09
Added
Weld.version/0, a stable public version API for bundle metadata and downstream tooling that needs the packaged Weld version instead of the caller project's version.
Changed
- prepared release bundle metadata now records the manifest path relative to the repo root instead of an absolute filesystem path.
- release bundle slug derivation is now stable across checkout locations while still reflecting the selected artifact and manifest contents.
- release docs and installation examples now target the
0.4.0line.
Fixed
release.jsonnow records the actual Weld version instead of the consumer repo version when Weld runs as a dependency.- workspace discovery no longer duplicates
"."when the root project is already declared inblitz_workspace.projects.
[0.3.3] - 2026-04-08
Fixed
- generated package-mode and monolith-mode application modules now emit an
explicit
@moduledoc false, so prepared release bundles and projected monoliths stay Credo-clean when downstream repos lint the generated artifacts directly
[0.3.2] - 2026-04-08
Added
- a shared source formatter helper for generated Elixir sources so projected Mix files, generated applications, and synthesized config roots are emitted formatter-clean by construction.
Changed
- projected package and monolith artifacts now preserve repo-root Mix tooling
files such as
.formatter.exs, with support ready for other root quality config files when present.
Fixed
- prepared release bundles and projected monoliths can now run
mix formatfrom the artifact root without ad hoc arguments or missing-config failures. - generated
mix.exs, application modules, and root config files are now emitted in formatter-clean form, so dist artifacts satisfy the normal formatter gate instead of only compiling and testing cleanly.
[0.3.1] - 2026-04-08
Added
- package-mode regression fixtures and projector tests covering projected
package config bootstrap, root
ecto_reposoverlays, and repo-priv layout.
Changed
- projected package and monolith
mix.exsfiles now declare an explicitbuild_path, which keeps Mix from misclassifying generated multi-app config as invalid during local dist verification commands. - staged static config sources now preserve selected project app config instead of blanking it out and relying solely on generated application bootstrap.
Fixed
- prepared bundles and projected monoliths now keep repo config available for
direct dist commands such as
mix ecto.create,mix ecto.migrate, and other Mix tasks that need config before the generated application starts. - regenerated artifacts no longer emit false-positive "configured application ... is not available" warnings during normal Mix task execution.
[0.3.0] - 2026-04-08
Added
monolith_opts[:test_support_projects], an explicit manifest-owned contract for non-selected workspace projects that still participate in the monolith:testview as source-only support.
Changed
- Monolith projection now fails closed when
monolith_opts[:test_support_projects]is declared but the discovered non-selected test support set does not match the manifest. - Monolith config bootstrap app ownership is now derived from staged bootstrap sources rather than from every staged project app, which keeps generated application bootstrap allowlists aligned with the actual runtime config surface.
- Consumer integration docs, monolith docs, and examples now describe the explicit source-only test support policy.
Fixed
guides/consumer_repo_integration.mdnow references the current Weld dependency line instead of an outdated0.1.0example.
[0.2.0] - 2026-04-07
Added
- Monolith artifact mode (
mode: :monolith): projects selected packages and their test-view closure into a single flat Mix project underdist/monolith/<package>/instead ofdist/hex/<package>/. Mergeslib/,test/,priv/, config, and migrations from all selected projects with automatic file-conflict resolution and deterministic migration re-stamping. monolith_optsartifact key: supportsshared_test_configs(list of project ids whosetest.exsare included in the monolith root config) andextra_test_deps(atoms referencing manifest-declared dependencies to force into test-only deps in the generated mix file).- Weld.Config.Generator: generates a merged config tree for monolith artifacts,
sanitizing workspace-app config calls from static copies while preserving full
originals under
config/runtime_sources/for bootstrap use. - Weld.Projector.Monolith, Weld.Projector.Monolith.FilePlan, Weld.Projector.Monolith.Migrations, Weld.Projector.Monolith.MixFile, Weld.Projector.Monolith.TestHelper: internal modules implementing monolith projection, file merging, migration merging, mix file generation, and test helper synthesis.
Plan.projects_for_view/2andPlan.external_deps_for_view/2: view-scoped project and dependency queries used by monolith projection.- Git/GitHub-only manifest dependencies:
requirementis now optional whenoptsinclude:gitor:github, enabling manifest-declared git deps without a version constraint. - Monolith verifier gate: runs per-selected-project test baseline before verifying the merged artifact, then asserts the monolith test count is not lower than the baseline sum.
mode: :componentsis accepted as an alias for:package_projectionfor compatibility with earlier internal configurations.
Changed
- Package-projection verifier now runs
deps.compilethencompile --warnings-as-errors --no-compile-depsinstead of a singlecompile --warnings-as-errorsstep. - Manifest dependency validation:
:pathis still rejected;:gitand:githubare now permitted in dependency opts. - Canonical external dep normalization strips
:override,:branch,:tag,:ref, and:subdirfrom workspace dep opts before merging manifest opts. - Monolith artifacts are excluded from
hex.publish --dry-run --yesduring verification (not a publishable Hex package in the traditional sense).
[0.1.0] - 2026-04-02
Initial release.