Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: evlist/codespaces-grafting
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.1.0
Choose a base ref
...
head repository: evlist/codespaces-grafting
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.2.0
Choose a head ref
  • 5 commits
  • 10 files changed
  • 1 contributor

Commits on Jan 5, 2026

  1. Add visibility improvements: CONTRIBUTING.md, badges, support section

    - Create CONTRIBUTING.md with clear contribution guidelines
    - Add badges to README: release version, license, Codespaces
    - Add Support & Community section linking to FAQ, Issues, Discussions
    - Topics can be added manually via GitHub repo settings:
      github-codespaces, devcontainer, wordpress, template, devops, bash
    evlist committed Jan 5, 2026
    Configuration menu
    Copy the full SHA
    ce1b24b View commit details
    Browse the repository at this point in the history
  2. docs: modularize bootstrap and clarify .local customization pattern

    - Extract plugin installation from bootstrap.sh to 20-plugins.sh
      * Provides clear separation of concerns
      * Serves as example for custom hooks (themes, content import)
      * Includes comprehensive documentation in header comments
    
    - Add 'Customization' section to FAQ with 4 new Q&A:
      * How to customize bootstrap process (environment + hooks)
      * How to test themes instead of plugins (25-themes.local.sh example)
      * How to skip plugin installation (empty variables, not file deletion)
      * How to add custom WP-CLI commands (40-custom.local.sh pattern)
    
    - Add 'Bootstrap customization' section to MAINTAINER.md:
      * Guide for creating custom bootstrap hooks
      * Theme development hook example with .local.sh suffix
      * Clarify scion-managed vs custom hooks distinction
      * Explain proper way to disable hooks without modifying scion files
    
    - Update README files to highlight modular .d pattern:
      * Emphasize .local.sh suffix for upgrade-safe customizations
      * Show bootstrap.sh.d/ structure with existing hooks
      * Link to FAQ customization section
    
    - Rename 50.local → 50-plugins.local for naming consistency
    
    Key principle: Files with .local or .local.* suffix are excluded from
    sync during upgrades, enabling safe customization without forking.
    evlist committed Jan 5, 2026
    Configuration menu
    Copy the full SHA
    5d13eb2 View commit details
    Browse the repository at this point in the history
  3. docs(faq): add design philosophy and scope clarification

    Add new Q&A in Design Decisions section to address common concerns:
    
    - 'Wait, copying files is a terrible pattern?'
      * Explains why file copying is standard for infrastructure (apt, Docker, OS installs)
      * Justifies approach for Codespaces as VM configuration
      * Details Debian-inspired semantics (*.local.*, 3-way merge, dry-run)
      * Analogy: 'apt install devcontainer' vs 'npm install library'
    
    - 'Shouldn't we use git subtree or submodules?'
      * Lists trade-offs (complexity, merge conflicts, history pollution)
      * Explains benefits of current approach (simplicity, transparency)
      * Invites community to propose alternatives via Discussion/Issues
    
    - 'Is this specific to testing WP plugins?'
      * Clarifies adaptability to themes, WP core, WP-CLI
      * Links to Customization section
    
    - 'Is this specific to WordPress, LAMP, or PHP?'
      * Distinguishes generic pattern from current LAMP+WP implementation
      * Encourages forks for other stacks (Node.js, Python, PostgreSQL, etc.)
    
    - 'Why a single container instead of separate containers?'
      * Justifies simplicity for development vs production isolation
      * Lists advantages (direct access, simple debugging, fast startup)
      * References early multi-container attempts in commit history
      * Clear position: multi-container for prod, simplicity for dev
    
    These additions preemptively address philosophical objections and clarify
    the project's scope and extensibility.
    evlist committed Jan 5, 2026
    Configuration menu
    Copy the full SHA
    858382a View commit details
    Browse the repository at this point in the history
  4. docs: split dual-license badge into separate GPL and MIT badges

    Replace single combined license badge with two distinct badges:
    - License: GPL-3.0-or-later (links to LICENSES/GPL-3.0-or-later.txt)
    - License: MIT (links to LICENSES/MIT.txt)
    
    This makes the dual-licensing more visible and allows users to click
    directly on the license they want to review.
    evlist committed Jan 5, 2026
    Configuration menu
    Copy the full SHA
    9faa90a View commit details
    Browse the repository at this point in the history
  5. feat: unify scion specification format and add @ref shortcut

    Simplify and unify scion specification across the codebase:
    
    - Replace SCION_ID/SCION_REF with single SCION variable
      * Format: owner/repo@ref or full URL
      * Examples: evlist/codespaces-grafting@stable, @main
      * Consistent with parse_repo_spec() input format
    
    - Add --scion @ref shortcut syntax:
      * @main resolves to default_scion@main
      * @v1.0.0 resolves to default_scion@v1.0.0
      * Base repo read from .devcontainer/.cs_env.d/graft.local.env
      * Useful for testing different branches without retyping full repo
    
    - Update graft.local.env format:
      * Before: SCION_ID=owner/repo + SCION_REF=branch (split)
      * After: SCION=owner/repo@ref (unified)
      * Includes examples and format documentation
    
    - Fix export verb to respect --scion flag:
      * Was always using PWD, now checks if SCION_SPEC provided first
      * Enables: graft export --stock repo --scion @main
    
    - Update FAQ documentation:
      * New Q&A explaining --scion @ref syntax
      * Updated downgrade/version example with SCION format
      * Examples for all three syntaxes (@ref, owner/repo@ref, URL)
    
    Tests validated:
    - export without --scion (uses default from graft.local.env)
    - export with --scion owner/repo@ref (full spec)
    - export with --scion @main (shortcut resolves correctly)
    - upgrade with --scion @main (changes ref from stable to main)
    evlist committed Jan 5, 2026
    Configuration menu
    Copy the full SHA
    6b5fa9e View commit details
    Browse the repository at this point in the history
Loading