diff --git a/clients/python/CHANGELOG.md b/clients/python/CHANGELOG.md index 095e52c8ee292..7be084d3346ca 100644 --- a/clients/python/CHANGELOG.md +++ b/clients/python/CHANGELOG.md @@ -17,6 +17,42 @@ under the License. --> +# v3.1.0 + +## New Features: + +- Add `map_index` filter to TaskInstance API queries ([#55614](https://github.com/apache/airflow/pull/55614)) +- Add `has_import_errors` filter to Core API GET /dags endpoint ([#54563](https://github.com/apache/airflow/pull/54563)) +- Add `dag_version` filter to get_dag_runs endpoint ([#54882](https://github.com/apache/airflow/pull/54882)) +- Implement pattern search for event log endpoint ([#55114](https://github.com/apache/airflow/pull/55114)) +- Add asset-based filtering support to DAG API endpoint ([#54263](https://github.com/apache/airflow/pull/54263)) +- Add Greater Than and Less Than range filters to DagRuns and Task Instance list ([#54302](https://github.com/apache/airflow/pull/54302)) +- Add `try_number` as filter to task instances ([#54695](https://github.com/apache/airflow/pull/54695)) +- Add filters to Browse XComs endpoint ([#54049](https://github.com/apache/airflow/pull/54049)) +- Add Filtering by DAG Bundle Name and Version to API routes ([#54004](https://github.com/apache/airflow/pull/54004)) +- Add search filter for DAG runs by triggering user name ([#53652](https://github.com/apache/airflow/pull/53652)) +- Enable multi sorting (AIP-84) ([#53408](https://github.com/apache/airflow/pull/53408)) +- Add `run_on_latest_version` support for backfill and clear operations ([#52177](https://github.com/apache/airflow/pull/52177)) +- Add `run_id_pattern` search for Dag Run API ([#52437](https://github.com/apache/airflow/pull/52437)) +- Add tracking of triggering user to Dag runs ([#51738](https://github.com/apache/airflow/pull/51738)) +- Expose DAG parsing duration in the API ([#54752](https://github.com/apache/airflow/pull/54752)) + +## New API Endpoints: + +- Add Human-in-the-Loop (HITL) endpoints for approval workflows ([#52868](https://github.com/apache/airflow/pull/52868), [#53373](https://github.com/apache/airflow/pull/53373), [#53376](https://github.com/apache/airflow/pull/53376), [#53885](https://github.com/apache/airflow/pull/53885), [#53923](https://github.com/apache/airflow/pull/53923), [#54308](https://github.com/apache/airflow/pull/54308), [#54310](https://github.com/apache/airflow/pull/54310), [#54723](https://github.com/apache/airflow/pull/54723), [#54773](https://github.com/apache/airflow/pull/54773), [#55019](https://github.com/apache/airflow/pull/55019), [#55463](https://github.com/apache/airflow/pull/55463), [#55525](https://github.com/apache/airflow/pull/55525), [#55535](https://github.com/apache/airflow/pull/55535), [#55603](https://github.com/apache/airflow/pull/55603), [#55776](https://github.com/apache/airflow/pull/55776)) +- Add endpoint to watch dag run until finish ([#51920](https://github.com/apache/airflow/pull/51920)) +- Add TI bulk actions endpoint ([#50443](https://github.com/apache/airflow/pull/50443)) +- Add Keycloak Refresh Token Endpoint ([#51657](https://github.com/apache/airflow/pull/51657)) + +## Deprecations: + +- Mark `DagDetailsResponse.concurrency` as deprecated ([#55150](https://github.com/apache/airflow/pull/55150)) + +## Bug Fixes: + +- Fix dag import error modal pagination ([#55719](https://github.com/apache/airflow/pull/55719)) + + # v3.0.2 ## Major changes: diff --git a/clients/python/version.txt b/clients/python/version.txt index b50214693056f..fd2a01863fdd3 100644 --- a/clients/python/version.txt +++ b/clients/python/version.txt @@ -1 +1 @@ -3.0.2 +3.1.0 diff --git a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py index e0b44adf97df6..3c631fa21f727 100644 --- a/dev/breeze/src/airflow_breeze/commands/release_management_commands.py +++ b/dev/breeze/src/airflow_breeze/commands/release_management_commands.py @@ -2554,10 +2554,8 @@ class ProviderPRInfo(NamedTuple): # Retrieve linked issues if pr_number in pull_requests and pull_requests[pr_number].body: body = " ".join(pull_requests[pr_number].body.splitlines()) - body_without_code_blocks = remove_code_blocks(body) linked_issue_numbers = { - int(issue_match.group(1)) - for issue_match in ISSUE_MATCH_IN_BODY.finditer(body_without_code_blocks) + int(issue_match.group(1)) for issue_match in ISSUE_MATCH_IN_BODY.finditer(body) } for linked_issue_number in linked_issue_numbers: try: @@ -3205,7 +3203,7 @@ def split_version_and_suffix(file_name: str, suffix: str) -> VersionedFile: ] -def _get_python_client_version(version_suffix): +def _get_python_client_version(version_suffix=None): from packaging.version import Version python_client_version = VERSION_FILE.read_text().strip() @@ -3219,7 +3217,8 @@ def _get_python_client_version(version_suffix): f"suffix in the version ({version})[/]" ) sys.exit(1) - return version.base_version + version_suffix + return version.base_version + version_suffix + return python_client_version def _generate_python_client_sources(python_client_version: str) -> None: @@ -3438,7 +3437,6 @@ def fix_anyof_null_and_required(obj): for scheme in security_schemes.split(","): security.append({scheme: []}) openapi_yaml["security"] = security - python_client_version = _get_python_client_version(version_suffix) TARGET_API_YAML_PATH.write_text(yaml.dump(openapi_yaml)) def patch_trigger_dag_run_post_body(): @@ -3492,7 +3490,7 @@ def visit_FunctionDef(self, node: ast.FunctionDef) -> ast.FunctionDef: ast.fix_missing_locations(tree) TRIGGER_MODEL_PATH.write_text(ast.unparse(tree), encoding="utf-8") - _generate_python_client_sources(python_client_version=python_client_version) + _generate_python_client_sources(python_client_version=_get_python_client_version()) # Call this after codegen and before packaging try: