Add a DependencyControl record and feed#2
Open
line0 wants to merge 1 commit into
Open
Conversation
Yutils has been distributed by bundling it with the Aegisub installer, because no DependencyControl feed offered it. This adds one, so it can be installed and updated like any other managed module. The library registers as `tstools.Yutils` and declares the bare `Yutils` name in `provides`, so scripts that require "Yutils" (ASSFoundation among them) keep working unchanged. The record is built in a `__depCtrlInit` hook, which DependencyControl calls only when it loads the library. Loading Yutils standalone never calls it, so the library behaves exactly as before. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author
|
Companion PR on the DependencyControl side: TypesettingTools/DependencyControl#33 advertises this feed in Merge order: this PR first, including the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Yutils is currently distributed by bundling
src/Yutils.luainto the Aegisub installer (fragment_automation.iss) and the portable build, because no DependencyControl feed offered it — ASSFoundation declares it as{"moduleName": "Yutils", "optional": true}with no feed to fetch it from. This adds that feed, so Yutils can be installed and updated like any other managed module and the bundling can eventually be dropped.What's here
DependencyControl.json— a feed declaring the module aststools.Yutils(thetstoolsprefix marking this community-maintained fork), starting at v1.0.0.__depCtrlInithook at the end ofsrc/Yutils.luathat builds the DependencyControl record.Compatibility
The record declares the bare name
Yutilsinprovides, so scripts thatrequire "Yutils"keep working — DependencyControl resolves the bare name to this module. The file installs toautomation/include/tstools/Yutils.luarather than the bundledautomation/include/Yutils.lua. Bare-name resolution needs DependencyControl v0.7.0+, whereprovideswas added.Loading Yutils without DependencyControl is unchanged. The hook is only ever called by DependencyControl's module loader, so requiring the library on its own returns the same table it always did — verified locally: it loads, every namespace is intact, and
Yutils.versionstaysnilwith the hook sitting unused.The feed pins the download to a git tag:
Please push a
v1.0.0tag at the merge commit — until that tag exists the feed can't resolve. Thesha1recorded in the feed (3439D32F109F40EF24EFECE6C2A3C0AB0B314EE0) is the LF-normalized blob ofsrc/Yutils.luaas committed here, so it will match whatraw.githubusercontent.comserves from that tag.🤖 Generated with Claude Code