Ourchive Release Notes, v0.7.0

Ourchive Release Notes, v0.7.0
Photo by Jon Cartagena / Unsplash. One must imagine Sisyphus yeehawing.

Been a minute! Let's get to it.

Features

Production Docker Support

You can now install the site for production using Docker, with Docker Compose. See documentation for this install path here. This is a major update that will facilitate a number of v0.8.0 and v0.9.0 features, including better import scheduling, Elasticsearch support, and backend audio processing. It will also enable us to offer a more streamlined install experience for 1.0.

Bootstrap migration

As we began to refine our design based on UI/UX contributor BrightPerigrine's prototypes, we ran into consistent issues related to UIKit's simple featureset. Custom code multiplied, bugs compounded. As a result, we chose to move to Bootstrap. This was a major effort requiring updates to every single template currently within Ourchive.

In addition to enabling us to implement designs with less custom code, moving to Bootstrap will allow us to use Bootstrap's architecture for theming. As of 5.3, Bootstrap supports color modes - this feature will allow us to implement themeing without getting into the weeds of custom-built architecture.

Bootstrap is also an industry standard CSS framework, which means we benefit from a massive corpus of Googleable knowledge.

As part of this migration, we have "rolled back" certain UI features, such as badging on the search page and custom icons. The features either didn't work well and needed revisiting (facet badging) or worked fine but were out of scope for the first big migration effort (custom icons). You can expect to see these features re-added in v0.8.0.

Under the hood, this migration included some exciting updates, such as moving to Choices.js for searchable multiselect. As with the Bootstrap migration itself, using Choices.js allows us to cut down on custom frontend code.

😱
This UI change probably means there's bugs we haven't caught. Please do report them - we'll be fixing them with a quicker cadence per our notes below.

Bugfixes

  • Fixed search so that tag type inclusions/exclusions use OR logic, with AND logic between all facets
  • Fixed a bug with search logic that would lead to facets being discarded under specific circumstances, leading to a broad, seemingly unfiltered resultset
  • Fixed zip downloading
  • Fixed homepage facets showing even if associated work/tag type has no data

Upgrade Instructions

  1. Log onto your server, cd to the site directory, and run: git fetch && git checkout v0.7.0
  2. Activate your virtual environment and cd to the project directory (where requirements.txt lives)
  3. Update dependencies: pip install -r requirements.txt
  4. Double-check your .env file against env.sample. Note: this is very important for this release. See callout below.
  5. Apply migrations: python manage.py migrate
  6. Collect static: python manage.py collectstatic
  7. Restart your server: systemctl gunicorn restart
  8. Restart your scheduler: systemctl apscheduler restart
💡
Ensure you review .env.sample. Your site will break if you don't populate OURCHIVE_DOMAIN and OURCHIVE_SCHEME in your env file; you may need to adjust other environment variables. For an install following Ourchive documentation. OURCHIVE_SCHEME should be https and OURCHIVE_DOMAIN should be your public-facing domain e.g. ourchive.gay.

Notes

A big migration means there will be bugs: please report them as you find them by opening an issue.

We've updated our roadmap.

Until we reach 1.0, we're going to be shifting our release cadence. Minor updates to the production branch and to our beta site will occur on a weekly or every-other-week basis. Our goal with minor updates is to move away from the waterfall method of major releases every few months, to enable us to have a more battle-tested production environment where changes are live while we still remember making them. Minor updates will not have release notes, but we'll still write release notes for major version updates.