diff --git a/.github/labeler.yml b/.github/labeler.yml
new file mode 100644
index 000000000..3a23b91b9
--- /dev/null
+++ b/.github/labeler.yml
@@ -0,0 +1,43 @@
+A-files:
+ - changed-files:
+ - any-glob-to-any-file: actix-files/**
+
+A-http:
+ - changed-files:
+ - any-glob-to-any-file: actix-http/**
+
+A-http-test:
+ - changed-files:
+ - any-glob-to-any-file: actix-http-test/**
+
+A-multipart:
+ - changed-files:
+ - any-glob-to-any-file: actix-multipart/**
+
+A-multipart-derive:
+ - changed-files:
+ - any-glob-to-any-file: actix-multipart-derive/**
+
+A-router:
+ - changed-files:
+ - any-glob-to-any-file: actix-router/**
+
+A-test:
+ - changed-files:
+ - any-glob-to-any-file: actix-test/**
+
+A-web:
+ - changed-files:
+ - any-glob-to-any-file: actix-web/**
+
+A-web-actors:
+ - changed-files:
+ - any-glob-to-any-file: actix-web-actors/**
+
+A-web-codegen:
+ - changed-files:
+ - any-glob-to-any-file: actix-web-codegen/**
+
+A-awc:
+ - changed-files:
+ - any-glob-to-any-file: awc/**
diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml
index fc1816504..05020a7f6 100644
--- a/.github/workflows/ci-post-merge.yml
+++ b/.github/workflows/ci-post-merge.yml
@@ -49,7 +49,7 @@ jobs:
toolchain: ${{ matrix.version.version }}
- name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@@ -83,7 +83,7 @@ jobs:
uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2
- name: Install just, cargo-hack
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just,cargo-hack
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c83ba03bb..c3fd6c7de 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -64,7 +64,7 @@ jobs:
toolchain: ${{ matrix.version.version }}
- name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@@ -87,7 +87,7 @@ jobs:
- name: deny check
if: matrix.version.name == 'stable' && matrix.target.os == 'ubuntu-latest'
- uses: EmbarkStudios/cargo-deny-action@76cd80eb775d7bbbd2d80292136d74d39e1b4918 # v2.0.14
+ uses: EmbarkStudios/cargo-deny-action@3fd3802e88374d3fe9159b834c7714ec57d6c979 # v2.0.15
io-uring:
name: io-uring tests
@@ -117,7 +117,7 @@ jobs:
toolchain: nightly
- name: Install just
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index ec9df8b41..08d7f43d9 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -24,7 +24,7 @@ jobs:
components: llvm-tools
- name: Install just, cargo-llvm-cov, cargo-nextest
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just,cargo-llvm-cov,cargo-nextest
@@ -32,7 +32,7 @@ jobs:
run: just test-coverage-codecov
- name: Upload coverage to Codecov
- uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
+ uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
with:
files: codecov.json
fail_ci_if_error: true
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
new file mode 100644
index 000000000..5db7c1ccb
--- /dev/null
+++ b/.github/workflows/labeler.yml
@@ -0,0 +1,15 @@
+name: Labeler
+
+on:
+ pull_request_target:
+ types: [opened, synchronize, reopened]
+
+permissions:
+ contents: read
+ pull-requests: write
+
+jobs:
+ labeler:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 02ac9d8dd..62f89209c 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -77,12 +77,12 @@ jobs:
toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }}
- name: Install just
- uses: taiki-e/install-action@28a9d316db64b78a951f3f8587a5d08cc97ad8eb # v2.65.6
+ uses: taiki-e/install-action@30eab0fabba9ea3f522099957e668b21876aa39e # v2.66.6
with:
tool: just
- name: Install cargo-check-external-types
- uses: taiki-e/cache-cargo-install-action@7447f04c51f2ba27ca35e7f1e28fab848c5b3ba7 # v2.3.1
+ uses: taiki-e/cache-cargo-install-action@34ce5120836e5f9f1508d8713d7fdea0e8facd6f # v3.0.1
with:
tool: cargo-check-external-types
diff --git a/.github/workflows/semver-labeler.yml b/.github/workflows/semver-labeler.yml
new file mode 100644
index 000000000..efb7742e6
--- /dev/null
+++ b/.github/workflows/semver-labeler.yml
@@ -0,0 +1,26 @@
+name: Semver Labeler
+
+on:
+ workflow_run:
+ workflows: [CI]
+ types: [completed]
+
+jobs:
+ semver-label:
+ runs-on: ubuntu-latest
+ permissions:
+ pull-requests: write
+ contents: read
+ steps:
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
+ with:
+ ref: ${{ github.event.workflow_run.head_sha }}
+
+ - name: Install Rust
+ uses: actions-rust-lang/setup-rust-toolchain@1780873c7b576612439a134613cc4cc74ce5538c # v1.15.2
+ with:
+ toolchain: stable
+
+ - uses: JohnTitor/cargo-semver-checks@main
+ with:
+ label-prefix: B-semver-
diff --git a/Cargo.lock b/Cargo.lock
index f87380aec..0111f92a7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1271,9 +1271,9 @@ checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
[[package]]
name = "flate2"
-version = "1.1.5"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
+checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -2262,18 +2262,18 @@ dependencies = [
[[package]]
name = "proc-macro2"
-version = "1.0.103"
+version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
+checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
-version = "1.0.42"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
+checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
dependencies = [
"proc-macro2",
]
@@ -2544,9 +2544,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.13.2"
+version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282"
+checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
dependencies = [
"zeroize",
]
@@ -2697,9 +2697,9 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.148"
+version = "1.0.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
dependencies = [
"itoa",
"memchr",
@@ -2967,30 +2967,30 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.44"
+version = "0.3.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
+checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd"
dependencies = [
"deranged",
"itoa",
"num-conv",
"powerfmt",
- "serde",
+ "serde_core",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
+checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca"
[[package]]
name = "time-macros"
-version = "0.2.24"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
+checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd"
dependencies = [
"num-conv",
"time-core",
@@ -3033,9 +3033,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.48.0"
+version = "1.49.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408"
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
dependencies = [
"bytes",
"libc",
@@ -3114,9 +3114,9 @@ dependencies = [
[[package]]
name = "tokio-stream"
-version = "0.1.17"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047"
+checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70"
dependencies = [
"futures-core",
"pin-project-lite",
@@ -3140,9 +3140,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.17"
+version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594"
+checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [
"bytes",
"futures-core",
@@ -3291,9 +3291,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
-version = "2.5.7"
+version = "2.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
dependencies = [
"form_urlencoded",
"idna",
diff --git a/Cargo.toml b/Cargo.toml
index 0e90abaef..79677d017 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -19,7 +19,7 @@ homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web"
license = "MIT OR Apache-2.0"
edition = "2021"
-rust-version = "1.82"
+rust-version = "1.83"
[profile.dev]
# Disabling debug info speeds up builds a bunch and we don't rely on it for debugging that much.
diff --git a/actix-files/CHANGES.md b/actix-files/CHANGES.md
index f4e0385e0..e366fbdd8 100644
--- a/actix-files/CHANGES.md
+++ b/actix-files/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 0.6.9
diff --git a/actix-files/README.md b/actix-files/README.md
index 6c3e20417..e3c712e94 100644
--- a/actix-files/README.md
+++ b/actix-files/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-files)
[](https://docs.rs/actix-files/0.6.9)
-
+

[](https://deps.rs/crate/actix-files/0.6.9)
diff --git a/actix-http-test/CHANGES.md b/actix-http-test/CHANGES.md
index 0e8a746f6..d2e405fe9 100644
--- a/actix-http-test/CHANGES.md
+++ b/actix-http-test/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 3.2.0
diff --git a/actix-http-test/README.md b/actix-http-test/README.md
index 939028121..617ef1b9b 100644
--- a/actix-http-test/README.md
+++ b/actix-http-test/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-http-test)
[](https://docs.rs/actix-http-test/3.2.0)
-
+

[](https://deps.rs/crate/actix-http-test/3.2.0)
diff --git a/actix-http/CHANGES.md b/actix-http/CHANGES.md
index 75644ceb8..4bbd7a880 100644
--- a/actix-http/CHANGES.md
+++ b/actix-http/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 3.11.2
diff --git a/actix-http/README.md b/actix-http/README.md
index be44e8e68..e94749d61 100644
--- a/actix-http/README.md
+++ b/actix-http/README.md
@@ -6,7 +6,7 @@
[](https://crates.io/crates/actix-http)
[](https://docs.rs/actix-http/3.11.2)
-
+

[](https://deps.rs/crate/actix-http/3.11.2)
diff --git a/actix-multipart-derive/CHANGES.md b/actix-multipart-derive/CHANGES.md
index 4b1ca7b34..e8f85bbe0 100644
--- a/actix-multipart-derive/CHANGES.md
+++ b/actix-multipart-derive/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 0.7.0
diff --git a/actix-multipart-derive/README.md b/actix-multipart-derive/README.md
index bf75613ed..82ef49257 100644
--- a/actix-multipart-derive/README.md
+++ b/actix-multipart-derive/README.md
@@ -6,7 +6,7 @@
[](https://crates.io/crates/actix-multipart-derive)
[](https://docs.rs/actix-multipart-derive/0.7.0)
-
+

[](https://deps.rs/crate/actix-multipart-derive/0.7.0)
diff --git a/actix-multipart/CHANGES.md b/actix-multipart/CHANGES.md
index fe5d24a2a..206374bf0 100644
--- a/actix-multipart/CHANGES.md
+++ b/actix-multipart/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 0.7.2
diff --git a/actix-multipart/README.md b/actix-multipart/README.md
index 3f1055e9e..1c1e90615 100644
--- a/actix-multipart/README.md
+++ b/actix-multipart/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-multipart)
[](https://docs.rs/actix-multipart/0.7.2)
-
+

[](https://deps.rs/crate/actix-multipart/0.7.2)
diff --git a/actix-router/CHANGES.md b/actix-router/CHANGES.md
index 79488f01e..0a79111bd 100644
--- a/actix-router/CHANGES.md
+++ b/actix-router/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 0.5.3
diff --git a/actix-router/README.md b/actix-router/README.md
index 12d1b0146..3f750b46a 100644
--- a/actix-router/README.md
+++ b/actix-router/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-router)
[](https://docs.rs/actix-router/0.5.3)
-
+

[](https://deps.rs/crate/actix-router/0.5.3)
diff --git a/actix-test/CHANGES.md b/actix-test/CHANGES.md
index d567f060f..e368e2f7f 100644
--- a/actix-test/CHANGES.md
+++ b/actix-test/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 0.1.5
diff --git a/actix-test/README.md b/actix-test/README.md
index 1a9b6f22a..3bd2d1550 100644
--- a/actix-test/README.md
+++ b/actix-test/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-test)
[](https://docs.rs/actix-test/0.1.5)
-
+

[](https://deps.rs/crate/actix-test/0.1.5)
diff --git a/actix-web-actors/CHANGES.md b/actix-web-actors/CHANGES.md
index fc4279ea7..e85c62bd6 100644
--- a/actix-web-actors/CHANGES.md
+++ b/actix-web-actors/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 4.3.1
diff --git a/actix-web-actors/README.md b/actix-web-actors/README.md
index 0ec91a224..ff2a1af79 100644
--- a/actix-web-actors/README.md
+++ b/actix-web-actors/README.md
@@ -8,7 +8,7 @@
[](https://crates.io/crates/actix-web-actors)
[](https://docs.rs/actix-web-actors/4.3.1)
-
+


diff --git a/actix-web-codegen/CHANGES.md b/actix-web-codegen/CHANGES.md
index 93f2ca8c3..5b988d20a 100644
--- a/actix-web-codegen/CHANGES.md
+++ b/actix-web-codegen/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 4.3.0
diff --git a/actix-web-codegen/README.md b/actix-web-codegen/README.md
index e61bf5c74..1c2462f00 100644
--- a/actix-web-codegen/README.md
+++ b/actix-web-codegen/README.md
@@ -6,7 +6,7 @@
[](https://crates.io/crates/actix-web-codegen)
[](https://docs.rs/actix-web-codegen/4.3.0)
-
+

[](https://deps.rs/crate/actix-web-codegen/4.3.0)
diff --git a/actix-web/CHANGES.md b/actix-web/CHANGES.md
index c2b7c1f38..926a7fc23 100644
--- a/actix-web/CHANGES.md
+++ b/actix-web/CHANGES.md
@@ -2,8 +2,8 @@
## Unreleased
-- Add `experimental-introspection` feature to report configured routes (paths, methods, guards, resource metadata), include reachability hints for shadowed/conflicting routes, and provide a separate report for external resources.
- Minimum supported Rust version (MSRV) is now 1.82.
+- Add `experimental-introspection` feature to report configured routes (paths, methods, guards, resource metadata), include reachability hints for shadowed/conflicting routes, and provide a separate report for external resources.
## 4.12.1
diff --git a/actix-web/README.md b/actix-web/README.md
index 51ee9d5ff..df48fbce8 100644
--- a/actix-web/README.md
+++ b/actix-web/README.md
@@ -9,7 +9,7 @@
[](https://crates.io/crates/actix-web)
[](https://docs.rs/actix-web/4.12.1)
-
+

[](https://deps.rs/crate/actix-web/4.12.1)
diff --git a/awc/CHANGES.md b/awc/CHANGES.md
index d4e96aab3..22cf447f2 100644
--- a/awc/CHANGES.md
+++ b/awc/CHANGES.md
@@ -2,7 +2,7 @@
## Unreleased
-- Minimum supported Rust version (MSRV) is now 1.82.
+- Minimum supported Rust version (MSRV) is now 1.83.
## 3.8.1
diff --git a/justfile b/justfile
index 0cd74f21d..ba8014f43 100644
--- a/justfile
+++ b/justfile
@@ -82,10 +82,9 @@ test-coverage-lcov: test-coverage
cargo {{ toolchain }} llvm-cov report --doctests --lcov --output-path=lcov.info
# Document crates in workspace.
-# FIXME: Re-add `RUSTDOCFLAGS="--cfg=docsrs -Dwarnings"` once crypto-related crates are updated.
doc *args: && doc-set-workspace-crates
rm -f "$(cargo metadata --format-version=1 | jq -r '.target_directory')/doc/crates.js"
- cargo +nightly doc --workspace {{ all_crate_features }} {{ args }}
+ RUSTDOCFLAGS="--cfg=docsrs -Dwarnings" cargo +nightly doc --no-deps --workspace {{ all_crate_features }} {{ args }}
[private]
doc-set-workspace-crates: