Skip to content

Changelog

ShipSaaS receives regular updates, bringing new features, bug fixes, and security patches. This document explains how to synchronize your project with the official codebase.

[!NOTE] The more customizations you make to your project, the more conflicts you might encounter when merging updates. Before merging, always commit all your current work and keep your Git working directory clean.


If you started your project by cloning the official GitHub repository, you can add the official repository as an upstream remote to pull the latest changes directly:

Terminal window
# Add the official repository as an upstream remote
git remote add upstream https://github.com/ShipSaaS/shipsaas.git
# Fetch the latest changes from upstream
git fetch upstream
# Create a temporary branch for the update to prevent breaking your main branch
git checkout -b update-template
# Merge the upstream changes into the temporary branch (resolve conflicts carefully in your editor if necessary)
git merge upstream/main

Newer versions of the template might introduce new dependencies or upgrade existing packages. After the merge is complete, please run:

Terminal window
bun install

If the update includes changes to the database schema.ts file, you need to re-generate and apply database migrations:

Terminal window
bun run db:generate
Terminal window
# Apply migrations to your locally emulated D1 database
bun run db:migrate:local
# Apply migrations to your remote D1 database on Cloudflare
bun run db:migrate:remote

Once testing and conflict resolution are fully completed locally, you can merge the update branch back into your main branch and push it to your private GitHub repository:

Terminal window
# Switch back to the main branch
git checkout main
# Merge the conflict-resolved update branch
git merge update-template
# Push to your own origin repository
git push origin main

After upgrading, please ensure you run the following local commands to verify that the project builds and runs correctly:

Terminal window
# Start the development server to test page functionality
bun run dev
# Run code checking and formatting
bun run lint
bun run format
# Run production bundle build test
bun run build