Skip to content

Releases: nicholasjng/pybm

v0.1.0

08 Feb 15:26
Compare
Choose a tag to compare

This release gets pybm out of the experimental phase!

New features:

  • pybm report was deleted in favor of pybm compare; all previously available functionality from that command is now contained in additional switches for pybm 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 for pybm init. #34
  • pybm's result saving was changed to a general IO interface, which is a general class interface implementing read and write APIs. #41
  • pybm 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 enabled pybm 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

21 Jan 20:20
Compare
Choose a tag to compare

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:

  • The abbrev_home function was extended to also work on Windows. #26
  • Some variable names were changed to reduce confusion. Now config help texts are available for all values. #29
  • Builder print context managers now throw caught exceptions to allow stderr output which helps with debugging problems.

v0.0.2

09 Nov 20:41
Compare
Choose a tag to compare

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 and git worktree repair to the list of emulated git 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 into pip uninstall options for PythonVenvBuilder.
  • Refactored and fixed previously wrong logic for mapping commits to git tags.

v0.0.1

09 Oct 22:40
Compare
Choose a tag to compare

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.