Changelog for encapsule-0.5
encapsule releases
0.5 (2026-08-15)
commit: add --name to set the encapsule image name
commit: replaces refresh with simpler logic
create,run: now always act on a container image
- bind-mount
/etc/localtime
- check first if runuser and sudo are in the container image
- use image passwd user with the same UID as the host (e.g. support ubuntu)
- container
$HOME follows the image passwd home when it is a real directory; --home mounts there
- simplify setup script: no longer installs sudo and util-linux
- now also setup home if no runuser
--no-sudo no longer attempts to remove sudo
- add
--user option to override the container user
run --debug now also outputs podman command like --dryrun
- dryrun/debug colors podman flag names in cyan (honors
NO_COLOR)
backup now excludes local git ignored files
- add hspec tests (
cabal test; needs podman and local images)
- add tasty-bench suite (
cabal bench; needs podman and a local image)
0.4.1 (2026-08-07)
- require volume host paths to exist
- drop
-P for --path and add -H for --home
- copy
/etc/skel into home if ~/.bashrc is missing (--no-skel to skip)
- config.toml: add dbus, dconf, machine-id capabilities
- support mount options for
--home and --project (like :O for overlay)
- only auto SELinux
:z for user-owned paths and not overlay :O
- create
--project/--volume mount points in --home for $HOME targets
- add
backup command to tarball a directory (prompts if >100MB)
run,create: --backup-home / --backup-project to tarball those dirs
refresh: always update image (drop freshness checks and --force)
- sanitize
. to - in container hostname
0.4 (2026-08-04)
- convert to using subcommands
list: separate images and containers and include image tags
- introduce
create to make a permanent container
- add
enter command (formerly --join)
run: automate unique container name (drop --unique)
- new
refresh command to update an existing encapsule toolbox image if container has layered changes
- correct some container name sanitizations
- check that the host project dir actually exists
- improve HOME handling and mount project to its own path for clarity
- also default workdir to home for image
- add
--pull for run and create to pull a newer image
- Allow mounting $HOME (without SELinux :z relabeling)
0.3 (2026-07-20)
- project renamed from constrained-toolbox
- rename
--persistent to --keep
- add
--list command to show encapsule containers and images
- add
--no-sudo to remove sudo from the container
- check toolbox container exists before buildah commit
- support running container images directly (name:tag)
- add
--name option
- add
--debug flag for verbose startup output
- use
--name ^... to reference a full container name explicitly
- export TERM and COLORTERM
--delete and commit image now respect --dryrun
- use shell-monad for installSetup Script
- installScript now respects
--no-sudo and outputs "installing"
- use xdg-basedir for config file
- error for
--project/--home on HOME
--project now names the container after the project directory too,
so different projects can run concurrently in separate containers
- add
--podman-opt to pass options directly to podman
0.2.1 (2026-07-17)
- add --delete container command
- handle missing container gracefully in --stop and --remove
- default to ephemeral containers again, use --persistent to keep
0.2 (2026-07-16)
- add
--home option to mount a directory as a writable home
- name the container and exec into it if already running
- add
--unique option to run a separate container instance
- make home directory writable and workdir by default
- change
--delete to --delete-image standalone command
- add
--ephemeral, restart stopped containers
- error for unused options when joining running container
- add --stop command
0.1 (2026-07-03)
- initial release with
--delete and --project options
- defaults to :z shared bind mounts
--caps to list user's defined capabilities
- wayland: fix socket handling in SELinux labeling
- add
security_opts capability field
- support PATH[:opts] shorthand for same host/container mount path
(makes config incompatible with toolbox-constrained)
- add
--no-network option to disable network access
- exit cleanly on shell error instead of throwing an exception