Skip to content

Releases: yourbase/yb

0.5.3

19 Nov 19:37
Compare
Choose a tag to compare

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

18 Nov 18:09
Compare
Choose a tag to compare

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 use yb 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, and yb 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 for build, exec, and run 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 with apt-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 that yb 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's HOME directory.
  • The TZ environment variable is set to the value UTC 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 with build_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

18 Nov 17:56
Compare
Choose a tag to compare

0.5.1 was a botched release. Please use 0.5.2.

0.5.0

18 Nov 16:08
Compare
Choose a tag to compare

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 use yb 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, and yb 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 for build, exec, and run 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 with apt-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 that yb 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's HOME directory.
  • The TZ environment variable is set to the value UTC 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 with build_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

17 Nov 22:59
748af97
Compare
Choose a tag to compare
0.5.0-rc2 Pre-release
Pre-release

This is a preview of the upcoming 0.5 release. See the CHANGELOG for more details.

0.5.0-rc1

06 Nov 21:08
826bc4e
Compare
Choose a tag to compare
0.5.0-rc1 Pre-release
Pre-release

This is a preview of the upcoming 0.5 release. See the CHANGELOG for more details.

0.4.4

05 Nov 21:57
Compare
Choose a tag to compare

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

05 Nov 21:48
ef5e20d
Compare
Choose a tag to compare

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

20 Oct 23:26
Compare
Choose a tag to compare

Version 0.4.2 fixes an issue with yb remotebuild.

Fixed

  • yb remotebuild no longer panics

0.4.1

13 Oct 14:38
Compare
Choose a tag to compare

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.