mirror of
https://github.com/pesde-pkg/tooling.git
synced 2025-03-04 19:11:44 +00:00
8.1 KiB
8.1 KiB
Changelog
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.
Unreleased
0.1.12 - 2025-02-12
Fixed
- Fixed faulty calculation of lock expiration timestamp due to bad assumption about
os.time
units - Write progress bar cleanup ANSI sequences to stderr instead to stdout to avoid managling command output
- Fix TOCTOU race condition by using an atomic operation for acquiring the installation lock
Changed
- Migrated internal codebase to pesde v0.6.0
- Updated dependencies:
dirs
to v0.3.0pathfs
to v0.3.0
0.1.11 - 2025-01-23
Added
- Progress bars are now written to stderr to prevent issues with parsing managed tooling outputs
- It is now possible for dependents of toolchainlib to programatically disable interactive features (like progress bars) by setting
_G.interactive
tofalse
. - Includes the following new tools:
Fixed
- Fixed attempt to clear progress bar even when not in interactive mode
0.1.10 - 2025-01-22
Added
- Locking mechanism to prevent conflicting accesses of underlying tool binaries. The lock is an on-disk file which exists during the installation process, and is removed once it is complete. It is located at
~/.pesde/bin/.tool_storage/<tool_id>/<version>/LOCK
and is a JSON file of the following structure:
{
"resource": "/home/usr/.pesde/bin/.tool_storage/<tool_id>/<version>/<tool>", // The path to the resource being protected, i.e., the tool binary
"expiration": 1737480284 // The timestamp until which the lock is considered valid, which is 60s from its creation
}
Fixed
- Fixed concurrent installations failing due to OS errors during resource access by using aforementioned locking mechanism
- Fixed faulty check for existence of tool installation directory
Changed
- Improved internal structuring for conditional progress bar rendering
0.1.9 - 2025-01-16
Fixed
- Fixed a
TypeError
in internal decompression function for ZIP - Fixed certain PE executables not being detected correctly due to incorrectly reading the DOS offset
0.1.8 - 2025-01-16
Added
- Includes the following new tools:
Changed
- Use
luau-unzip
to extract archives instead of using an external program
0.1.7 - 2024-12-28
Added
- Includes the following new tools:
Fixed
- Conditionally handle
ProgressBar:nextStage
result, fixing an error when being consumed as a library without the use of the__call
metamethod shorthand - Fix error when the
gh
CLI is not installed by correctly handling it as aResult
0.1.6 - 2024-12-25
Added
- Includes the following new tools:
Fixed
- Propagate and consume
Result
returned byProgressBar:nextStage
- Fix error while trying to migrate old tool_storage dir when the new one is already present
0.1.5 - 2024-12-22
Added
- Includes the following new tools:
Changed
- Make internal
ProgressBar
utility returnResult
instead of erroring
0.1.4 - 2024-12-16
Fixed
- Fix old tool_storage migration not correctly occuring automatically on first run
0.1.3 - 2024-12-16
Added
- ✨ Colorful ✨ progress bar for initial installation process when being consumed from binary packages that use toolchainlib with the default
__call
shorthand - Use
GITHUB_TOKEN
environment variable for getting a GitHub authorization token, or default to thegh auth token
command output if thegh
CLI is present - Make manifest accesses type-safe
- Download optimization by only downloading assets with formats we support
- Includes the following new tools:
Changed
- Improve
Result
andOption
typing by not overriding metatables and instead using an extension pattern - Remove reliance on semver, now supporting non-semver tools as well
- Move tool_storage directory to
~/.pesde/bin/.tool_storage
to prevent potential package name conflicts in the future - Update internal tooling updater script to fetch package READMEs from original repositories
Fixes
- Fix some bugs with version matching with internal tooling updater script
0.1.2 - 2024-12-1
Changed
- Reorganize types for internal
Github
class - Support custom request payload for internal
Github
class - Includes the following new tools:
Fixed
- Removed duplicate version defaulting code
- Fixed panic for invalid binaries within artifacts returning an empty
PlatformDescriptor
0.1.1 - 2024-11-30
Added
- Updated tool_storage system to not tamper the base binary name, to prevent bad help menus in some tools (like selene), which change the executable mentioned in the help menu based on the name of the currently running path
- Supports tools which do not specify an executable bit in their published archives by manually changing the binary's mode on unix-like systems
- Includes the following new tools:
Fixed
- Fixes a conditional fall-through where an invalid or corrupted executable would default to the Mach-O type, which was incorrect
0.1.0 - 2024-11-26
Added
- Initial library release 🎉
- Includes the following new tools: