Skip to content

Latest commit

 

History

History
337 lines (216 loc) · 10.1 KB

CHANGELOG.md

File metadata and controls

337 lines (216 loc) · 10.1 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.

[Unreleased]

[4.1.6] - 2019-12-17

Fixed

  • Errors output inside jobs would throw unintentional errors during parsing.

[4.1.5] - 2019-07-20

Fixed

  • Remove extraneous close comment bracket.

[4.1.4] - 2019-06-18

Fixed

  • Fix error in Publish when an unexpected result was returned.

[4.1.3] - 2019-06-18

Fixed

  • Added aliases for constrained endpoint compatibility.

[4.1.2] - 2019-05-17

Added

  • Publish-Jojoba can now take a list of properties to output to the display.

[4.1.1] - 2019-05-09

Fixed

  • $jojobaBatch is now stored and retrieved properly within the caller module.

[4.1.0] - 2019-04-17

Changes

  • Timestamp is now in UTC. This makes a lot of sense for me because I aggregate the test data to a central repository, and tests can run on machines that are in different timezones. In that architecture the preferred way to determine "what is the most recent test" is to use UTC as a baseline.
  • When a function in a module is using Jojoba a $jojobaBatch variable will be inserted into the module state for reuse of runspaces. This makes functions way faster than creating runspaces every time. If the module is reloaded, the variable is lost, and so a new variable and set of runspaces are created. If you don't like this behaviour, you can still specify JojobaBatch manually. You can also modify the PSBoundParameters in the begin {} block of functions to insert a random GUID which will generate a fresh runspace. Functions which are not in modules always use a fresh runspace.
  • Improve module load time.

Fixed

  • Changelog syntax passes VS Code markdown linter.
  • Speech isn't attempted if the required sound services are not running. A warning will be issued instead.

[4.0.12] - 2019-02-14

Changes

  • Default JojobaThrottle maxes out at 8 for servers with more cores. This is because allocating so many threads is more inefficient than limiting them.

[4.0.11] - 2018-10-30

Changes

  • Updated internal structure and version bump for PowerShell Gallery.

[4.0.10] - 2018-09-10

Fixed

  • Files converted to BOM-less TAB-less UTF-8.

[4.0.9] - 2018-06-30

Fixed

  • Jenkin's JUnit parsing in xUnit became more strict which caused all tests to start failing. This moves around the location of some attributes in the XML to meet the standard and get Jenkins going again. I plan to make some more improvements later (adding error blocks for critical failures).

[4.0.8] - 2018-03-19

Fixed

  • Module was not loading properly if installed from Install-Module because of a pattern match in the Jojoba.psm1 which was intended to prevent loading of *.Tests.ps1 etc but was being triggered by dots in the version number in the full path.

[4.0.7] - 2018-03-12

Changed

  • If you only have a single ValueFromPipeline parameter per parameter set, this no longer needs a name or alias of InputObject. If you have multiple variables meeting this definition you can use InputObject to decide which one to use.

[4.0.6] - 2018-03-11

Changed

  • Verbose now passes only to the Start-Jojoba scriptblock code. If you want to see verbose output from Jojoba and PoshRSJob use -JojobaVerbose instead.
  • Updated very old entries in the CHANGELOG.

[4.0.5] - 2018-03-07

Changed

  • Where objects are output into the Data section of a test, they are formatted with Format-List and Out-String. Now Out-String is limited to a width of up to 12 characters less than the terminal width, so when it is displayed on screen inside the test case (which is also formatted with Format-List) it will wrap correctly. If there's no known terminal width then nothing changes. This won't work for nested tests though.

[4.0.4] - 2018-03-06

Fixed

  • Write-JojobaProperty would fail if called twice on the same property.
  • Write-JojobaSkip would skip a test even if it had already failed. Now a Skip will always log its message but will not overwrite a previous Fail result.

[4.0.3] - 2018-02-28

Changed

  • Order of test case properties changed for better readability.
  • Test case properties Message and Data may now be $null instead of empty strings. This helps when writing it to a database.

[4.0.2] - 2018-02-27

Fixed

  • Removed blank lines from the top and bottom of test results for readability.

[4.0.1] - 2018-02-26

Added

  • Publish-Jojoba -JojobaCallback allows use of $PSDefaultParameterValues (and other methods) to automatically send all test results to a function for storage.

[4.0.0] - 2018-02-25

Added

  • Initial Pester tests and AppVeyor integration.
  • Host colouring of tests.
  • Logo.
  • VS Code workspace.

Changed

  • Old $Jojoba parameters should now be removed from the function header as they are picked up in another way. Functions now require a ValueFromPipeline parameter with a name or alias of InputObject, and ValueFromRemainingArguments parameter of any name.
  • Jojoba no longer outputs objects to the pipeline by default. It can be made to occur with -JojobaPassThru. Host output can be silenced with -JojobaQuiet.
  • Write-JojobaAbort replaced with Write-JojobaFail -CriticalFailure. Also these critical failures now return normal test results, with $LASTEXITCODE = 1 and an extra terminating Write-Error at the end of the pipeline. Previously only a Write-Error was returned and no results.

Fixed

  • Test output now populates as tests complete rather than after all tests have completed.

[1.4.5] 2018-02-20

Added

  • Underlying RSJobs now have the same name as the InputObject parameter. This makes it easier if you were to Ctrl-C to cancel a function which uses Jojoba and has hung, and then use Get-RSJob to see which jobs are stalled, and immediately determine what was the input that caused the hang.

[1.4.4] 2017-11-08

Added

  • Write-JojobaAbort function aborts a test case with a hard exception that is not rolled into a test case, it just exits raw. This is to indicate a serious problem with test processing.
  • Write-JojobaProperty function can add custom properties to the test case and takes a hashtable as input.

Changed

  • Errors in $JojobaCallback calls will change a test case result to Fail and add messages to the Data section.

Removed

  • Fast load function for the module. It was causing problems with jobs and under high concurrency.

[1.0.9] 2017-04-27

Added

  • Publish-Jojoba now uses a progress bar, provided by Wait-RSJob.
  • Fast load function for the module.

Fixed

  • Strings passed to caller functions can now contain ' marks.

[1.0.8] 2017-03-02

Changed

  • Jenkins BUILD_URL detection switched for JENKINS_SERVER_COOKIE as it is more reliable.

[1.0.7] 2017-02-27

Changed

  • Jenkins will now be auto-detected through the existence of the environment variable BUILD_URL. When this is found the Jojoba.xml will be generated. The existing switch still exists if you'd like to generate xml outside of Jenkins.
  • $JojobaBatch parameters MUST now be defined as: [string] $JojobaBatch = [System.Guid]::NewGuid().ToString() This is because there is a delay on ScriptProperty being evaluated when it is used as a parameter, and is breaking under high concurrency load.

Fixed

  • Test case Message section is now resistant to $null objects in the pipeline.

[1.0.6] 2017-02-23

Changed

  • Objects which are output as per normal inside your function will now be converted with Select-Object -Property * so that all bits are visible in the test case.

Fixed

  • Added missing dependency for the Disposable module.

[1.0.5] 2017-02-19

Added

  • Write-JojobaXml now takes a -PassThru switch to pass the input object onwards, but it probably shouldn't be used.

Changed

  • If a Write-JojobaCallback function was defined this would be called with the test case after completion so it could be written to disk. Instead the name of the function to be called can be specified in a $JojobaCallback parameter on the function that uses Start-Jojoba. Whatever name is defined here will be called with one test case object at a time.
  • The $JojobaBatch parameter on the caller should be a [string] instead of a [guid].

Removed

  • Write-JojobaData has been removed and its usage has been included inline to Start-Jojoba.

Fixed

  • Write-JojobaXml has better error handling for empty sections.

[1.0.4] - 2017-02-18

Added

  • Out-JojobaSpeech function.
  • Start-Jojoba can be called from a function script as well as a module.

Changed

  • The Suite of a test class will be the name of a script, if it's called from a script instead of from a module. If no Suite can be determined it will be set to "Jojoba" because the unit test format doesn't allow it to be blank.

Fixed

  • Publish-Jojoba sets $global:LASTEXITCODE instead of $LASTEXITCODE so that results propagate to the caller shell and Jenkins properly.

[1.0.3] - 2017-02-17

Changed

  • Reduced ScriptAnalyzer warnings by removing common abbreviations.
  • Function parameters of -Parallel changed to -JojobaThrottle.
  • Function parameters of -Jenkins changed to -JojobaJenkins.

Fixed

  • Write-JojobaFail writes the correct error message now.
  • Start-RSJob now imports the correct -Verbose flag from the caller.

[1.0.0] - 2017-02-14

Added

  • Start-Jojoba function is used in the process {} block of a function to execute one job per pipeline input.
  • Publish-Jojoba function is used in the end {} block of a function to wait for RSJobs to exit and collate their data.
  • Write-JojobaData function to set a test case data section (internally).
  • Write-JojobaFail function to set a test case result to Fail.
  • Write-JojobaSkip function to set a test case result to Skip.
  • Write-JojobaXml function used inside Publish-Jojoba to convert a test case to JUnit format XML for Jenkins.