Skip to content

Latest commit

 

History

History
576 lines (384 loc) · 17.4 KB

CHANGELOG.md

File metadata and controls

576 lines (384 loc) · 17.4 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.28.1 - 2021-01-11

Changed

  • Improved documentation. Thanks to Yohei Kawahara (#173).

Fixed

  • bash: Fixed an unexpected error message in self-executable specfile.
  • Fixed a bug that test command cannot redefine when using "when run source"
  • Fixed a bug when specified relative tmp directory path.
  • Fixed option parsing

0.28.0 - 2021-01-05

Added

  • Added BeforeEach / AfterEach as synonym for Before / After.
  • Added FORCE_COLOR environment variable.
  • Added --tmpdir option.
  • Added --execdir option to specify the directory for specfile execution.
  • Added -c (--chdir) and -C (--directory) options to change directory at startup.
  • Added path syntax (*/ and **/) and -L (--dereference) option to match recursive directories.
  • Added --helperdir to specify the location of spec_helper etc.
  • Added the environment variable SHELLSPEC_HELPERDIR to indicate the location of spec_helper etc.
  • Added --reportdir and --covdir options.
  • Added -O (--option) option.
  • Added -I (--load-path) option.
  • Added <module>_precheck callback and some helper functions to spec_helper for pre-checking.
  • Added <module>_loaded callback to be called after spec_helper loading.

Changed

  • Replaced with a new option parser getoptions which supports the standard option syntax.
  • Replaced --keep-tempdir with --keep-tmpdir.
  • Specifying a file in the shellspec's argument is now ignored if it does not match --pattern.
  • Filled in system-out and system-err in junit xml.
  • Allowed run the tests from any subdirectory.
  • The -D option has been deprecated (Replace with the --default-path option).
  • The environment variable SHELLSPEC_SPECDIR has been deprecated since there is not always a single directory for specfiles.
  • Rename .shellspec-profiler.log to profiler.log for profiler log.
  • Accept banner.md as a banner file
  • Include and import (shellspec_import) can now pass arguments.
  • The delimiter of the environment variable SHELLSPEC_REQUIRES has been changed from : to space.
  • Improved documentation. Thanks to ldicarlo (#117, #119), Antoni Marcinek (#120, #139), Stuart R. Jefferys (#155), Leon Stafford (#159).

Removed

  • Removed --kcov-common-options option.

Fixed

  • bash 4.1 - 4.3: Fixed a bug that run script could not get the exit status.
  • zsh < 4.2.0: Fixed a bug when extendedglob is enabled.
  • Fixed possibility of I/O error in satisfy matcher (GitHub Actions only?).
  • Fixed a bug in which zsh on macOS occasionally exits with exit code 147 (SIGCONT).
  • Fixed several bugs related to the Windows path for busybox-w32.
  • Fixed a bug when using metacharacters for tags.

0.27.2 - 2020-10-28

Fixed

  • Fixed a bug that didn't cause an error if there are fixed examples.

0.27.1 - 2020-09-30

Removed

  • Drop support for posh 0.8.5 due to signal handling broken.

Fixed

  • Fixed gray color.
  • Fixed broken --warning-as-failure.
  • Fixed a bug that can not CTRL-C with posh.

0.27.0 - 2020-09-25

Added

  • Added be exported and be readonly matchers.
  • Added %printf and %sleep directives.

Changed

  • Improved TAP formatter.
    • Supports TODO and SKIP directives.
    • Use Bail out! on error.
    • Added error details.
  • BeforeAll / AfterAll: Avoid crashes due to hook errors.
  • Before / After: Improved hook error handling.
  • BeforeCall / AfterCall, BeforeRun / AfterRun: Minor changes.

Removed

  • Drop support for dash 0.5.3 due to unstable bug.
  • Drop support for busybox < 1.20.0 due to unstable bug.

Fixed

  • Fixed a bug that "Parameter is not set" error in word modifier.
  • Fixed a bug that satisfy matcher succeed even syntax error.
  • Fixed a bug that can not CTRL-C with parallel execution on zsh.
  • shellspec-syntax-check.sh: Some minor bug fixes.

0.26.1 - 2020-07-13

Added

  • Added --docker option. (EXPERIMENTAL)

0.26.0 - 2020-07-12

Added

  • Added Mock helper (command-based mock).
  • Added %preserve directive.
  • Added --sandbox, --sandbox-path option.
  • Added --path option.

Fixed

  • Workaround when the Windows version of sort.exe is executed.

0.25.0 - 2020-06-21

Added

  • Coverage support for zsh and ksh. (#62)
  • Respect NO_COLOR environment variable.
  • Support busybox-w32 ash for windows.
  • Added Assert expectation to assert side effects of system environment.
  • Added Dump helper - dump stdout, stderr and status for debugging.
  • Added line and word subject. (of stdout (output) can be omitted now)
  • Added --log-file option to specify log file for %logger and trace.
  • Implement --xtrace (--xtrace-only) feature.

Changed

  • Upgrade to alpine 3.12 for docker image and officially release shellspec/kcov docker image.
  • Separate a file descriptor for reporting and stdout to able to use echo in specfile.
  • Minor specification change of result modifier and satisfy matcher.
  • -r option is now a short option for --repair, not --require.
  • Use [debian/eol(https://hub.docker.com/r/debian/eol/) docker images for old debian tests.

Fixed

  • Before/After hooks should not consume stdin data (#82)

0.24.3 - 2020-06-06

Fixed

  • Fixes BeforeAll / AfterAll to share states

0.24.2 - 2020-05-27

Fixed

  • Fixed a bug "SHELLSPEC_GROUP_ID: unbound variable"
  • Fixes when ran by "bash shellcpec" and "ksh shellspec"

0.24.1 - 2020-05-22

Fixed

  • Fixed broken Todo.
  • Fixed a bug that caused an error when "--kcov" was specified and /dev/tty no be writable. (#67 Alexander Reitzel)
  • Fixed a bug when enabled extendedglob for zsh.

0.24.0 - 2020-05-11

Added

  • Add BeforeAll and AfterAll. (#7)
  • Expand parameter within Data helper. (#57)
  • Add test for GWSH shell.
  • Add manual test for OpenBSD ksh on OpenBSD 6.6.
  • Add manual test for NetBSD sh on NetBSD 9.0.

Removed

  • Removed match matcher. Use match pattern matcher instead.
  • Remove tests for unstable old shells (Bus Error, Bad address, Memory fault, etc).
    • CI test for pdksh 5.2.14 on FreeBSD.
    • Docker test for pdksh 5.2.14 on Debian 2.2r7.
    • Docker test for ksh 93q on Debian 3.1r8.
  • Remove tests for FreeBSD 13.0-current (Unstable due to work in progress).

0.23.0 - 2020-04-02

Added

  • New quick execution and related options (--quick, --repair, --next).
  • New failures formatter.
  • Support self-executable specfile. (#40)
  • Add --pending-message and --quiet option.
  • Add short options for focus and filters.
  • Add -w short options for --warning-as-failure.
  • Add --boost (joke) option.
  • Reporter: Displays comments of 'temporary skip' and 'temporary pending'.
  • Support windows line endings. (#45)
  • Syntax check for missing End of parameters.
  • shellspec --init: generate ignore file for cvs.

Changed

  • Run the specfile specified by arguments even not end with _spec.sh.
  • Formatter: Change fixed color.
  • Formatter: Change mark for fixed and pending of progress formatter.

Fixed

  • Fixed --pattern option to avoid syntax error.
  • Return exit status code on the specfile properly.
  • Fixed a bug that start with and end with match glob pattern.
  • Formatter: Fixed not display correctly of documentation formatter when description is empty.
  • Fixed an issue installer.sh fails in some environments. (#43)

Deprecated

  • Use --require long option instead of -r short option.

0.22.0 - 2020-02-22

Added

  • Improve kcov version detection.
  • Colored TAP formatter. (#34 Kylie McClain)
  • Added --show-deprecations and --hide-deprecations options.

Changed

  • New kcov integration.
    • Do not create translated specfile in project directory.
    • Suppress unnecessary coverage measurement to improve testing speed.
    • Added --coverage-report-info to add extra information to coverage report.
  • make install compatible with BSD and macOS.
  • Suppress unnecessary before/after hooks of skipped examples.
  • install.sh: Install to under $HOME/.local by default
  • Use $HOME/.config if not defined XDG_CONFIG_HOME

Deprecated

  • --kcov-common-options is deprecated, merge into --kcov-options.
  • Deprecates the match matcher due to cause many syntax errors. Use match pattern matcher instead.

Fixed

  • Fixed broken test in docker on Linux.
  • Fixed --example option to avoid syntax error.
  • Append to LOGFILE instead of overwriting.

0.21.0 - 2020-01-30

Added

  • Provide docker images.
  • Provide distribution archive.
  • Available ArchLinux package. (#15 Damien Flament)

Changed

  • docs: Improve English quality. (#16 Damien Flament)

0.20.2 - 2019-08-24

Fixed

  • Fixed wrong SHELLSPEC_TMPBASE
  • Fixed for bug that some shell can not call external command same name as builtin.

0.20.1 - 2019-08-19

Fixed

  • Fixed for solaris.

0.20.0 - 2019-08-18

Added

  • Add parameterized example. (Parameters helper)
  • Add Set helper for set shell option
  • Add BeforeCall / AfterCall helper.
  • Add BeforeRun / AfterRun helper.
  • Use hexdump if od does not exist.

Changed

  • Redesign run evaluation. [major breaking change]
    • Change the behavior to close to the run of bats.
    • New run evaluation allows the execution of functions and commands.
    • Use run command to execute only the commands. (old run -> use run command)
    • Merge invoke evaluation to run evaluation. (old invoke -> use run)
    • Merge execute evaluation to run evaluation. (old execute -> use run source)
  • Export %const values to the translation process

Removed

  • Drop support for posh 0.10.2 and similar versions as the handling of the shell flag is broken.

Fixed

  • Fixed bug for related with tag.
  • Fixed bug where coverage might not work on macOS.

0.19.1 - 2019-07-23

Added

  • Support install via make, bpkg, basher

0.19.0 - 2019-07-22

Added

  • Add installer (It has not been officially released, but you can used it already).
  • Testing for single script file (Add execute evaluation, Intercept and __SOURCED__ variable).
  • Add --keep-tempdir option.
  • Add Data < <FILE> syntax.

Removed

  • Drop support for busybox 1.1.3 and similar versions as it can not redefine builtin commands.
  • Drop support for ash 0.3.8 and similar versions as it can not use retrun in sourced script.
  • Remove call/invoke <STRING> syntax.

0.18.0 - 2019-07-09

Added

  • Profiler feature (--profile)
  • Time attribute for JUnit XML.

0.17.0 - 2019-07-06

Added

  • Coverage reporting.
  • Add --fail-low-coverage option.

0.16.0 - 2019-07-03

Added

Changed

  • Change --skip-message none to --skip-message verbose.

Removed

  • Remove --warnings option.

0.15.0 - 2019-05-26

Added

  • Add be empty directory (alias: be empty dir) matcher.

Changed

  • Rename be empty matcher to be empty file matcher. [breaking change]

Fixed

  • Fixed bug that be empty (renamed to be empty file) matcher matches not exists file, etc.
  • Ensure call & invoke start with errno zero (#2 Rowan Thorpe)

0.14.0 - 2019-05-15

Added

  • Add --random option.

Changed

  • Improve --example, --tag option.

0.13.1 - 2019-05-13

Fixed

  • Fixed bug when --dry-run mode.
  • Fixed documentation formatter.

0.13.0 - 2019-05-12

Added

  • Add --list examples:id option.
  • Add *_spec.sh:@ID syntax the specify id with the filename.
  • Add --pattern, --example, --tag, --default-path filter option.

Changed

  • Change Logger Helper to %logger directive.
  • Merge --list-specfiles, --list-examples options to --list option.
  • Redesign reporter to improve performance, maintainability.

0.12.0 - 2019-04-26

Added

  • Add --list-specfiles, --list-examples option.
  • Add --env-from option.
  • Add tests that for array if supported shells.

Changed

  • Change --count option output includes the number of specfiles.
  • Change to the banner show only on shellspec-runner.

0.11.3 - 2019-04-24

Fixed

  • Fixed broken parallel executor.

0.11.2 - 2019-04-23

Fixed

  • Fixed bug that does not work with zsh 5.4.2.

0.11.1 - 2019-04-21

Fixed

  • Fixed ignored specified line number when parallel execution.
  • Fixed documentation formatter when supplied multiple specfiles.

0.11.0 - 2019-04-20

Added

  • Run the example by line number. (*_spec.sh:#)
  • Run focused groups / examples. (fDescribe, fContext, fExample, fSpecify, fIt)
  • Add --count option for count the number of examples without running.

0.10.0 - 2019-04-17

Added

  • Support parallel execution. (--jobs option)

Changed

  • Separete syntax checker into tools.
  • Improve syntax checker.
  • Improve error handling.
  • Improve ctrl-c handling.

Removed

  • Remove Def helper. (use %putsn, %puts directive instead)

0.9.0 - 2019-03-30

Added

  • Add --syntax-check option for syntax check of the specfile.

Changed

  • Change timing of loading external script by 'Include'. [breaking change]

Fixed

  • Fix for translation speed slowdown.

Removed

  • Remove shorthand of the variable subject.

0.8.0 - 2019-03-26

Added

  • Add Constant definition.
  • Add Data helper, Embedded text.
  • Add Def helper.
  • Add Logger helper.
  • Add result modifier.
  • Add Include helper.
  • Add shorthand for function subject and variable subject.
  • Add failed message for Before/After each hook.

Changed

  • Change behavior of line and lines modifier to like "grep -c" not "wc -l".
  • Change function subject to alias for value subject.
  • Improve handling unexpected errors.
  • Improve examples.

Removed

  • Remove It statement and change It is alias of Example now.
  • Remove Set / Unset helper.
  • Remove Debug helper.
  • Remove string subject.
  • Remove exit status subject. (use status subject)

0.7.0 - 2019-03-08

Added

  • Added lines modifier.

0.6.0 - 2019-02-19

Added

  • Added match matcher.

0.5.0 - 2019-02-06

Added

  • Initial public release.