diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index d33518f65..0000da931 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -13,7 +13,7 @@ body: attributes: label: Singer SDK Version description: Version of the library you are using - placeholder: "0.34.1" + placeholder: "0.35.0" validations: required: true - type: checkboxes diff --git a/CHANGELOG.md b/CHANGELOG.md index f1b205fc8..9c23c195d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,45 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## v0.35.0 (2024-02-02) + +### ✨ New + +- [#2208](https://github.com/meltano/sdk/issues/2208) Allow users to disable schema validation in targets +- [#2170](https://github.com/meltano/sdk/issues/2170) Generate fake data with stream maps -- _**Thanks @ReubenFrankel!**_ +- [#937](https://github.com/meltano/sdk/issues/937) Support validating configuration for any tap with a dynamic catalog +- [#2144](https://github.com/meltano/sdk/issues/2144) Support fanning out parent record into multiple child contexts/syncs +- [#1918](https://github.com/meltano/sdk/issues/1918) End RESTStream pagination if an empty page is received + +### 🐛 Fixes + +- [#2203](https://github.com/meltano/sdk/issues/2203) Fix serialization of arbitrary objects (e.g. `ObjectId` from mongoDB) during flattening -- _**Thanks @dgawlowsky!**_ +- [#2200](https://github.com/meltano/sdk/issues/2200) Quote column names in INSERT statement +- [#2195](https://github.com/meltano/sdk/issues/2195) Include empty `schemas` directory in REST tap cookiecutter +- [#2187](https://github.com/meltano/sdk/issues/2187) Replace use of deprecated `jsonschema._RefResolver` with recommended `referencing` library +- [#2184](https://github.com/meltano/sdk/issues/2184) Reduce amount of unnecessary whitespace in Singer output +- [#2183](https://github.com/meltano/sdk/issues/2183) Ensure `.vscode` directory is included when requested in cookiecutters and avoid failing if it does not exist +- [#2180](https://github.com/meltano/sdk/issues/2180) Limit supported Python versions in `--about` output to existing ones +- [#2108](https://github.com/meltano/sdk/issues/2108) Log sink name when an unhandled error occurs during setup +- [#2158](https://github.com/meltano/sdk/issues/2158) Fix pytest plugin declaration so it can be used without requiring defining `pytest_plugins` in `conftest.py` +- [#2105](https://github.com/meltano/sdk/issues/2105) Default handling of `ACTIVATE_VERSION` messages to soft deletes and add new `SQLConnector.delete_old_versions` method + +### ⚙️ Under the Hood + +- [#2189](https://github.com/meltano/sdk/issues/2189) Use `functools.lru_cache` instead of the stale `memoization` library (#1981) +- [#2188](https://github.com/meltano/sdk/issues/2188) Remove unused `logger` parameter from private catalog helper functions +- [#2143](https://github.com/meltano/sdk/issues/2143) Drop support for Python 3.7 +- [#2157](https://github.com/meltano/sdk/issues/2157) Remove `pytz` dependency and use `datetime.timezone.utc` instead of `pytz.UTC` where possible +- [#2136](https://github.com/meltano/sdk/issues/2136) Create interface for schema validation in sinks, and implement it for `python-jsonschema` -- _**Thanks @BuzzCutNorman!**_ +- [#2130](https://github.com/meltano/sdk/issues/2130) Allow loading stream schemas from `importlib.resources.abc.Traversable` types + +### 📚 Documentation Improvements + +- [#2204](https://github.com/meltano/sdk/issues/2204) Document supported package extras +- [#2186](https://github.com/meltano/sdk/issues/2186) Call out minimum recommended `cookiecutter` version +- [#2168](https://github.com/meltano/sdk/issues/2168) Explain `Progress is not resumable if interrupted` in docs FAQ +- [#2140](https://github.com/meltano/sdk/issues/2140) Update auth caching example to use `functools.cached_property` + ## v0.34.1 (2023-12-19) ### 🐛 Fixes diff --git a/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml b/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml index fcbd018e4..eaf71ebac 100644 --- a/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml +++ b/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml @@ -31,12 +31,12 @@ packages = [ [tool.poetry.dependencies] python = ">=3.8" -singer-sdk = { version="~=0.34.1"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } +singer-sdk = { version="~=0.35.0"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } fs-s3fs = { version = "~=1.1.1", optional = true } [tool.poetry.group.dev.dependencies] pytest = ">=7.4.0" -singer-sdk = { version="~=0.34.1", extras = ["testing"] } +singer-sdk = { version="~=0.35.0", extras = ["testing"] } [tool.poetry.extras] s3 = ["fs-s3fs"] diff --git a/cookiecutter/tap-template/{{cookiecutter.tap_id}}/pyproject.toml b/cookiecutter/tap-template/{{cookiecutter.tap_id}}/pyproject.toml index a48b5f551..c918ac15d 100644 --- a/cookiecutter/tap-template/{{cookiecutter.tap_id}}/pyproject.toml +++ b/cookiecutter/tap-template/{{cookiecutter.tap_id}}/pyproject.toml @@ -31,7 +31,7 @@ packages = [ [tool.poetry.dependencies] python = ">=3.8" importlib-resources = { version = "==6.1.*", python = "<3.9" } -singer-sdk = { version="~=0.34.1"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } +singer-sdk = { version="~=0.35.0"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } fs-s3fs = { version = "~=1.1.1", optional = true } {%- if cookiecutter.stream_type in ["REST", "GraphQL"] %} requests = "~=2.31.0" @@ -39,7 +39,7 @@ requests = "~=2.31.0" [tool.poetry.group.dev.dependencies] pytest = ">=7.4.0" -singer-sdk = { version="~=0.34.1", extras = ["testing"] } +singer-sdk = { version="~=0.35.0", extras = ["testing"] } [tool.poetry.extras] s3 = ["fs-s3fs"] diff --git a/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml b/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml index ebe332f8e..417a8e8ab 100644 --- a/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml +++ b/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml @@ -30,7 +30,7 @@ packages = [ [tool.poetry.dependencies] python = ">=3.8" -singer-sdk = { version="~=0.34.1"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } +singer-sdk = { version="~=0.35.0"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } fs-s3fs = { version = "~=1.1.1", optional = true } {%- if cookiecutter.serialization_method != "SQL" %} requests = "~=2.31.0" @@ -38,7 +38,7 @@ requests = "~=2.31.0" [tool.poetry.dev-dependencies] pytest = ">=7.4.0" -singer-sdk = { version="~=0.34.1", extras = ["testing"] } +singer-sdk = { version="~=0.35.0", extras = ["testing"] } [tool.poetry.extras] s3 = ["fs-s3fs"] diff --git a/docs/conf.py b/docs/conf.py index 92f377588..d47fcab8b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -26,7 +26,7 @@ author = "Meltano Core Team and Contributors" # The full version, including alpha/beta/rc tags -release = "0.34.1" +release = "0.35.0" # -- General configuration --------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index 4bafb308d..2da037322 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -169,7 +169,7 @@ norecursedirs = "cookiecutter" [tool.commitizen] name = "cz_version_bump" -version = "0.34.1" +version = "0.35.0" changelog_merge_prerelease = true prerelease_offset = 1 tag_format = "v$major.$minor.$patch$prerelease"