A DevOps Blog - Blogging about GitHub and Azure DevOps practices, tips, scripts, and my continuous improvement DevOps journey.
Chirpy:
- GitHub repo
- Example and tips/best practices
- Upgrading (using
git cherry-pickto pull changes from upstream)
- Utterances (configured directly in Chirpy) which uses GitHub issues for post comments
- Added a speaking tab to capture my speaking engagements
- Used an icon from fontawesome for the link in the sidebar
- For my implementation of Chirpy v4.3.0 to v6.1.0, I reverted the light mode sidebar background color to the pre-v4.3.0 color (blue/purple)
- When I updated from Chirpy v6.1.0 to v6.3.0, I decided to use the latest upstream values for the light mode sidebar background color (light gray)
- See: #8 where I reverted to the pre-v4.3.0 color (blue/purple)
- In #27, I updated the
sidebar-active-colorproperty to the latest upstream value - In #30, I reverted to the latest upstream values for light mode, which included a change to the
sidebar-bgandsidebar-muted-colorproperties to bring in the light gray sidebar background color
- Chirpy v5.4.0 introduced a strict
40 / 21(1:91:1) aspect ratio requirement for post's preview images such that they would be cropped if you used a different aspect ratio - In prior versions, I removed this code so that the post's preview images would still render with their original size
- In June 2023, I updated most of the preview images with the new aspect ratio and brought back preview images to the home page, but I still left out the
40 / 21;line from thepost.scssfile to account for the images that weren't updated - In November 2023, I updated to Chirpy v6.2.3 and the preview image logic was moved to
commons.scss; removed the40 / 21;line for the non-updated images
- Upstream commit introducing change: 4b6ccbc (Chirpy v5.4.0)
- My changes so that preview image still shimmers before loading, but no image cropping: b282712^..bb1dc1f
- Really only need to get rid of
aspect-ratio: 40 / 21;line
- Really only need to get rid of
- June 20, 2023: Updated most of the post images to reflect the
1.91:1aspect ratio since that's the ratio the home page expects for the post preview images- I still left out the
40 / 21;line in thepost.scssfile for the images I didn't update to show the original image size on the post page
- I still left out the
- November 1, 2023: In Chirpy v6.2.3, the preview image logic was moved to
commons.scss; removed the40 / 21;line for the non-updated images - In Chirpy v7.2.0, this was moved to
_sass/_base_.scss- I still commented out the
40 / 21;line to prevent some preview images from being cropped
- I still commented out the
Since we aren't using the theme gem (so we can do customizations), we have to do it the old-fashioned way:
- Ensure chirpy is set as a remote:
git remote add chirpy https://github.com/cotes2020/jekyll-theme-chirpy.git - Ensure you have the latest upstream commit:
git fetch chirpy - Compare the upstream releases and commits to find the first and last release/commit in the range you want to update
- Start the
git cherry-pick:- To cherry-pick between a range of release tags (more common):
git cherry-pick "v5.6.0..v5.6.1" -m 1 - To cherry-pick a single commit (not as common):
git cherry-pick a887f1d -m 1 - If getting GPG errors, modify the local git config:
git config commit.gpgsign false, but modify it back totrueafter you are done cherry-picking and rebasing (before amending commit)
- To cherry-pick between a range of release tags (more common):
- Review merge conflicts - use a combination of
git cherry-pick --skip(for when readme/starter posts are updated) andcherry-pick --continue(to continue after you resolve real merge conflicts) - Starting in Chirpy v5.6.0, run:
npm run build && git add assets/js/dist _sass/vendors -f && git commit -m "update js assets"(docs) - Rebase the number of commits you just brought in (you should see icon in VS Code):
git rebase -i HEAD~16- Leave the top commit as
pickbut change the rest tosquash - Update the commit message as appropriate
- Leave the top commit as
- Pay close attention to the terminal output as to which new files are being created and if they should be deleted (new files show up as
create mode 100644 file.ext)- For example, we wouldn't want to commit a GitHub workflow or issue template that wasn't needed here
- If there are new files that we don't want to track, delete the files, commit, and run another rebase
git rebase -i HEAD~2 - This command can help with tracking new files in the most recent commit:
git diff-tree --compact-summary -r HEAD --diff-filter=A
- Ensure commit signing is enabled:
git config commit.gpgsign true - Update author and commit time:
git commit --amend --author "Josh Johanning <joshjohanning@github.com>" --date=now -S - Test changes locally before pushing
bundle install
npm i && npm run build
bundle exec jekyll sCheck ruby version: ruby -v (if ruby 2.6.10p210, then you need to upgrade to 3.0.0+):
- Install Ruby via Homebrew:
brew install ruby(can also uservm) - Make sure the new Ruby is in your path:
export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc - Check ruby version:
ruby -v(should be 3.0.0+) - Build and serve the site as normal
If seeing a racc 1.6.2 permission error, run:
sudo chown -R codespace /usr/local/rvm/gems/ruby-3.1.4/extensions/x86_64-linux/3.1.0
bundle install