Releases: aineko-dev/aineko
0.4.0
What's Changed
- feat: cli dream upgrade by @craycrayfish in #151
- doc: update aineko stream command by @Barabazs in #157
- feat: implement abstract dataset and refactor Kafka dataset by @giddyphysicist in #150
- refactor: dataset implementation & documentation by @Barabazs in #161
- refactor: internal models by @Barabazs in #162
- feat: decouple KafkaDataset from core logic (Runner, AbstractNode, Config,...) by @Barabazs in #163
Breaking Changes
We've redesigned the dataset implementation to be more flexible, and decoupled it from the core logic. This will allow for easier integration of new datasets in the future.
Please note the following breaking changes:
- pipeline.yml: The
type
field of thedataset
section should now be the dotted path of the dataset class, rather than the name of the dataset type. For example,aineko.datasets.kafka.KafkaDataset
instead ofkafka_stream
. - running nodes in test mode:
-
The
setup_test
method of theAbstractNode
class has been updated to include adataset_type
parameter. This is the same value as thetype
field in thepipeline.yml
file. -
The output messages of the
run_test
now return the complete message object, rather than just the message value. This is to allow for easier testing of the message metadata, such as the timestamp and key. If you only want the message value, you can use themessage_helper
fixture to extract the value from the message object.Before and After code examples
Before:
def test_mynode(): """Unit test for MySumNode.""" mynode = MySumNode( node_name="MySumNode", pipeline_name="test_pipeline", test=True ) mynode.setup_test( inputs={ "test_sequence": [1, 2, 3] }, # input a list of elements to be read outputs=["test_sum"], # list of dataset names that are written to params={"initial_state": 0, "increment": 1}, ) outputs = mynode.run_test() assert outputs["test_sum"] == [2, 3, 4] assert mynode.state == 4
After:
def test_mynode(message_helper): """Unit test for MySumNode.""" mynode = MySumNode( node_name="MySumNode", pipeline_name="test_pipeline", test=True ) mynode.setup_test( dataset_type="aineko.datasets.kafka.KafkaDataset", # The dataset type to use inputs={ "test_sequence": [1, 2, 3] }, # input a list of elements to be read outputs=["test_sum"], # list of dataset names that are written to params={"initial_state": 0, "increment": 1}, ) outputs = mynode.run_test() assert message_helper(outputs["test_sum"]) == [2, 3, 4] assert mynode.state == 4
-
Full Changelog: 0.3.2...0.4.0
0.3.2
0.3.1
What's Changed
- chore(deps): bump fastapi from 0.109.0 to 0.109.1 by @dependabot in #152
- chore: upgrade fastapi dependencies by @Barabazs in #153
Full Changelog: 0.3.0...0.3.1
0.3.0
What's Changed
- refactor: syntax by @Barabazs in #125
- chore: add Slack icon/link to footer by @Barabazs in #127
- chore: use correct deploy version by @Barabazs in #128
- chore: add doc edit button by @Barabazs in #126
- fix: move vocab to new location for vale upgrade by @Barabazs in #130
- fix: contributing and examples links in readme by @craycrayfish in #129
- fix: replace vale orb with custom job by @Barabazs in #133
- fix: capture the last consumed value before processing it by @Barabazs in #132
- feat: better error description for invalid class name by @Barabazs in #135
- chore(deps): bump jinja2 from 3.1.2 to 3.1.3 by @dependabot in #139
- chore: remove dead code by @Barabazs in #136
- Feat: WebSocket Connector Node Extra by @ricrosales in #121
- doc: fix docstring indentation & better Pydantic integration with docs by @Barabazs in #137
- feat: support more python versions by @Barabazs in #134
- docs: misc fixes by @Barabazs in #141
- feat: fastapi node health status endpoint BLD-1317 by @giddyphysicist in #142
- refactor: config loader to return a python object of the Config instead of a dict by @Barabazs in #146
- refactor: use @ classmethod decorator instead of disabling pylint check by @Barabazs in #144
- refactor: misc tests refactoring and clean-up by @Barabazs in #143
- Feat: HTTP Connector Node Extra by @ricrosales in #124
- chore(deps): bump aiohttp from 3.9.1 to 3.9.2 by @dependabot in #149
Full Changelog: 0.2.7...0.3.0
0.2.7
What's Changed
- docs: landing page by @craycrayfish in #110
- chore: convenience commands for install-dev & view-docs by @Barabazs in #113
- feat: upgrade Ray, Pydantic & FastAPI by @Barabazs in #114
- feat: add error handling for invalid offset by @craycrayfish in #112
- Version: 0.2.7 by @craycrayfish in #116
Full Changelog: 0.2.6...0.2.7
0.2.6
What's Changed
- docs: add
latest
alias by @craycrayfish in #102 - doc: add shell completion instructions by @Barabazs in #103
- feat: added more validation checks for fields in deploy.yml by @craycrayfish in #107
- feat: CLI create and dream by @craycrayfish in #104
- docs: formatting improvements by @craycrayfish in #106
- Feat/improve docs by @craycrayfish in #108
Full Changelog: 0.2.5...0.2.6
0.2.5
What's Changed
- fix: cli unconventional "-h" usage & add "-h" as valid help option by @Barabazs in #91
- tests: add an integration test for aineko create by @Barabazs in #92
- feat: test poetry run by @Barabazs in #94
- docs: lint documentation with vale by @Barabazs in #85
- feat: fastapi node by @craycrayfish in #95
Full Changelog: 0.2.4...0.2.5
0.2.4
What's Changed
- fix: readme links by @craycrayfish in #80
- fix: remove unneeded poetry setting by @Barabazs in #79
- docs: add broken link checker & default to latest released version by @craycrayfish in #83
- doc: fix headings by @Barabazs in #86
- docs: ignore links that appear broken but work by @craycrayfish in #89
- feat: CLI improvements for
aineko service
by @craycrayfish in #88
Full Changelog: 0.2.3...0.2.4
0.2.3
What's Changed
- refactor: move to click by @craycrayfish in #70
- chore: add PR template by @Barabazs in #72
- feat: revamp documentation with mkdocs by @craycrayfish in #71
- docs: add page to explain how to configure kafka by @craycrayfish in #74
- feat: docs styling by @craycrayfish in #76
New Contributors
- @giddyphysicist made their first contribution in #75
Full Changelog: 0.2.2...0.2.3
0.2.2
What's Changed
- fix: logger entry point should be in init by @Barabazs in #65
- Chore/update readme by @craycrayfish in #66
- fix: add carriage return when printing output by @Barabazs in #67
- fix: remove log input from sequencer node in template by @craycrayfish in #68
Full Changelog: 0.2.1...0.2.2