Skip to content

Applying Upstream Updates

After running composer create-project, your application is an independent Git repository with no connection to the starter. When the starter ships fixes or new features, you can optionally cherry-pick those commits into your project.

The starter:check command compares the version in your .starter-version.yaml file against GitHub releases and notifies you when newer versions exist. It runs automatically during composer install and composer update in local environments, so you’ll be notified without any extra effort.

If you want to check manually:

Terminal window
php artisan starter:check

When updates are available, the command shows each release with its date, a link to the release notes, and a comparison URL so you can review what changed.

Add the starter as a Git remote (one-time):

Terminal window
git remote add starter https://github.com/NIT-Administrative-Systems/northwestern-laravel-starter.git
git fetch starter
  1. Fetch the latest starter commits

    Terminal window
    git fetch starter
  2. Review what’s changed

    Browse the starter’s commit log to find the commits you want:

    Terminal window
    git log starter/main --oneline
  3. Cherry-pick specific commits

    Apply individual commits to your current branch:

    Terminal window
    git cherry-pick <commit-hash>

    Or apply a range of commits:

    Terminal window
    git cherry-pick <oldest-hash>^..<newest-hash>
  4. Resolve any conflicts

    If the cherry-pick encounters conflicts (because your project has diverged), Git will pause and let you resolve them:

    Terminal window
    # Review conflicts
    git status
    # Fix conflicting files, then continue
    git add .
    git cherry-pick --continue

    If a commit doesn’t apply cleanly and isn’t worth the effort, you can skip it:

    Terminal window
    git cherry-pick --abort
  • Review the release notes first. The comparison URL from starter:check shows exactly what changed. Some commits may depend on others or require configuration changes.
  • Cherry-pick in order when applying multiple related commits. Applying them out of sequence increases the likelihood of conflicts.
  • Update .starter-version.yaml after you’re done so starter:check stops notifying you about releases you’ve already handled.

If you prefer not to add the starter as a remote, you can apply changes from patch files:

Terminal window
# In a clone of the starter repo, generate patches
git format-patch <from>..<to> --stdout > upstream-fix.patch
# In your project repo, apply the patch
git am upstream-fix.patch