Kiba v3.0.0 Release Notes
Release Date: 2020-02-10 // about 4 years ago-
๐ฅ BREAKING - the
kiba
CLI is deprecated๐ The
kiba
CLI is deprecated in favor of the more modernKiba.parse
programmatic API [#74, #81].๐ The programmatic API allows everything the "command" mode supported, plus much more, and actually encourage better coding practices. For instance:
- ๐ง API mode allows to pass live variables (rather than just ENV configuration from command line or JSON configs from files)
- ๐ท Doing so permits to wrap resources open/close around running a job
- โ API mode makes it easier to run testing on an ETL process (via minitest/rspec) directly in-process (which allows stubbing/webmock etc), rather than via a command call
- API mode enforces use of clean modules with explicit loading, rather than polluting the top-level namespace with global methods
- ๐ท API mode allows to run jobs from Sidekiq or background job systems, from an HTTP call (if the job is fast), without necessarily waiting for a command line binary to run - this supports more dynamic interactions (e.g. a job is created in reaction to an external event received via HTTP or a websocket)
๐ A temporary
kiba-legacy-cli
gem is available (https://github.com/thbar/kiba-legacy-cli) to ease migration, but the recommendation is really to migrate over and useKiba.parse
directly, as described in the current documentation.0๏ธโฃ Kiba now defaults to
StreamingRunner
๐ Introduced in v2.0.0 [#44] to ensure a transform could yield N rows for 1 input row, and improved in v2.5.0 [#57] to help implement "buffering transforms", the
StreamingRunner
is now made the default to process the jobs [#83].This change is expected to be backward compatible and will help with reusability & features of ETL components.
๐ Ruby compatibility notice
- ๐ Kiba now officially supports MRI Ruby 2.4+ (although 2.3 will still work for now), JRuby 9.2+ or TruffleRuby.
- ๐ You may get warnings with Ruby 2.7 and errors with Ruby 2.8+. See [#85] for status on Ruby 3 keyword arguments support.