diff --git a/Cargo.lock b/Cargo.lock
index d8fd4ed..683f47a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -144,7 +144,6 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"serde_core",
- "serde_json",
"serde_path_to_error",
"serde_urlencoded",
"sync_wrapper",
@@ -451,13 +450,13 @@ dependencies = [
"axum",
"color-eyre",
"futures",
+ "jiff",
"jsonwebtoken",
"octocrab",
"reqwest",
"serde",
"sqlx",
"tempfile",
- "time",
"tokio",
"tracing",
"tracing-subscriber",
@@ -713,6 +712,25 @@ version = "0.32.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
+[[package]]
+name = "h2"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386"
+dependencies = [
+ "atomic-waker",
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "http",
+ "indexmap",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
[[package]]
name = "hashbrown"
version = "0.15.5"
@@ -834,6 +852,7 @@ dependencies = [
"bytes",
"futures-channel",
"futures-core",
+ "h2",
"http",
"http-body",
"httparse",
@@ -1066,6 +1085,47 @@ version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+[[package]]
+name = "jiff"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35"
+dependencies = [
+ "jiff-static",
+ "jiff-tzdb-platform",
+ "log",
+ "portable-atomic",
+ "portable-atomic-util",
+ "serde_core",
+ "windows-sys 0.61.2",
+]
+
+[[package]]
+name = "jiff-static"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "jiff-tzdb"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1283705eb0a21404d2bfd6eef2a7593d240bc42a0bdb39db0ad6fa2ec026524"
+
+[[package]]
+name = "jiff-tzdb-platform"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "875a5a69ac2bab1a891711cf5eccbec1ce0341ea805560dcd90b7a2e925132e8"
+dependencies = [
+ "jiff-tzdb",
+]
+
[[package]]
name = "js-sys"
version = "0.3.82"
@@ -1475,6 +1535,21 @@ version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
+[[package]]
+name = "portable-atomic"
+version = "1.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
+
+[[package]]
+name = "portable-atomic-util"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507"
+dependencies = [
+ "portable-atomic",
+]
+
[[package]]
name = "potential_utf"
version = "0.1.4"
@@ -1672,6 +1747,7 @@ dependencies = [
"base64",
"bytes",
"futures-core",
+ "h2",
"http",
"http-body",
"http-body-util",
diff --git a/Cargo.toml b/Cargo.toml
index 4227ae4..fa7bd18 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,25 +5,29 @@ edition = "2021"
[dependencies]
askama = "0.14.0"
-axum = { version = "0.8.6", features = ["macros"] }
+axum = { version = "0.8.6", default-features = false, features = [
+ "http1",
+ "matched-path",
+ "query",
+ "tokio",
+ "tower-log",
+ "tracing",
+ "macros",
+] }
color-eyre = "0.6.3"
futures = "0.3.30"
-jsonwebtoken = { version = "9.3.1", features = [] }
+jiff = "0.2.16"
+jsonwebtoken = { version = "9.3.1" }
octocrab = "0.47.1"
reqwest = { version = "0.12.7", features = [
"rustls-tls",
+ "http2",
], default-features = false }
serde = { version = "1.0.210", features = ["derive"] }
-sqlx = { version = "0.8.2", features = [
- "macros",
- "migrate",
- "runtime-tokio",
- "sqlite",
-] }
+sqlx = { version = "0.8.2", features = ["runtime-tokio", "sqlite"] }
tempfile = "3.12.0"
-time = { version = "0.3.36", features = ["formatting", "macros", "parsing"] }
tokio = { version = "1.40.0", features = ["full"] }
-tracing = "0.1.40"
+tracing = { version = "0.1.40", features = ["attributes"] }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
[build-dependencies]
diff --git a/migrations/20251111165945_notifications_last_update.sql b/migrations/20251111165945_notifications_last_update.sql
new file mode 100644
index 0000000..ada4ff7
--- /dev/null
+++ b/migrations/20251111165945_notifications_last_update.sql
@@ -0,0 +1,4 @@
+-- Add migration script here
+
+ALTER TABLE notification_issues
+ ADD COLUMN "last_update_date" INTEGER NULL;
diff --git a/src/build.rs b/src/build.rs
index 48adaf1..ea74e3b 100644
--- a/src/build.rs
+++ b/src/build.rs
@@ -83,7 +83,7 @@ async fn background_builder_inner(db: &Db, github_client: &GitHubClient) -> Resu
match next {
Some((nightly, mode)) => {
info!(%nightly, %mode, "Building next nightly");
- let result = build_every_target_for_toolchain(db, &nightly, mode, &github_client)
+ let result = build_every_target_for_toolchain(db, &nightly, mode, github_client)
.await
.wrap_err_with(|| format!("building targets for toolchain {nightly}"));
if let Err(err) = result {
diff --git a/src/db.rs b/src/db.rs
index b25518a..66f20f2 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -106,6 +106,7 @@ pub struct NotificationIssue {
pub status: NotificationStatus,
pub first_failed_nightly: String,
pub target: String,
+ pub last_update_date: Option
Using rustflags: Build results for nightly-{{nightly}} target {{target}} {{mode}}
+
+ Build results for
+ nightly-{{nightly}}, target
+ {{target}} ({{mode}})
+
Home
- {{rustflags}}
diff --git a/templates/index.html b/templates/index.html
index 3b1702a..e6084c0 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -1,4 +1,4 @@
-
+
+ 🔔 does-it-build supports sending notifications to target maintainers via + GitHub issues. You can add yourself with + a PR. 🔔 +
+🔔 does-it-build supports sending notifications to target maintainers via GitHub issues. - You can add yourself with a PR. + You can add yourself with a PR. 🔔
{% if let Some(maintainers) = maintainers %}