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
Notes
This container becomes the canonical development environment for Renderflow.
Future CI pipelines should mirror this setup.
Title: 🐳 Create devcontainer with pinned toolchain and document build dependencies
Description
Create a fully reproducible development environment using a Dev Container.
The environment should:
This ensures consistent development across:
Goals
Requirements
1. DevContainer Structure
Create:
2. Base Image
Use Ubuntu-based image:
3. System Dependencies (APT)
Install required tools:
Version Pinning
4. Rust Toolchain Installation
Install Rust using rustup:
Requirements
rustccargo5. Additional Tooling
Install:
cross(optional but recommended)cargo-watch(optional for dev UX)6. Taskfile Dependency
Install Taskfile:
7. Environment Configuration
Ensure:
$HOME/.cargo/binin PATH8. DevContainer Configuration
In
devcontainer.json:9. Validation
Ensure the following work inside container:
cargo build cargo run -- build cargo test pandoc --version task --version10. Copilot Guidance
Acceptance Criteria
Notes
This container becomes the canonical development environment for Renderflow.
Future CI pipelines should mirror this setup.