6.8 (2023-10-09)¶
Features¶
Bug Fixes¶
use context vars instead of env vars (e3ea47f0)
make github ci actually use its own env vars (e0c7ab67)
use BB_COVERAGE_PATH in .coveragerc (141afafa)
coveragerc requires curly braces for env variables (3ae8b335)
coveragerc requires curly braces for env variables (5b9c9906)
environments: buildah cannot find base images. (eb03c363)
6.7 (2023-04-04)¶
Features¶
run auto-walrus over all of benchbuild’s file (79ac33d8)
add support for auto-walrus as pre-commit hook (d7a2165b)
drop support for python 3.7 and 3.8 (90308f2a)
ci:
command: use name as default value for a command’s label (07f74dd4)
environments: force base image to alpine:3.17 (fe5d6155)
setup:
wrapping: enforce global defaults for dill module (489e3039)
Bug Fixes¶
python version for setup-python@v4 has to be string (7a1db742)
remove python 3.7 and 3.8 from all workflows (aaabc1b5)
bump pathos & dill to unbreak gitlab ci (bce45d8a)
ci:
command: use private label when fetching string representation (d83aa666)
commands: preserve workload order when filtering (3648dd5e)
setup: unlock any major version of pygit2 (b09d9248)
wrapping: remove unused code (0d1c890d)
Changelog¶
6.6.4 (2023-03-16)¶
6.6.3 (2023-03-06)¶
6.6.2 (2023-03-06)¶
Bug Fixes¶
pin sqlalchemy version <2.0 (86d45043)
6.6.1 (2023-01-10)¶
Features¶
Bug Fixes¶
6.5 (2022-11-03)¶
Feat¶
source: re-enable project_cls in enumerate_revision interface
versions: enable context-aware SingleVersionFilter
source: only print context-free sources
source: expand public source API
source: introduce type skeleton and prototypes for context-aware version enumeration.
action: replace StepClass metaclass with init_subclass
actions: mark StepTy covariant
actions: use Stepable protocol as bound for StepTy.
actions: accept any varargs in a Step’s call implementation
Fix¶
require dill version to be exactly 0.3.4
linter warning
linter warnings
project: remove debug print
utils: variant -> revision
tests: repair tests after VariantContext replacement.
source: remove runtime_checkable decorator
source: use project class instead of object for enumerate
source: return sequence of variants instead of nestedvariant
source: clean up protocol apis
actions: rename StepTy -> StepTy_co
tests: remove notify_step_begin_end
actions: reduce mypy errors
actions: use mutable generic container
Refactor¶
versions: remove BaseVersionGroup
source: replace VariantContext with Revision
source: remove ExpandableAndFetchableSource from API
6.4 (2022-09-21)¶
Feat¶
actions: make MultiStep generic.
command: make use of rendered and unrenderer PathToken explicit.
command: safeguard pruning and backup
command: add tests for enable_rollback
command: add support for creates and consumes properties for commands
command: add a label to commands
workload: switch WorkloadSet to varargs instead of kwargs
command: add example
OnlyIn
for WorkloadSet customization.
Fix¶
command: strictly less than python 3.9
command: use _is_relative_to where needed
command: guard is_relative_to with else
command: do not depend on Path.is_relative_to (<python3.9)
command: make mypy happy.
command: Command.label is Optional
command: use protocols instead of typing.Callable for callback functions
command: Command.getitem used constructor wrong
command: return self._label instead of self.label
command: return Path instead of str or PathToken
command: assign consumed files to consumes attribute
tests: remove missing_ok from unlink (python3.7)
tests: repair test_command tests
tests: make test project pickle’able
tests: add missing pytest-git dependency
command:
only
might be Nonecommand: access cache path instead of builddir path
command: make sure SupportsUnwrap returns a WorkloadSet
Refactor¶
command: rename enable_rollback -> cleanup
6.3.2 (2022-08-21)¶
Feat¶
command: rename NullRenderer to RootRenderer
command: hook up token renderer logic with Commands
command: add support for generic path tokens
workload: convert scimark2
command: migrate git-based projects to workload sets
command: add support for WorkloadSet.
command: clear path tracker on fresh ProjectEnvironment
wrapping: avoid wrapping the same command twice.
jobs: add RunJob and RunJobs actions
command: replace source root anywhere in command’s parts
command: pass environment to plumbum command
command: pass args to plumbum command
command: improve args and kwargs handling
add env and str to commands
command: support declarative commands in projects (WIP)
source: add ‘fetch’ support to FetchableSource derivatives
workloads: add properties & tags accessors
workloads: convert benchbuild.xz to support workloads
Fix¶
test must use render()
x264: repair broken cli args
command: actually run the workload
command: check for existence, only after rendering
project: target compile instead of run_tests, when accessing compile
command: remove unused definitions
command: context -> kwargs
typing: python3.7 requires typing_extensions for runtime_checkable / Protocll
command: missing rename job -> workload
command: provide mapping type
workload: strip previous workload draft
workaround a mypy error
correct mypy errors.
wrapping: provide default arg for sprefix
actions: provide default StepResult
command: store args as tuple
bzip2: clean draft marker
actions: repair status print of actions
experiment: initialize CleanExtra correctly
jobs: allow jobs to run as wrapped binaries
use oci_compliant name for image names
workloads: wrong workload type
actions: unbreak tests after list -> scalar conversion
Refactor¶
command: lower-case token str
rename Job -> Workload
command: remove debug prints
source: remove unnecessary ellipsis
6.3.1 (2022-03-01)¶
Feat¶
actions: clean interfaces of utils/actions
workloads: make object instance accessible to workloads using descriptors
workloads: hook up Compile and Run action to new workload impl
workloads: add simple intersection filter to workloads
workloads: change workload registration decorator style.
workloads: migrate Compile/Run action to run workloads only
project: remove run_tests and compile abstract methods
gzip: convert gzip to workloads
workload: Add prototype support for workloads.
environments: strip container args when entering interactive mode
Fix¶
workloads: typo.
gzip: undo wrong wrap command
actions: project -> obj after rebase
Refactor¶
workloads: remove useless/unused parts
6.3 (2022-02-03)¶
Feat¶
actions: throw error if RevisionStrings cannot match any Source.
source: add FetchableSource.explore() method
source: only filter context for expandable sources
actions: support partial revisions in SetProjectVersion
source: hook up context_from_revisions to SetProjectVersion
source: provide an easy way to create a variant context
environments: add container image removal to buildah adapter
environments: support custom arguments in RunProjectContainer
actions: track active_variant with SetProjectVersion
project: add MultiVersioned Mixin to Projects
source: symlink active version for http sources
source: Link to active location after version()
actions: Rename AddProjectVersion to SetProjectVersion
actions: add AddProjectVersion action
actions: remove obsolete parameters
actions: remove attrs from utils/actions
Fix¶
tests: eye-breaking code alignment.
environments: do not fail if no entrypoint is set.
environments: supply args as dedicated subcommand args
environments: use a default list factory, instead of a list class
source: replace symlink to directory
actions: obvious type errors in SetProjectVersion
actions: assign active variant
Refactor¶
pylint: remove unused import
pylint: make pylint happy.
pylint: make pylint almost happy.
6.2.7 (2021-09-21)¶
6.2.6 (2021-09-16)¶
Fix¶
sources: do not use protocol class as ABC
6.2.5 (2021-09-15)¶
Feat¶
utils/run: add unbuffered watch commands
source: update git remote revisions. (#434)
log: add force_tty switch to control RichHandler. (#435)
6.2.4 (2021-09-03)¶
6.2.3 (2021-08-26)¶
Fix¶
schema: silence SAWarning about caching (#428)
environments: pass format string to logging call (#427)
6.2.2 (2021-07-29)¶
6.2.1 (2021-07-06)¶
Feat¶
environments: add an interactive mode for container runs.
Fix¶
logging: make rich log to stderr by default (#415)
settings: BB_ENV is ignored when no config file is loaded” (#414)
6.2 (2021-06-02)¶
Fix¶
settings: unbreak test cases.
use correct schema version
settings: consistent settings behavior.
environments: notify the user, if image creation fails
6.1.1 (2021-05-11)¶
Fix¶
project: do not track project classes twice
6.1 (2021-05-11)¶
Feat¶
environments: just print env var name as error message
environments: warn the user about too long paths for libpod
slurm: support variable number of subcommand arguments
tune down rich’s custom log format
environments: enable debugging of failed image builds
environments: provide more consistent output through rich
environments: add ‘rmi’ subcommand to delete images.
environments: make an error message stand out more clearly
environments: add g++ to base image
environments: split image_exists into 2 implementations
environments: split containers cli into 2 entitie
environments: add basic error handling to environments
environments: emit layer creation events
environments: print layer construction progress
environments: make layers hashable
environments: step-wise image construction
environments: split Repositories and Unit of Work into 2 entities each
utils/slurm: add customizable SLURM templates
cli/project: add details view for a single project
cli/project: change project view to a condensed format
environments: add option to replace container images
add support for –export and –import flags in containers
Fix¶
sources: unshallow only when needed
environments: unshallow git clones before dissociating
environments: remove left-over parameters
ci: typo.
environments: do not overwrite exported images.
environments: remove optional image name argument from podman load
slurm: fix pylint/mypy
environments: reuse same status bar structure for all other cli subcommands
environments: mypy warnings
environments: fix mypy/pylint annotations.
environments: split return turple and baild out on error
environments: mypy warnings
environments: add missing type conversion
environments: rework typing annotations for handlers
environments: fix linter/mypy warnings
environments: make Add & Copy layers hashable
environments: add missing sys import
environments: import Protocol from typing_extensions, if python <= 3.8
environments: handle ‘None’ for MaybeContainer return type
slurm: do not modify slurm_node_dir
environments: deal with multi-line container ids
environments: do not spawn the FromLayer
cli/project: annotate print_layers
cli/project: add neutral element for multiplication with reduce
project: project registration for groups
environments: explicitly state remote registry location
do not use global state to conffigure buildah/podman
x264: use local name of source for lookup
Refactor¶
environments: fix possible unbound variable
slurm: fix type error on cli_process
environments: remove unused sys import
environments: rmeove some linter warnings
environments: replace functools.partial with custom closure function
environments: unsplit image from layer creation
enviroments: remove debug print
environments: remove unused commands
cli/project: remove version counting from project view
cli/project: force use of str
cli/project: add documentation to print_project
cli/project: add type annotation for set_limit
cli/project: add a default list limit for versions (10)
cli/project: provide better layout of project information
cli/project: use a multi-line string
cli/project: use named fields
project: provide correct type annotations
6.0.1 (2020-12-29)¶
Fix¶
Avoid useless plugin spam when running with higher verbosity levels