Skip to content

Commit 82b06c4

Browse files
authored
Merge branch 'dev' into uv
2 parents 10c4621 + 4e17807 commit 82b06c4

175 files changed

Lines changed: 2688 additions & 1166 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ You should see `[DEBUG]` statements that show what's happening behind the scenes
3939

4040
## Verify on Ubuntu
4141

42-
If possible, please verify that your issue occurs on 64-bit Ubuntu 22.04. We provide a Dockerfile based on Ubuntu 22.04 via `docker.io` to make this super simple, no VM required!
42+
If possible, please verify that your issue occurs on 64-bit Ubuntu 24.04. We provide a Dockerfile based on Ubuntu 24.04 via `docker.io` to make this super simple, no VM required!
4343

4444
```sh
4545
# Download the Docker image

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ You can always [change the branch][change] after you create the PR if it's again
2424

2525
[contributing]: https://github.com/Gallopsled/pwntools/blob/dev/CONTRIBUTING.md
2626
[testing]: https://github.com/Gallopsled/pwntools/blob/dev/TESTING.md
27-
[change]: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request
27+
[change]: https://github.blog/news-insights/product-news/change-the-base-branch-of-a-pull-request/
2828

2929
## Changelog
3030

.github/dependabot.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,8 @@ updates:
44
- package-ecosystem: "github-actions"
55
directory: "/"
66
schedule:
7-
# Check for updates to GitHub Actions every week
8-
interval: "weekly"
7+
# Check for updates to GitHub Actions every month
8+
interval: "monthly"
9+
groups:
10+
github-actions:
11+
dependency-type: "production"

.github/workflows/changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ${{ matrix.os }}
1616
timeout-minutes: 5
1717
steps:
18-
- uses: actions/checkout@v5
18+
- uses: actions/checkout@v6
1919
with:
2020
fetch-depth: 0
2121

.github/workflows/ci.yml

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
test:
66
strategy:
77
matrix:
8-
python_version: ['3.10', '3.12', '3.13']
8+
python_version: ['3.10', '3.12', '3.13', '3.14']
99
os: [ubuntu-latest]
1010
runs-on: ${{ matrix.os }}
1111
timeout-minutes: 30
@@ -26,7 +26,7 @@ jobs:
2626
PWN_UBUNTU_ARCHIVE_URL: http://localhost:3002/
2727
PWN_GITLAB_LIBCDB_URL: http://localhost:3003/
2828
steps:
29-
- uses: actions/checkout@v5
29+
- uses: actions/checkout@v6
3030
with:
3131
fetch-depth: 20
3232

@@ -42,7 +42,7 @@ jobs:
4242
echo "date=$(/bin/date -u "+%Y%m%d%H%M%S")" >> $GITHUB_OUTPUT
4343
4444
- name: Cache for libcdb requests
45-
uses: actions/cache@v4
45+
uses: actions/cache@v5
4646
with:
4747
path: ~/libcdb-cache
4848
key: libcdb-python${{ matrix.python_version }}-${{ steps.fix-perms.outputs.date }}
@@ -126,9 +126,13 @@ jobs:
126126
- name: Install dependencies
127127
run: |
128128
uv pip install --upgrade --editable .
129+
# Pin to known working version until 2.1.5 is out. https://github.com/unicorn-engine/unicorn/issues/2134
130+
uv pip install 'unicorn==2.1.2' setuptools
129131
130132
- name: Sanity checks
131-
run: PWNLIB_NOTERM=1 python -bb -c 'from pwn import *; print(pwnlib.term.term_mode)'
133+
run: |
134+
PWNLIB_NOTERM=1 python -bb -c 'from pwn import *; print(pwnlib.term.term_mode)'
135+
python -c "import hashlib; assert hashlib.algorithms_guaranteed == {'sha256', 'blake2s', 'sha3_384', 'shake_256', 'sha1', 'md5', 'shake_128', 'sha224', 'sha512', 'blake2b', 'sha3_512', 'sha3_224', 'sha3_256', 'sha384'}"
132136
133137
- name: Install documentation dependencies
134138
run: uv pip install -r docs/requirements.txt
@@ -221,14 +225,14 @@ jobs:
221225
run: |
222226
uv build
223227
224-
- uses: actions/upload-artifact@v4
228+
- uses: actions/upload-artifact@v7
225229
if: matrix.python_version == '3.10'
226230
with:
227231
name: packages
228232
path: dist/
229233
include-hidden-files: true
230234

231-
- uses: actions/upload-artifact@v4
235+
- uses: actions/upload-artifact@v7
232236
with:
233237
name: coverage-${{ matrix.python_version }}
234238
path: .coverage*
@@ -245,7 +249,7 @@ jobs:
245249
timeout-minutes: 30
246250
continue-on-error: true
247251
steps:
248-
- uses: actions/checkout@v5
252+
- uses: actions/checkout@v6
249253

250254
- name: Set up Python 3.12
251255
uses: astral-sh/setup-uv@v7
@@ -268,7 +272,7 @@ jobs:
268272
libc6-dbg
269273
270274
- name: Cache for avd
271-
uses: actions/cache@v4
275+
uses: actions/cache@v5
272276
id: cache-avd
273277
with:
274278
path: |
@@ -302,7 +306,7 @@ jobs:
302306
source .android.env
303307
PWNLIB_NOTERM=1 python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest docs/source/adb.rst
304308
305-
- uses: actions/upload-artifact@v4
309+
- uses: actions/upload-artifact@v7
306310
with:
307311
name: coverage-android
308312
path: .coverage*
@@ -311,9 +315,8 @@ jobs:
311315
windows-test:
312316
runs-on: windows-latest
313317
timeout-minutes: 30
314-
continue-on-error: true
315318
steps:
316-
- uses: actions/checkout@v5
319+
- uses: actions/checkout@v6
317320

318321
- name: Set up Python 3.12
319322
uses: astral-sh/setup-uv@v7
@@ -341,21 +344,21 @@ jobs:
341344
run: |
342345
python -bb -m coverage run -m sphinx -b doctest docs/source docs/build/doctest
343346
344-
- uses: actions/upload-artifact@v4
347+
- uses: actions/upload-artifact@v7
345348
with:
346349
name: coverage-windows
347350
path: .coverage*
348351
include-hidden-files: true
349352

350353
upload-coverage:
351354
runs-on: ubuntu-latest
352-
needs: test
355+
needs: [test, android-test, windows-test]
353356
steps:
354-
- uses: actions/checkout@v5
357+
- uses: actions/checkout@v6
355358
with:
356359
fetch-depth: 20
357360

358-
- uses: actions/download-artifact@v5
361+
- uses: actions/download-artifact@v8
359362
with:
360363
pattern: coverage-*
361364
merge-multiple: true
@@ -375,7 +378,7 @@ jobs:
375378
if: github.repository_owner == 'Gallopsled' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/heads/') && endsWith(github.event.ref, '-staging')
376379
needs: test
377380
steps:
378-
- uses: actions/checkout@v5
381+
- uses: actions/checkout@v6
379382
with:
380383
fetch-depth: 20
381384
- name: Push changes to protected branch
@@ -397,7 +400,7 @@ jobs:
397400
needs: test
398401
steps:
399402
- name: Download artifacts
400-
uses: actions/download-artifact@v5
403+
uses: actions/download-artifact@v8
401404
with:
402405
name: packages
403406
path: dist

.github/workflows/docker.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,40 +13,40 @@ jobs:
1313
steps:
1414
# Required for subdirectories in Git context
1515
- name: Set up Docker Buildx
16-
uses: docker/setup-buildx-action@v3
16+
uses: docker/setup-buildx-action@v4
1717

1818
- name: Login to Docker Hub
19-
uses: docker/login-action@v3
19+
uses: docker/login-action@v4
2020
with:
2121
username: ${{ secrets.DOCKERHUB_USERNAME }}
2222
password: ${{ secrets.DOCKERHUB_PASSWORD }}
2323

2424
- name: Build and push base image
25-
uses: docker/build-push-action@v6
25+
uses: docker/build-push-action@v7
2626
if: github.event_name == 'workflow_dispatch'
2727
with:
2828
context: "{{defaultContext}}:extra/docker/base"
2929
push: true
3030
tags: pwntools/pwntools:base
3131

3232
- name: Build and push stable image
33-
uses: docker/build-push-action@v6
33+
uses: docker/build-push-action@v7
3434
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/stable')
3535
with:
3636
context: "{{defaultContext}}:extra/docker/stable"
3737
push: true
3838
tags: pwntools/pwntools:stable
3939

4040
- name: Build and push beta image
41-
uses: docker/build-push-action@v6
41+
uses: docker/build-push-action@v7
4242
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/beta')
4343
with:
4444
context: "{{defaultContext}}:extra/docker/beta"
4545
push: true
4646
tags: pwntools/pwntools:beta
4747

4848
- name: Build and push dev image
49-
uses: docker/build-push-action@v6
49+
uses: docker/build-push-action@v7
5050
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
5151
with:
5252
context: "{{defaultContext}}:extra/docker/dev"
@@ -56,7 +56,7 @@ jobs:
5656
pwntools/pwntools:latest
5757
5858
- name: Build and push ci image
59-
uses: docker/build-push-action@v6
59+
uses: docker/build-push-action@v7
6060
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
6161
with:
6262
context: "{{defaultContext}}:travis/docker"

.github/workflows/lint.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ${{ matrix.os }}
1111
timeout-minutes: 30
1212
steps:
13-
- uses: actions/checkout@v5
13+
- uses: actions/checkout@v6
1414

1515
- name: Set up Python ${{ matrix.python-version }}
1616
uses: actions/setup-python@v6
@@ -31,3 +31,13 @@ jobs:
3131
flake8 pwnlib setup.py docs travis --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
3232
flake8 examples --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --ignore='F403,F405'
3333
flake8 pwn --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --ignore='F401,F403,F405'
34+
35+
- name: Minimum Python version check
36+
run: |
37+
pip install vermin
38+
vermin -vvv --no-tips -t=3.10- --violations ./pwnlib ./pwn
39+
40+
- name: MyPy type hint baseline
41+
run: |
42+
pip install -U . --group dev
43+
mypy | mypy-baseline filter

.github/workflows/merge-conflict.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ${{ matrix.os }}
1414
timeout-minutes: 5
1515
steps:
16-
- uses: actions/checkout@v5
16+
- uses: actions/checkout@v6
1717
with:
1818
fetch-depth: 0
1919

.github/workflows/pylint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ${{ matrix.os }}
1111
timeout-minutes: 30
1212
steps:
13-
- uses: actions/checkout@v5
13+
- uses: actions/checkout@v6
1414

1515
- name: Set up Python ${{ matrix.python-version }}
1616
uses: actions/setup-python@v6

0 commit comments

Comments
 (0)