Releases: saantiaguilera/go-pipeline
v1.0.1
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 tov3.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
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
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
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
- Add default implementation of an immutable stateless
Step
throughpipeline.CreateSimpleStep
v0.4.4
- 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 doingctx.GetInt64("tag")
will now returnint64(0)
(default value) andfalse
(doesn't exist) instead of previouslyint64(0)
-true
- This is to avoid weird behaviours such as believing a default value was the expected one. Eg. If the context contains
v0.4.3
- When doing Base64 encoding, remove a first declaration of
b4
since it's immediately assigned to another value. (fixes ineffassign) - Inline
runSync
atSequentialStage
andSequentialStep
since it's private and we benefit from the removal of an indexing + invoke.
v0.4.2
- Add support to uint and uint64