This release adds support for Windows ARM64.
This release fixes missing attestations for Linux ARM64 artifacts.
This release updates various dependencies as well as upgrading to Rust 1.79.0. In addition, this is the first release to include artifact attestations in Sigstore.
This release updates various dependencies as well as upgrading to Rust 1.78.0 and dropping support for Windows versions prior to Windows 10.
Change .env
parsing libraries to gain support for double quoted values with variable
substitution; e.g.: the .env
line PYTHONPATH="/Users/A. Space:$PYTHONPATH"
now has the
$PYTHONPATH
portion of the value substituted.
Ensure liblzma is statically linked.
When load_dotenv
is requested, propagate errors loading any .env
file found.
Support regex removal of env vars with non-utf8 names in commands.
This release improves the help screen for BusyBox scies with more clear messages for the various causes of boot command selection failure. It also adds the ability to hide internal-only named boot commands by omitting a description for those commands (This only kicks in if at least one named command has a description).
This release adds support for using placeholders in the scie.lift.base
lift manifest value as well
as the corresponding SCIE_BASE
runtime control env var. A new placeholder is exposed in support of
establishing custom scie base nce
cache directories that respect the target OS user cache dir
structure in the form of {scie.user.cache_dir=<fallback>}
. Typically, this placeholder will expand
to ~/Library/Caches
on macOS, ~\AppData\Local
on Windows and ~/.cache
on all other Unix
systems unless over-ridden via OS-specific means or else unavailable for some reason, in which case
the supplied <fallback>
is used.
This release fixes a bug handling environment variable removal via regex when the environment contains non-utf8 entries.
Support is added for {scie.env.*}
placeholders referring to environment variables defined in the
lift command environment in addition to the existing support for referring to environment variables
defined in the ambient environment.
In addition to the SCIE
environment variable being exposed to scies, SCIE_ARGV0
is now exposed
as well. On Unix systems this value can differ from SCIE
and can be used to detect the name of the
scie executable launched by the user. Although the scie-jump
uses this internally to allow for
BusyBox style dispatch based on symlinks, exposing SCIE_ARGV0
allows non BusyBox scies to do the
same. See the packaging guide for more details on environment variables
supported by scie-jump
.
Support is added for specifying an alternate scie-jump
binary to embed in the scie tip when
executing a scie-jump
boot-pack. This allows "cross-building" a scie for another platform.
Support is added for .env
file loading for scies that opt-in via the new scie.lift.load_dotenv
boolean lift manifest field. This release also fixes SCIE=split
to work with scies that include
sourced files (ptex'ed scies).
This release fixes a bug in argv0 / current exe determination handling that led to a scie-jump
being fooled by a file in CWD
with the same name as the active scie invoked from elsewhere via
the PATH
.
This release fixes SCIE_BOOT
re-directions to clear the SCIE_BOOT
environment variable before
executing the SCIE_BOOT
selected command. This avoids the need for these commands to clear the
SCIE_BOOT
environment variable when re-executing the SCIE
to avoid infinite loops.
This release brings support for removing env vars to command definitions. Now, in addition to
defaulting a variable with a "NAME": "VALUE
entry in the "env"
object and unconditionally
writing a variable with "=NAME": "VALUE"
, ambient environment variables can be removed by adding
an "env"
entry object with a null
value. See the packaging guide for more
details.
This release brings various improvements and features whose need was fleshed out by the scie-pants project.
Support is added for:
-
New placeholders:
{scie.base}
: The currentSCIE_BASE
.{scie.files.<name>}
: Another way to say{<name>}
.{scie.files.<name>:hash}
: The sha256 hash of the named file.{scie.bindings.<name>:<key>}
: The output named<key>
of the named binding.
For the last, bindings have access to a
SCIE_BINDING_ENV
environment variable pointing to a file they can write<key>=<value>
lines to propagate binding information via the{scie.bindings.<name>:<key>}
placeholder. -
Environment sensitive bindings:
Binding commands are now locked based on the content hash of their
env
,exe
andargs
. This allows for binding commands that are still guaranteed to run only once, but once for each unique context.
This release brings fully static binaries for Linux with zero runtime linkage by switching the Linux targets to use musl. As part of this switch, the Rust toolchain used is stabilized to stable / 1.65.0.
This release beings support for {scie.env.*}
defaults which allows for ptex'ed scies that opt
in to having file urls over-ridden behind corporate firewalls as the motivating use case.
The default nce
cache location is also updated to follow conventions for user cache directories
on most operating systems. The defaults are now:
- Linux and non macOS Unix:
~/.cache/nce
with respect forXDG*
configuration. - macOS:
~/Lirary/Caches/nce
- Windows:
~\AppData\Local\nce
This release fixes a bug that caused the scie-tote in scies using one to always be extracted and thus impact startup latency on warm runs.
This release brings support for files with sources other than the scie itself. This allows for shipping skinny skis that later materialize certain files from the internet or elsewhere just when needed at runtime.
This release fixes blob file locks in the presence of boot bindings that delete blobs as part of their post install preparations.
This release brings support for boot bindings: commands that will be run exactly once to perform any needed installation operations.
The 1st release including macOS aarch64 binaries.
The 1st public release of the project.