Skip to content

Releases: saantiaguilera/go-pipeline

v1.0.1

26 May 19:24
79d5751
Compare
Choose a tag to compare

What's Changed

This version doesn't have any change of code, it simply upgrades dependencies and adds documentation, samples, tests, etc.

  • Upgrade gopkg.in/yaml.v3 dependency to v3.0.0 since it had a vulnerability in the previous version
  • Add godoc with examples, code snippets, better documentation
  • Add new sample in examples
  • Add benchmark tests in each step to monitor performance changes in future modifications

Full Changelog: v1.0.0...v1.0.1

v1.0.0

25 May 20:21
Compare
Choose a tag to compare

What's Changed

First stable release after some months of internal testing/usages and refactors to the API.

This first stable version doesn't include anything new in regard to the latest experimental one (v0.5.X), hence everything still works the same. I've simply published it as a first stable release since this API won't be breaking compatibility from now on as it's stable and it works as intended, so anyone can feel free to use it without risks of compatibility issues with later versions.

Changes this version brings are:

  • Performance improvement in concurrenty step by Inlining concurrency runs and the reduce operation of the results.
  • Add missing documentation in examples / functions
  • Tidy up READMEs

Full Changelog: v0.5.1...v1.0.0

v0.5.1

17 May 02:30
Compare
Choose a tag to compare

What's Changed

  • Use structs instead of interfaces in generics to improve performance of double derefs
  • Use channels instead of custom mutexed structs to yield results in concurrent step. This reduces allocations while roughly keeping the same performance.
  • Remove some unnecessary function wrappings in GraphDrawable usages
  • Minor changes in tests and benchmarks to better showcase each scenario
  • Refactor some internal namings for better readability
  • Documentation of some useful structs / functions

Full Changelog: v0.5.0...v0.5.1

v0.5.0

16 May 17:38
4efaed7
Compare
Choose a tag to compare

V2 API

What's Changed

  • Go version upgraded to 1.18
  • Fully support generics
  • Allow steps to have input data
  • Support graph IO mutations across its steps (at the cost of a more verbose API). Eg. Step A (has input struct 'A', returns struct 'B') -> Step B (has input struct 'B', returns struct 'C') -> ...
  • Support returning outputs in Steps and graphs
  • Remove unnecessary structs
  • Standarize API with go standards
  • Forward context to Steps
  • Steps are now context-aware and support cancellations/deadlines
  • Modify API to allow a flexible creation of custom steps with any complexity

Full Changelog: v0.4.5...v0.5.0

v0.4.5

11 Feb 17:00
Compare
Choose a tag to compare
  • Add default implementation of an immutable stateless Step through pipeline.CreateSimpleStep

v0.4.4

10 Feb 04:25
Compare
Choose a tag to compare
  • Handle wrong types when getting values from a Context as missing.
    • This is to avoid weird behaviours such as believing a default value was the expected one. Eg. If the context contains "string value" for the tag "tag". When doing ctx.GetInt64("tag") will now return int64(0) (default value) and false (doesn't exist) instead of previously int64(0) - true

v0.4.3

10 Feb 03:47
Compare
Choose a tag to compare
  • When doing Base64 encoding, remove a first declaration of b4 since it's immediately assigned to another value. (fixes ineffassign)
  • Inline runSync at SequentialStage and SequentialStep since it's private and we benefit from the removal of an indexing + invoke.

v0.4.2

09 Feb 18:34
Compare
Choose a tag to compare
  • Add support to uint and uint64