From ba53b1e981f4e0d3f1b6be46a3af05835bc65080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Olgu=C3=ADn=20Mu=C3=B1oz?= Date: Sat, 10 Jan 2026 14:59:55 -0800 Subject: [PATCH 1/4] chore: prepare for v1.0.0 --- Cargo.toml | 23 ++++++++++++++--------- Makefile | 15 +++++++++++++++ RELEASE_NOTES | 0 3 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 RELEASE_NOTES diff --git a/Cargo.toml b/Cargo.toml index 996ca0e..f5bb68b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,10 +10,11 @@ exclude = ["integration_tests"] readme = "README.md" [package.metadata.release] +# Settings for cargo release pre-release-commit-message = "Release {{version}}" -tag-prefix = "" -publish = false pre-release-hook = ["git-cliff", "-o", "RELEASE_NOTES", "--tag", "{{version}}"] +publish = false # don't publish automatically +push = false # don't push to the repo automatically [features] default = ["tokio_ecdysis"] @@ -25,8 +26,8 @@ tokio_ecdysis = ["dep:futures", "dep:tokio", "dep:tokio-stream"] [dependencies] bincode = "1.3.3" bytes = "1.6.0" -derive_more = { version = "1.0.0", features = ["from", "display"] } -futures = { version = "0.3", optional = true, features = ["alloc"] } +derive_more = { version = "1.0.0", features = ["display", "from"] } +futures = { version = "0.3", features = ["alloc"], optional = true } log = "0.4" nix = "0.26" os_pipe = "1.1.5" @@ -34,18 +35,22 @@ parking_lot = "0.12" serde = { version = "1", features = ["derive"] } socket2 = "0.5" tempfile = "3.10.1" -tokio = { version = "1.37.0", optional = true, features = ["signal", "macros", "net", "fs"] } -tokio-stream = { version = "0.1", optional = true, features = ["net", "signal", "sync"] } -tokio-util = { version = "0.7", features = ["net", "codec"] } +tokio = { version = "1.37.0", features = ["fs", "macros", "net", "signal"], optional = true } +tokio-stream = { version = "0.1", features = ["net", "signal", "sync"], optional = true } +tokio-util = { version = "0.7", features = ["codec", "net"] } [target.'cfg(target_os = "linux")'.dependencies] tokio-seqpacket = "0.7" [dev-dependencies] env_logger = "0.11" -tokio = { version = "1.37.0", features = ["macros", "rt-multi-thread", "io-util"] } +tokio = { version = "1.37.0", features = [ + "io-util", + "macros", + "rt-multi-thread" +] } waitgroup = "0.1" [[example]] name = "tokio_echo" -required-features = ["tokio_ecdysis", "systemd_sockets"] +required-features = ["systemd_sockets", "tokio_ecdysis"] diff --git a/Makefile b/Makefile index dfdb3c6..8847473 100644 --- a/Makefile +++ b/Makefile @@ -72,3 +72,18 @@ audit: install-release-reqs: $(CARGO) install cargo-release git-cliff +# To create a release, use release- (patch, minor, or major; e.g make release-patch for a +# patch release). By default this only performs a dry run; to actually create a release specify EXECUTE +# = true: make EXECUTE=true release. Once the release has been created, it can be pushed to crates.io +# with push-release: make push-release (also a dry run by default). +# +# NOTE for Cloudflare employees: Warp causes issues when creating a release for crates.io, so make sure +# to disable it temporarily when doing this. +.PHONY: release-% push-release +release-%: EXECUTE ?= false +release-%: install-release-reqs + $(CARGO) release $(if $(filter true,$(EXECUTE)),-x) --no-push $* + +push-release: EXECUTE ?= false +push-release: + $(CARGO) release push $(if $(filter true,$(EXECUTE)),-x) diff --git a/RELEASE_NOTES b/RELEASE_NOTES new file mode 100644 index 0000000..e69de29 From 538d440f8022f04d7c3c476d33ddc278b91aa6a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Olgu=C3=ADn=20Mu=C3=B1oz?= Date: Mon, 12 Jan 2026 09:25:18 -0800 Subject: [PATCH 2/4] chore(clippy): fix clippy lints Generated with clippy --fix --- src/tokio_ecdysis/trigger.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/tokio_ecdysis/trigger.rs b/src/tokio_ecdysis/trigger.rs index a1d1a71..4f9334a 100644 --- a/src/tokio_ecdysis/trigger.rs +++ b/src/tokio_ecdysis/trigger.rs @@ -55,12 +55,10 @@ impl Stream for Trigger { Some(()) => Poll::Ready(Some(Ok(TriggerReason::Signal(*kind)))), }, Self::Uds(path, listener_stream) => match ready!(listener_stream.poll_next_unpin(cx)) { - None => Poll::Ready(Some(Err(io::Error::new( - io::ErrorKind::Other, + None => Poll::Ready(Some(Err(io::Error::other( "Socket shut down unexpectedly.", )))), - Some(Err(e)) => Poll::Ready(Some(Err(io::Error::new( - io::ErrorKind::Other, + Some(Err(e)) => Poll::Ready(Some(Err(io::Error::other( format!("Unexpected error accepting connection on socket: {e}"), )))), Some(Ok(stream)) => { From 5ad671c54433862308a183ba6ca2975b26283ec8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Olgu=C3=ADn=20Mu=C3=B1oz?= Date: Mon, 12 Jan 2026 09:32:21 -0800 Subject: [PATCH 3/4] chore(style): cargo fmt --- src/tokio_ecdysis/trigger.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tokio_ecdysis/trigger.rs b/src/tokio_ecdysis/trigger.rs index 4f9334a..5321aff 100644 --- a/src/tokio_ecdysis/trigger.rs +++ b/src/tokio_ecdysis/trigger.rs @@ -58,9 +58,9 @@ impl Stream for Trigger { None => Poll::Ready(Some(Err(io::Error::other( "Socket shut down unexpectedly.", )))), - Some(Err(e)) => Poll::Ready(Some(Err(io::Error::other( - format!("Unexpected error accepting connection on socket: {e}"), - )))), + Some(Err(e)) => Poll::Ready(Some(Err(io::Error::other(format!( + "Unexpected error accepting connection on socket: {e}" + ))))), Some(Ok(stream)) => { Poll::Ready(Some(Ok(TriggerReason::UnixStream(path.clone(), stream)))) } From c37ac9051c33a58afe053bea66b8065422394363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20Olgu=C3=ADn=20Mu=C3=B1oz?= Date: Mon, 12 Jan 2026 09:36:36 -0800 Subject: [PATCH 4/4] Release 1.0.0 --- Cargo.toml | 2 +- RELEASE_NOTES | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index f5bb68b..d28641a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "ecdysis" description = "A library for graceful restarts in Rust." -version = "1.0.0-final-internal" +version = "1.0.0" authors = ["Argo Smart Routing & Orpheus Team at Cloudflare, Inc."] edition = "2021" license = "Apache-2.0" diff --git a/RELEASE_NOTES b/RELEASE_NOTES index e69de29..88426bd 100644 --- a/RELEASE_NOTES +++ b/RELEASE_NOTES @@ -0,0 +1,11 @@ + +1.0.0 +- 2026-01-12 chore(style): cargo fmt +- 2026-01-12 chore(clippy): fix clippy lints +- 2026-01-10 chore: prepare for v1.0.0 +- 2025-06-05 feat: don't run duplicate jobs on PRs +- 2025-06-05 feat: Github CI pipeline to build and test ecdysis +- 2025-06-05 fix: cargo-sort lint +- 2025-06-05 feat: initial public ecdysis commit + +