Releases: meltano/sdk
Releases · meltano/sdk
v0.35.1
v0.35.1 (2024-02-15)
🐛 Fixes
- #2243 Flattening level of record is now forced to match the provided flattened schema -- Thanks @joaopamaral!
- #2245 Instances of
oneOf
are now handled by null-appending logic - #2242 Hard and soft deletes for handling
ACTIVATE_VERSION
messages now use the sameWHERE
clause -- Thanks @vitoravancini! - #2232 Test workflow job now fails for unsupported Python versions in cookiecutter templates -- Thanks @ReubenFrankel!
- #2225 SQL columns that are non-nullable but not required (i.e. not part of a primary key) are now not included in the
"required": [...]
array of the discovered JSON schema
📚 Documentation Improvements
v0.35.0
v0.35.0 (2024-02-02)
Highlights
- The package now acts a proper pytest plugin, so you may need to remove
pytest_plugins = ("singer_sdk.testing.pytest_plugin",)
from yourtests/conftest.py
file for test fixtures to be loaded correctly. - Dropped support for Python 3.7 (EOL 2023-06-27).
- Dropped direct dependency on
pytz
. If your package usespytz
in any capacity, you may need to add it as an explicit dependency to your project. - Stream maps can now generate fake data! See the docs for more details.
✨ New
- #2208 Allow users to disable schema validation in targets
- #2170 Generate fake data with stream maps -- Thanks @ReubenFrankel!
- #937 Support validating configuration for any tap with a dynamic catalog
- #2144 Support fanning out parent record into multiple child contexts/syncs
- #1918 End RESTStream pagination if an empty page is received
🐛 Fixes
- #2203 Fix serialization of arbitrary objects (e.g.
ObjectId
from mongoDB) during flattening -- Thanks @dgawlowsky! - #2200 Quote column names in INSERT statement
- #2195 Include empty
schemas
directory in REST tap cookiecutter - #2187 Replace use of deprecated
jsonschema._RefResolver
with recommendedreferencing
library - #2184 Reduce amount of unnecessary whitespace in Singer output
- #2183 Ensure
.vscode
directory is included when requested in cookiecutters and avoid failing if it does not exist - #2180 Limit supported Python versions in
--about
output to existing ones - #2108 Log sink name when an unhandled error occurs during setup
- #2158 Fix pytest plugin declaration so it can be used without requiring defining
pytest_plugins
inconftest.py
- #2105 Default handling of
ACTIVATE_VERSION
messages to soft deletes and add newSQLConnector.delete_old_versions
method
⚙️ Under the Hood
- #2189 Use
functools.lru_cache
instead of the stalememoization
library (#1981) - #2188 Remove unused
logger
parameter from private catalog helper functions - #2143 Drop support for Python 3.7
- #2157 Remove
pytz
dependency and usedatetime.timezone.utc
instead ofpytz.UTC
where possible - #2136 Create interface for schema validation in sinks, and implement it for
python-jsonschema
-- Thanks @BuzzCutNorman! - #2130 Allow loading stream schemas from
importlib.resources.abc.Traversable
types
📚 Documentation Improvements
v0.35.0rc1
First v0.35.0 RC!
v0.35.0a5
Fifth v0.35.0 alpha.
v0.35.0a4
Fourth v0.35.0 alpha.
v0.35.0a3
Third v0.35.0 alpha.
v0.35.0a2
ci: Fix release workflow (#2151)
v0.35.0a1
chore(deps-dev): bump duckdb from 0.9.3.dev2533 to 0.9.3.dev2691 (#2150) Bumps [duckdb](https://github.com/duckdb/duckdb) from 0.9.3.dev2533 to 0.9.3.dev2691. - [Release notes](https://github.com/duckdb/duckdb/releases) - [Changelog](https://github.com/duckdb/duckdb/blob/main/tools/release-pip.py) - [Commits](https://github.com/duckdb/duckdb/commits) --- updated-dependencies: - dependency-name: duckdb dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
v0.34.1
v0.34.1 (2023-12-19)
🐛 Fixes
- #2118 Output JSONPath expression with match count message -- Thanks @mjsqu!
- #2107 Respect forced replication method when retrieving state
- #2094 Use
nulls_first
when available to orderNULL
results in incremental SQL streams
⚙️ Under the Hood
- #1733 Test with Python 3.12 🐍
- #2095 Use
CursorResult.mappings()
in SQL streams - #2092 Use
datetime.fromisoformat
in other places - #2090 Explicitly use
T
iso date separator
📚 Documentation Improvements
v0.34.0
v0.34.0 (2023-12-05)
Hightlights
- Date-time parsing in target sinks is now significantly faster, thanks to @BuzzCutNorman!
- Experimental support for Parquet encoding in BATCH messages, thanks to @jamielxcarter!
✨ New
- #2044 Add Parquet as a batch encoding option -- Thanks @jamielxcarter!
- #768 Better error messages when config validation fails
- #1854 Make stream logger a child of the tap logger
🐛 Fixes
- #2076 Make a explicit dependency on
python-dateutil
⚙️ Under the Hood
- #2070 Parse dates with
datetime.fromisoformat
/backports.datetime_fromisoformat
-- Thanks @BuzzCutNorman! - #2056 Break up
TapTestClassFactory._annotate_test_class
into simpler methods - #2058 Implement a
SingerWriter
class insinger_sdk.io_base
and use it to emit Singer messages -- Thanks @BuzzCutNorman! - #2061 Simplify target template file names with
post_gen_project.py
hook -- Thanks @vicmattos! - #2060 Simplify tap template file names with
post_gen_project.py
hook -- Thanks @vicmattos!
📚 Documentation Improvements
Full Changelog: v0.33.1...v0.34.0