diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 79c4b98d1..222eff237 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.39.1" + placeholder: "0.40.0" validations: required: true - type: checkboxes diff --git a/CHANGELOG.md b/CHANGELOG.md index 27d538a6d..cb3e99672 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,36 @@ 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.40.0 (2024-09-02) + +### ✨ New + +- [#2486](https://github.com/meltano/sdk/issues/2486) Emit target metrics +- [#2567](https://github.com/meltano/sdk/issues/2567) A new `schema_is_valid` built-in tap test validates stream schemas against the JSON Schema specification +- [#2598](https://github.com/meltano/sdk/issues/2598) Stream map expressions now have access to the `Faker` class, rather than just a faker instance +- [#2549](https://github.com/meltano/sdk/issues/2549) Added a default user agent for REST and GraphQL taps + +### 🐛 Fixes + +- [#2613](https://github.com/meltano/sdk/issues/2613) Mismatch between timezone-aware and naive datetimes in start date and bookmarks is now correctly handled + +### ⚙️ Under the Hood + +- [#2628](https://github.com/meltano/sdk/issues/2628) Use context manager to read gzip batch files +- [#2619](https://github.com/meltano/sdk/issues/2619) Default to UTC when parsing dates without a known timezone +- [#2603](https://github.com/meltano/sdk/issues/2603) Backwards-compatible identifier quoting in fully qualified names +- [#2601](https://github.com/meltano/sdk/issues/2601) Improved SQL identifier (de)normalization +- [#2599](https://github.com/meltano/sdk/issues/2599) Remove `pytest-durations` dependency from `testing` and use native pytest option `--durations` +- [#2597](https://github.com/meltano/sdk/issues/2597) Mark pagination classes with `@override` decorator +- [#2596](https://github.com/meltano/sdk/issues/2596) Made `auth_headers` and `auth_params` of `APIAuthenticatorBase` simple instance attributes instead of decorated properties + +### 📚 Documentation Improvements + +- [#2639](https://github.com/meltano/sdk/issues/2639) Documented versions where `fake` and `Faker` objects were added to the stream maps context +- [#2629](https://github.com/meltano/sdk/issues/2629) Reference `get_starting_timestamp` in incremental replication guide +- [#2604](https://github.com/meltano/sdk/issues/2604) Update project sample links +- [#2595](https://github.com/meltano/sdk/issues/2595) Documented examples of stream glob expressions and property aliasing + ## v0.39.1 (2024-08-07) ### 🐛 Fixes diff --git a/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml b/cookiecutter/mapper-template/{{cookiecutter.mapper_id}}/pyproject.toml index e77cf5346..b397face4 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.39.1"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } +singer-sdk = { version="~=0.40.0"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } fs-s3fs = { version = "~=1.1.1", optional = true } [tool.poetry.group.dev.dependencies] pytest = ">=8" -singer-sdk = { version="~=0.39.1", extras = ["testing"] } +singer-sdk = { version="~=0.40.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 98851d925..3037bcabf 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.4.*", python = "<3.9" } -singer-sdk = { version="~=0.39.1", extras = [ +singer-sdk = { version="~=0.40.0", extras = [ {%- if cookiecutter.auth_method == "JWT" -%}"jwt", {% endif -%} {%- if cookiecutter.faker_extra -%}"faker",{%- endif -%} ] } @@ -43,9 +43,9 @@ requests = "~=2.32.3" [tool.poetry.group.dev.dependencies] pytest = ">=8" {%- if cookiecutter.auth_method == "JWT" %} -singer-sdk = { version="~=0.39.1", extras = ["jwt", "testing"] } +singer-sdk = { version="~=0.40.0", extras = ["jwt", "testing"] } {%- else %} -singer-sdk = { version="~=0.39.1", extras = ["testing"] } +singer-sdk = { version="~=0.40.0", extras = ["testing"] } {%- endif %} [tool.poetry.extras] diff --git a/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml b/cookiecutter/target-template/{{cookiecutter.target_id}}/pyproject.toml index 5aa268f7c..42d71ae99 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.39.1"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } +singer-sdk = { version="~=0.40.0"{{ ', extras = ["faker"]' if cookiecutter.faker_extra }} } fs-s3fs = { version = "~=1.1.1", optional = true } {%- if cookiecutter.serialization_method != "SQL" %} requests = "~=2.32.3" @@ -38,7 +38,7 @@ requests = "~=2.32.3" [tool.poetry.dev-dependencies] pytest = ">=8" -singer-sdk = { version="~=0.39.1", extras = ["testing"] } +singer-sdk = { version="~=0.40.0", extras = ["testing"] } [tool.poetry.extras] s3 = ["fs-s3fs"] diff --git a/docs/conf.py b/docs/conf.py index 447549f24..fec62280e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,7 +29,7 @@ author = "Meltano Core Team and Contributors" # The full version, including alpha/beta/rc tags -release = "0.39.1" +release = "0.40.0" # -- General configuration ------------------------------------------------------------- diff --git a/pyproject.toml b/pyproject.toml index bde6e8519..3d4d12787 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -177,7 +177,7 @@ norecursedirs = "cookiecutter" [tool.commitizen] name = "cz_version_bump" -version = "0.39.1" +version = "0.40.0" changelog_merge_prerelease = true prerelease_offset = 1 tag_format = "v$major.$minor.$patch$prerelease"