Upgrade - shish/shimmie2 GitHub Wiki

Get the new code

From Git

If you got shimmie from git, then git pull should fetch the latest code (git checkout main then git pull if you're on an old non-main branch).

Once the new Shimmie code is ready, you'll need to make sure all the dependencies are in place and up-to-date via composer install.

From .zip

If you got shimmie from one of the .zip downloads, you'll need to download new code, extract it, then copy across the data folder from the old install into the new one.

Update database schema

This should be automatic - next time the site is loaded, it'll see that the current schema is out of date, and will update it.

Check for any breaking changes

Release notes on https://github.com/shish/shimmie2/releases should include notes on any major changes

Upcoming breaking changes

  • Load balancing
    • Algorithm changed from Flexihash (because that library hasn't been updated in years, and isn't php8.4 compatible) to Weighted Rendezvous Hashing (Which is much simpler, better at balancing, and almost as fast)
  • Themes
    • Lots of places switched from string-concatenation to MicroHTML. If you have custom themes, they may need updating - the quick and dirty way is to wrap your HTML strings in rawHTML(...)
    • Theme overrides changed from CustomFooTheme to MyThemeFooTheme (eg the danbooru2 override for FooTheme is Danbooru2FooTheme)
    • Common elements (thumbnail, paginator) moved from Themelet to CommonElementsTheme, which can be overridden in the normal way, with MyThemeCommonElementsTheme
    • Each theme's custom Page should now be named MyThemePage and inherit from Page