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]

  • Packages are now evaluated inside of a sandbox, preventing package tables from having side effects. The functions available in the sandbox are defined in unicorn.util.sandbox_env. This does not provide much security. Do not install untrusted packages!

    • As a side effect, packages available on a remote can no longer be Lua bytecode (but this was never supported to begin with).

  • Packages with an empty instdat can now be uninstalled.

  • Packages with dirs can now be uninstalled.

  • When attempting an HTTP request with unicorn.util.smartHttp, the function will throw an error if we receive a bad response. As a result, operations that make HTTP requests will now fail if the server sends such a response. (Reported by @Commandcracker)

  • When fetching a file from a package remote, the file is no longer written to /tmp. (Reported by @Commandcracker)

  • Logging is slightly less verbose. Debug logging can be enabled by setting the _G.UNICORN_DEBUG_DO_NOT_USE_IN_PRODUCTION_CODE variable to 1. This interface is not stable.

  • Recrafted is no longer officially supported. The initial support was very subpar, and went untested for so long that it broke entirely. Recrafted support will come back in a future release. (Tracked by #12)

v1.2.1

  • Fix a bug where attempting to uninstall and then reinstall a package would result in an error. (Reported by @rapidradiance)

v1.2.0

  • Add UnicornInstall and UnicornUninstall events with os.queueEvent.

  • Add the instdat.gitlab_instance field in the GitLab provider.

  • Add the unicorn.provider.local.nothing provider. This is useful for making packages that don’t need to contain anything; for example, packages which function as “groups” to install certain packages at once, or packages for software that is already installed.

  • Migrated the project to use require with a custom package.path value.

    • Retroactive note: This breaks most installations of the CLI. The breakages that this change caused in the CLI are fixed in CLI version 1.2.1 or later.

v1.1.0

  • Fix scripts provider.

  • Add dirs module.

  • Use external installation of semver.lua if present.

v1.0.0

v0.1.0

  • Initial release.