Skip to content

🐳 Add devcontainer with pinned Rust toolchain and build dependencies#73

Merged
szmyty merged 2 commits intomainfrom
copilot/create-devcontainer-with-pinned-toolchain
Mar 23, 2026
Merged

🐳 Add devcontainer with pinned Rust toolchain and build dependencies#73
szmyty merged 2 commits intomainfrom
copilot/create-devcontainer-with-pinned-toolchain

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 23, 2026

Adds a fully reproducible Dev Container so contributors can start working immediately with zero manual setup — locally, in Codespaces, or in CI.

.devcontainer/Dockerfile

  • Base: mcr.microsoft.com/devcontainers/base:ubuntu
  • APT: pandoc, curl, git, build-essential, pkg-config, libssl-dev, ca-certificates
  • Rust: stable toolchain via rustup, installed system-wide (/usr/local) with RUSTUP_HOME/CARGO_HOME/PATH via ENV
  • Cargo tools: cross and cargo-watch (both --locked)
  • Taskfile: v3.43.3 downloaded directly from the GitHub releases tarball (avoids executing a remote shell script)

.devcontainer/devcontainer.json

  • Workspace mount targets /workspaces/renderflow
  • Shell via terminal.integrated.defaultProfile.linux: "bash" (non-deprecated)
  • Extensions: rust-analyzer, even-better-toml, vscode-docker
  • postCreateCommand: "cargo fetch" pre-warms the dependency cache
  • remoteUser: "vscode" aligned with the base image default

The following commands work out-of-the-box inside the container:

cargo build
cargo run -- build
cargo test
pandoc --version
task --version
Original prompt

This section details on the original issue you should resolve

<issue_title>🐳 Create devcontainer with pinned toolchain and document build dependencies</issue_title>
<issue_description>### Title: 🐳 Create devcontainer with pinned toolchain and document build dependencies


Description

Create a fully reproducible development environment using a Dev Container.

The environment should:

  • start from Ubuntu
  • install all required system dependencies
  • install Rust toolchain (pinned)
  • install Pandoc and document toolchain dependencies
  • support immediate development with zero manual setup

This ensures consistent development across:

  • local machines
  • GitHub Codespaces
  • CI environments

Goals

  • Provide a “ready-to-go” development environment
  • Eliminate environment drift
  • Pin versions for reproducibility
  • Align local and CI environments

Requirements


1. DevContainer Structure

Create:

.devcontainer/
  devcontainer.json
  Dockerfile

2. Base Image

Use Ubuntu-based image:

mcr.microsoft.com/devcontainers/base:ubuntu

3. System Dependencies (APT)

Install required tools:

  • pandoc
  • curl
  • git
  • build-essential
  • pkg-config
  • libssl-dev
  • ca-certificates

Version Pinning

  • Pin APT packages where possible
  • Use explicit versions OR document exact versions installed

4. Rust Toolchain Installation

Install Rust using rustup:

  • install rustup via script
  • install stable toolchain
  • optionally pin toolchain version

Requirements

  • install rustc
  • install cargo
  • configure environment:
source "$HOME/.cargo/env"

5. Additional Tooling

Install:

  • cross (optional but recommended)
  • cargo-watch (optional for dev UX)

6. Taskfile Dependency

Install Taskfile:

  • download from official release
  • pin version using specific release URL or SHA

7. Environment Configuration

Ensure:

  • $HOME/.cargo/bin in PATH
  • working directory is project root
  • shell is bash

8. DevContainer Configuration

In devcontainer.json:

  • mount workspace
  • set default shell
  • enable extensions (optional)

9. Validation

Ensure the following work inside container:

cargo build
cargo run -- build
cargo test
pandoc --version
task --version

10. Copilot Guidance

  • Prefer deterministic installs
  • Pin versions where feasible
  • Keep Dockerfile readable
  • Avoid unnecessary layers or complexity
  • Ensure fast rebuild times

Acceptance Criteria

  • DevContainer builds successfully
  • All dependencies installed correctly
  • Rust toolchain available
  • Pandoc available
  • Taskfile installed
  • Project builds inside container
  • CLI runs successfully
  • Environment is reproducible

Notes

This container becomes the canonical development environment for Renderflow.

Future CI pipelines should mirror this setup.
</issue_description>

Comments on the Issue (you are @copilot in this section)


📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Copilot AI changed the title [WIP] Create devcontainer with pinned toolchain and document build dependencies 🐳 Add devcontainer with pinned Rust toolchain and build dependencies Mar 23, 2026
Copilot AI requested a review from szmyty March 23, 2026 16:59
@szmyty szmyty marked this pull request as ready for review March 23, 2026 17:27
@szmyty szmyty merged commit 91e1e39 into main Mar 23, 2026
@szmyty szmyty deleted the copilot/create-devcontainer-with-pinned-toolchain branch March 23, 2026 17:27
@devactivity-app
Copy link
Copy Markdown

Pull Request Summary by devActivity

Metrics

Cycle Time: 33m Coding Time: < 1 min Pickup Time: 28m Review Time: < 1 min

Achievements

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐳 Create devcontainer with pinned toolchain and document build dependencies

2 participants