Releases: yourbase/yb
0.5.3
Version 0.5.3 fixes minor regressions from 0.4.
Fixed
yb exec
installs the runtime dependencies in its environment. This was a regression from 0.4.- Container IP addresses in the yb environment are respected in configuration environment variable expansions. This was a regression from 0.4.
- The Ruby buildpack downloads a pinned version of rbenv and ruby-build rather than following the latest commit.
- The Flutter buildpack now correctly handles the same pre-release version formats as previous versions of yb.
- Using yb with the Docker on the Mac will no longer create directories with zero permissions.
0.5.2
Version 0.5 provides better reproducibility and isolation than previous releases, making it easier to debug your YourBase builds locally. Version 0.5.2 fixes a major regression in yb build
.
Notable improvements:
yb run
now runs in the exact same environment as what a build target would use, including in a container. You can useyb run bash
to pull up an interactive shell and inspect your environment,yb run python --version
to verify the target's Python version, and more!- Non-container builds isolate their environment variables and create a per-build-target home directory inside your
~/.cache/yourbase
directory. This makes builds far more reproducible and reduces the likelihood that a build will interfere with the host system. - Build containers get shut down at the end of a build. No more floating Docker containers!
You can download one of the binaries below, or follow the installation instructions to get automatic updates through Homebrew or apt-get.
Added
yb build
,yb exec
, andyb run
now all support two new flags:--env
and--env-file
. These flags set environment variables in the execution environment.- A new
--netrc-file
flag forbuild
,exec
, andrun
inject a .netrc file into the build environment. This is combined with any credentials stored in an$XDG_CONFIG_HOME/yb/netrc
file. - A new
--debug
flag shows debug logs for any command. - yb will display a message on startup if the obsolete
$HOME/.yourbase
directory exists, encouraging its deletion to save disk space.
Changed
- The Docker container for a build is entirely ephemeral: a new container will be started for each target and the container will be stopped and removed at the end of building the target. The contents of the build's
HOME
directory and the package directory will persist between runs, but all other changes will be lost, particularly packages installed withapt-get
. yb build
now directly runs commands in the Docker container instead of invoking a copy of itself to run the build.yb run
now runs commands in the environment of a build target, not an exec environment. This also means thatyb run
will operate in an ephemeral Docker container by default.- To increase isolation in local builds, yb now sets
HOME
to a directory cached between builds of the same target instead of using the user'sHOME
directory. - The
TZ
environment variable is set to the valueUTC
by default for all builds to increase reproducibility. - yb build commands no longer inherit environment variables for greater reproducibility. To set environment variables in your build, use the new
--env
or--env-file
flags. This has the benefit of working regardless of whether you're building in a container. yb remotebuild
will now always use the locally installed Git to determine the changed files.
Removed
- The
homebrew
buildpack has been removed due to its complexity and low usage. Please file an issue if your build needs Homebrew specifically. yb remotebuild
no longer has the--print-status
or--go-git-status
flags.
Fixed
yb build
now builds dependency targets (specified withbuild_after
) with the same environment as if they were built directly. In particular, container dependencies will be started for each target, whereas previous versions would only start the container dependencies for the target named on the command line.
Security
- The Ant buildpack now downloads over HTTPS from the sonic.net mirror. It was previously using the lucidnetworks.net mirror over HTTP.
0.5.1
0.5.0
Version 0.5 provides better reproducibility and isolation than previous releases, making it easier to debug your YourBase builds locally.
Notable improvements:
yb run
now runs in the exact same environment as what a build target would use, including in a container. You can useyb run bash
to pull up an interactive shell and inspect your environment,yb run python --version
to verify the target's Python version, and more!- Non-container builds isolate their environment variables and create a per-build-target home directory inside your
~/.cache/yourbase
directory. This makes builds far more reproducible and reduces the likelihood that a build will interfere with the host system. - Build containers get shut down at the end of a build. No more floating Docker containers!
You can download one of the binaries below, or follow the installation instructions to get automatic updates through Homebrew or apt-get.
Added
yb build
,yb exec
, andyb run
now all support two new flags:--env
and--env-file
. These flags set environment variables in the execution environment.- A new
--netrc-file
flag forbuild
,exec
, andrun
inject a .netrc file into the build environment. This is combined with any credentials stored in an$XDG_CONFIG_HOME/yb/netrc
file. - A new
--debug
flag shows debug logs for any command. - yb will display a message on startup if the obsolete
$HOME/.yourbase
directory exists, encouraging its deletion to save disk space.
Changed
- The Docker container for a build is entirely ephemeral: a new container will be started for each target and the container will be stopped and removed at the end of building the target. The contents of the build's
HOME
directory and the package directory will persist between runs, but all other changes will be lost, particularly packages installed withapt-get
. yb build
now directly runs commands in the Docker container instead of invoking a copy of itself to run the build.yb run
now runs commands in the environment of a build target, not an exec environment. This also means thatyb run
will operate in an ephemeral Docker container by default.- To increase isolation in local builds, yb now sets
HOME
to a directory cached between builds of the same target instead of using the user'sHOME
directory. - The
TZ
environment variable is set to the valueUTC
by default for all builds to increase reproducibility. - yb build commands no longer inherit environment variables for greater reproducibility. To set environment variables in your build, use the new
--env
or--env-file
flags. This has the benefit of working regardless of whether you're building in a container. yb remotebuild
will now always use the locally installed Git to determine the changed files.
Removed
- The
homebrew
buildpack has been removed due to its complexity and low usage. Please file an issue if your build needs Homebrew specifically. yb remotebuild
no longer has the--print-status
or--go-git-status
flags.
Fixed
yb build
now builds dependency targets (specified withbuild_after
) with the same environment as if they were built directly. In particular, container dependencies will be started for each target, whereas previous versions would only start the container dependencies for the target named on the command line.
Security
- The Ant buildpack now downloads over HTTPS from the sonic.net mirror. It was previously using the lucidnetworks.net mirror over HTTP.
0.5.0-rc2
0.5.0-rc1
0.4.4
Version 0.4.4 fixes an issue with containers in environments that don't have a docker0
network like WSL and macOS.
Fixed
- Port wait checks will now automatically forward a port on any host that does not have a
docker0
network. Previously, this behavior was only used on macOS, but it is also applicable to Docker Desktop with WSL.
0.4.3
Version 0.4.3 fixes an issue with containers in environments that don't have a docker0
network like WSL and macOS.
Fixed
- Port wait checks will now automatically forward a port on any host that does not have a
docker0
network. Previously, this behavior was only used on macOS, but it is also applicable to Docker Desktop with WSL.
0.4.2
0.4.1
Version 0.4.1 fixes a regression introduced by 0.4.0.
Changed
- Attempting to use an unknown container in
{{.Container.IP}}
substitutions will now cause a build failure rather than silently expanding to the empty string.
Fixed
- Fixed the
{{.Container.IP}}
regression introduced in v0.4.0.