github.com/yourbase/yb@v0.7.1/CHANGELOG.md (about) 1 # yb Release Notes 2 3 The format is based on [Keep a Changelog][], and this project adheres to 4 [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 5 6 [Keep a Changelog]: https://keepachangelog.com/en/1.0.0/ 7 [Unreleased]: https://github.com/yourbase/yb/compare/v0.7.1...HEAD 8 9 ## [0.7.1][] - 2021-09-30 10 11 Version 0.7.1 fixes an issue with the Ant buildpack. 12 13 [0.7.1]: https://github.com/yourbase/yb/releases/tag/v0.7.1 14 15 ### Fixed 16 17 - The `ant` buildpack uses the official Apache Ant archives instead of the 18 sonic.net mirror. The Apache Ant archives hold all the releases of Ant, not 19 just the latest few versions. 20 21 ## [0.7.0][] - 2021-07-06 22 23 Version 0.7 simplifies installation by making Docker optional in most cases 24 and improves the build output. Version 0.7 also fixes a long-standing issue 25 where indirect target dependencies were ignored. 26 27 [0.7.0]: https://github.com/yourbase/yb/releases/tag/v0.7.0 28 29 ### Added 30 31 - A new `--mode` option for `build`, `exec`, and `run` allows specifying 32 whether commands should be run inside or outside Docker. 33 - `yb build` can now build multiple targets in one invocation. 34 - Environment variables in `.yourbase.yml` files may now be specified as a map 35 (e.g. `FOO: BAR`) instead of a list (e.g. `- FOO=BAR`). 36 - Build environments will now pick up credentials from `$HOME/.netrc` after any 37 credentials from `$XDG_CONFIG_HOME/yb/netrc`. This can be overridden with the 38 `NETRC` environment variable. To revert to the previous behavior, set 39 `NETRC=/dev/null`. 40 - yb now obeys the `DOCKER_HOST` environment variable. 41 - `yb checkconfig` and other commands that read `.yourbase.yml` will display an 42 error if the targets have a dependency cycle. 43 - yb attempts to detect some common Docker configuration issues and inform the 44 user about them. 45 - yb now obeys the [`NO_COLOR` environment variable][] and propagates it to the 46 build environment. 47 - `exec` build packs can now be specified under `exec.dependencies.runtime` in 48 `.yourbase.yml`. 49 50 [`NO_COLOR` environment variable]: https://no-color.org/ 51 52 ### Changed 53 54 - Commands run as part of `build`, `exec`, or `run` now run without Docker by 55 default. You can get the old behavior by running with `--mode=container`. 56 - Tool output has been changed to be more compact, to be easier to trace 57 command output, and to include more timing information. 58 - `yb platform` is now an alias for `yb version`. 59 60 ### Fixed 61 62 - `yb init` no longer crashes when not given a `--lang` flag if there was 63 a problem connecting to the Docker daemon. 64 - `yb build` and `yb run` now build indirect dependencies, not just 65 direct dependencies. 66 - yb no longer assumes that Docker build environments are `linux/amd64`. 67 68 ### Deprecated 69 70 - The `host_only` property in `.yourbase.yml` is now ignored. It may be removed 71 in a future version. 72 - The `--no-container` option in `build` and `run` is now equivalent to 73 `--mode=no-container`. It is still recognized, but no longer shown in 74 documentation and may be removed in a future version. 75 76 ## [0.6.3][] - 2021-03-08 77 78 Version 0.6.3 changes the build environment keychain name. 79 80 [0.6.3]: https://github.com/yourbase/yb/releases/tag/v0.6.3 81 82 ### Changed 83 84 - On macOS, the empty, default keychain that yb creates will now be called 85 `login` instead of `yb` for compatibility with more programs. 86 87 ## [0.5.8][] - 2021-03-08 88 89 Version 0.5.8 backports a change to the build environment keychain name. 90 91 [0.5.8]: https://github.com/yourbase/yb/releases/tag/v0.5.8 92 93 ### Changed 94 95 - On macOS, the empty, default keychain that yb creates will now be called 96 `login` instead of `yb` for compatibility with more programs. 97 98 ## [0.6.2][] - 2021-03-01 99 100 Version 0.6.2 fixes a locale environment variable issue and improves the output 101 for builds with containers that don't start up. 102 103 [0.6.2]: https://github.com/yourbase/yb/releases/tag/v0.6.2 104 105 ### Changed 106 107 - The build environment now sets `LANG` and other locale environment variables 108 to `C.UTF-8` or the closest approximation thereof. Previously, these 109 variables were unset, which caused problems with programs that required a 110 UTF-8 character set to function properly, like those written in Ruby or Python. 111 112 ### Fixed 113 114 - If a container dependency exits while waiting for it to become healthy, 115 yb will now display a container's logs rather than waiting for the full 116 timeout and giving an unhelpful error message. 117 - The `TZ` environment variable is now set to `UTC0` by default. Previously, 118 it was set to `UTC`, which is not a POSIX-conforming value. 119 120 ## [0.5.7][] - 2021-03-01 121 122 Version 0.5.7 backports a fix for a locale environment variable issue. 123 124 [0.5.7]: https://github.com/yourbase/yb/releases/tag/v0.5.7 125 126 ### Changed 127 128 - The build environment now sets `LANG` and other locale environment variables 129 to `C.UTF-8` or the closest approximation thereof. Previously, these 130 variables were unset, which caused problems with programs that required a 131 UTF-8 character set to function properly, like those written in Ruby or Python. 132 133 ### Fixed 134 135 - The `TZ` environment variable is now set to `UTC0` by default. Previously, 136 it was set to `UTC`, which is not a POSIX-conforming value. 137 138 ## [0.6.1][] - 2021-02-11 139 140 Version 0.6.1 fixes a build environment keychain issue for macOS and stores its 141 configuration files with more secure permissions. 142 143 [0.6.1]: https://github.com/yourbase/yb/releases/tag/v0.6.1 144 145 ### Fixed 146 147 - On macOS, yb will now create an empty, default keychain in the build 148 environment. Previously, there was not a keychain inside the build 149 environment. 150 151 ### Security 152 153 - `$XDG_CONFIG_HOME/yb/settings.ini` is no longer created with world-readable 154 permissions. This file stores YourBase login credentials, so this prevents 155 other users on the same system from accessing the login token. 156 157 ## [0.5.6][] - 2021-02-11 158 159 Version 0.5.6 fixes a build environment keychain issue for macOS. 160 161 [0.5.6]: https://github.com/yourbase/yb/releases/tag/v0.5.6 162 163 ### Fixed 164 165 - On macOS, yb will now create an empty, default keychain in the build 166 environment. Previously, there was not a keychain inside the build 167 environment. 168 169 ## [0.6.0][] - 2021-01-26 170 171 Version 0.6 adds new commands like `init` and `clean`, shell tab completion, 172 and improvements to error messages for invalid build configurations. 173 174 [0.6.0]: https://github.com/yourbase/yb/releases/tag/v0.6.0 175 176 ### Added 177 178 - `yb init` is a new command that generates a `.yourbase.yml` file to get 179 started. It does basic programming language detection based on files already 180 in the directory. 181 - The new `yb clean` command deletes the cache for the package or specific 182 targets. 183 - bash and zsh completion scripts are now included in our binary distributions. 184 These are automatically installed in Homebrew and the Debian packages. 185 - `github.com/yourbase/yb` is now a Go package for reading 186 `.yourbase.yml` files. The API is mostly stable, but may still change before 187 yb 1.0. 188 - Container mounts in `.yourbase.yml` can now refer to relative paths in the 189 package directory. 190 191 ### Changed 192 193 - Unknown keys in `.yourbase.yml` objects will now cause errors. Previously 194 they were ignored. 195 - `yb checkconfig` will now display errors about invalid container mounts. 196 - `yb build`, `yb clean`, `yb exec`, `yb remotebuild`, and `yb run` can now 197 be run from a project subdirectory and they will use the `.yourbase.yml` file 198 from the parent directory. `yb run` will start its program in the 199 subdirectory you run it from, but all other commands will be run relative to 200 the directory that the `.yourbase.yml` file is located in. 201 202 ### Removed 203 204 - The `exec.ports` stanza in .yourbase.yml was previously accepted but did 205 nothing. `exec.container.ports` should be used instead. 206 207 ### Fixed 208 209 - Mapping ports in the container no longer emits a seemingly empty log message. 210 - The Java buildpack now uses the build home for the `user.home` property. 211 212 ## [0.5.5][] - 2020-12-01 213 214 Version 0.5.5 fixes more regressions from 0.4. 215 216 [0.5.5]: https://github.com/yourbase/yb/releases/tag/v0.5.5 217 218 ### Fixed 219 220 - Interrupting yb now cleans up any running processes or containers and reports 221 the error like other build failures. 222 - Trying to run a program in a target with `./foo` now works correctly when 223 the `--no-container` flag is passed. This was a regression from 0.4. 224 225 ## [0.5.4][] - 2020-11-30 226 227 Version 0.5.4 fixes more regressions from 0.4. 228 229 [0.5.4]: https://github.com/yourbase/yb/releases/tag/v0.5.4 230 231 ### Fixed 232 233 - The Go buildpack now adds `$GOPATH/bin` to `PATH`. This was a regression 234 from 0.4. 235 - `yb exec --environment=foo` no longer crashes if the `default` environment 236 is empty. This was a regression from 0.4. 237 - Setting `container.ports` on `exec` or a `build_target` in `.yourbase.yml` 238 no longer causes a panic. 239 240 ## [0.5.3][] - 2020-11-19 241 242 Version 0.5.3 fixes minor regressions from 0.4. 243 244 [0.5.3]: https://github.com/yourbase/yb/releases/tag/v0.5.3 245 246 ### Fixed 247 248 - `yb exec` installs the runtime dependencies in its environment. This was a 249 regression from 0.4. 250 - Container IP addresses in the yb environment are respected in configuration 251 environment variable expansions. This was a regression from 0.4. 252 - The Ruby buildpack downloads a pinned version of rbenv and ruby-build rather 253 than following the latest commit. 254 - The Flutter buildpack now correctly handles the same pre-release version 255 formats as previous versions of yb. 256 - Using yb with the Docker on the Mac will no longer create directories with 257 zero permissions. 258 259 ## [0.5.2][] - 2020-11-18 260 261 Version 0.5.2 fixes a major regression in `yb build` behavior. 262 263 [0.5.2]: https://github.com/yourbase/yb/releases/tag/v0.5.2 264 265 ### Fixed 266 267 - Regression: `yb build` would exit with a zero status code on build failures 268 in version 0.5. This is now fixed. 269 270 ## [0.5.1][] - 2020-11-18 271 272 Version 0.5.1 was a botched release. 273 274 [0.5.1]: https://github.com/yourbase/yb/releases/tag/v0.5.1 275 276 ## [0.5.0][] - 2020-11-18 277 278 Version 0.5 provides better reproducibility and isolation than previous 279 releases, making it easier to debug your YourBase builds locally. 280 281 Notable improvements: 282 283 - `yb run` now runs in the exact same environment as what a build target would 284 use, including in a container. You can use `yb run bash` to pull up an 285 interactive shell and inspect your environment, `yb run python --version` to 286 verify the target's Python version, and more! 287 - Non-container builds isolate their environment variables and create a 288 per-build-target home directory inside your `~/.cache/yourbase` directory. 289 This makes builds far more reproducible and reduces the likelihood that a 290 build will interfere with the host system. 291 - Build containers get shut down at the end of a build. No more floating 292 Docker containers! 293 294 [0.5.0]: https://github.com/yourbase/yb/releases/tag/v0.5.0 295 296 ### Added 297 298 - `yb build`, `yb exec`, and `yb run` now all support two new flags: `--env` 299 and `--env-file`. These flags set environment variables in the execution 300 environment. 301 - A new `--netrc-file` flag for `build`, `exec`, and `run` inject a 302 [.netrc file](https://ec.haxx.se/usingcurl/usingcurl-netrc) into the build 303 environment. This is combined with any credentials stored in an 304 `$XDG_CONFIG_HOME/yb/netrc` file. 305 - A new `--debug` flag shows debug logs for any command. 306 - yb will display a message on startup if the obsolete `$HOME/.yourbase` 307 directory exists, encouraging its deletion to save disk space. 308 309 ### Changed 310 311 - The Docker container for a build is entirely ephemeral: a new container will 312 be started for each target and the container will be stopped and removed 313 at the end of building the target. The contents of the build's 314 `HOME` directory and the package directory will persist between runs, but 315 all other changes will be lost, particularly packages installed 316 with `apt-get`. 317 - `yb build` now directly runs commands in the Docker container instead of 318 invoking a copy of itself to run the build. 319 - `yb run` now runs commands in the environment of a build target, not an 320 exec environment. This also means that `yb run` will operate in an ephemeral 321 Docker container by default. 322 - To increase isolation in local builds, yb now sets `HOME` to a directory 323 cached between builds of the same target instead of using the user's `HOME` 324 directory. 325 - The `TZ` environment variable is set to the value `UTC` by default for all 326 builds to increase reproducibility. 327 - yb build commands no longer inherit environment variables for greater 328 reproducibility. To set environment variables in your build, use the new 329 `--env` or `--env-file` flags. This has the benefit of working regardless 330 of whether you're building in a container. 331 - `yb remotebuild` will now always use the locally installed Git to determine 332 the changed files. 333 334 ### Removed 335 336 - The `homebrew` buildpack has been removed due to its complexity and 337 low usage. Please [file an issue](https://github.com/yourbase/yb/issues/new) 338 if your build needs Homebrew specifically. 339 - `yb remotebuild` no longer has the `--print-status` or `--go-git-status` flags. 340 341 ### Fixed 342 343 - `yb build` now builds dependency targets (specified with `build_after`) 344 with the same environment as if they were built directly. In particular, 345 container dependencies will be started for each target, whereas previous 346 versions would only start the container dependencies for the target named 347 on the command line. 348 349 ### Security 350 351 - The Ant buildpack now downloads over HTTPS from the sonic.net mirror. It was 352 previously using the lucidnetworks.net mirror over HTTP. 353 354 ## [0.4.4][] - 2020-11-05 355 356 Version 0.4.4 fixes an issue with containers in environments that don't have 357 a `docker0` network like WSL and macOS. 358 359 [0.4.4]: https://github.com/yourbase/yb/releases/tag/v0.4.4 360 361 ### Fixed 362 363 - Port wait checks will now automatically forward a port on any host that does 364 not have a `docker0` network. Previously, this behavior was only used on 365 macOS, but it is also applicable to Docker Desktop with WSL. 366 367 ## [0.4.3][] - 2020-11-05 368 369 Version 0.4.3 was a botched release from an unstable development commit. 370 371 [0.4.3]: https://github.com/yourbase/yb/releases/tag/v0.4.3 372 373 ## [0.4.2][] - 2020-10-20 374 375 Version 0.4.2 fixes an issue with `yb remotebuild`. 376 377 [0.4.2]: https://github.com/yourbase/yb/releases/tag/v0.4.2 378 379 ### Fixed 380 381 - `yb remotebuild` no longer panics 382 383 ## [0.4.1][] - 2020-10-13 384 385 Version 0.4.1 fixes a regression introduced by 0.4.0. 386 387 [0.4.1]: https://github.com/yourbase/yb/releases/tag/v0.4.1 388 389 ### Changed 390 391 - Attempting to use an unknown container in `{{.Container.IP}}` substitutions 392 will now cause a build failure rather than silently expanding to the 393 empty string. 394 395 ### Fixed 396 397 - Fixed the `{{.Container.IP}}` regression introduced in v0.4.0. 398 399 ## [0.4.0][] - 2020-10-12 400 401 Version 0.4 removes some broken or ill-conceived functionality from yb and 402 changes where yb stores files to obey the [XDG Base Directory specification][]. 403 404 [0.4.0]: https://github.com/yourbase/yb/releases/tag/v0.4.0 405 [XDG Base Directory specification]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html 406 407 ### Changed 408 409 - The build cache is now created under `$XDG_CACHE_HOME/yb` 410 (usually `$HOME/.cache/yb`) rather than `$HOME/.yourbase`. 411 You can safely remove `$HOME/.yourbase` to reclaim disk space. 412 413 ### Removed 414 415 - Workspaces. At the moment, we're focusing on single packages and will 416 reintroduce the concept when we have a better grasp on how dependencies will 417 work inside yb. 418 - The build log streaming feature has been removed, since it has been broken 419 for some time. However, we hope to reintroduce it in a future version. 420 - Removed the `yb update` command. Users can now stay up-to-date with either 421 the APT or Homebrew repositories. 422 423 ### Fixed 424 425 - yb now respects the `XDG_CONFIG_HOME` and `XDG_CONFIG_DIRS` environment 426 variables when reading configuration files. 427 - Update to latest version of [Narwhal](https://github.com/yourbase/narwhal), 428 which contains many fixes for Docker interactions. 429 - `yb build` will now exit with a non-zero status code if more than one 430 argument is given. Previously, it would silently ignore such arguments. 431 - The download span names in the `yb build` trace now include the URL rather 432 than the unhelpful `%s`. 433 434 ## [0.3.2][] - 2020-10-07 435 436 Version 0.3.2 fixes issues with the Python buildpack. 437 438 [0.3.2]: https://github.com/yourbase/yb/releases/tag/v0.3.2 439 440 ### Fixed 441 442 - Fixed an incorrect URL for Miniconda in the Python buildpack. 443 - HTTP downloads in yb no longer ignore the status code and will abort for 444 any non-200 status code. 445 446 ## [0.3.1][] - 2020-10-06 447 448 Version 0.3.1 fixes an issue with error handling during builds. 449 450 [0.3.1]: https://github.com/yourbase/yb/releases/tag/v0.3.1 451 452 ### Fixed 453 454 - Fixed a regression where if a dependent target fails, it did not stop 455 the build. 456 457 ## [0.3.0][] - 2020-10-05 458 459 Version 0.3 is the first release with our new release automation. 460 461 [0.3.0]: https://github.com/yourbase/yb/releases/tag/v0.3.0 462 463 ### Added 464 465 - Add `yb token` command 466 467 ### Changed 468 469 - We are no longer using Equinox for releases. See the 470 [README](https://github.com/yourbase/yb/blob/main/README.md) for installation 471 instructions. 472 - Release binaries are now smaller due to debug symbol stripping. 473 - Release binaries are now built as [position-independent executables][]. 474 - The output of timing information at the end of a build has changed formatting 475 slightly to accommodate more sophisticated breakdowns in the future. 476 477 [position-independent executables]: https://en.wikipedia.org/wiki/Position-independent_code 478 479 ### Fixed 480 481 - Fixes to OpenJDK and Anaconda buildpacks 482 ([#170](https://github.com/yourbase/yb/pull/170))