Skip to main content

socketry_project/
lib.rs

1// Released under the MIT License.
2// Copyright, 2026, by Samuel Williams.
3
4//! Shared Socketry Rust project conventions and development tasks.
5//!
6//! Add this crate to a private `bake/` package to link the standard project
7//! tasks and their published agent context into a repository.
8use bake::{Context, Result};
9use bake_agent_context as _;
10use bake_cargo as _;
11use bake_license as _;
12use bake_readme as _;
13use bake_releases as _;
14
15/// Refresh the standard project files after a Cargo version bump.
16#[bake::task(name = "cargo:after_version_bump")]
17pub fn after_version_bump(context: &mut Context, version: String) -> Result<()> {
18    context.call("license:update", &[])?;
19    context.call("releases:update", &[&format!("v{version}")])?;
20    context.call("readme:update", &[])?;
21    Ok(())
22}
23
24#[cfg(test)]
25mod tests {
26    use bake::Registry;
27
28    #[test]
29    fn registers_the_project_version_bump_hook() {
30        let registry = Registry::discover().unwrap();
31        assert!(
32            registry
33                .tasks()
34                .any(|task| task.name() == "cargo:after_version_bump")
35        );
36    }
37}