Skip to content

Stop bundling DependencyControl-managed modules - #673

Merged
CoffeeFlux merged 6 commits into
masterfrom
depctrl-unbundle-feed-managed-modules
Aug 14, 2026
Merged

Stop bundling DependencyControl-managed modules#673
CoffeeFlux merged 6 commits into
masterfrom
depctrl-unbundle-feed-managed-modules

Conversation

@CoffeeFlux

Copy link
Copy Markdown
Member

Summary

  • package the DependencyControl v0.8.1 release bundle instead of its source tree
  • stop bundling Yutils, luajson, and ffi-experiments modules now supplied or managed by DependencyControl
  • harden and simplify the Windows installer and portable packaging scripts
  • stage DependencyControl downloads and validate extraction before publishing them to the installer cache

Validation

  • git diff --check upstream/master...HEAD
  • confirmed the v0.8.1 release archive contains automation/include/l0/DependencyControl.moon

Windows packaging was not run locally because this environment does not have PowerShell, 7-Zip, or Inno Setup.

line0 and others added 5 commits July 26, 2026 22:16
Yutils, luajson and the ffi-experiments libraries were shipped alongside
DependencyControl because nothing else could install them. That is no longer
the case: Yutils has its own feed, and DependencyControl ships equivalents of
json, BadMutex, PreciseTimer and DownloadManager that it offers under those
module names, so it pulls each of them in on demand.

Dropping ffi-experiments also removes meson and MoonScript from the installer
build, which only existed to compile those three libraries.

DependencyControl itself is still bundled, as the bootstrap, and moves from
v0.6.3-alpha to v0.8.0. It now comes from its release bundle instead of a
clone: the repository arranges its sources for its own tooling, and since
v0.7.0 no longer in the layout the installer copied out of it, while the
bundle already carries Aegisub's automation directory layout. That also drops
the stale DepUnit directory entries, which named a path DependencyControl
hasn't used in years and the bundle now creates, along with the DepSqlite and
DepLifecycle ones for features that never shipped.

Copies installed by earlier versions are left in place. Lua resolves them
before DependencyControl's own module search, so they keep shadowing the
managed copies, but removing them would break scripts that use these modules
directly without DependencyControl. The removal is available behind the
CLEANUP_UNBUNDLED_MODULES define, pending a decision on whether such scripts
still exist.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Make the BuildRoot/SourceRoot args mandatory and fail fast (stop on error, check meson install)
- Build the zip via System.IO.Compression instead of requiring 7z in path
- Use absolute paths instead switching CWD without reliably restoring it
- Merge the copy helpers into one function with an approved verb name
- Fix the automation copy collision
- prettify progress logging
- Make BuildRoot/SourceRoot mandatory
- Drop Set-Location; use absolute paths throughout (7z -o, meson -C)
- Collapse the InnoSetup language downloads into a loop
- Bump bundled DependencyControl to v0.8.1
@CoffeeFlux

Copy link
Copy Markdown
Member Author

Draft until I get time to review this in full.

@CoffeeFlux
CoffeeFlux marked this pull request as ready for review August 13, 2026 19:17
@CoffeeFlux

Copy link
Copy Markdown
Member Author

Still need to confirm this runs fine on a Windows machine, but other than that this looks good.

@line0

line0 commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Still need to confirm this runs fine on a Windows machine, but other than that this looks good.

There were some cases where DepCtrl acquisition would fail without stopping, like when the installerDeps\DependencyControl dir would still have a git clone of DepCtrl, as the script currently produces on master.

I changed the script to
(1) bail on any uncaught error and
(2) clean up any stale DepCtrl copies before copying in a new build

As a bonus, you can now also customize the DepCtrl version via the -DepCtrlVersion argument.

@CoffeeFlux
CoffeeFlux merged commit 5bbbc9a into master Aug 14, 2026
7 checks passed
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