Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .github/workflows/asf-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,9 @@ jobs:
sudo apt-get update
sudo apt-get install jq

- name: Set up Python 3.11
- name: Set up Python
id: setup-python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Install release helper dependencies
run: pip install --upgrade setuptools setuptools_scm uv
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/aws-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version-file: '.python-version'
cache: 'pip'
cache-dependency-path: 'requirements-dev.txt'

Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/aws-tests-s3-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,6 @@ jobs:

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Install docker build dependencies
run: pip install --upgrade setuptools setuptools_scm
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/aws-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -281,7 +281,7 @@ jobs:
- 'tests/aws/services/sns/**' # todo: potentially add more locations (lambda/sqs tests?)

- name: Run Unit Tests
timeout-minutes: 8
timeout-minutes: 20
env:
# add the GitHub API token to avoid rate limit issues
GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/marker-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,6 @@ jobs:
- name: Set up Python
id: setup-python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Cache LocalStack community dependencies (venv)
uses: actions/cache@v4
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/tests-bin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ jobs:

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'

- name: Install helper script dependencies
run: pip install --upgrade setuptools setuptools_scm
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/tests-podman.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ jobs:

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Install podman and test dependencies
run: |
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/tests-pro-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -209,17 +209,17 @@ jobs:
id: setup-python
uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version-file: 'localstack/.python-version'

- name: Set up Node 22.x
uses: actions/setup-node@v5
with:
node-version: 22.x

- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '11'
java-version: '21'
distribution: 'temurin'

- name: Set up Terraform
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.11
3.13
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# base: Stage which installs necessary runtime dependencies (OS packages, etc.)
#
FROM python:3.11.13-slim-bookworm@sha256:873f91540d53b36327ed4fb018c9669107a4e2a676719720edb4209c4b15d029 AS base
FROM python:3.13.7-slim-trixie@sha256:58c30f5bfaa718b5803a53393190b9c68bd517c44c6c94c1b6c8c172bcfad040 AS base
ARG TARGETARCH

# Install runtime OS package dependencies
Expand Down Expand Up @@ -161,9 +161,9 @@ RUN --mount=type=cache,target=/root/.cache \
chmod -R 777 /usr/lib/localstack

# link the python package installer virtual environments into the localstack venv
RUN echo /var/lib/localstack/lib/python-packages/lib/python3.11/site-packages > localstack-var-python-packages-venv.pth && \
RUN echo /var/lib/localstack/lib/python-packages/lib/python3.13/site-packages > localstack-var-python-packages-venv.pth && \
mv localstack-var-python-packages-venv.pth .venv/lib/python*/site-packages/
RUN echo /usr/lib/localstack/python-packages/lib/python3.11/site-packages > localstack-static-python-packages-venv.pth && \
RUN echo /usr/lib/localstack/python-packages/lib/python3.13/site-packages > localstack-static-python-packages-venv.pth && \
mv localstack-static-python-packages-venv.pth .venv/lib/python*/site-packages/

# expose edge service, external service ports, and debugpy
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile.s3
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# base: Stage which installs necessary runtime dependencies (OS packages, filesystem...)
FROM python:3.11.13-slim-bookworm@sha256:873f91540d53b36327ed4fb018c9669107a4e2a676719720edb4209c4b15d029 AS base
FROM python:3.13.7-slim-trixie@sha256:58c30f5bfaa718b5803a53393190b9c68bd517c44c6c94c1b6c8c172bcfad040 AS base
ARG TARGETARCH

# set workdir
Expand Down Expand Up @@ -66,7 +66,7 @@ RUN --mount=type=cache,target=/root/.cache \

# delete the botocore specs for other services (>80mb)
# TODO: well now it's compressed and it's much lighter: 20mb maybe not worth it
RUN find .venv/lib/python3.11/site-packages/botocore/data/ -mindepth 1 -maxdepth 1 -type d -not -name s3 -exec rm -rf '{}' \;
RUN find .venv/lib/python3.13/site-packages/botocore/data/ -mindepth 1 -maxdepth 1 -type d -not -name s3 -exec rm -rf '{}' \;


# final stage: Builds upon base stage and copies resources from builder stages
Expand Down Expand Up @@ -97,9 +97,9 @@ RUN SETUPTOOLS_SCM_PRETEND_VERSION_FOR_LOCALSTACK_CORE=${LOCALSTACK_BUILD_VERSIO
RUN . .venv/bin/activate && python3 -m localstack.aws.spec

# link the python package installer virtual environments into the localstack venv
RUN echo /var/lib/localstack/lib/python-packages/lib/python3.11/site-packages > localstack-var-python-packages-venv.pth && \
RUN echo /var/lib/localstack/lib/python-packages/lib/python3.13/site-packages > localstack-var-python-packages-venv.pth && \
mv localstack-var-python-packages-venv.pth .venv/lib/python*/site-packages/
RUN echo /usr/lib/localstack/python-packages/lib/python3.11/site-packages > localstack-static-python-packages-venv.pth && \
RUN echo /usr/lib/localstack/python-packages/lib/python3.13/site-packages > localstack-static-python-packages-venv.pth && \
mv localstack-static-python-packages-venv.pth .venv/lib/python*/site-packages/

# expose edge service and debugpy
Expand Down
2 changes: 1 addition & 1 deletion localstack-core/localstack/runtime/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class ShellScriptRunner(ScriptRunner):
suffixes = [".sh"]

def run(self, path: str) -> None:
exit_code = subprocess.call(args=[], executable=path)
exit_code = subprocess.call(args=[path])
if exit_code != 0:
raise OSError(f"Script {path} returned a non-zero exit code {exit_code}")

Expand Down
4 changes: 3 additions & 1 deletion localstack-core/localstack/services/s3/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -3859,7 +3859,9 @@ def put_object_retention(
if retention and retention["RetainUntilDate"] < datetime.datetime.now(datetime.UTC):
# weirdly, this date is format as following: Tue Dec 31 16:00:00 PST 2019
# it contains the timezone as PST, even if you target a bucket in Europe or Asia
pst_datetime = retention["RetainUntilDate"].astimezone(tz=ZoneInfo("US/Pacific"))
pst_datetime = retention["RetainUntilDate"].astimezone(
tz=ZoneInfo("America/Los_Angeles")
)
raise InvalidArgument(
"The retain until date must be in the future!",
ArgumentName="RetainUntilDate",
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ dependencies = [
dynamic = ["version"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.13",
"Topic :: Internet",
"Topic :: Software Development :: Testing",
"Topic :: System :: Emulators",
Expand Down
4 changes: 1 addition & 3 deletions requirements-base-runtime.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --extra=base-runtime --output-file=requirements-base-runtime.txt --strip-extras --unsafe-package=distribute --unsafe-package=localstack-core --unsafe-package=pip --unsafe-package=setuptools pyproject.toml
Expand Down Expand Up @@ -183,9 +183,7 @@ tailer==0.4.1
typing-extensions==4.15.0
# via
# localstack-twisted
# pyopenssl
# readerwriterlock
# referencing
urllib3==2.5.0
# via
# botocore
Expand Down
2 changes: 1 addition & 1 deletion requirements-basic.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --output-file=requirements-basic.txt --strip-extras --unsafe-package=distribute --unsafe-package=localstack-core --unsafe-package=pip --unsafe-package=setuptools pyproject.toml
Expand Down
11 changes: 4 additions & 7 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --extra=dev --output-file=requirements-dev.txt --strip-extras --unsafe-package=distribute --unsafe-package=localstack-core --unsafe-package=pip --unsafe-package=setuptools pyproject.toml
Expand Down Expand Up @@ -94,11 +94,11 @@ constantly==23.10.4
# via localstack-twisted
constructs==10.4.2
# via aws-cdk-lib
coverage==7.10.6
coverage==6.5.0
# via
# coveralls
# localstack-core
coveralls==4.0.1
coveralls==3.3.1
# via localstack-core (pyproject.toml)
crontab==1.0.5
# via localstack-core
Expand All @@ -109,7 +109,7 @@ cryptography==45.0.7
# localstack-core (pyproject.toml)
# moto-ext
# pyopenssl
cython==3.1.3
cython==3.1.4
# via localstack-core (pyproject.toml)
decorator==5.2.1
# via jsonpath-rw
Expand Down Expand Up @@ -467,7 +467,6 @@ typeguard==2.13.3
# jsii
typing-extensions==4.15.0
# via
# anyio
# aws-sam-translator
# cattrs
# cfn-lint
Expand All @@ -476,9 +475,7 @@ typing-extensions==4.15.0
# mypy
# pydantic
# pydantic-core
# pyopenssl
# readerwriterlock
# referencing
# typing-inspection
typing-inspection==0.4.1
# via pydantic
Expand Down
4 changes: 1 addition & 3 deletions requirements-runtime.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --extra=runtime --output-file=requirements-runtime.txt --strip-extras --unsafe-package=distribute --unsafe-package=localstack-core --unsafe-package=pip --unsafe-package=setuptools pyproject.toml
Expand Down Expand Up @@ -339,9 +339,7 @@ typing-extensions==4.15.0
# localstack-twisted
# pydantic
# pydantic-core
# pyopenssl
# readerwriterlock
# referencing
# typing-inspection
typing-inspection==0.4.1
# via pydantic
Expand Down
5 changes: 1 addition & 4 deletions requirements-test.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# This file is autogenerated by pip-compile with Python 3.11
# This file is autogenerated by pip-compile with Python 3.13
# by the following command:
#
# pip-compile --extra=test --output-file=requirements-test.txt --strip-extras --unsafe-package=distribute --unsafe-package=localstack-core --unsafe-package=pip --unsafe-package=setuptools pyproject.toml
Expand Down Expand Up @@ -423,17 +423,14 @@ typeguard==2.13.3
# jsii
typing-extensions==4.15.0
# via
# anyio
# aws-sam-translator
# cattrs
# cfn-lint
# jsii
# localstack-twisted
# pydantic
# pydantic-core
# pyopenssl
# readerwriterlock
# referencing
# typing-inspection
typing-inspection==0.4.1
# via pydantic
Expand Down
Loading
Loading