Skip to content

Releases: evlist/codespaces-grafting

Nightly Build (main)

26 Feb 11:14

Choose a tag to compare

Nightly Build (main) Pre-release
Pre-release

Automated nightly pre-release for main.

  • Commit: dd8b0934a7016a92952ccddf0caf83890cfd4974
  • Generated by: Build Plugin ZIP

Release 1.2.1

08 Jan 11:24

Choose a tag to compare

Changes since v1.2.0

Bug Fixes

  • fix(xdebug): Resolve duplicate Xdebug loading in Apache (#10)
    • The php-xdebug package creates a default 20-xdebug.ini with minimal configuration
    • We now override this with our complete configuration instead of creating a second file
    • Eliminates 'Cannot load Xdebug - it was already loaded' warnings in Apache logs

Improvements

  • Fix .devcontainer/sbin/start.sh executable permissions
  • Split bootstrap lifecycle into one-time init and recurring startup

v1.2.0 - Unified Scion Format & Bootstrap Modularization

05 Jan 23:50

Choose a tag to compare

Release v1.2.0

🎯 Major Features

Unified Scion Specification Format

  • Breaking Change: Simplified scion configuration from SCION_ID/SCION_REF to single SCION variable
    • Old format: SCION_ID=owner/repo + SCION_REF=branch
    • New format: SCION=owner/repo@ref
    • Consistent with --scion command-line syntax
    • Supports full URLs: https://github.com/owner/repo/tree/branch

@ref Shortcut Syntax

  • New convenient shortcut for changing scion branch/tag:
    # Instead of typing the full repo path:
    graft export --stock your-repo --scion evlist/codespaces-grafting@main
    
    # Use the shortcut:
    graft export --stock your-repo --scion @main
  • Automatically resolves base repository from .devcontainer/.cs_env.d/graft.local.env
  • Perfect for testing different branches/tags without repetition

Bootstrap Modularization

  • Extracted plugin installation from monolithic bootstrap.sh into 20-plugins.sh
  • Clear separation of concerns and extensibility example
  • Renamed 50.local β†’ 50-plugins.local for consistency

πŸ“š Documentation Improvements

Enhanced FAQ (85+ new lines)

  • Design Philosophy section addressing common concerns:
    • Why file copying is appropriate for devcontainer infrastructure
    • Comparison with git subtree/submodules (with invitation to contribute alternatives)
    • Scope clarification (WordPress β†’ any stack, single container rationale)
  • Customization section with practical examples:
    • How to customize bootstrap process
    • Theme development hook example (25-themes.local.sh)
    • Disabling plugin installation without modifying scion files
    • Custom WP-CLI commands hooks
  • @ref syntax explanation with examples

Bootstrap Customization Guide (MAINTAINER.md)

  • Complete guide for creating custom bootstrap hooks
  • Theme development example with .local.sh suffix
  • Clear distinction between scion-managed and custom hooks
  • Proper disabling techniques without modifying scion files

Updated README

  • Debian-style .d directories explanation
  • .local.sh pattern for upgrade-safe customizations
  • Dual license badges (GPL-3.0-or-later + MIT)

πŸ› Bug Fixes & Improvements

  • Fixed export verb to respect --scion flag (was always using PWD)
  • Corrected documentation inconsistencies:
    • Flag names in MAINTAINER.md
    • Alias names (graft, upgrade-scion, export-scion)
    • File paths and function names
  • Fixed local keyword usage outside function scope in graft.sh
  • Fixed resolve_to_canonical_id() to return owner/repo format

πŸ”§ Technical Details

Migration Guide

If you have an existing stock repository with the old graft.local.env format:

Before (v1.1.0):

SCION_ID=evlist/codespaces-grafting
SCION_REF=stable

After (v1.2.0):

SCION=evlist/codespaces-grafting@stable

The script will continue to work, but regenerated provenance files will use the new format.

Files Changed

  • .devcontainer/.cs_env.d/graft.local.env - Unified format with examples
  • .devcontainer/bin/graft.sh - @ref shortcut support, export verb fix
  • .devcontainer/sbin/bootstrap.sh - Plugin code extracted
  • .devcontainer/sbin/bootstrap.sh.d/20-plugins.sh - New modular plugin hook
  • Documentation files (FAQ.md, MAINTAINER.md, README.md) - Comprehensive updates

πŸ“¦ What's Included

All changes from commits since v1.1.0:

  • docs: modularize bootstrap and clarify .local customization pattern
  • docs(faq): add design philosophy and scope clarification
  • docs: split dual-license badge into separate GPL and MIT badges
  • feat: unify scion specification format and add @ref shortcut

πŸ™ Contributors

Thanks to all who contributed ideas and feedback during this development cycle!


Full Changelog: v1.1.0...v1.2.0

v1.1.0 - Debian-style Configuration Management

05 Jan 17:42

Choose a tag to compare

Major Changes

Configuration Management

  • Debian .d convention: .cs_env.d/ and bootstrap.sh.d/ for modular configuration
  • Provenance tracking: Replaced JSON with graft.local.env (follows *.local.* convention)
  • Stock-specific files: Consistent *.local and *.local.* exclusion pattern

Terminology & Documentation

  • Standardized terminology: scion (new/previous) instead of upstream/baseline (Debian dpkg model)
  • Comprehensive FAQ: 33 Q&A covering installation, troubleshooting, design decisions
  • Updated READMEs: Clear .vscode structure, file replacement semantics, cross-references
  • Accurate MAINTAINER.md: Corrected flags, removed outdated sections

Script Improvements

  • State-based checks: Replaced first-run detection with .gitignore/README verification
  • Canonical ID resolution: Local paths automatically resolved to GitHub IDs
  • Bug fixes: Removed invalid local outside function, corrected resolve_to_canonical_id

Aliases

  • New aliases: graft, upgrade-scion, export-scion
  • Defined in bootstrap.sh.d/10-aliases.sh

Breaking Changes

  • Environment files moved from root to .devcontainer/.cs_env and .cs_env.d/
  • Bootstrap hooks now in bootstrap.sh.d/ instead of single script
  • Provenance file changed from .graft.json to .cs_env.d/graft.local.env

Full changelog: 19ff52e...v1.1.0

v1.0

31 Dec 13:59

Choose a tag to compare

Release v1.0: first release...