Skip to content

Migration Guide

Migrating from legacy scripts and tools to Core CLI.

From push-all.sh

The push-all.sh script has been replaced by core dev commands.

LegacyCore CLINotes
./push-all.sh --statuscore dev work --statusStatus table
./push-all.sh --commitcore dev commitCommit dirty repos
./push-all.shcore dev workFull workflow

Quick Migration

bash
# Instead of
./push-all.sh --status

# Use
core dev work --status

New Features

Core CLI adds features not available in the legacy script:

bash
# Quick health summary
core dev health
# Output: "18 repos │ clean │ synced"

# Pull repos that are behind
core dev pull

# GitHub integration
core dev issues      # List open issues
core dev reviews     # List PRs needing review
core dev ci          # Check CI status

# Dependency analysis
core dev impact core-php  # What depends on core-php?

From Raw Go Commands

Core wraps Go commands with enhanced defaults and output.

Raw CommandCore CLIBenefits
go test ./...core go testFilters warnings, sets CGO_ENABLED=0
go test -coverprofile=...core go covHTML reports, thresholds
gofmt -w .core go fmt --fixUses goimports if available
golangci-lint runcore go lintConsistent interface
go buildcore buildCross-compile, sign, archive

Why Use Core?

bash
# Raw go test shows linker warnings on macOS
go test ./...
# ld: warning: -no_pie is deprecated...

# Core filters noise
core go test
# PASS (clean output)

Environment Setup

Core automatically sets:

  • CGO_ENABLED=0 - Static binaries
  • MACOSX_DEPLOYMENT_TARGET=26.0 - Suppress macOS warnings
  • Colour output for coverage reports

From Raw PHP Commands

Core orchestrates Laravel development services.

Raw CommandCore CLIBenefits
php artisan servecore php devAdds Vite, Horizon, Reverb, Redis
./vendor/bin/pestcore php testAuto-detects test runner
./vendor/bin/pintcore php fmt --fixConsistent interface
Manual Coolify deploycore php deployTracked, scriptable

Development Server Comparison

bash
# Raw: Start each service manually
php artisan serve &
npm run dev &
php artisan horizon &
php artisan reverb:start &

# Core: One command
core php dev
# Starts all services, shows unified logs

From goreleaser

Core's release system is simpler than goreleaser for host-uk projects.

goreleaserCore CLI
.goreleaser.yaml.core/release.yaml
goreleaser release --snapshotcore ci (dry-run)
goreleaser releasecore ci --we-are-go-for-launch

Configuration Migration

goreleaser:

yaml
builds:
  - main: ./cmd/app
    goos: [linux, darwin, windows]
    goarch: [amd64, arm64]

archives:
  - format: tar.gz
    files: [LICENSE, README.md]

release:
  github:
    owner: host-uk
    name: app

Core:

yaml
version: 1

project:
  name: app
  repository: host-uk/app

targets:
  - os: linux
    arch: amd64
  - os: darwin
    arch: arm64

publishers:
  - type: github

Key Differences

  1. Separate build and release - Core separates core build from core ci
  2. Safe by default - core ci is dry-run unless --we-are-go-for-launch
  3. Simpler config - Fewer options, sensible defaults

From Manual Git Operations

Core automates multi-repo git workflows.

ManualCore CLI
cd repo1 && git status && cd ../repo2 && ...core dev work --status
Check each repo for uncommitted changescore dev health
Commit each repo individuallycore dev commit
Push each repo individuallycore dev push

Example: Committing Across Repos

Manual:

bash
cd core-php
git add -A
git commit -m "feat: add feature"
cd ../core-tenant
git add -A
git commit -m "feat: use new feature"
# ... repeat for each repo

Core:

bash
core dev commit
# Interactive: reviews changes, suggests messages
# Adds Co-Authored-By automatically

Deprecated Commands

These commands have been removed or renamed:

DeprecatedReplacementVersion
core sdk generatecore build sdkv0.5.0
core dev task*core ai task*v0.8.0
core releasecore civ0.6.0

Version Compatibility

Core VersionGo VersionBreaking Changes
v1.0.0+1.23+Stable API
v0.8.01.22+Task commands moved to ai
v0.6.01.22+Release command renamed to ci
v0.5.01.21+SDK generation moved to build sdk

Getting Help

If you encounter issues during migration:

  1. Check Troubleshooting
  2. Run core doctor to verify setup
  3. Use --help on any command: core dev work --help

See Also

Released under the EUPL-1.2 License.