Skip to content

Upgrade Guide

Cotes Chung edited this page Sep 20, 2024 · 19 revisions

Table of Contents

Upgrading from Starter

If your website was created using chirpy-starter, you can follow these steps to update your repository.

Adding a Remote Repository

If this is your first time updating chirpy-starter via Git, start by adding the remote repository:

git remote add chirpy [email protected]:cotes2020/chirpy-starter.git

To verify that the remote was added successfully, run:

git remote -v

You should see the following output:

chirpy  [email protected]:cotes2020/chirpy-starter.git (fetch)
chirpy  [email protected]:cotes2020/chirpy-starter.git (push)
...

Upgrade to the Latest Version

  1. Fetch upstream chirpy:

    git fetch chirpy --tags
  2. Merge the latest tag from upstream into your local branch. For example, to merge tag v7.1.1 from upstream, run the command:

    git merge --squash v7.1.1
  3. Update Git submodule assets/lib:

    git -C assets/lib pull
  4. Resolve any remaining file conflicts manually. If you want to keep certain custom modifications, you can do that at this point as well. Once the conflicts are resolved, create a new commit to save the upgrade.

    git add . && git commit -m "chore: upgrade to X.Y.Z"
  5. Finally, update the local theme gems:

    bundle update

Upgrade the Fork

If you forked from the source project (there will be gemspec in the Gemfile of your site), merge the latest upstream tags into your Jekyll site to complete the upgrade. The merge is likely to conflict with your local modifications. Please be patient and careful when resolving these conflicts.

JS distribution files have been removed since v5.6.0, and Bootstrap CSS has been lean since v7.0.0. Therefore, for all future upgrades, you should compile the CSS/JS files yourself.

npm run build

Then make sure to add them to your repository files:

git add assets/js/dist _sass/dist -f

Major Version Upgrades

When upgrading to a Major version, it's important to read the release notes for that version to understand any changes in project configuration.