diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 86e2470530..5cfc39b2c6 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -24,7 +24,7 @@ changelog = "none" reason = "Internal change only." ``` -Allowed scopes: rpc, protocol, docs, node, network-monitor, ntx-builder, prover, validator, internal, general +Allowed scopes: rpc, protocol, docs, node, note-transport, network-monitor, ntx-builder, prover, validator, internal, general Allowed impacts: breaking, migration, added, changed, fixed, removed, deprecated --> diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 47d5aaf598..25acef9cf6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -195,10 +195,18 @@ jobs: context: . push: false file: ./Dockerfile - target: builder + target: build-report platforms: ${{ matrix.platform }} profile-name: ${{ vars.WARPBUILD_DOCKER_BUILDER_PROFILE }} pull: true + outputs: type=local,dest=${{ runner.temp }}/kache-report + + - name: Add Kache cache summary + run: | + { + echo "## ${{ matrix.platform }}" + cat "${RUNNER_TEMP}/kache-report/kache-report.md" + } >> "${GITHUB_STEP_SUMMARY}" dry-run-docker: name: Validate ${{ matrix.component }} image diff --git a/Cargo.lock b/Cargo.lock index 798db03525..ad515b70d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4468,6 +4468,10 @@ dependencies = [ "url", ] +[[package]] +name = "miden-note-transport" +version = "0.16.0-rc.5" + [[package]] name = "miden-note-transport-proto" version = "0.5.0-rc.2" diff --git a/Cargo.toml b/Cargo.toml index ba7a1078f7..d42084b92f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ members = [ "bin/large-account-benchmark", "bin/network-monitor", "bin/node", + "bin/note-transport", "bin/ntx-builder", "bin/remote-prover", "bin/stress-test", diff --git a/Dockerfile b/Dockerfile index 1f1683ccfb..b0ed2d5291 100644 --- a/Dockerfile +++ b/Dockerfile @@ -105,6 +105,7 @@ RUN --mount=type=cache,sharing=locked,id=cargo-registry-${TARGETARCH},target=/us cargo build --release --locked --jobs "${JOBS}" \ --bin miden-node \ --bin miden-validator \ + --bin miden-note-transport \ --bin miden-ntx-builder \ --bin miden-network-monitor \ --bin miden-remote-prover \ @@ -112,14 +113,20 @@ RUN --mount=type=cache,sharing=locked,id=cargo-registry-${TARGETARCH},target=/us mkdir -p /app/bin && \ cp /app/target/release/miden-node \ /app/target/release/miden-validator \ + /app/target/release/miden-note-transport \ /app/target/release/miden-ntx-builder \ /app/target/release/miden-network-monitor \ /app/target/release/miden-remote-prover \ /app/target/release/miden-benchmark \ /app/bin/ && \ + kache stats && \ + kache report --format github --output /app/kache-report.md && \ rm -rf /app/target && \ kache gc +FROM scratch AS build-report +COPY --from=builder /app/kache-report.md /kache-report.md + # Baseline runtime image with runtime dependencies installed. FROM debian:${DEBIAN_RELEASE}-slim AS runtime-base RUN apt-get update && \ diff --git a/Makefile b/Makefile index 6719ff9cdf..debd86ef44 100644 --- a/Makefile +++ b/Makefile @@ -149,6 +149,10 @@ install-node: ## Installs node install-validator: ## Installs validator cargo install --path bin/validator --locked +.PHONY: install-note-transport +install-note-transport: ## Installs note transport + cargo install --path bin/note-transport --locked + .PHONY: install-ntx-builder install-ntx-builder: ## Installs ntx-builder cargo install --path bin/ntx-builder --locked @@ -206,7 +210,14 @@ local-network-logs: ## Follows logs for the local development network $(DOCKER_COMMAND) compose $(COMPOSE_OVERRIDE_ARGS) $(COMPOSE_PROFILE_ARGS) logs -f .PHONY: docker-build -docker-build: docker-build-node docker-build-validator docker-build-ntx-builder docker-build-monitor docker-build-remote-prover docker-build-benchmark ## Builds all Docker images +docker-build: ## Builds all Docker images +docker-build: docker-build-node \ + docker-build-validator \ + docker-build-note-transport \ + docker-build-ntx-builder \ + docker-build-monitor \ + docker-build-remote-prover \ + docker-build-benchmark .PHONY: docker-build-node docker-build-node: ## Builds the Miden node using Docker @@ -234,6 +245,20 @@ docker-build-validator: ## Builds the Miden validator using Docker --build-arg PORT=50101 \ -t miden-validator . +.PHONY: docker-build-note-transport +docker-build-note-transport: ## Builds the Miden note transport service using Docker + @CREATED=$$(date -u +'%Y-%m-%dT%H:%M:%SZ') && \ + VERSION="$(DOCKER_VERSION)" && \ + COMMIT=$$(git rev-parse HEAD) && \ + $(DOCKER_COMMAND) build $(DOCKER_PULL_ARG) $(DOCKER_PLATFORM_ARG) \ + --build-arg CREATED="$$CREATED" \ + --build-arg VERSION="$$VERSION" \ + --build-arg COMMIT="$$COMMIT" \ + --build-arg BUILDER="$(DOCKER_BUILDER)" \ + --build-arg BIN=miden-note-transport \ + --build-arg PORT=57292 \ + -t miden-note-transport . + .PHONY: docker-build-ntx-builder docker-build-ntx-builder: ## Builds the Miden network transaction builder using Docker @CREATED=$$(date -u +'%Y-%m-%dT%H:%M:%SZ') && \ diff --git a/bin/note-transport/Cargo.toml b/bin/note-transport/Cargo.toml new file mode 100644 index 0000000000..3e40aa4aec --- /dev/null +++ b/bin/note-transport/Cargo.toml @@ -0,0 +1,15 @@ +[package] +authors.workspace = true +description = "Miden Note Transport Service" +edition.workspace = true +homepage.workspace = true +keywords = ["messaging", "miden"] +license.workspace = true +name = "miden-note-transport" +readme.workspace = true +repository.workspace = true +rust-version.workspace = true +version.workspace = true + +[lints] +workspace = true diff --git a/bin/note-transport/src/main.rs b/bin/note-transport/src/main.rs new file mode 100644 index 0000000000..f328e4d9d0 --- /dev/null +++ b/bin/note-transport/src/main.rs @@ -0,0 +1 @@ +fn main() {} diff --git a/scripts/publish-crates.sh b/scripts/publish-crates.sh deleted file mode 100755 index 29ae1c3634..0000000000 --- a/scripts/publish-crates.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh - -# Script to publish all miden-node crates to crates.io. -# Usage: ./publish-crates.sh [args] -# -# E.G: ./publish-crates.sh -# ./publish-crates.sh --dry-run - -set -e - -# Check -credentials=~/.cargo/credentials.toml -if [ ! -f "$credentials" ]; then - red="\033[0;31m" - echo "${red}WARNING: $credentials not found. See https://doc.rust-lang.org/cargo/reference/publishing.html." - echo "\033[0m" -fi - -# Checkout -echo "Checking out main branch..." -git checkout main -git pull origin main - -# Publish -echo "Publishing crates..." -crates=( -miden-node-utils -miden-node-proto-build -miden-node-proto -miden-node-store -miden-remote-prover -miden-node-block-producer -miden-node-rpc -miden-node -miden-network-monitor -miden-ntx-builder -miden-validator -) -for crate in ${crates[@]}; do - echo "Publishing $crate..." - cargo publish -p "$crate" $@ -done diff --git a/xtask/src/changelog.rs b/xtask/src/changelog.rs index 85d3ddf5d0..85104f57c1 100644 --- a/xtask/src/changelog.rs +++ b/xtask/src/changelog.rs @@ -36,6 +36,7 @@ enum Scope { Protocol, Docs, Node, + NoteTransport, NetworkMonitor, NtxBuilder, Prover, diff --git a/xtask/src/changelog/render.rs b/xtask/src/changelog/render.rs index 98953cf012..47439dcfbe 100644 --- a/xtask/src/changelog/render.rs +++ b/xtask/src/changelog/render.rs @@ -108,7 +108,7 @@ fn append_callout_entry(notes: &mut String, entry: &ReleaseNoteEntry) { } impl Scope { - const fn sort_order() -> [Self; 10] { + const fn sort_order() -> [Self; 11] { [ Self::General, Self::Protocol, @@ -117,6 +117,7 @@ impl Scope { Self::Prover, Self::NtxBuilder, Self::Validator, + Self::NoteTransport, Self::NetworkMonitor, Self::Docs, Self::Internal, @@ -134,6 +135,7 @@ impl std::fmt::Display for Scope { Self::Prover => "Prover", Self::NtxBuilder => "NTX Builder", Self::Validator => "Validator", + Self::NoteTransport => "Note Transport", Self::NetworkMonitor => "Network Monitor", Self::Docs => "Docs", Self::Internal => "Internal", @@ -173,7 +175,7 @@ impl std::fmt::Display for Impact { } } -const SCOPE_ORDER: [Scope; 10] = Scope::sort_order(); +const SCOPE_ORDER: [Scope; 11] = Scope::sort_order(); #[cfg(test)] mod tests { diff --git a/xtask/src/changelog/tests.rs b/xtask/src/changelog/tests.rs index c78ddfb989..3686d312f7 100644 --- a/xtask/src/changelog/tests.rs +++ b/xtask/src/changelog/tests.rs @@ -106,6 +106,19 @@ description = "Fixed release automation metadata." verify_pr_body(&body).unwrap(); } +#[test] +fn accepts_note_transport_scope() { + let body = valid_body( + r#"[[entry]] +scope = "note-transport" +impact = "added" +description = "Added the note transport service." +"#, + ); + + verify_pr_body(&body).unwrap(); +} + #[test] fn accepts_no_changelog_marker() { let body = valid_body(