bob

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

APACHE-2.0 License

Stars
455
Committers
9
bob - 0.8.2-nix-shell-3 Latest Release

Published by Equanox 9 months ago

bob - 0.8.2-nix-shell-2

Published by Equanox 9 months ago

This release add an shell directive to the bob.yaml. In case a of an existing shell directive it takes precedence over any given dependencies.

This enables to use pkgs.mkShell inside a nix file... like:

{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = [
   pkgs.go_1_20
];
}

Example bob.yaml

build:
  build:
    cmd: go build .

shell: shell.nix
bob - 0.8.2-nix-shell

Published by Equanox 9 months ago

This release add an shell directive to the bob.yaml. In case a of an existing shell directive it takes precedence over any given dependencies.

This enables to use pkgs.mkShell inside a nix file... like:

{ pkgs ? import <nixpkgs> {} }:

pkgs.mkShell {
  buildInputs = [
   pkgs.go_1_20
];
}

Example bob.yaml

build:
  build:
    cmd: go build .

shell: shell.nix
bob - 0.8.2

Published by Equanox over 1 year ago

Fixes a bug which left a target in an invalid state after restoring from cache.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.8.1...0.8.2

bob - 0.8.1

Published by Equanox over 1 year ago

This bugfix release allows to execute bob without the docker daemon being required (if no docker image is set as target).
It also fixes a bug which created an unexpected cache miss.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.8.0...0.8.1

bob - 0.8.0

Published by Equanox over 1 year ago

This release introduces "file diffing" for targets. It keeps a directory like node_modules intact on a "cache hit". Therefore running hot-reloading instances for react, vuejs or svelte will not break.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.7.2...0.8.0

bob - 0.8.0-rc2

Published by Equanox over 1 year ago

Changelog

  • c170e2f Merge branch 'main' into hotrealoading
  • 9ffcf03 Merge branch 'main' into hotrealoading
  • 01901b4 Merge branch 'main' into hotrealoading
  • 57320fe add cmd to list files
  • 3fbc230 add file hash to artifact metadata
  • d9d9ffc add inspect buildinfo cmd; add content file hash to buildinfo file
  • de0f9c6 assure input hash comparison is similar to input hash during build
  • 464b8c0 check file by file when extracting the artifact or invalidating targets
  • 13908b5 cleanup
  • 3791569 debug
  • c229b0d debug buildinfoFiles
  • 6749119 dont check filehash on verifyShallow
  • a92a4b5 extra debug
  • 38ca8c8 fix bob clean targets cmd
  • 000502f fix last failing test
  • 8b342e4 fix lint
  • efda6ff fix path for invalid file cleanup
  • 686e946 fix symlink when it has changed file pointer after build
  • 0fc028f fix typo
  • b388102 if child task has changed check the target of the task
  • 00c64f2 ignore node_modules/.cache
  • a9abaf8 improve verify shallow performance
  • be8ddb2 no need for pointers
  • 667167c prevent missuse of cleanup
  • 20c5319 readd usage of takID and secure deleetion
  • c5d03ad remove bob clean
  • 7a421fe remove debug; fix build issue on missing buildinfo
  • 62feee5 remove file hash content on artifact meta
  • a419571 remove target
  • 6c42abd remove typo
  • 83e8de9 test bob clean
  • 6050334 verify of hash of file contents upon target verification
bob - 0.8.0-rc1

Published by Equanox over 1 year ago

Changelog

  • dd6a2bd Add Bazel comparison
  • 6919029 Bump github.com/stretchr/testify from 1.8.0 to 1.8.2 (#312)
  • 80f1b1e bob clean: add all cmd
  • 8ec09da bob inspect: add buildinfo diff (#317)
bob - 0.7.2

Published by Equanox over 1 year ago

This brings performance improvements based on internal optimization.

  • Internally the build-graph was walked extensively due to parallel execution this was reduced significantly.
  • The env created by nix is reused which reduces the load on garbage collection on big repos.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.7.1...0.7.2

bob - 0.7.2-rc

Published by Equanox over 1 year ago

Changelog

  • 9c872c5 Merge branch 'main' into performance-play
  • 5676e8d Perfomance verify duplicate targets (#286)
  • 00d98c4 TODO create cache obj for env
  • 7957a21 adapt tests
  • aad0d12 add benchmark
  • b60e6a3 add debug flag to print more build related metrics
  • 11f1b22 add more benchmarks
  • 0f7992c adjust input tests to be relative
  • 702b310 adjust to golang 19
  • 93921eb append unique
  • bfb891e avoid appen unique
  • ce64f16 avoid docker regsitry client generation for each task
  • 86356b6 avoid toLower
  • c8c41e6 bugfix: prevent send on close channel (#282)
  • 871ef14 cleanup
  • bfd31de cleanup
  • 70c1678 cleanup and fix execution time
  • e94249b debug zfs docker
  • 7e19a52 debug zfs docker imageSaveToPath
  • 21dd861 debug zfs docker remove all except imageSaveToPath
  • f1f037d detetct the docker registry storage driver
  • 697a4ac distinc clients
  • 8c1d161 exchange unique with appendUnique
  • 67b445f filter files in parallel
  • 1de11ba fine grained metrics
  • 3110ecd fix envutil tests
  • 69f2fd9 fix input + target tests
  • 3ec70a9 fix lint
  • f7f5a63 fix lint
  • 00c0d5f fix mempry leak & input tests
  • 2b83060 ignore invalid symlinks already in ListRecursive
  • df649ba no docker logs but filesystem
  • 3f32176 nonblocking worker queue
  • 407b583 optimize glopping
  • e147119 optimized tasks
  • dee75b3 parallel filter inputs [tests failing]
  • 0eb3a29 performance: nix dependencies (#287)
  • e0f8eed pin latest protoc version
  • 6180d0e readd summary
  • 393b094 refactor nix-builder (#298)
  • 52d41e2 remove debug summary
  • 5542979 remove filterInput from worker
  • ba5341c remove playbook lock
  • 1c40c13 revert docker moby mutexes
  • acd12ff speedup compute input hash (#289)
  • 3ca908e undo
  • c002ce5 update flake
  • c8d79ff use a in memory env cache
  • 49f9683 use docker lock less exaustive
  • 2e62046 use optimized tasks
  • b2f1725 use unique instead of appendUnique
  • 49b795b use warning for symbolic link
bob - 0.7.1

Published by Equanox almost 2 years ago

This adds a cache to reuse the environment created by nix-shell between runs.

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.7.0...0.7.1

bob - 0.7.0

Published by Equanox almost 2 years ago

This release brings improvement on working with the remote cache on bob.build and some performance improvements.

If your project: directive points to a valid remote cache location like bob.build/username/project you can now push & pull artifacts.
Read more about it on the remote-caching-guide

New Flags:

  • bob build --pushto push artifacts
  • bob build --no-pull to stop pulling artifacts

Hints: Use bob system clean to cleanup you local cache.

What's Changed

New Contributors

Full Changelog: https://github.com/benchkram/bob/compare/0.6.3...0.7.0

bob - 0.6.3

Published by Equanox almost 2 years ago

This release introduces a install script for Linux & MacOS and makes sure the build environment is similar to the one created by nix-shell.

๐Ÿ’ป Install script curl -L https://bob.build/install.sh
๐Ÿชž Build isolation is similar to plain nix-shell
๐Ÿงน Prevent ambiguous targets in a build graph
๐ŸŽถ Multiple smaller fixes

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.6.2...0.6.3

bob - 0.7.0-rc1

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.6.2...0.7.0-rc1

bob - 0.6.2

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.6.1...0.6.2

bob - 0.6.1

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.6.0...0.6.1

bob - 0.6.0 Parallel task Execution

Published by Equanox about 2 years ago

This release introduces parallel task execution to leverage the full power of your machine. It uses the internal DAG to assure tasks only start execution when all child tasks completed. The amount of workers started depends on the number of CPU-cores your system provides.

Breaking Changes:

  • Buildinfo is now serialized using protobuf instead of json for performance reasons. If you have used a previous bob version, make sure to do bob clean system to get rid of the old json serialization.

Cli Changes:

  • bob clean was renamed to bob clean system which cleans up the local cache.
  • bob clean targets removes filesystem targets from your current project.

What's Changed

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

bob - 0.6.0-rc4

Published by Equanox about 2 years ago

Changelog

  • 9f2f648 Bump github.com/google/go-cmp from 0.5.8 to 0.5.9 (#199)
  • 2a31c0c Bump github.com/onsi/gomega from 1.19.0 to 1.20.1 (#182)
  • fe91baa Bump github.com/spf13/viper from 1.11.0 to 1.12.0 (#99)
  • d6c4a78 Bump github.com/spf13/viper from 1.12.0 to 1.13.0 (#198)
  • 6403a1d Ignore targets from children in input of umbrella task (#173)
  • 8e5b0ee Update Readme.md
  • b6b98fa Update dependabot.yml
  • 2015b44 add details to inspect (#162)
  • 437753f create nix flake (#195)
  • c9e8f2b improve duration output (#186)
  • d712b2f parallel task execution (#180)
  • b85b489 rfc-project-name (#45)
  • 684f660 simplify readme (#174)
bob - 0.6.0-rc3

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.5.3...0.6.0-rc3

bob - 0.6.0-rc1

Published by Equanox about 2 years ago

What's Changed

Full Changelog: https://github.com/benchkram/bob/compare/0.5.2...0.6.0-rc1