DependencyControl
Dependency manager and automatic script updater for Aegisub macros and modules.
Module l0.DependencyControl in feed DependencyControl 7973b7b by line0.
Channels:
alpha (Default):
Version: 0.6.3
Release Date: 2016-02-06
Required Modules:
- requireffi.requireffi@0.1.1 2d000a9
- DM.DownloadManager@0.3.1 2d000a9
- BM.BadMutex@0.1.3 2d000a9
- PT.PreciseTimer@0.1.5 2d000a9
Files:
- .moon:
76C22149258CB1189265A367C1B28046F54F8FB3
✅ - /ConfigHandler.moon:
97BCD3207FE8158261FA7851057464535FCEFBC6
✅ - /FileOps.moon:
D999D34DB93BA76EF0E991CEB1CD63F5CC5F8E68
✅ - /Logger.moon:
1E479FE95F0DFBEE8B098302AB589F32D0C40A00
✅ - /UnitTestSuite.moon:
ADAB6EFB05E08A7828DCA01BC1FC43D6482979A1
✅ - /UpdateFeed.moon:
1EE16D9D551FF82C2D7E448F2CD980E528874108
✅ - /Updater.moon:
A4AE061724E68B2EFBB7495A477263E1746E228A
✅
Changelog:
0.6.3:
- Fixed a v0.6.2 regression that caused DependencyControl to fail loading the first time after a scheduled self-update.
0.6.2:
- An issue was fixed that would cause DepCtrl initializer code in modules previously loaded with regular Lua loading mechanisms to be skipped when requested in a DependencyControl- context. This kept the requireffi DependencyControl record from being established, preventing any updates from taking place.
- UnitTestSuite: Fixed several broken assertions and related error messages, among them the
assertMatches
andassertErrorMatches
assertions always returningtrue
. Please make sure to rerun your tests after upgrading to confirm your tested actually return values whatever they were supposed to match. - Updater: Identical or duplicate feeds from different sources (user configuration, feeds and API use) are no longer being checked for updates multiple times.
- Updater / FileOps: Fixed several broken error messages and return values.
0.6.1:
- The Updater component now supports the DownloadManager v0.4.0 API changes.
- Updater: A regression introduced in v0.6.0 was fixed that caused update or installation processes to fail when the feed contained deletion records.
- FileOps.mkdir() no longer falsely retuns an error state when a path to an existing file is passed with the
isFile
flag set.
0.6.0:
- The UnitTestSuite framework for automatically testing automation scripts and modules has been added.
- Macros can now be registered with custom submenu name.
- Logger:logEx() now takes an additional optional
indent
parameter to specify a custom indentation level. - FileOps.move() no longer overwrites existing files by default.
- FileOps.mkdir() can now take paths relative to the current working directory as input and returns
true
on success,false
when the directory already exists ornil
if the operation failed. - FileOps.remove() now returns detailed results for every path specified in addition to overall success information.
- FileOps.move() no longer fails to move files across file systems on *nix operating systems and properly cleans up after itself if files could not be overwritten and were renamed instead.
- FileOps: path validation is no longer broken on non-windows systems
0.5.3:
- ConfigHandler: A host of longstanding issues related to config file corruption and concurrent access to config files from multiple DepCtrl-hosting automation scripts have been fixed.
- Error Reports of required modules loaded by DependencyControl now actually provide semi-useful stack traces.
- A bug was fixed that could cause DepCtrl to rerun the __depCtrlInit method on modules even though a prior DependencyControl record had already been initialized.
- The DependencyControl self-update now runs through properly without throwing an error at the end of the process.
0.5.2:
- Updates and installations no longer fail when no suitable version of a module marked as an optional dependency can be found.
- ConfigHandlers now recover gracefully when a corrupted config is encountered.
- Fixed a bug that may have caused updates of unmanaged modules to throw an error after completion.
- DependencyControl initialization functions in modules with optional DepCtrl support are now expected to use the predefined name __depCtrlInit. This lifts the unreasonable requirement of having to specify the name of the function in the dependency tables of the loading scripts. By extension, this also fixes errors when trying to update the binary modules required by DependencyControl (such as DownloadManager).
- The Updater now checks for an active internet connection before going ahead with downloading feeds and packages.
- FileOps: added a copy function for files.
0.5.1:
- Macros registered using DependencyControl now get passed the previously missing 'active_line' paramter.
- Fixed a bug that would cause an unrelated error to be thrown in place of the real error message when an updated module failed to load.
0.5.0:
- DependencyControl does now auto-update itself and its dependencies.
- Provided Sub-Modules (Logger, ConfigHandler, ...) can now easily be accessed as class properties of the main DependencyControl module.
- A bug was fixed that caused macros always being registered with the overall script description, ignoring specific descriptions for the macro menu entries.
- The \getConfigHandler() method no longer ignores the defaults parameter.
- Fixed a FileOps bug that would cause path validation to fail on paths relative to the working directory.
- ConfigHandler: writes to the configuration table are no longer accidentally routed to the defaults table when a value is updated that only exists in the Defaults.
- ConfigHandler: Looping over the configuration table is now completely transparent wrt which fields are user configuration or defaults.
- ConfigHandler: fixed a bug that prevented a global lock on the config file from being released on certain error conditions.
- The update feed format has been updated to v0.2.0 and introduces a new template variable to reference knownFeeds specifed at the top level.
Reverse Dependencies:
- l0.DependencyControl.Toolbox