Skip to content

0.6.0

Choose a tag to compare

@github-actions github-actions released this 19 Jan 11:15
· 5 commits to main since this release

RollDev 0.6.0 Release Notes

✨ New Features

🔄 Traefik v3 Compatibility

RollDev now fully supports Traefik v3 with updated routing syntax across all environments.
Subdomains routing now works correctly with the latest Traefik version.

Highlights:

  • Updated HostRegexp Syntax: Migrated from Traefik v2 {subdomain:.+} to v3 regex format
  • All Environments Updated: nginx, varnish, magento2, and multistore configurations
  • Seamless Upgrade: Just restart your environment to apply new routing rules

Breaking Change:

If you have custom .roll/roll-env.yml files with HostRegexp rules, update them:

# Old (Traefik v2) - no longer works
HostRegexp(`{subdomain:.+}.domain.test`)

# New (Traefik v3) - use this format
HostRegexp(`^.+\.domain\.test$$`)

🔍 Verbose Mode for Restore Commands

Both restore and restore-full commands now support --verbose / -v flag for detailed debugging output. Perfect for troubleshooting restore issues.

Highlights:

  • Detailed Logging: See exactly what's happening at each step
  • Debug Information: Volume mappings, file paths, Docker commands
  • Error Tracing: Easily identify where issues occur

Usage:

roll restore --verbose
roll restore --verbose 1737123456

roll restore-full -v backup.tar.gz /path/to/project
roll restore-full --verbose --force backup.tar.gz /path/to/project

🔐 Automatic SSL Certificate Signing on Restore

The restore and restore-full commands now automatically sign SSL certificates for the environment domain after a successful restore. No more manual certificate signing!

Highlights:

  • Auto-Detect Domain: Uses TRAEFIK_DOMAIN from restored configuration
  • Wildcard Support: Signs both domain.test and *.domain.test certificates
  • Traefik Reload: Automatically regenerates traefik config and restarts

What happens automatically:

roll restore-full backup.tar.gz /path/to/project

# After restore completes, RollDev automatically:
# 1. Signs certificate for project.test
# 2. Signs certificate for *.project.test
# 3. Regenerates traefik dynamic.yml
# 4. Restarts traefik to load new certificates

📚 Enhanced Multi-Store Documentation

Added comprehensive documentation for the multistore command in Magento 2 environments.

Highlights:

  • Help Integration: multistore now shows in roll --help for Magento 2 projects
  • Full Documentation: New "Multi-Store Configuration" section in Magento 2 docs
  • Quick Start Guide: Step-by-step setup with examples
  • Troubleshooting: Common issues and solutions

🐛 Bug Fixes

Fixed restore-full Command Failing on First-Time Restore

The restore-full command was silently exiting when restoring to a new/empty directory on Linux (Ubuntu).

Root Causes Fixed:

  • Arithmetic Exit: ((var++)) returns 0 when variable is 0, causing set -e to exit. Changed to var=$((var + 1))
  • Missing Config Handling: stopEnvironment() now handles missing .env.roll gracefully instead of calling roll env commands that fail

Fixed Help Flag Handling

Commands with arguments now properly support the --help flag.

Silenced macOS Extended Attribute Warnings

Suppressed the LIBARCHIVE.xattr.com.apple.provenance warnings that appeared on Linux when extracting backups created on macOS:

# Before: Spammed console with warnings
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance'
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance'
...

# After: Clean output
INFO: Extracting backup archive...
SUCCESS: Backup extracted

📝 Files Updated for Traefik v3

File Change
environments/includes/nginx.base.yml Updated HostRegexp syntax
environments/includes/varnish.base.yml Updated HostRegexp syntax
environments/magento2/magento2.base.yml Updated HostRegexp syntax
commands/multistore.cmd Updated dynamic rule generation
docs/configuration/multipledomains.md Updated examples

🚀 Upgrade Instructions

  1. Update RollDev:

    brew upgrade dockergiant/roll/roll
    # or pull latest if installed from source
  2. Restart global services (gets Traefik v3):

    roll svc down
    roll svc up
  3. For each project, restart to apply new routing:

    cd /path/to/project
    roll env down
    roll env up
  4. If using multistore, regenerate configuration:

    roll multistore refresh
    roll env restart nginx

🎯 Benefits

  • Traefik v3 Ready: Full compatibility with latest Traefik version
  • Better Debugging: Verbose mode makes troubleshooting restores easy
  • Smoother Restores: SSL certificates handled automatically
  • Cross-Platform: Fixed restore issues on Linux/Ubuntu

Full Changelog: 0.5.2...0.6.0


v0.6.0 • Traefik v3 + Smoother Restores! 🔄🔐