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"
# Upgrade from specific commit, tag, or branch
npx turborepo-template-upgrade --from v1.2.3
npx turborepo-template-upgrade --from abc123def
npx turborepo-template-upgrade --from feature-branchAvailable 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--from <ref>- Specific commit hash, tag, or branch to upgrade from--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.
β οΈ Important Migration Notice
Biome Migration: The turborepo-template has migrated from ESLint + Prettier to Biome for linting and formatting. If you prefer to continue using ESLint + Prettier, configure your upgrade to use the legacy branch:
See discussion here: https://github.com/react18-tools/turborepo-template/discussions/69
npx turborepo-template-upgrade --template-url https://github.com/react18-tools/turborepo-template --from legacy/eslint-prettierOr add to your .tt-upgrade.config.json:
{
"templateUrl": "https://github.com/react18-tools/turborepo-template",
"from": "legacy/eslint-prettier"
}π§ 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,
"from": "v1.2.3"
}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"
# Upgrade from specific version
npx turborepo-template-upgrade --from v2.1.0
# Use legacy ESLint + Prettier setup
npx turborepo-template-upgrade --from legacy/eslint-prettierπ 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