Package Exports
- @r18/upgrade
Readme
turborepo-template-upgrade 
Seamlessly keep your repo in sync with turborepo-template.
π Purpose
turborepo-template-upgrade is a small utility built for repositories that were bootstrapped using react18-tools/turborepo-template.
Instead of manually copy-pasting template updates (bug fixes, CI improvements, tooling upgrades), this package provides:
- One command upgrade β pull changes from the template into your repo.
- Safe patching β applies diffs instead of overwriting.
- Smart conflict resolution β especially for root
package.jsonfile.
π¦ Installation
You donβt need to add this as a runtime dependency. Use it as a dev tool:
npm install -D turborepo-template-upgrade
# or
yarn add -D turborepo-template-upgradeβ‘ Usage
Inside a repo created with turborepo-template:
npx turborepo-template-upgrade
We just released a shorthand -- pnpx tt-upgrade
CLI Options
# Basic usage with debug logging
npx turborepo-template-upgrade --debug
# Preview changes without applying
npx turborepo-template-upgrade --dry-run
# Skip dependency installation
npx turborepo-template-upgrade --skip-install
# Exclude specific paths
npx turborepo-template-upgrade --exclude "docs,examples"Available Options:
--debug/-d- Enable detailed logging--dry-run- Preview changes without applying--template-url <url>- Custom template repository URL--exclude <paths>- Comma-separated paths to exclude--skip-install- Skip dependency reinstallation--remote-name <name>- Custom git remote name--max-retries <num>- Maximum patch retry attempts--skip-clean-check- Skip git tree clean validation--help/-h- Show help message
This will:
- Fetch the latest changes from the template repo.
- Compute a
git diffsince your last upgrade. - Apply the patch on top of your repo.
- Attempt to auto-resolve
package.jsonconflicts. - Store the last applied commit in
.turborepo-template.lst.
If there are remaining conflicts, youβll see them in .template.patch.
π§ Configuration
Create .tt-upgrade.config.json in your repo root for persistent settings:
{
"debug": false,
"skipInstall": true,
"excludePaths": ["docs", "examples"],
"templateUrl": "https://github.com/custom/template",
"remoteName": "upstream",
"maxPatchRetries": 5
}CLI options override config file settings.
π§© Conflict Resolution
package.jsonmerges are handled automatically:- Keeps your dependencies.
- Brings in template upgrades.
- Deduplicates versions.
- For other files, standard
git apply --3wayconflict markers may appear.
π Example Workflows
Basic Upgrade
# 1. Upgrade with debug logging
npx turborepo-template-upgrade --debug
# 2. Review conflicts (if any)
git status
cat .template.patch
# 3. Commit changes
git add .
git commit -m "chore: upgrade template"Preview Mode
# Preview what would change
npx turborepo-template-upgrade --dry-run
# Apply if satisfied
npx turborepo-template-upgradeCustom Configuration
# Skip installation and exclude docs
npx turborepo-template-upgrade --skip-install --exclude "docs,examples"π How It Works
- Template repo is added as a Git remote (
template). - Last applied commit hash is tracked in
.turborepo-template.lst. git diffbetween last applied commit βtemplate/main.- Patch applied locally with
git apply --3way.
π Acknowledgments
Thanks to the react18-tools community for shaping the turborepo ecosystem.
License
This library is licensed under the MPL-2.0 open-source license.
Please enroll in our courses or sponsor our work.
with π by Mayank Kumar Chaudhari