Skip to content

Commit dd72cee

Browse files
committed
build: bump MSRV to 1.88, update Dockerfile and CI
rmcp-macros 1.5.0 (transitive dep via rmcp 1.4.0) requires darling 0.23.0 which sets rust-version = "1.88". Update all MSRV references accordingly.
1 parent ce21605 commit dd72cee

3 files changed

Lines changed: 20 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
- os: ubuntu-latest
6262
rust: beta
6363
- os: ubuntu-latest
64-
rust: "1.85" # MSRV
64+
rust: "1.88" # MSRV
6565
steps:
6666
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # actions/checkout v6
6767
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # dtolnay/rust-toolchain master

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ resolver = "2"
55
[workspace.package]
66
version = "0.3.6"
77
edition = "2024"
8-
rust-version = "1.85"
8+
rust-version = "1.88"
99
authors = ["Andrei G. <k05h31@gmail.com>"]
1010
license = "MIT OR Apache-2.0"
1111
repository = "https://github.com/bug-ops/mcpls"

Dockerfile

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,45 @@
11
# Multi-stage build for mcpls
2-
# Build stage uses rust:1.85-slim, runtime uses debian:bookworm-slim
2+
# Build stage uses rust:1.88-slim, runtime uses debian:bookworm-slim
33

44
# Build stage
5-
FROM rust:1.85-slim as builder
5+
FROM rust:1.88-slim AS builder
66

77
WORKDIR /app
88

9-
# Copy workspace files
9+
# Cache dependencies separately from source code.
10+
# Copy manifests first, build a dummy main to populate the registry cache,
11+
# then overwrite with real sources. This layer is invalidated only when
12+
# Cargo.toml or Cargo.lock changes.
1013
COPY Cargo.toml Cargo.lock ./
14+
COPY crates/mcpls-core/Cargo.toml ./crates/mcpls-core/
15+
COPY crates/mcpls-cli/Cargo.toml ./crates/mcpls-cli/
16+
RUN mkdir -p crates/mcpls-core/src crates/mcpls-cli/src && \
17+
echo "pub fn main() {}" > crates/mcpls-core/src/lib.rs && \
18+
echo "fn main() {}" > crates/mcpls-cli/src/main.rs && \
19+
cargo build --release --package mcpls && \
20+
rm -rf crates/mcpls-core/src crates/mcpls-cli/src
21+
22+
# Now copy real sources and rebuild only the changed crates
1123
COPY crates/ ./crates/
12-
13-
# Build release binary
1424
RUN cargo build --release --package mcpls
1525

1626
# Runtime stage
1727
FROM debian:bookworm-slim
1828

19-
# Install runtime dependencies (CA certificates for HTTPS)
2029
RUN apt-get update && apt-get install -y \
2130
ca-certificates \
2231
&& rm -rf /var/lib/apt/lists/*
2332

24-
# Copy only the binary from builder stage
2533
COPY --from=builder /app/target/release/mcpls /usr/local/bin/mcpls
2634

27-
# Create config directory
28-
RUN mkdir -p /etc/mcpls
35+
RUN mkdir -p /etc/mcpls && \
36+
useradd -m -u 1000 mcpls && \
37+
chown mcpls:mcpls /etc/mcpls
2938

30-
# Set default environment variables
3139
ENV MCPLS_CONFIG=/etc/mcpls/mcpls.toml
3240
ENV MCPLS_LOG=info
3341

34-
# Run as non-root user for security
35-
RUN useradd -m -u 1000 mcpls && \
36-
chown -R mcpls:mcpls /etc/mcpls
37-
3842
USER mcpls
3943
WORKDIR /home/mcpls
4044

4145
ENTRYPOINT ["mcpls"]
42-
CMD []

0 commit comments

Comments
 (0)