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-pick
to 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-color
property to the latest upstream value - In #30, I reverted to the latest upstream values for light mode, which included a change to the
sidebar-bg
andsidebar-muted-color
properties 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.scss
file 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:1
aspect 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.scss
file 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
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 totrue
after 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/dist -f && git commit -m "update js assets"
(docs)- You can also run a command that's referenced in the
init.sh
to remove this from.gitignore
:sed -i '' "/.*\/dist$/d" .gitignore
- You can also run a command that's referenced in the
- 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
pick
but 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 s
Check 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