Skip to content

Releases: phpbench/phpbench

1.0.1

11 May 21:43
Compare
Choose a tag to compare

Bug fix:

  • Error with bare report when DateTime used as param #832

1.0.0

09 May 10:33
Compare
Choose a tag to compare

1.0.0

(changes vs. 1.17)

B/C breaks:

  • Progress logger: startSuite now additionally accepts RunnerConfig
  • Removed self-update functionality (suggest using phive instead(.
  • Most configuration option names have changed. All options are now prefixed
    by their extension name, e.g. bootstrap => runner.bootstrap, path =>
    runner.path, extensions => core.extensions. See the configuration
    [documentation(https://phpbench.readthedocs.io/en/latest/configuration.html)
    for a full reference.
  • Removed time_unit and time_mode configuration settings, as they are
    replaced by runner.time_unit and runner.time_mode.
  • Environment provider baseline renamed to sampler to avoid
    concept-conflict with the runner baselines.
  • Extensions grouping related functionalities have been extracted from the
    CoreExtension, this will change the location of some constants used
    (e.g. CoreExtension::TAG_PROGRESS_LOGGER is now
    RunnerExtension::PROGRESS_LOGGER.
  • Renamed travis progress logger to plain
  • Removed awareness of CONTINUOUS_INTEGRATION environment variable
  • Removed table report generator, it is replaced by the expression
    generator which is now used to produce the default and aggregate
    reports. The output and configuration is largely the same, but some features
    have been removed.
  • html and markdown output formats have been removed temporarily.
  • --uuid renamed to --ref and tag: prefix removed #740
  • No warnings - if assertion fails within tolerance zone then it is OK
  • Assertion DSL has been
    replaced (only applicable vs. previous alpha
    versions)
  • BenchmarkExecutorInterface#execute() must now return an ExecutionResults
    object.
  • TemplateExecutor: expect an array for the time measurement result instead
    of an int.
  • Extensions use the Symfony OptionsResolver instead of provding an array of
    default values (which is in line with how other parts of PHPBench are
    working).
  • Executors accept a single, immutable ExecutionContext instead of the
    mutable SubjectMetadata and Iteration
  • Renamed the microtime executor to remote.
  • OutputInterface is injected from the DI conatiner, OutputAwareInterface
    has been removed.
  • DBAL extension removed.
  • PHPBench Reports extension removed.
  • Removed Xdebug Trace integration
  • Removed --query featre (only worked with DBAL, too complex).
  • Removed --context (depreacted in favor of --tag).
  • Removed archive and delete commands.
  • Assertions now accept a single expression rather than a set of
    configuration options.
  • Type hints have been added in most places - possibly causing issues with
    any extensions.
  • Assets (storage, xdebug profiles) are now placed in .phpbench
  • Services referenced via. fully qualified class names instead of strings.

Features:

  • Added --working-dir option
  • Option to include the baseline rows in the expression report.
  • Progress output is sent to STDERR, report output to STDOUT (enable you to
    pipe the output)
  • Allow --theme= selection and configuration.
  • Allow benchmarks to be configued in the config (runner.{iterations,revs,time_unit,mode,etc})
  • Include collected environmental information in the report data #789
  • Allow providers to be enabled/disabled via. env.enabled_providers #789
  • Support @RetryThreshold annotation, attribute, and
    runner.retry_threshold configuration.
  • Introduced bare report generator - provides all raw available report data
  • Introduced display_as_time function to handle formatting time with
    throughput.
  • Null coalesce function introduced in expression language
  • Support true color expression rendering #767
  • Added expression report generator - will eventually replace the table report used
    for aggregate and default reports.
  • Added --format to customize the summary shown in progress loggers
  • String concatenation for expression language
  • Show debug details (process spawning) with -vvv
  • Support Xdebug 3
  • Support for PHP 8 Attributes
  • New Expression Lanaugage
  • Introduced remote_script_remove and remote_script_path options to assist
    in debugging.
  • Added local executor - execute benchmarks with in the same process as
    PHPBench.
  • Configuration profiles
  • Xdebug extension is loaded by default if extension is loaded
  • Baseline: Specify baseline suite when running benchmarks and show differences in
    reports #648
  • Assert against the baseline
  • Show PHP version and the status of Xdebug and Opcache in the runner output
    #649
  • Add @Timeout to enable a timeout to be specified for any given benchmark -
    @dantleech #614

Improvements:

  • Optionaly support for binary data in param providers #532
  • Support serializable objects in param providers #823
  • Use package versions to show PHPBench version if not PHAR
  • Removed "summary" line from default progress output.
  • Automatically detect time or memory units by default, added meta-units
    time and memory
  • Unconditionally enable xdebug extension (previously the entire extension
    was hidden if Xdebug wasn't installed)
  • "local" executor will include non-existing benchmark classes and bootstrap
  • Configuation options have generated documentation
  • Preserve types in env information
  • Make default true color theme compatible with light backgrounds.
  • Added vertical layout to bare report (vertical: true).
  • Removed best and worst columns by default from default report.
  • Default to showing all columns in expression report
  • Standard deviation in default report is shown as time
  • Relative SD is color gradiated
  • Trunacte long syntax error messages
  • Automatically sign PHAR on release
  • Dynamically resolve timeunit / precision from expression (progress/report) #775
  • Support specificaion of display-as precision in expression language
  • Allow the display unit to be evaluated (for dynamically determining the unit based on the subject's preference)
  • Make the display unit a node - allowing it to be pretty printed.
  • Improved memory formatting (thousands separator, use abbreviated suffix)
  • Show difference to baseline in progress loggers.
  • Highlight assertion failures.
  • Decorator added to improve error reporting for method executors.
  • Benchmarks executed as they are found (no eager metadata loading)
  • Allow direct reference to services (e.g. --executor=debug without need for
    a debug configuration).
  • Colourful indication of success/failure/warnings when assertions are used.
  • Allow multiple paths to be specified in config
  • Add type restrictions to config values
  • All assets now placed in .phpbench directory in CWD (instead of
    ./_storage and ./xdebug
  • --tag implicitly stores the benchmark (no need to additionally use
    --store)
  • Decrease benchmark overhead by rendering parameters in-template -
    @marc-mabe

Bug fix:

  • Fix regression which requires phpbench to be installed with composer 2 #822
  • Unterminated XML reference #818 - @staabm
  • Parent directory for custom script path not created #739 - @alexandrajulius
  • Windows newline is not understood in expression language #817 - @dantleech
  • @OutputTimeUnit doesn't propagate to default expression time unit #766
  • Numeric tags cause an error #717
  • Benchmark errors cause reports to error
  • Undefined console formatter subtitle #729
  • Missing formatters not defined in correct place #727
  • Use text instead of string for envrionment key for DBAL storage - @flobee
  • Numeric tags are not found.

1.0.0-beta2

01 May 17:43
Compare
Choose a tag to compare
1.0.0-beta2 Pre-release
Pre-release

B/C breaks:

  • Progress logger: startSuite now additionally accepts RunnerConfig

Improvements:

  • Use package versions to show PHPBench version if not PHAR
  • Display hint to indicate what is being compared
  • Display the Mo prefix as a node (i.e. it can have highlighting applied to it)

Bug fixes:

1.0.0-beta1

13 Apr 15:35
Compare
Choose a tag to compare
1.0.0-beta1 Pre-release
Pre-release

1.0.0-beta1

B/C breaks:

  • Most configuration option names have changed. All options are now prefixed
    by their extension name, e.g. bootstrap => runner.bootstrap, path =>
    runner.path, extensions => core.extensions. See the configuration
    documentation
    for a full reference.
  • Removed time_unit and time_mode configuration settings, as they are
    replaced by runner.time_unit and runner.time_mode.
  • Environment provider baseline renamed to sampler to avoid
    concept-conflict with the runner baselines.

Improvements:

  • Removed "summary" line from default progress output.
  • Automatically detect time or memory units by default, added meta-units
    time and memory
  • Unconditionally enable xdebug extension (previously the entire extension
    was hidden if Xdebug wasn't installed)

1.0.0-alpha9

12 Apr 13:06
Compare
Choose a tag to compare
1.0.0-alpha9 Pre-release
Pre-release

B/C Breaks:

  • Extensions grouping related functionalities have been extracted from the
    CoreExtension, this will change the location of some constants used
    (e.g. CoreExtension::TAG_PROGRESS_LOGGER is now
    RunnerExtension::PROGRESS_LOGGER.
  • Renamed travis progress logger to plain
  • Removed awareness of CONTINUOUS_INTEGRATION environment variable

Features:

  • Added --working-dir option
  • Option to include the baseline rows in the expression report.
  • Progress output is sent to STDERR, report output to STDOUT (enable you to
    pipe the output)
  • Allow --theme= selection and configuration.
  • Allow benchmarks to be configued in the config (runner.{iterations,revs,time_unit,mode,etc})
  • Include collected environmental information in the report data #789
  • Allow providers to be enabled/disabled via. env.enabled_providers #789
  • Support @RetryThreshold annotation, attribute, and
    runner.retry_threshold configuration.

Improvements:

  • "local" executor will include non-existing benchmark classes and bootstrap
  • Configuation options have generated documentation
  • Preserve types in env information
  • Make default true color theme compatible with light backgrounds.
  • Added vertical layout to bare report (vertical: true).
  • Removed best and worst columns by default from default report.
  • Default to showing all columns in expression report
  • Standard deviation in default report is shown as time
  • Relative SD is color gradiated
  • Trunacte long syntax error messages

Other:

  • Automatically sign PHAR on release

1.0.0-alpha8

28 Mar 16:06
Compare
Choose a tag to compare
1.0.0-alpha8 Pre-release
Pre-release

This release replaces much of the reporting layer, switching it to be based on expressions.

BC Breaks:

  • Removed table report generator, it is replaced by the expression
    generator which is now used to produce the default and aggregate
    reports. The output and configuration is largely the same, but some features
    have been removed.
  • html and markdown output formats have been removed temporarily.

Features:

  • Expression report: replaces the table report.
  • Introduced bare report generator - provides all raw available report data
  • Introduced display_as_time function to handle formatting time with
    throughput.
  • Null coalesce function introduced in expression language

Improvements:

  • Dynamically resolve timeunit / precision from expression (progress/report) #775
  • Support specificaion of display-as precision in expression language
  • Allow the display unit to be evaluated (for dynamically determining the unit based on the subject's preference)
  • Make the display unit a node - allowing it to be pretty printed.
  • Improved memory formatting (thousands separator, use abbreviated suffix)

1.0.0-alpha7

20 Mar 09:27
Compare
Choose a tag to compare
1.0.0-alpha7 Pre-release
Pre-release
  • Support true color expression rendering #767
  • Added expression report generator - will eventually replace the table report used
    for aggregate and default reports.
  • Added --format to customize the summary shown in progress loggers
  • String concatenation for expression language
  • Show debug details (process spawning) with -vvv
  • Support Xdebug 3

Bug fixes:

  • @OutputTimeUnit doesn't propagate to default expression time unit #766

1.0.0-alpha6

28 Feb 21:25
Compare
Choose a tag to compare
1.0.0-alpha6 Pre-release
Pre-release

Features:

  • Support for PHP 8 Attributes

1.0.0-alpha5

27 Feb 11:21
Compare
Choose a tag to compare
1.0.0-alpha5 Pre-release
Pre-release

1.0.0-alpha5

Backward compatiblity breaks:

  • --uuid renamed to --ref and tag: prefix removed #740
  • No warnings - if assertion fails within tolerance zone then it is OK
  • Assertion DSL has been
    replaced (only applicable vs. previous alpha
    versions)

Features:

Improvements:

  • Show difference to baseline in progress loggers.
  • Highlight assertion failures.

1.0.0-alpha4

29 Dec 09:43
Compare
Choose a tag to compare
1.0.0-alpha4 Pre-release
Pre-release

1.0.0-alpha-4

Bug fixes:

  • Numeric tags cause an error #717
  • Benchmark errors cause reports to error
  • Undefined console formatter subtitle #729
  • Missing formatters not defined in correct place #727

Improvements:

  • Colourful indication of success/failure/warnings when assertions are used.
  • Allow multiple paths to be specified in config
  • Add type restrictions to config values