Skip to content

Commit a956957

Browse files
Merge branch 'develop'
2 parents b8d7b0d + c62aade commit a956957

9 files changed

Lines changed: 39 additions & 29 deletions

File tree

.github/workflows/build.yml

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ jobs:
6565
- ubuntu-latest
6666
- windows-latest
6767
python:
68-
- "3.9"
6968
- "3.10"
7069
- "3.11"
7170
- "3.12"
@@ -76,7 +75,7 @@ jobs:
7675
- uses: actions/setup-python@v6
7776
with:
7877
python-version: ${{ matrix.python }}
79-
- uses: astral-sh/setup-uv@v7
78+
- uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
8079
- name: Unit Testing
8180
run: make pr
8281
- name: Functional Testing
@@ -102,7 +101,12 @@ jobs:
102101
nodejs:
103102
- 20
104103
- 22
105-
- 24
104+
- 24
105+
exclude:
106+
# Node 22.22.2 ships broken npm missing promise-retry, preventing
107+
# upgrade to npm 11. See: https://github.com/npm/cli/issues/9151
108+
- nodejs: 22
109+
npm: 11
106110
steps:
107111
- uses: actions/checkout@v6
108112
- uses: actions/setup-python@v6
@@ -138,6 +142,11 @@ jobs:
138142
- 20
139143
- 22
140144
- 24
145+
exclude:
146+
# Node 22.22.2 ships broken npm missing promise-retry, preventing
147+
# upgrade to npm 11. See: https://github.com/npm/cli/issues/9151
148+
- nodejs: 22
149+
npm: 11
141150
steps:
142151
- uses: actions/checkout@v6
143152
- uses: actions/setup-python@v6
@@ -262,7 +271,6 @@ jobs:
262271
- ubuntu-latest
263272
- windows-latest
264273
python:
265-
- "3.9"
266274
- "3.10"
267275
- "3.11"
268276
- "3.12"
@@ -291,7 +299,6 @@ jobs:
291299
- ubuntu-latest
292300
- windows-latest
293301
python:
294-
- "3.9"
295302
- "3.10"
296303
- "3.11"
297304
- "3.12"
@@ -308,14 +315,14 @@ jobs:
308315
if: ${{ matrix.os }} == 'ubuntu-latest' && ${{ matrix.python }} == '3.12'
309316
# Install UV for python_uv workflow tests
310317
- name: Install UV
311-
uses: astral-sh/setup-uv@v7
318+
uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7
312319
with:
313320
enable-cache: true
314321
- run: make init
315322
- run: pytest -vv tests/integration/workflows/python_uv
316323

317324
ruby-integration:
318-
name: ${{ matrix.os }} / ${{ matrix.python }} / ruby
325+
name: ${{ matrix.os }} / ${{ matrix.python }} / ruby ${{ matrix.ruby }}
319326
if: github.repository_owner == 'aws'
320327
runs-on: ${{ matrix.os }}
321328
strategy:
@@ -326,14 +333,17 @@ jobs:
326333
- windows-latest
327334
python:
328335
- "3.13"
336+
ruby:
337+
- "3.2"
338+
- "4.0"
329339
steps:
330340
- uses: actions/checkout@v6
331341
- uses: actions/setup-python@v6
332342
with:
333343
python-version: ${{ matrix.python }}
334-
- uses: ruby/setup-ruby@v1
344+
- uses: ruby/setup-ruby@4dc28cf14d77b0afa6832d9765ac422dbf0dfedd # v1
335345
with:
336-
ruby-version: "3.2"
346+
ruby-version: ${{ matrix.ruby }}
337347
- run: make init
338348
- run: pytest -vv tests/integration/workflows/ruby_bundler
339349

aws_lambda_builders/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
# Changing version will trigger a new release!
66
# Please make the version change as the last step of your development.
77

8-
__version__ = "1.63.0"
8+
__version__ = "1.64.0"
99
RPC_PROTOCOL_VERSION = "0.3"

aws_lambda_builders/supported_runtimes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"ruby3.2",
3333
"ruby3.3",
3434
"ruby3.4",
35+
"ruby4.0",
3536
]
3637

3738
# Java runtimes

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ max-branches = 13
2020

2121
[tool.black]
2222
line-length = 120
23-
target_version = ['py37', 'py38', 'py39']
23+
target_version = ['py310', 'py311', 'py312', 'py313', 'py314']
2424
exclude = '''
2525
2626
(

requirements/dev.txt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
coverage==7.10.7; python_version>="3.9"
2-
coverage==7.6.1; python_version<"3.9"
1+
coverage==7.13.5
32
flake8==3.8.4
4-
pytest-cov==6.3.0; python_version>="3.9"
5-
pytest-cov==5.0.0; python_version<"3.9"
3+
pytest-cov==6.3.0
64

75
# Test requirements
86
pytest>=6.1.1
97
parameterized==0.9.0
108
pyelftools~=0.32 # Used to verify the generated Go binary architecture in integration tests (utils.py)
119

1210
# formatter
13-
black==25.11.0; python_version>="3.9"
14-
black==24.8.0; python_version<"3.9"
15-
ruff==0.15.2
11+
black==26.3.1
12+
ruff==0.15.7

setup.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ def read_version():
4343
license="Apache License 2.0",
4444
packages=find_packages(exclude=["tests.*", "tests"]),
4545
keywords="AWS Lambda Functions Building",
46-
# Support 3.8 or greater
47-
python_requires=(">=3.8"),
46+
# Support 3.10 or greater
47+
python_requires=(">=3.10"),
4848
entry_points={"console_scripts": ["{}=aws_lambda_builders.__main__:main".format(cmd_name)]},
4949
install_requires=read_requirements("base.txt") + read_requirements("python_pip.txt"),
5050
extras_require={"dev": read_requirements("dev.txt")},
@@ -58,8 +58,6 @@ def read_version():
5858
"License :: OSI Approved :: Apache Software License",
5959
"Operating System :: OS Independent",
6060
"Programming Language :: Python",
61-
"Programming Language :: Python :: 3.8",
62-
"Programming Language :: Python :: 3.9",
6361
"Programming Language :: Python :: 3.10",
6462
"Programming Language :: Python :: 3.11",
6563
"Programming Language :: Python :: 3.12",

tests/functional/workflows/python_pip/test_packager.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
from aws_lambda_builders.workflows.python_pip.compat import pip_no_compile_c_shim
2222
from aws_lambda_builders.workflows.python_pip.utils import OSUtils
2323

24-
2524
FakePipCall = namedtuple("FakePipEntry", ["args", "env_vars", "shim"])
2625

2726

tests/integration/workflows/ruby_bundler/test_ruby.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
("ruby3.2",),
2222
("ruby3.3",),
2323
("ruby3.4",),
24+
("ruby4.0",),
2425
],
2526
)
2627
class TestRubyWorkflow(TestCase):

tests/unit/workflows/python_uv/test_packager.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,11 @@ def test_build_dependencies_pyproject_with_uv_lock(self):
219219
# Mock the uv export command
220220
self.mock_uv_runner._uv.run_uv_command.return_value = (0, b"", b"")
221221

222-
with patch("os.path.basename", return_value="pyproject.toml"), patch(
223-
"os.path.dirname", return_value=os.path.join("path", "to")
224-
), patch("os.path.exists") as mock_exists:
222+
with (
223+
patch("os.path.basename", return_value="pyproject.toml"),
224+
patch("os.path.dirname", return_value=os.path.join("path", "to")),
225+
patch("os.path.exists") as mock_exists,
226+
):
225227

226228
# Mock that uv.lock exists alongside pyproject.toml
227229
mock_exists.return_value = True
@@ -242,9 +244,11 @@ def test_build_dependencies_pyproject_with_uv_lock(self):
242244

243245
def test_build_dependencies_pyproject_without_uv_lock(self):
244246
"""Test that pyproject.toml without uv.lock uses standard pyproject build."""
245-
with patch("os.path.basename", return_value="pyproject.toml"), patch(
246-
"os.path.dirname", return_value=os.path.join("path", "to")
247-
), patch("os.path.exists") as mock_exists:
247+
with (
248+
patch("os.path.basename", return_value="pyproject.toml"),
249+
patch("os.path.dirname", return_value=os.path.join("path", "to")),
250+
patch("os.path.exists") as mock_exists,
251+
):
248252
# Mock that uv.lock does NOT exist alongside pyproject.toml
249253
mock_exists.return_value = False
250254

0 commit comments

Comments
 (0)