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]¶
v1.5.0 - 2025-11-24¶
When searching the local machine for available remotes, it now also searches
/rom/config/unicorn/remotes.When a file ending in
.luacontainsrequire, we now add a line to the top of the file that patchespackage.pathto add/libto the search path.SHA-256 hash validation now uses CCryptoLib. libunicornpkg no longer depends on
anavrins-sha256.
v1.4.0 - 2025-11-20¶
The org.softwareheritage.archive provider for the Software Heritage Archive has been added.
The net.launchpad.git provider for Launchpad has been added.
The org.archive provider for the Internet Archive has been added.
SHA-256 validation now occurs before writing any files to disk.
All HTTP(S) requests made by libunicornpkg now send a
User-Agentheader.The
unicorn.util.substituteInPlacefunction has been added.Providers now are of the shape
function provider(state, package_table).Providers should now populate
state.filemaps[filename] = contentsinstead of writing directly to the filesystem.This only affects you if you write your own custom providers.
v1.3.1 - 2025-11-12¶
The
semverandsha256modules are now optional in cases where they would never be invoked.The related code will raise an error if it tries to find the modules but cannot.
The
rel.conflictsfield has been added. The field should be a list of package names. If any of the packages listed are installed when installing this package, the installation will fail.The
_HOSTvariable can now be accessed from within the package evaluation sandbox.
v1.3.0 - 2025-11-08¶
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).
The org.codeberg provider for Codeberg has been added.
Packages with an empty
instdatcan now be uninstalled.Packages with
dirscan 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_CODEvariable to1. This interface is not stable.Remotes defined in
/etc/unicorn/remotesmust now end with the.txtfile extension.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 - 2025-07-02¶
Fix a bug where attempting to uninstall and then reinstall a package would result in an error. (Reported by @rapidradiance)
v1.2.0 - 2025-05-21¶
Add
UnicornInstallandUnicornUninstallevents withos.queueEvent.Add the
instdat.gitlab_instancefield in the GitLab provider.Add the 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
requirewith a custompackage.pathvalue.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 - 2022-12-18¶
Fix scripts provider.
Add
dirsmodule.Use external installation of
semver.luaif present.
v1.0.0 - 2022-12-11¶
Add Recrafted support.
Add package remotes.
Add package versioning.
Remove provider
dev.devbin. Devbin was a paste bin that was operated free-of-charge.Add com.github.release provider. (@Commandcracker)
Add local.generic provider. (@Commandcracker)
Add local.string provider. (@Commandcracker)
Add scripts.
Fix org.bitbucket and com.gitlab providers.
v0.1.0 - 2022-11-01¶
Initial release.