Releases: nicholasjng/pybm
Releases · nicholasjng/pybm
v0.1.0
This release gets pybm
out of the experimental phase!
New features:
pybm report
was deleted in favor ofpybm compare
; all previously available functionality from that command is now contained in additional switches forpybm compare
. #32- A legacy
git checkout
-based way for sourcing benchmarks from other refs was implemented, which pushes the minimum required git version down to 2.17.0 again. #33 - A global configuration file was added, which can be used to set different values for
pybm
config initialization without typing them out forpybm init
. #34 pybm
's result saving was changed to a general IO interface, which is a general class interface implementingread
andwrite
APIs. #41pybm env switch
was implemented to change a worktree's checkout from the command line. #41
Fixed problems and bugs:
- Fixed a bug which resulted in installed / uninstalled packages not being reflected in changing TOML env state when using
pybm env install/uninstall
. #39 - Fixed a bug which parsed out the version incorrectly from
git --version
output on Windows. This change enabledpybm
checkout-based benchmark runs on Windows. #39 - Changed the timeit runner's logic to avoid the repeated
Timer.autorange
overhead, resulting in substantial performance gains. #39 - Added a small quickstart section to
pybm
for better getting up and running. #40
v0.0.3
This release of pybm
contains a number of new features and bugfixes.
New features:
- The Google Benchmark runner is now fully supported and entered the CI pipeline. #30
- TOML is now used as the configuration markup language of choice; old YAML configuration files will not work anymore. You can however create a new configuration file in-place by using
pybm init
. #27 - Overriding values is now supported in
pybm init
with the-o
switch. #20 - Config values are now all-lower-case instead of camel case. #24
- Documentation was added for the most important CLI commands and class components. #28
Bug fixes:
v0.0.2
This release of pybm
contains some bugfixes and some new features.
New features:
- Implemented running benchmarks as modules via
pybm run -m
, for benchmarking code outside of an installed package. #4 - Implemented reductions of benchmark repetitions into descriptive statistics. #5
- Implemented checkout mode (
pybm run --checkout
), foregoing git worktree creation when there are no custom requirements necessitating siloed environments. #11 - Added
git worktree move
andgit worktree repair
to the list of emulatedgit worktree
commands, allowing to rename a worktree after switching checkouts. #14, #15 - Added an end-to-end test GitHub Action for the
pybm
introductory example. #15 - Formatted the whole repository with
psf/black
, as well as adding a pre-commit hook for it. #15 - Added dynamic option sourcing and grouping for builder, runner and reporter interfaces. #16
Bugs:
- Fixed multiple setup bugs preventing installation on Python 3.7 (thanks to @YPFoerster for the report).
- Fixed a bug preventing package uninstalls by adding the
-y
flag intopip uninstall
options forPythonVenvBuilder
. - Refactored and fixed previously wrong logic for mapping commits to git tags.
v0.0.1
The first release of the pybm project. Contains all necessary functionality to manage, run and report Python benchmarks via the pybm
CLI.
It comes with a complete example walkthrough, too! The examples are located in the top-level folder of the same name.