All notable changes to Open ONI will be documented in this file.
Starting from Open ONI v0.11, The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Please respect the 80-character text margin and follow the GitHub Flavored Markdown Spec.
Unreleased - Brief description
- pinned solrpy version to fix issue with v1.0.0
v1.0.1 - Changelog fixes
- Minor changelog typos fixed for the 1.0.0 release. Dang it.
- Greg Tunink (techgique)
- Jeremy Echols (jechols)
v1.0.0 - Official Public Release
- Incorrect and missing packages in CentOS install documentation
- Link to RAIS native install documentation
- Release checklist and PR template mention
core/release.py; use better links - Clarify CentOS install Readme organization,
mod_wsgiApache directive placement, service dependencies, MariaDB commands
Make sure you read all Migration notes from whatever release you're running through this release! This final release changes so little that there are no notes here, but if you're coming from 0.10, for instance, you really need to look at all migration notes from 0.11 and on!
- Michael Carr
- Greg Tunink (techgique)
- Jeremy Echols (jechols)
- Fresh docker builds work again
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Andrew Gearhart (andrewgearhart)
- Greg Tunink (techgique)
- Reindex no longer crashes when indexing pages with no images
- IIIF APIs no longer crash on pages that don't have images
- Replace
url.netlocwithurl.hostnameinsettings_local.pyso sites running on a nonstandard port will still work (this wouldn't be typical in production, but could happen for development and staging servers)
- Documentation previously on wiki and inline code moved into
/docsdirectory- Organized into subdirectories and provided links for discoverability
- Minimally updated documentation for current docker setup
- Documented all supported management commands, with a particular emphasis on common tasks like batch loading and purging.
- CONTRIBUTING.md from "Contribute" and "Development Standards" wiki pages
- Release checklist
- Pull request template
- Dependency Roadmap and Resource Requirements in README.md
- Update tablesorter JS library to 2.31.2
- Add Bootstrap classes on skip link for better cross-browser compatibility
- Remove simpler CSS rules applied to
skiplinkclass - Retain
skiplinkclass for backwards-compatibility and customization
- Remove simpler CSS rules applied to
- Page reindexer no longer deletes pages prior to reindexing them, to avoid downtime when reindexing large sites
- Clean up Docker Apache config
robots.txtdisallows/data/for all user agents rather than a short list
core/utils/__init__.py, which overrodestrftimewithdjango.utils.datetime_safe'sstrftimeand provided aliasstrftime_safefor Python 2's inability to handle dates prior to 1900. Python 3 handles dates from 1000 on consistently.scripts/directory with PyMarc test script
- Update code using
strftimeorstrftime_safefromcore.utils- For DateField model instances, e.g.
issue.date_issued- Remove any imports from
core.utils - Change
strftime(issue.date_issued, date_format_string)orstrftime_safe(issue.date_issued, date_format_string)toissue.date_issued.strftime(date_format_string)
- Remove any imports from
- For non-DateField model instance objects
- Import
date,datetime, ortimefromdatetime - Make
datetimeandtimeobjects aware of the timezone to avoid warning messages with:from datetime import datetime from django.conf import settings from django.utils.timezone import make_aware dt = datetime.now() dt = make_aware(dt, settings.TIME_ZONE)
- Call the method on your object as
dt.strftime(date_format_string)
- Import
- For DateField model instances, e.g.
- Make sure you use replace
url.netlocwithurl.hostnamein yoursettings_local.pyif you have problems with hostnames! - If you use the reindexer routinely (
./manage.py indexor./manage.py index_pages), and were reliant on the behavior of deleting the indexed page data, you'll want to change your approach to first run./manage.py zap_index. The new behavior deliberately does not delete pages implicitly.
manage.pyadmin commands:batchescommit_indexdelete_cachelink_placespurge_etitlesreconcile
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Andrew Gearhart (andrewgearhart)
- Greg Tunink (techgique)
v0.13.0 - Open ONI components all using supported versions
This pre-release lays the foundation for Open ONI 1.0, to be released this spring. Major components are now all using supported versions:
- Python 3.6 (Supported until 2021-12)
- Django 2.2 LTS (Supported until 2022-04)
- MariaDB 10.4 (Supported until 2024-06)
- Solr 8.3 (Supported until 10.0, estimated 2022 with ~18-month between major releases)
We expect Open ONI's major components to be supported until the next Django LTS release 3.2 in April 2021, at which point we will likely upgrade Open ONI's components between major releases again.
- Upgraded to Solr 8.3 - this includes our docker-compose setup as well as the
way Solr is configured
- The schema.xml and solrconfig.xml files have been removed in lieu of using the Solr 8.3 APIs to define fields and field types
SOLRsetting now derived incore/apps.pyinitialization customization from user-facingSOLR_BASE_URLsetting- Moved more internal settings derived from user settings to
core/apps.py - Combined IIIF URL settings into a single env-configurable URL setting
- Upgraded to MariaDB 10.4 for docker-compose users
- Solr configuration files have been removed, as mentioned in the "Changed" section
- Docker: Apache file-based caching for /images/resize requests
- If you're using docker, upgrade your MariaDB database:
docker-compose exec rdbms mysql_upgrade -p123456
- If you're using docker, rebuild your ONI image:
docker-compose build - Docker developers will need to destroy all test volumes and the local test
docker image or tests will not pass:
docker-compose -f ./test-compose.yml -p onitest down -v --rmi=local
- Review settings changes:
- Rename
SOLRtoSOLR_BASE_URLand remove/solr/openoniendpoint path inonisite/settings_local.py. See example file for reference. RESIZE_SERVERandTILE_SERVERare replaced byIIIF_URL, which may be set with the environment variableONI_IIIF_URL
- Rename
- You will have to reindex all your data, which could take a long time, so
prepare in advance!
- Note: if you defined fields or altered configuration in Solr manually,
you will need to determine how to do this using the APIs, and possibly set
up something manual rather than using the script (
setup_index) mentioned below. If you feel like ONI needs a different configuration, please send us a PR explaining what you feel should change, and why. - Docker developers (production docker users should consider the cost of
downtime and decide if this approach is feasible / acceptable):
- Take the stack down:
docker-compose down - Remove the old solr data manually:
docker volume rm open-oni_data-solr - Restart the stack:
docker-compose up -d - Reindex data:
docker-compose exec web manage index - For advanced users: note the new solr data location in
/var/solrinstead of/opt/solr. If you have docker overrides related to the solr data mount, make sure you change it!
- Take the stack down:
- Bare metal:
- You may have to remove Solr entirely and then manually install Solr 8.3
- It's possible to run Solr 6.6 and Solr 8.3 side-by-side in order to simplify the migration and reduce / eliminate downtime, but the steps for doing so are out of scope here as this can be a rather advanced operation, and can vary greatly depending on one's current setup.
- Update your ONI config to point to the Solr 8.3 instance, if it has changed
- Start Solr 8.3, and when it's ready, set it up with our configuration and
then reindex your data:
cd /opt/openonisource ENV/bin/activate./manage.py setup_index./manage.py index
- You may have to remove Solr entirely and then manually install Solr 8.3
- Note: if you defined fields or altered configuration in Solr manually,
you will need to determine how to do this using the APIs, and possibly set
up something manual rather than using the script (
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Greg Tunink (techgique)
v0.12.1 - Hotfix
- Changelog for v0.12.0 was missing some steps, making migrations from v0.11.1 and prior significantly more difficult than necessary
- The docker-compose "onidata" volume was unnecessary and made migrations from v0.11.1 and prior appear to have data loss (they didn't), so it has been removed and the system reconfigured to not expect it
- If you're coming from v0.11.1 or prior, the notes in v0.12.0 will suffice
- If you're coming from v0.12.0, and using docker, you should destroy your
volumes and reingest all data
- Our docker-compose setup is intended for development, not production, so this shouldn't pose a problem, but if you have been using docker in production, please ping us on our slack channel for assistance migrating.
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Greg Tunink (techgique)
v0.12.0 - Python 3 and Django 2.2 upgrades
- Sitemap Apache alias paths
- Added empty
log/directory to prevent errors when not present - Database connection was missing option to always set strict mode
- All code in ONI core, including the default theme, has been migrated to work
with Django 2.2 LTS
- Django 2.2 only supports Python 3
- Python 2 code will no longer work anywhere in the stack: plugins, themes, core overrides, etc.
- The docker setup installs a much newer Ubuntu server as well as Python 3.6
- Django 2.2 only supports Python 3
- Docker-compose changes:
- MariaDB and Solr ports are no longer forcibly exposed to the host
- If you need these, use a
docker-compose.override.ymlfile
- If you need these, use a
- Batches must now live under
./data/batches, not./docker/data/batchesfor ingest- This fixes odd issues which can occur when mounting over an existing
mount point (we mount
.as/opt/openoni, and previously were mounting./docker/dataas/opt/openoni/data, effectively shadowing the actual data directory)
- This fixes odd issues which can occur when mounting over an existing
mount point (we mount
- All generated ingest artifacts now live in a named volume,
onidata, which is mounted into multiple containers as/var/local/onidata
- MariaDB and Solr ports are no longer forcibly exposed to the host
- Updated
docs/CentOS 7 documentation- Reorganize for a more linear reading to configure everything
- Add Python 3 mod_wsgi documentation
- Move database migration step after defining settings
- Updated WSGIDaemonProcess directives in
conf/apache/django.conf- Added WSGI
python-homeandpython-pathoptions - Set
processesto 8 for production directive - Moved server-wide Apache directives to
docs/services/apache.md
- Added WSGI
- All Python 2 support / compatibility
- The concept of "released" batches has been removed to reduce confusion:
ingested batches become part of the system regardless of their "released"
status, and are simply not displayed on the (undocumented)
/batcheslist. This is extremely confusing and not terribly helpful, so we've opted to simply remove the feature entirely. All batches are now live upon ingest (which, again, they always were, it just wasn't terribly obvious).
- Remove your
ENVdirectory entirely - it will be full of Python 2 code you no longer need, and while it shouldn't conflict, some of our automations don't happen if theENVdirectory is already present - If you're using docker, rebuild your ONI image from scratch:
docker-compose build --no-cache
- If you use any of our plugins, make sure you look over their repositories and
get a version that is built for Django 2.2. Django 2.2 only supports Python
3, so plugins which work with Django 2.2 will work with Python 3.
- Plugins built by the ONI team should generally include compatibility information in their README; here's our calendar plugin's information, for example.
settings_local.pyandurls.pywill need to be changed. There are modules which no longer exist in Python 3, which we used in those files in Python 2. The easiest approach is to simply re-copy the example files and alter them, assuming you haven't had major overrides to settings.- Custom themes and plugins you've built will need to be fixed for Django 2.2,
and therefore Python 3
- Exact fixes are out of scope for ONI, but you can learn a lot from:
- The Python porting documentation
- The 2to3 tool's documentation
- The Django upgrade documentation
- Most themes and plugins will need minimal work to get updated, but complex Python code could require a lot of migration effort
- Exact fixes are out of scope for ONI, but you can learn a lot from:
- Move your local/development batches and word coordinates into
./dataif you previously had them in./docker/data
- Django Deprecation Timeline
- MariaDB and Solr will be upgraded for Open ONI 1.0, so existing databases and Solr indices will have to be repopulated
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Andrew Gearhart (AndrewGearhart)
- Greg Tunink (techgique)
v0.11.1 - Hotfix for word coordinates and image viewer
- Bug in the word coordinate location has been fixed for docker-compose users
- Fixed RAIS (IIIF server) setup in docker-compose
- Jeremy Echols (jechols)
v0.11.0 - Django 1.11 LTS Upgrade, Production Docs, and Feature Updates
- Language filtering test
- Solr code's SolrPaginator
_countattribute presence check - Use
_loggerfor logging calls - Batch loading in
batch_loader.py- Bulk foreign key handling
- Handle unreliable path comparison due to trailing slash
- Handle if
BATCH_STORAGEpath is a symlink
- Invalid static tag use to render static URL in
page.htmldata attributes - The docker-based test setup should now function properly
- This changelog, with all previous releases
- CentOS 7 deployment documentation in
docs/and config files inconf/ navbar_classestemplate block in__base.html's<nav class="navbar …"attribute- Year filter and language filter selects on search results pages
- Multiple template blocks in
search_pages_results.html,newspapers.html, andpage.html - Template block around link to batch on issue page
- Date filtering tests
pip-reinstall.shscript to reinstall Python virtual environment and pip dependencies and restart Apache- Load batch management command help text and batch existence check with error message
- Comments in
docker/_startup_lib.shthat identify.envfile as source of environment variables used for configuration - Strict mode use in MariaDB/MySQL via
sql_mode = TRADITIONAL - Configuration boolean for whether title name displays medium in parentheses, e.g. "(volume)" or "(microform)"
custom_size_image_urltemplate tag for requesting custom image sizes- On-page JavaScript newspaper title filtering on
newspapers.html- Rearrange layout of title / page counts and filter input with Bootstrap
strftime_safemethod incore/utils.pyto print years before 1900- Alias
core.utils.strftimeto this function for backwards compatibility - Replace direct calls to
datetime_safe.new_datetimewithstrftime_safe
- Alias
- Upgrade Django from 1.8 LTS to 1.11 LTS
- Full release notes for reference
- pip dependencies updated as well
- Version constraint on rfc3339 removed - library still maintained and updates are compatible
- Pass
MiddlewareMixinto middleware class definitions for compatibility withMIDDLEWAREsetting change fromMIDDLEWARE_CLASSES - Replace
render_to_responsewithrenderin view code
- Update Bootstrap to 3.4.1
- Update OpenSeadragon to 2.4.1
- Update jQuery tablesorter to 2.31.1
- Change toggle for using title sort parser to
sort-titlesclass on element, rather than defaulting to first column - Change toggle for disabling sort to
sort-offclass on element, rather than defaulting to fourth column - Update template to use new toggle classes
- Update tablesorter css; Use default cursor on unsorted column header
- Move initializing JavaScript on
newspapers.htmlto external filenewspapers.js
- Change toggle for using title sort parser to
- Update jQuery to 3.4.1
- Remove jQuery CDN loading; replace with local copy of jQuery 3.4.1
- Move JS libraries loading from bottom of
<body>back into<head> - Remove conditional loading of now missing HTML5 shim
- Update JavaScript use across all templates
- Move javascript template block to top of files
- Update jQuery on-DOM-load ready syntax
- Improve multiple issue JS for non-plugin calendar
- Make minimally keyboard-accessible
README.mdupdates- Link to GitHub wiki and releases
- Recommend installing from latest release to evaluate software and
checking out
devbranch for contributing changes - Simplify section blurbs and link to wiki pages for more information
- Add "Support" section outlining support expectations
- Add list of Open ONI-powered sites
- Update Markdown syntax and reorganize sections
- Add link text communicating which links navigate to the wiki
- Docker / Apache / deployment script changes
- Set Django code Docker bind mount volume to shared-across-containers SELinux label
- Pip updates itself before installing dependencies, now much more quickly
- Create and destroy database for each test run
- Dump OCR management command no longer relies upon celery, enabling removal
- Serve word coordinates files through Apache, bypassing Django
- Update Apache config every time web container starts rather than only during Docker image creation
- Update and reorganize Django settings files
- Begin with the default config generated for a new Django app in
django_defaults.py - Only environment-independent settings in
settings_base.py - Include default list with commented omissions and additions in overrides
- Use default enabling of i18n, l10n, and timezone support set to UTC zone
- Remove some defaults included in overrides but not changed, e.g.
STATIC_URL - Retain session, messages, and security middleware previously omitted
- Change compiled static assets path
STATIC_ROOTtostatic/compiled- Update corresponding Apache config
- Put settings that shouldn't change for dev / production environments in
separate files
settings_development.py,settings_production.py- Development environment
- Disable client-side caching via custom middleware
- Use console output email backend
- Change Apache WSGI config to reload the app after every request so multiple processes and threads don't persist and render page contents based on cached versions of the code base
- Production environment
- Switch static file storage class from
CachedStaticFilesStoragetoManifestStaticFilesStoragefor performance and graceful Apache restart compatibility
- Switch static file storage class from
- Development environment
- Move commonly changed settings to
settings_local_example.py- Place env-independent settings at the top
- Default to dev environment
- Include unchanging settings for environments from separate files
- Collect settings which seem more likely to be changed for production
- Comment out all production settings; add instructions on how to use
- Add disabled-by-default SQL logging config which doesn't disable other loggers to dev environment settings
- Differentiate
YOUR_strings for possibly differening web, database, and Solr hosts; log and data paths - Add optional debug file logging config
- Add email settings for host, from, subject, etc with guiding comments
- Copy file to
settings_local.pyduring Docker container creation
- Review Django deployment
checklist
and add settings to remove warnings from
manage.py check --deploy- Add MIME-type sniffing prevention header in
settings_base.py - Add broken link email middleware in
settings_production.pyand related toggling settings insettings_local_example.py - Add database connection re-use setting in
settings_local_example.py - Add CSRF, secure cookie,
SECURE_SSL_REDIRECTsettings; collectHTTPS/HSTS-related settings together insettings_local_example.py - Add
X_FRAME_OPTIONS = 'DENY'tosettings_base.py
- Add MIME-type sniffing prevention header in
- Update
urls_example.pywith Django recommendation to use raw strings and comments to guide plugin, theme, and core Open ONI URL includes
- Begin with the default config generated for a new Django app in
- Update tests to pass; Remove system tests
- Modify times in fixture JSON to TZ-aware format with UTC times
- Remove system tests as Django and Python dictated/tracked elsewhere
- Make datetime objects TZ-aware in
title_loader,test_ocr_dump - Update timestamps in JSON tests to match UTC format
- Update IIIF manifest JSON tests to match updated manifest format
- Improve search page results layout / functionality
- Date range search handling refactored
- dateFilterType param removed; yearRange supercedes date1 and date2
- Solr query won't pass query params for dates if no date filtering requested
- Remove
form-inlineclass so selects display below related labels - Shorten "Jump to page" input field
- Move "Front pages only" check left of submit
- Add space above checkbox and submit button
- Move "Refine search" button to right to align with other controls
- Move filters and result numeration above pagination controls
- Move result count above filter controls
- Move pagination controls to separate template and include both above and below results
- Move gallery/list display control to left, pagination controls right
- Don't display pagination or result template blocks if no results
- Don't display pagination controls if only one result page
- Fix pluralization and "No matches found" text with result counts
- Remove duplicate text and update spacing in list view-specific template
- Improve filter removal controls
- Change controls to inline list with Bootstrap buttons
- Display truncated title of paper rather than just LCCN value
- Drop removal button redundant to year filter select
- Only show removal for date range filter from Advanced Search if overriding year filter select not in use
- Update hidden inputs to retain filter values across form submissions
- Clarify date filter removal text to communicate whether both fields are populated or only a From date or Until date present
- Don't include highlight words param in pagination URLs where not necessary
- Only add param if highlight words present
- Date range search handling refactored
- Advanced Search improvements
- Search any Solr language present in newspaper titles which have issues
- Date range inputs are now native date inputs,
type="date"- Back end code updated to handle YYYY-MM-DD format sent to the server
- Related tests updated
- Set initial values to site-wide min and max; bypass inclusion in Solr
query if unmodified from these values
- This requires default values pass through as GET parameters upon form submission; Hide date filter removal link when these default values are not actually filtering
- Update styling to give date inputs more width for easier use and display date limits for site's newspapers closer to inputs
- Update newspaper title multi-select
- Re-write label and instructions for clarity
- Remove "All newspapers" option which results in error
- Page viewer changes
- Specify issue date on button to view entire issue
- Improve overlapping and spacing around viewer controls; Make more consistent across browsers
- Update page and issue controls to display message when no pagination
- Add aria-label and aria-hidden attributes to improve screen reading
- Add "Return to Top" link at bottom left
- Copy page and issue pagination controls at bottom right; Add necessary related JS
- Modernize issue pages, batches report pagination
- Wrap pagination controls in Bootstrap row
- Add margin below pagination control row
- Adapt pagination template from search results
- Add page variables in view code
- Convert some dev comments to template comments
- Make previous/next issue links Bootstrap buttons
- Newspaper titles page (
newspapers.html) updates- Site-wide page count total above newspaper title table
- Fix typo using
<th>elements in the table body
- Issue page changes
- Handle issues with no pages in
issue_pages.htmland associatedviews/browse.py - "View First Issue" and "View Last Issue" links go to main issue page rather than issue first page
- Handle issues with no pages in
- Review and clean
__base.html- Remove templates in theme from core files (__overrides, home, about)
- Clean up
__base.htmland templates in default theme- Reorganize template blocks with sitewide content blocks first
- Move sitewide meta tags to new template block
head_site_meta - Use site title in OpenSearch titles
- Set better page title default (page-specific title before site title)
- Use template-only comments, trim whitespace, 80-character margin
- Modernize CSS and JavaScript markup (drop extra attributes)
- Add sitewide skip link and target between template blocks, so less likely to be overridden
- Clean up
__overrides.htmlwith clearer documentation including block list and simpler default overrides for favicon and page meta tags - Add generic favicon.png to default theme
- Design consistency
- Change search / submit / etc buttons to use Bootstrap primary color
- Title case on button text rather than all letters capitalized
- Clean up CSS files and conditional inclusion
- Move
main.cssinclusion from__base.htmlinto default theme__overrides.htmlasmain.csslives in the default theme - Move minimal contents of
a11y.cssintomain.css - Move minimal contents of
highlights.cssintosearch.css - Move
tablesort.cssto only be included when necessary- Add margin to top of table for space between search input
- Remove unnecessary
mediaattribute from link elements - Move dev-only comments to template comment for
page.htmlCSS
- Move
- Update return to top links with new skip link target
#maincontent- Remove old
#skip_menuand.backtotopclass with no related CSS or JS - Change all link text to "Return to Top"
- Remove block elements around links to prevent page-width block elements from pushing other nearby controls down
- Remove old
- Remove
requiredattribute from Django-generated form fields - Display essay on newspaper title page if present in database or if file with
LCCN for name present at configurable
ESSAY_TEMPLATESpath- Documentation in
core/templates/essays/README.md
- Documentation in
- Change SQL to Django ORM for batch issue list to include issues with no pages
- Sort batches report page list by most recently created first
- Update Not Found (404) and Error (500) page templates to remove site title variable use and unnecessary CSS classes
- Replace
datetime.now()calls with timezone-awaretimezone.now() - Only load
highlight.jsonsearch_pages_results.html - Update default theme README instructions for creating a new theme
- Clean up improperly formatted
OpenONIstrings and incorrectly search and replaced strings in URLs
- Django 1.8 to 1.11
- Passing (Request)Context objects to template.render
django.conf.urls.patternsuse inurls.pyrender_to_responseparamcontext_instanceto render templates at the end of view codeoptparsesupport for custom management commands (replaced byargparse)
- celery from
requirements.pip; Unused Celery management commands - Load institutions management command - Already loaded in database migration
from
fixtures/institutions.json - Unused setting
PROFILE_LOG_BASEhandling - Settings overrides from
/etc/openoni.ini - Title pull / sync and local holding loading management commands
- Unused variable for removed similar pages links info retrieved from Solr
- Extra
<a>around "Text" link in page viewer controls newspaper_infocontext processor which queried Solr or cache every request, but is no longer in use- Misleading batch link if viewing first pages, as the pages could be from multiple batches
- Cities with no issues from nav search's select
- This can result from batches purged leaving records in the Places table
Migrating to v0.11 requires special attention to a lot of changes. Read this carefully before attempting a migration, and it may behoove you to read over the Django upgrade notes if your ONI instance has a lot of custom code.
- Rewrite your settings from scratch. The new
onisite/settings_local_example.pyfile should help guide you, but enough has changed this release that you can't just copy your old settings and expect things to work! - If you were using a
docker-compose.override.ymlfile, update its version to 2.1 - Django 1.8 to 1.11
- Update use of (Request)Context objects passed to
template.rendercalls at the end of code in view definitions - Import
django.utils.deprecation.MiddlewareMixinin middleware and passMiddlewareMixinto middleware class definitions - Remove import of
django.conf.urls.patternsfromurls.pyfiles - Replace
render_to_responsewithrenderin view code - Convert
optparsetoargparsein custom management commands
- Update use of (Request)Context objects passed to
- Tablesorter update for
newspapers.html- Add
sort-titlesclass on element to toggle use of title sort parser which ignores articles "a", "an", and "the" - Add
sort-offclass on element to disabling sorting by column(s)
- Add
- Review updated
__base.htmland default theme__overrides.htmlto mimic inclusion of favicon and default page author + description<meta>tags - Update skip links and return to top links to target
#maincontent
- Django 1.8 to 1.11
- Full deprecation timeline for reference
- Use of
MIDDLEWARE_CLASSES, to be removed in Django 2.0
- Python 2's end of life is coming soon, and Open ONI will no longer support it after this release
- Karin Dalziel (karindalziel)
- Tinghui Duan (via Slack)
- Jessica Dussault (jduss4)
- Jeremy Echols (jechols)
- Linda Sato (lsat12357)
- John Scancella (johnscancella)
- Greg Tunink (techgique)
v0.10.0 - 2018-01-29 - Hey it actually really works again!
- Unpinned RAIS for Docker users
- Fixed URL for pulling MARC records from Chronicling America
v0.9.0 - 2018-01-24 - Hey it works again!
- Freezes dependencies to fix a problem where new installs would simply not work due to missing python libraries
- Updates advanced search to put "Search Terms" above "Proximity Search" based on user feedback
v0.8.0 - 2017-11-14 - Bug fixes
Adds "proximity" searching back into the advanced search, and improves accessibility with the search results pagination
v0.7.0 - 2017-10-25 - Bug fixes
Multiple bugs have been addressed:
- The "about" page, when the first or last issue wasn't digitized, no longer crashes
- The "page number" in advanced search was never working and has been replaced with a checkbox to choose front pages only
- The selected titles, from advanced search, now persist when refining search results
- The "jump to page" functionality no longer loses various search filters
- Various other "refine search" persistence problems have been addressed
v0.6.0 - 2017-09-21 - New languages support, universal viewer support, mariadb
This is a big back-end release:
- We've now got Solr configured to support a bunch of new languages instead of just the four or five we had from the chronam fork.
- We've updated the docker setup to use mariadb instead of mysql (you'll probably want to dump your MySQL database and import it into MariaDB).
- Last, but definitely not least: there is now significantly better support for IIIF systems like the Universal Viewer!
v0.5.0 - 2017-09-07 - Bug fixes
- Fixes a failure that affected everybody trying to set up a new ONI site. Oops.
- Adds image attribution on image pages
- Fixes a crash in the title "front pages" view when a published image wasn't digitized
v0.4.0 - 2017-08-29 - Bug fixes and dev improvements
Highlights finally work properly (we think)!! Also, skip links work better, there's an easier way to run tests locally via docker, and Apache log level is configurable by an environment variable.
v0.3.0 - 2017-08-24 - Search fixed and slightly better UI
- Improves accessibility on the advanced search form and the search results templates
- Removes state dropdowns from advanced search and search results templates
- Removes the redundant link in the titles list ("More Info") for newspapers with essays associated
v0.2.2 - 2017-08-22 - Faster purge
Removes the solr and mysql optimization as a default step when purging batches,
as it can take a very long time with large datasets. Optimization can still be
done by adding --optimize to the purge command.
v0.2.1 - 2017-08-11 - Image URL bug fixes
Fixes a bug where resized image URLs were always at the thumbnail size. Adds a new size option, "tiny", for accommodating smaller devices more effectively.
v0.2.0 - 2017-08-09
This release upgrades the docker-compose setup to use Solr 6.6, and fixes a few bugs only discovered when there were multiple pages of batches
v0.1.0 - 2017-07-24
This is the official initial release of Open ONI. The changes since forking are too numerous to try and describe.