Skip to content

Latest commit

 

History

History
154 lines (143 loc) · 25 KB

CHANGELOG-v1.7.0.md

File metadata and controls

154 lines (143 loc) · 25 KB

Thorium Reader v1.7.0

Summary

Version 1.7.0 was released on 14 May 2021.

This release includes the following (notable) new features, improvements and bug fixes:

  • Major refactor: database migration (SQLite3 / LevelDown) to Redux (JSON serialization). The DB backend will be completely removed in a future version (probably 1.8), which will complete the fix for large filesystem allocation
  • Fixed LCP passphrase hint which was incorrectly escaped (URL slashes), and English grammar was incorrect
  • Updated Chinese translation
  • Added korean translation
  • Added TTS synthetic speech voice selection (overrides engine default which selects based on language, so this forces user preference)
  • Faster audio playback rate option (2 -> 3x)
  • Fixed DAISY support, now allows opening files with .zip extension in addition to .daisy, allow subfolder(s) instead of just root .opf package, and allow opening OPF directly from not-zipped filesystem
  • Fixed OPDS description display (HTML markup)
  • Fixed MathML support regression bug, and updated to latest MathJax version, and now check for authored MathJax to avoid conflits
  • Fix: the auto-generated EPUB for "about Thorium" is now force-refreshed at every app version update
  • Fixed "all books" library view which was not reliable
  • Cancellable downloads (LCP, OPDS)
  • Fixed MacOS window manager issue
  • Fixed OPDS search (XML UTF8 BOM), en|decodeURIComponent
  • Fixed support for PDF files with unicode characters in filenames
  • Fixed OPDS search input field and home state which was not reset during feed browsing
  • Fixed OPDS authentication dialog cancel button
  • Fixed HTTP streamer, workaround for publication resource URLs / relative paths with multiple consecutive slashes
  • Fixed bookmark icon, and added progression + sorting in bookmark navigation list
  • ... and many more smaller changes listed below.

(previous v1.6.0 changelog)

Full Change Log

Git commit diff since v1.6.0: https://github.com/edrlab/thorium-reader/compare/v1.6.0...v1.7.0

=> 110 GitHub Pull Requests or high-level Git commits.

  • (_) fix(DB): database migration, removed publications / OPDS feeds now marked but preserved to avoid re-absorbing in new Redux JSON state (PR #1452)
  • (_) fix: UUID regression (bookmarks), imports now consistent
  • (_) chore(NPM): package updates, notably r2-opds-js with HTML/plaintext description fixes (Fixes #1376 )
  • (_) chore(NPM): NPM package updates
  • (_) fix: disabled input colour and mouse cursor (Fixes #1459 PR #1462)
  • (_) chore(NPM): package updates
  • (_) fix(persistence): swap recovery mode from 2 to 3 (PR #1451)
  • (_) Revert "Revert "fix(divina): remove divinaReadingMode from state""
  • (_) Revert "feature (divina): new divina player (pr #1437)"
  • (_) Revert "fix(divina) new build version (clean dist folder)"
  • (_) Revert "fix(divina): Add an option to the Divina player setup (PR #1450)"
  • (_) Revert "fix(divina): remove divinaReadingMode from state"
  • (_) fix: the auto-generated EPUB for "about Thorium" is now force-refreshed at every app version update (PR #1458)
  • (_) fix: "all books" library view was not reliable (PR #1454 Fixes #1453)
  • (_) fix(l10n): Chinese translation update (PR #1457)
  • (_) fix: publication removal from filesystem needed safeguard in case of non-existing UUID folder (scenario: DB migration into new JSON, but EPUB had been removed from new data format already)
  • (_) fix(divina): remove divinaReadingMode from state
  • (_) fix: rename JSON data config folder to ensure complete refresh on next launch (due to folder name mismatch, see previous commit)
  • (_) fix: incorrect folder name in dev / continuous integration builds
  • (_) chore(NPM): package updates
  • (_) fix(persistence): new patch save process (PR #1448)
  • (_) fix(divina): Add an option to the Divina player setup (PR #1450)
  • (_) fix: bookmark ordering and percentage indicator
  • (_) fix: removed ok() assertion which was generating false negatives in the console, return empty array instead (DB "find" functions)
  • (_) fix: do not brutally remove publications from filesystem in case of error, but continue to prevent database corruption
  • (_) fix: safeguard against crash when redux state is null/undefined + explicit object spread for code readability
  • (_) fix: bookmark progress indicator percent Fixes #1413
  • (_) feat: faster audio playback rate option (2 -> 3x)
  • (_) lint: previous commit
  • (_) fix(persistence): bookmarks
  • (_) fix(divina) new build version (clean dist folder)
  • (_) fix: removed debug() log of LCP hashes
  • (_) fix: JSON persist init from DB for lazy OPDS auth, cookiejar, LSD devices, LCP passphrases
  • (_) fix(persitence): stringify appendFile log
  • (_) fix(persistence): undefined bookmarks array
  • (_) fix(persistence): log persistence
  • (_) fix(persistence): comment
  • (_) fix: redux state absorb
  • (_) fix: delete base64 publication and opds during clone absorb of DB
  • (_) fix(persistence): withdraws the test of i18n key
  • (_) fix(persistence): do not erase redux state when corrupted
  • (_) fix(persistence): comment
  • (_) fix(persistence): force recovery procedure
  • (_) fix: dev vs. prod folder name for data config (JSON persistence)
  • (_) fix(persistence): withdraws the opds key test
  • (_) fix: JSON persist created from DB was containing Base64 LCP and LSD, as well as LSD events (causing huge data blobs)
  • (_) refactor(LCP): LSD device manager JSON persist + data files in subfolder + added missing publication + LCP cache hydration (PR #1446)
  • (_) fix: previous commit
  • (_) fix(db): split json file with production and development
  • (_) fix: opds and publication db repository redux subscribe in the save function
  • (_) refactor(LCP): encrypted JSON persistence (PR #1445 Fixes #900 Fixes #888)
  • (_) chore(NPM): package updates and full lockfile regen
  • (_) refactor(downloader): stream pipeline cancellable (PR #1433)
  • (_) refactor(persistence): main Redux state persistence (PR #1421)
  • (_) refactor(publication): migration PouchDB repository to main Redux state (PR #1415)
  • (_) chore(NPM): package updates, including fixed inversify
  • (_) refactor(OPDS): migration PouchDB repository to main Redux state (PR #1420)
  • (_) chore(NPM): package updates, inversify version upgrade is broken so stick to previous version
  • (_) refactor: removal of DB resources, LCP and manifest cache (filesystem persist + memory cache) (PR #1443)
  • (_) fix: safe removal of LCP license JSON cache in database resources (fetched from filesystem publication just-in-time, no need to persist)
  • (_) fix: safe removal of LCP License Status Document (LSD) cache in database resources (fetched just-in-time, no need to persist)
  • (_) chore(NPM): package updates (notably: MathJax)
  • (_) chore(refactor): replace Base64 blobs with JSON, remove duplicate state data (reduce database overhead) (PR #1440)
  • (_) __ feat(OPDS):__ auth crypto filesystem persistence (PR #1419)
  • (_) feat: cookiejar crypto filesystem persistence (PR #1418)
  • (_) chore(NPM): package updates
  • (_) __Merge branch 'develop' of github.com:__readium/readium-desktop into develop
  • (_) chore(NPM): package updates (minor change in the node-fetch Abort interface type definition)
  • (_) feature (divina): new divina player (pr #1437)
  • (_) fix(TTS): improved synthetic speech voice selector (follow-up to issue #1130 )
  • (_) feat(DAISY): allow opening files with .zip extension in addition to .daisy, allow subfolder(s) instead of just root .opf package, and allow opening OPF directly from not-zipped filesystem (Fixes #1268 )
  • (_) feat(l10n): korean translation (PR #1434 Fixes #1429)
  • (_) fix(OPDS): support for feed description with HTML markup (PR #1435 Fixes #1376)
  • (_) __Merge branch 'develop' of github.com:__readium/readium-desktop into develop
  • (_) feat(TTS): added synthetic speech voice selection (overrides engine default which selects based on language, so this is a forced preference) (Fixes #1151 Fixes #1130 )
  • (_) chore(dev): disable Electron remote module (deprecated)
  • (_) chore(dev): disable Electron Devtron (unused, and problematic with more recent versions)
  • (_) lint: missing comma in di.ts
  • (_) fix : macos appActivate library window is undefined with HocusFocus application. fixes the race-condition. (Fixes #1388)
  • (_) fix (opds): opds is not reset during browsing / navigation (fixes #1408)
  • (_) fix (ui): bookmark button with page fit button linked (fixes #1422)
  • (_) chore(NPM): package updates, notably classNames which broke the build, so took the opportunity to cleanup import statements (only exports.default works)
  • (_) chore(NPM): package updates, notably i18next with new init config param
  • (_) fix: check http response value undefined (HTTP ERROR) (Fixes #1425 PR #1425)
  • (_) fix #1424: dismiss cookies error (PR #1426)
  • (_) chore(NPM): package updates
  • (_) refactor(db): migrate i18n config repository to the main process redux state with persistence (PR #1416)
  • (_) fix: delete publication in redux main state win registry
  • (_) fix: filter the reader redux state persisted in the win registry main state
  • (_) chore(NPM): package updates (all minor)
  • (_) refactor: getLastReadingLocaton moved to the publication view
  • (_) refactor: readerMode synced with redux state to all readers
  • (_) refactor: migrate bookmark locator repository to the reader redux state (PR #1411)
  • (_) fix: OPDS search (XML UTF8 BOM), en|decodeURIComponent, PDF files with unicode filenames (PR #1385 Fixes #1382 Fixes #1383 Fixes #1381 )
  • (_) fix(OPDS): search input field was not reset during feed browsing / navigation (PR #1389 Fixes #1384)
  • (_) fix(OPDS): authentication dialog cancel button now works (Fixes #1405 )
  • (_) fix(MathML): MathJax presence checked before injecting it from Thorium's own bundled library (Fixes #1407 )
  • (_) chore(NPM): package updates (minor)
  • (_) chore(NPM): package updates, notably Typescript 4.2 which requires significant update of "typed" Redux Saga, opportunity to cleanup codebase (PR #1403 )
  • (_) chore(NPM): r2-streamer-js package update (notably: workaround for publication resource URLs / relative paths with multiple consecutive slashes)
  • (_) chore(NPM): package updates, making sure to lock TypeScript to 4.1 as version 4.2 breaks typings in Redux Saga
  • (_) fix(code): incorrect TS import [skip ci]
  • (_) chore(NPM): package updates
  • (_) fix(MathML): regression bug, MathJax URL from static host HTTP server was broken (Fixes #1390 )
  • (_) fix(LCP): passphrase hint was incorrectly escaped (URL slashes), English grammar was incorrect (Fixes #1386 )
  • (_) fix(UI): bookmark icon in navigation view was broken (Fixes #1380 )
  • (_) chore(doc): changelog, 1.6 Windows installer code signing [skip ci]
  • (_) chore(NPM): package updates
  • (_) chore(release): post-1.6 version bump (1.6.1-alpha.1)

Developer Notes:

  • The standard-changelog utility (npx standard-changelog --first-release) somehow only generates a limited number of commits, so we use a one-liner command line / shell script instead:
  • git --no-pager log --decorate=short --pretty=oneline v1.6.0...v1.7.0 | cut -d " " -f 1- | sed -En '/^([0-9a-zA-Z]+)[[:space:]]([^:]+):(.+)$/!p;s//\1 __\2:__\3/p' | sed -En 's/^(.+)$/* \1/p' | sed -En '/PR[[:space:]]*#([0-9]+)/!p;s//PR [#\1](https:\/\/github.com\/edrlab\/thorium-reader\/pull\/\1)/gp' | sed -En '/\(#([0-9]+)/!p;s//(PR [#\1](https:\/\/github.com\/edrlab\/thorium-reader\/pull\/\1)/gp' | sed -En '/(Fixes|See|Fix|Fixed)[[:space:]]*#([0-9]+)/!p;s//\1 [#\2](https:\/\/github.com\/edrlab\/thorium-reader\/issues\/\2)/gp' | sed -En '/^.[[:space:]]([0-9a-zA-Z]+)[[:space:]]/!p;s//* [(_)](https:\/\/github.com\/edrlab\/thorium-reader\/commit\/\1) /p' | sed -En '/[[:space:]]#([0-9]+)/!p;s// [#\1](https:\/\/github.com\/edrlab\/thorium-reader\/issues\/\1)/gp'
  • ...append | pbcopy on MacOS to copy the result into the clipboard.
  • ...append | wc -l to verify that the result actually matches the number of Git commits.