bob

Bob is a high-level build tool for multi-language projects.

APACHE-2.0 License

Stars
455
Committers
9
bob - 0.5.3

Published by Equanox about 2 years ago

Bugfix release degrading performance by being more correct.
Performance optimization is wip.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.5.1...0.5.3

bob - 0.5.2

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.5.1...0.5.2

bob - 0.5.1

Published by Equanox about 2 years ago

Bugfix release

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.5.0...0.5.1

bob - 0.5.0

Published by Equanox about 2 years ago

This release enables use of Nix by default through removing the use-nix: directive. It's not possible to disable nix anymore. Each task now executes in a sandboxed environment which assures a similar behavior across different environments. Say goodby to Works on my machine.

Due to this change it's now necessary to declare build dependencies in your bob.yaml per task or globally.

Example:

## bob.yaml
dependencies: [ go_17 ]
build:
  server:
    cmd: go build
    dependencies: [ go_18 ]
  ui:
    cmd: npm run build
    dependencies: [ nodejs-18_x ]

Minor

  • bob git clone chooses the preferred protocol for recursive clones from the given scheme

Breaking Changes

  • The environment is no longer shared with the internal shell. A task won't have access to binaries shared through the $PATH variable . To pass environment variables to the build process you have to actively declare them on the cli, e.g. bob build --env KEY=VALUE or bob build --env KEY to forward the variable from your local system.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.4.1...0.5.0

bob - 0.5.1-rc

Published by Equanox about 2 years ago

Changelog

  • ebe5241 Add compdef to generated output for zsh completion (#139)
  • 38425a9 Add error description if bob.yaml in import is not found (#141)
  • 38863ed Use nix dependencies in run task init & initOnce (#111)
  • 3d26891 bob clone infere protocol by flags and from url (#144)
  • 2cef9fd allow dependson and dependsOn (#142)
  • f4e1782 hermetic mode (#135)
  • 9979f7f remove check for use-nix (#148)
bob - 0.4.1

Published by Equanox over 2 years ago

This release adds remote auth capabilities for artifact sync(wip) but is focused on bugfixes.

What's Changed

New Contributors

Full Changelog: https://github.com/benchkram/bob/compare/0.4.0...0.4.1

bob - 0.5.0-rc

Published by Equanox over 2 years ago

Changelog

  • e009954 Bump github.com/hashicorp/go-version from 1.4.0 to 1.5.0 (#78)
  • 3612062 Create dependabot.yml (#77)
  • a6acae9 Fix race condition during artifact sync (#88)
  • c8469c0 bob based build (#91)
  • 57a0f2b don't read from config file; fixes #68 (#74)
  • 72c472b make bobfile not found a user error (#83)
  • c2b47fc optimise nix cache (#70)
  • 47dbf92 pipe output of nix builds to the terminal (#71)
  • b19d741 remote artifacts bi-directional sync (#61)
  • 2d5b582 remote store auth (#90)
  • bebba3f run-task: add init & initOnce scripts (#84)
  • ab3dc94 update dependencies (#75)
  • aeaa346 upgrade docker compose (#96)
bob - 0.4.0

Published by Equanox over 2 years ago

The 0.4.0 release brings support for the Nix package manager to enable hermetic builds.

Key Features

  • Nix support
  • imports breaking: Bob does no longer search for child bobfiles, you have to explicitly tell Bob where to search for imported Bobfiles. Imported tasks are prefixed with the directory name.
     imports:
       - second-level
     build:
       build:
         cmd: ...
         dependon:
           - second-level/build
    
  • speed improvements for auto completion
  • speed improvements to remove bob overhead

What's Changed

New Contributors

Full Changelog: https://github.com/benchkram/bob/compare/0.3.0...0.4.0

bob - 0.4.3-beta-nix

Published by Equanox over 2 years ago

Changelog

  • ffdfafb cli speed imporvements: parallel hash computation (#65)
  • e6bc3fe cli speed improvements: imports (#55)
  • 5bbf694 nix: cache store paths (#62)
  • 0cdd260 use xxhash (#53)
bob - 0.4.2-beta-nix

Published by Equanox over 2 years ago

Beta release for executing tasks in a hermetic shell by leveraging the nix package manager.

Example Bobfile to define nix dependecies globally and on task level:

build:
  all:
    dependson:
      - go17
      - go18
  go17:
    cmd: go version
    dependencies: 
      - go_1_17 # overriding global nix dependency
  go18:
    cmd: go version
    
use-nix: true
dependencies:
  - go_1_18 # global nix dependency
bob - 0.4.1-alpha-nix

Published by Equanox over 2 years ago

What's Changed

New Contributors

Full Changelog: https://github.com/benchkram/bob/compare/0.3.0...0.4.1-alpha-nix

bob - 0.4.0-alpha-nix

Published by Equanox over 2 years ago

Changelog

  • a393d6c add a message if usenix is false but some dependencies exists
  • 3eebc96 add assertion for err
  • 4b4769a add default standard packages
  • 5dfdf55 add experimental-use-nix flag for bobfile
  • a82b8c7 allow dependencies on task level
  • 02e312f bob install cmd, fix non-deterministic order, fix build task package is added at the tail of path
  • 4776f99 build .nix files also from child levels
  • e126aeb draft build from .nix file dependencies
  • 57c48c6 e2e tests for build with nix
  • 0b2efcd fix /bin not added to last item in path, add output to nix-build, use ----no-out-link option
  • 052594c fix typo
  • 9685a49 fix typo
  • f0fa584 fix typo
  • 055e105 get rid of loop
  • 5f6c2bb install from nix fix non-deterministic order, nix files for tasks
  • 2dfa553 move nix related functions in one file
  • 86f35a7 move playground creation in Beforesuite
  • 595b7c9 nix build dependecies on task build
  • 823d8c1 nix-build dependencies
  • fae9712 remove fmt.Println
  • c11aaed remove unused method
  • 8eedf02 rename flag to use-nix
  • 49753d3 update go.mod to allow go get -u to work (#37)
bob - 0.3.0

Published by Equanox over 2 years ago

This release enables docker image targets, and multi repository commits. It also brings a more robust bob clone workflow.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.2.1...0.3.0

bob - 0.2.1

Published by Equanox almost 3 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.2.0...0.2.1

bob - 0.2.0

Published by Equanox almost 3 years ago

A mix of bug fixes and smaller features on rebuild behavior and storing artifact metadata.
It is the first release covered by the documentation at bob.build

Changelog

  • bob git status output is more similar to git status on merge conflicts
  • control rebuild behavior on build tasks through rebuild: directive
  • add --no-cache cli flag to ignore caching of artifacts
  • store metadata in artifacts and fix a bug when using entire directories as artifacts

Breaking Changes

  • The task: directive in bob.yaml changed to build: see changes
bob - 0.1.0

Published by Equanox almost 3 years ago

  • Basic build system functionality
  • TUI to support local development
  • Multi-Repo support