Skip to content

Latest commit

 

History

History
261 lines (231 loc) · 14 KB

File metadata and controls

261 lines (231 loc) · 14 KB

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.

0.2.2 - 2025-12-07

Fixed

  • Fix unwrap during binary bruteforcing

0.2.1 - 2025-10-28

Added

Fixed

  • Some packages not being updated in CI due to .toolchainlib.<rev> build metadata not getting stripped properly
  • Newer asphalt releases not working due to .tar.xz archives, refer to previous change

Changed

0.2.0 - 2025-09-22

This release focuses on updating to newer verions of pesde and Lune, which incur breaking changes for all binaries. Future changes regarding breaking toolchainlib releases will be versioned as +toolchainlib.<rev> versions, where <rev> denotes an ordinal number signifying the count of the release.

Since the wrapper binary packages are versioned to correspond to their upstream counterparts, we cannot properly follow semver and breaking versions of toolchainlib may have newer runtime requirements that can cause breakage. As a result, it is always a good practice to commit your pesde.lock lockfiles in order to prevent an auto-update of a tool to a newer version without your knowledge. To migrate, update the engines requirement for your project by updating pesde.toml as such and run pesde update after:

[engines]
lune = "^0.10.2"
pesde = "^0.7.0"

It may also be necessary to update any scripts of your own that depend on Lune. Take a look at the Lune CHANGELOG for a list of their breaking changes with v0.10.0.

Added

  • New internal scripts to autogenerate badges table on README for convenience
  • Contributing docs on README
  • Support for overriding arguments passed to tools by specifying an args argument
  • CI workflow for automatically updating and publishing new versions of tools (#20)
  • Support for Lune v0.10.x and the new Luau require-by-string semantics (#28)
  • Special case of stripping out build metadata in the form of toolchainlib.rev from version in package manifest for convenience wrapper

Changed

  • Updated dependencies
  • Bumped minimum Lune and pesde requirements to ^v0.10.2 and ^0.7.0 respectively
  • Update reference to luau-lsp on README to luau_lsp package (#32)

0.1.15 - 2025-05-13

Added

Fixed

  • Fix support for MacOS binaries
  • Fix installations forcing interactive mode

0.1.14 - 2025-04-29

Added

Changed

  • Locked Lune to 0.8.x versions only to prevent breakage with Lune 0.9.0
  • Synced package READMEs for asphalt

0.1.13 - 2025-04-21

Added

Changed

  • Synced package READMEs to upstream for asphalt and stylua

0.1.12 - 2025-02-12

Added

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.0
    • pathfs 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 to false.
  • 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

Changed

  • Use luau-unzip to extract archives instead of using an external program

0.1.7 - 2024-12-28

Added

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 a Result

0.1.6 - 2024-12-25

Added

Fixed

  • Propagate and consume Result returned by ProgressBar: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

Changed

  • Make internal ProgressBar utility return Result 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 the gh auth token command output if the gh 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 and Option 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

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