diff --git a/.github/workflows/cicd.yml b/.github/workflows/cicd.yml index e9f7d08fd..58e7ae8c4 100644 --- a/.github/workflows/cicd.yml +++ b/.github/workflows/cicd.yml @@ -68,7 +68,7 @@ jobs: strategy: matrix: - python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] + python-version: [ "3.11", "3.12", "3.13", "3.14"] backend: [ "elasticsearch8", "opensearch"] name: Python ${{ matrix.python-version }} testing with ${{ matrix.backend }} diff --git a/.github/workflows/deploy_mkdocs.yml b/.github/workflows/deploy_mkdocs.yml index 92bc6860b..b0892dd2f 100644 --- a/.github/workflows/deploy_mkdocs.yml +++ b/.github/workflows/deploy_mkdocs.yml @@ -20,10 +20,10 @@ jobs: - name: Checkout main uses: actions/checkout@v5 - - name: Set up Python 3.9 + - name: Set up Python 3.11 uses: actions/setup-python@v6 with: - python-version: 3.9 + python-version: 3.11 - name: Install dependencies run: | diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0139f38a1..9212be1a5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,10 +13,10 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up Python 3.10 + - name: Set up Python 3.11 uses: actions/setup-python@v6 with: - python-version: "3.10" + python-version: "3.11" - name: Install build dependencies run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cce3a8d9..ff6ae04ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,18 +9,31 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added +### Changed + +### Fixed + +### Removed + +## [v6.7.5] - 2025-11-25 + +### Added + - Added retry with back-off logic for Redis related functions. [#528](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/528) - Added nanosecond precision datetime filtering that ensures nanosecond precision support in filtering by datetime. This is configured via the `USE_DATETIME_NANOS` environment variable, while maintaining microseconds compatibility for datetime precision. [#529](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/529) -### Changed - ### Fixed -- Add Redis to be installed in dev environemnet for local testing [#536] (https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/536) +- Add Redis to be installed in dev environment for local testing [#536](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/536) +- Fix Redis optional dependencies in opensearch and elasticsearch packages [#541](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/541) + +### Updated + +- Upgrade stac-fastapi parent libraries to v6.1.1 [#541](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/541) ### Removed -### Updated +- Removed support for Python 3.9, 3.10 as they are no longer supported by stac-fastapi parent libraries [#541](https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/pull/541) ## [v6.7.4] - 2025-11-13 @@ -642,7 +655,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Use genexp in execute_search and get_all_collections to return results. - Added db_to_stac serializer to item_collection method in core.py. -[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.4...main +[Unreleased]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.5...main +[v6.7.5]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.4...v6.7.5 [v6.7.4]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.3...v6.7.4 [v6.7.3]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.2...v6.7.3 [v6.7.2]: https://github.com/stac-utils/stac-fastapi-elasticsearch-opensearch/compare/v6.7.1...v6.7.2 diff --git a/dockerfiles/Dockerfile.deploy.es b/dockerfiles/Dockerfile.deploy.es index 4900f76b4..18bdfe498 100644 --- a/dockerfiles/Dockerfile.deploy.es +++ b/dockerfiles/Dockerfile.deploy.es @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.11-slim RUN apt-get update && \ apt-get -y upgrade && \ diff --git a/dockerfiles/Dockerfile.deploy.os b/dockerfiles/Dockerfile.deploy.os index 8a532f0cb..272f80524 100644 --- a/dockerfiles/Dockerfile.deploy.os +++ b/dockerfiles/Dockerfile.deploy.os @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.11-slim RUN apt-get update && \ apt-get -y upgrade && \ diff --git a/dockerfiles/Dockerfile.dev.es b/dockerfiles/Dockerfile.dev.es index 1e1ffbe4f..fd6194b29 100644 --- a/dockerfiles/Dockerfile.dev.es +++ b/dockerfiles/Dockerfile.dev.es @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.11-slim # update apt pkgs, and install build-essential for ciso8601 diff --git a/dockerfiles/Dockerfile.dev.os b/dockerfiles/Dockerfile.dev.os index a7fc113d6..93a28d4a1 100644 --- a/dockerfiles/Dockerfile.dev.os +++ b/dockerfiles/Dockerfile.dev.os @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.11-slim # update apt pkgs, and install build-essential for ciso8601 diff --git a/dockerfiles/Dockerfile.docs b/dockerfiles/Dockerfile.docs index 3a6573ff3..7d9413161 100644 --- a/dockerfiles/Dockerfile.docs +++ b/dockerfiles/Dockerfile.docs @@ -1,4 +1,4 @@ -FROM python:3.9-slim +FROM python:3.11-slim # build-essential is required to build a wheel for ciso8601 RUN apt update && apt install -y build-essential diff --git a/examples/pip_docker/Dockerfile b/examples/pip_docker/Dockerfile index 2c46d0645..32e0f5e34 100644 --- a/examples/pip_docker/Dockerfile +++ b/examples/pip_docker/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10-slim +FROM python:3.11-slim # update apt pkgs, and install build-essential for ciso8601 diff --git a/stac_fastapi/core/pyproject.toml b/stac_fastapi/core/pyproject.toml index 4e6a347b2..6ad950561 100644 --- a/stac_fastapi/core/pyproject.toml +++ b/stac_fastapi/core/pyproject.toml @@ -6,15 +6,13 @@ build-backend = "hatchling.build" name = "stac_fastapi_core" description = "Core library for the Elasticsearch and Opensearch stac-fastapi backends." readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = {text = "MIT"} authors = [] classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -35,17 +33,21 @@ dependencies = [ "attrs>=23.2.0", "pydantic>=2.4.1,<3.0.0", "stac_pydantic~=3.3.0", - "stac-fastapi.types==6.0.0", - "stac-fastapi.api==6.0.0", - "stac-fastapi.extensions==6.0.0", + "stac-fastapi.types==6.1.1", + "stac-fastapi.api==6.1.1", + "stac-fastapi.extensions==6.1.1", "orjson~=3.11.0", "overrides~=7.4.0", "geojson-pydantic~=1.0.0", "pygeofilter~=0.3.1", "jsonschema~=4.0.0", "slowapi~=0.1.9", - "redis==6.4.0", - "retry==0.9.2", +] + +[project.optional-dependencies] +redis = [ + "redis~=6.4.0", + "retry~=0.9.2", ] [project.urls] diff --git a/stac_fastapi/core/stac_fastapi/core/version.py b/stac_fastapi/core/stac_fastapi/core/version.py index 3e4167328..4a912c90b 100644 --- a/stac_fastapi/core/stac_fastapi/core/version.py +++ b/stac_fastapi/core/stac_fastapi/core/version.py @@ -1,2 +1,2 @@ """library version.""" -__version__ = "6.7.4" +__version__ = "6.7.5" diff --git a/stac_fastapi/elasticsearch/pyproject.toml b/stac_fastapi/elasticsearch/pyproject.toml index 201c91910..bd2eb3401 100644 --- a/stac_fastapi/elasticsearch/pyproject.toml +++ b/stac_fastapi/elasticsearch/pyproject.toml @@ -6,15 +6,13 @@ build-backend = "hatchling.build" name = "stac_fastapi_elasticsearch" description = "An implementation of STAC API based on the FastAPI framework with Elasticsearch." readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = {text = "MIT"} authors = [] classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -30,8 +28,8 @@ keywords = [ ] dynamic = ["version"] dependencies = [ - "stac-fastapi-core==6.7.4", - "sfeos-helpers==6.7.4", + "stac-fastapi-core==6.7.5", + "sfeos-helpers==6.7.5", "elasticsearch[async]~=8.19.1", "uvicorn~=0.23.0", "starlette>=0.35.0,<0.36.0", @@ -48,13 +46,18 @@ dev = [ "pre-commit~=3.0.0", "ciso8601~=2.3.0", "httpx>=0.24.0,<0.28.0", - "redis==6.4.0", + "redis~=6.4.0", + "retry~=0.9.2", + "stac-fastapi-core[redis]==6.7.5", ] docs = [ "mkdocs~=1.4.0", "mkdocs-material~=9.0.0", "pdocs~=1.2.0", ] +redis = [ + "stac-fastapi-core[redis]==6.7.5", +] server = [ "uvicorn[standard]~=0.23.0", ] diff --git a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/version.py b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/version.py index 3e4167328..4a912c90b 100644 --- a/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/version.py +++ b/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/version.py @@ -1,2 +1,2 @@ """library version.""" -__version__ = "6.7.4" +__version__ = "6.7.5" diff --git a/stac_fastapi/opensearch/pyproject.toml b/stac_fastapi/opensearch/pyproject.toml index da49d4ed0..c35537e03 100644 --- a/stac_fastapi/opensearch/pyproject.toml +++ b/stac_fastapi/opensearch/pyproject.toml @@ -6,15 +6,13 @@ build-backend = "hatchling.build" name = "stac_fastapi_opensearch" description = "An implementation of STAC API based on the FastAPI framework with Opensearch." readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = {text = "MIT"} authors = [] classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -30,8 +28,8 @@ keywords = [ ] dynamic = ["version"] dependencies = [ - "stac-fastapi-core==6.7.4", - "sfeos-helpers==6.7.4", + "stac-fastapi-core==6.7.5", + "sfeos-helpers==6.7.5", "opensearch-py~=2.8.0", "opensearch-py[async]~=2.8.0", "uvicorn~=0.23.0", @@ -49,13 +47,18 @@ dev = [ "pre-commit~=3.0.0", "ciso8601~=2.3.0", "httpx>=0.24.0,<0.28.0", - "redis==6.4.0", + "redis~=6.4.0", + "retry~=0.9.2", + "stac-fastapi-core[redis]==6.7.5", ] docs = [ "mkdocs~=1.4.0", "mkdocs-material~=9.0.0", "pdocs~=1.2.0", ] +redis = [ + "stac-fastapi-core[redis]==6.7.5", +] server = [ "uvicorn[standard]~=0.23.0", ] diff --git a/stac_fastapi/opensearch/stac_fastapi/opensearch/version.py b/stac_fastapi/opensearch/stac_fastapi/opensearch/version.py index 3e4167328..4a912c90b 100644 --- a/stac_fastapi/opensearch/stac_fastapi/opensearch/version.py +++ b/stac_fastapi/opensearch/stac_fastapi/opensearch/version.py @@ -1,2 +1,2 @@ """library version.""" -__version__ = "6.7.4" +__version__ = "6.7.5" diff --git a/stac_fastapi/sfeos_helpers/pyproject.toml b/stac_fastapi/sfeos_helpers/pyproject.toml index a32ae5f68..7591d7784 100644 --- a/stac_fastapi/sfeos_helpers/pyproject.toml +++ b/stac_fastapi/sfeos_helpers/pyproject.toml @@ -6,15 +6,13 @@ build-backend = "hatchling.build" name = "sfeos_helpers" description = "Helper library for the Elasticsearch and Opensearch stac-fastapi backends." readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.11" license = {text = "MIT"} authors = [] classifiers = [ "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -31,7 +29,7 @@ keywords = [ ] dynamic = ["version"] dependencies = [ - "stac-fastapi.core==6.7.4", + "stac-fastapi.core==6.7.5", ] [project.urls] diff --git a/stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/version.py b/stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/version.py index 3e4167328..4a912c90b 100644 --- a/stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/version.py +++ b/stac_fastapi/sfeos_helpers/stac_fastapi/sfeos_helpers/version.py @@ -1,2 +1,2 @@ """library version.""" -__version__ = "6.7.4" +__version__ = "6.7.5"