Skip to content

Latest commit

 

History

History
105 lines (94 loc) · 21 KB

CHANGELOG-v1.4.0.md

File metadata and controls

105 lines (94 loc) · 21 KB

Thorium Reader v1.4.0

Summary

Version 1.4.0 was released on 25 July 2020.

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

  • Microsoft Windows: fixed a pagination / scrolling random DPI bug, which was preventing turning pages, in the middle or at the end of documents
  • Support for EPUB3 FXL Fixed Layout two-page spreads
  • Support for EPUB3 Media Overlays and TTS readaloud (both with optional clean overlay view / caption mode), with same keyboard shortcuts as audiobooks
  • Localisation: new Japanese user interface translation, fixed Spanish labels (missing and existing), corrected English typos
  • In preparation for linking to annotations and search results, navigator now supports DOM Range scroll-into-view (paginated and scroll views), which allows sub-element referencing (for when HTML text spans across CSS columns or scrolling viewport boundaries)
  • Development: added fast compiler option, skip Typescript type checking (transpile only)
  • Production builds continue to use LevelDown database for the CouchDB adapter, but automated CI and developer builds now use SQLite3 instead of the obsolete JsonDown store which was slow and buggy (uncontrolled file size growth)
  • LCP/LSD "return" and "renew" errors now trigger a toast notification to inform the user, friendlier passphrase dialog error reporting, and fixed clipboard copy right
  • Audiobooks: no cover was causing an internal crash, support for float values in duration time syntax with iso8601 format
  • Improved fullscreen UI layout
  • LCP or OPDS download without Content Type attribute in Link, now fallback to HTTP response headers (content-type/disposition)

(previous v1.3.0 changelog)

Full Change Log

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

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

  • (_) chore(NPM): package updates, including navigator with sub-element (DOM Range) linking for annotations and search results (scroll-into-view of text range inside large paragraph spanning CSS columns of scrolling viewport)
  • (_) fix: TTS readaloud, R2 navigator improved, now character-level scroll-into-view (during word highlighting), and handling of odd number of pages in two-page spread (shifted CSS column) Fixes #1079 Fixes #1108
  • (_) fix: Audiobooks keyboard shortcuts (same as EPUB3 MediaOverlays and TTS readaloud), Fixes #1107
  • (_) fix: EPUB3 Media Overlays and TTS readaloud playback state across page turns, added keyboard shortcuts (Fixes #1069 )
  • (_) chore(NPM): R2 navigator package with improved Windows CSS pixel edge case solving, see issue #1015
  • (_) chore(NPM): package lock file refresh
  • (_) chore(NPM): R2 package updates, including navigator which should address issue #1015, to be tested further in the wild
  • (_) chore(NPM): package updates (minor)
  • (_) chore(NPM): package updates
  • (_) chore(NPM): package updates
  • (_) fix(l10n): English those vs. these (PR #1103)
  • (_) chore(NPM): package updates, including latest TypeScript WebPack plugin (compiler with type checking), see issue #1097
  • (_) fix(lint): minor line break missing error
  • (_) feat(l10n): Japanese translation (original PR #1034 PR #1093)
  • (_) fix: CouchDB database adapter (LevelDown / SQLite) is compacted when app exits, to remove unnecessary snapshots (PR #1094)
  • (_) feat(dev): faster WebPack dev builds with TypeScript transpile only (skip compiler type checks with "export SKIP_CHECK_TYPESCRIPT=1" and "npm run start:dev"), ensures remote-redux-devtools is exluded from production build (Fixes #1098 Fixes #1097)
  • (_) fix: LCP/LSD "return" error now triggers a toast notification so that user is informed (follows PR #1096 related to issue #1095)
  • (_) fix: LCP/LSD "renew" error now triggers a toast notification so that user is informed (PR #1096 Fixes #1095)
  • (_) fix: on MacOS, CMD+Q did not cause the application to exit when no library window was shown, and added a menu item to make the library re-appear after close (PR #1092 Fixes #1087)
  • (_) fix: user reader settings automatically saved only in non-session / default mode (PR #1090 Fixes #1085)
  • (_) fix(l10n): Spanish translation, added missing labels, corrected existing ones (PR #1074)
  • (_) fix: LCP passphrase dialog wasa acompanied by confusing red toast notification to announce load failure (Fixes #1084 PR #1089)
  • (_) fix(dev): SQLite3 native lib binary preserve for ReduxDevToolCLI
  • (_) chore(NPM): package update - navigator (audiobook no-cover fix)
  • (_) hotfix: SQLite3 needs its PouchDB adapter declared as dependency in Electron Builder package.json
  • (_) hotfix: CI build is broken, probably "externals" for main process bundle (must exclude SQLite3 and the PouchDB adapter, just like with LevelDown)
  • (_) fix: removal of JsonDown, replaced with SQLite native NodeJS module, should fix #1072 (needs CI testing via Travis and Appveyor), caveat: resets application DB and publications folder
  • (_) fix: accessible label for "detach window" icon button in reader window, now "show library" (Fixes #964 PR #1078)
  • (_) fix(regression): reader display settings now automatically saved when changed (thus apply to other publications), this also fixes MathJax. Caveat: when "session" mode is enabled, sets default for all newly-opened publications, which isn't necessarily the desired behaviour (Fixes #1065 Fixes #1082 )
  • (_) fix(workaround): HTTPS with expired certificate in the chain now accepted, only in development mode (not production) (Fixes #1075 Fixes #1083 Supersedes PR #1077 )
  • (_) chore(NPM): package updates, including R2 navigator which includes a workaround for an Electron regression bug (HTTP headers passthrough)
  • (_) fix(TTS): updated navigator component which now supports in-document word-by-word highlighting and sentence-level granular navigation, clean view remains available as an alternative render mode for TTS readaloud.
  • (_) fix: Electron window dimensions calculations, x/y coordinates (Fixes #1066 )
  • (_) fix: some publication resources were not loading because of their name (navigator bug)
  • (_) fix: ReadiumCSS / reader state was corrupted (PR #1064 follows PR #1058 Fixes #1062)
  • (_) hotfix: previous commit introduced a possible unwanted x/y coordinate offset for library/reader windows
  • (_) fix: reader back arrow icon button was crashing in some cases (bad x/y screen oordinates) (Fixes #1061 Supersedes PR #1063 )
  • (_) feat: NPM package updates, including R2 navigator with new "caption" mode for EPUB3 Media Overlays
  • (_) fix: regression, incorrect publication ID, broken reading list (PR #1060)
  • (_) fix(dev): preload reader state instead of api request (PR #1059)
  • (_) fix: persist the partial reader Redux state (PR #1058)
  • (_) (pierre/develop) chore(CI): TravisCI deploy script with new edrlab/thorium-reader GitHub repository (was edrlab/thorium-reader)
  • (_) feat: (via navigator component) EPUB FXL Fixed Layout two-page spreads, with support for Media Overlays, selection/highlights, reading location/bookmarks per active/focused page (still at element level) (Fixes #1040)
  • (_) chore(NPM): package updates, including R2 navigator which includes a Media Overlays skippability fix (epub:type semantics)
  • (_) feat: EPUB3 Media Overlays, internally W3C Sync Media format in Readium Web Pub Manifest (PR #1052 Fixes #939 Fixes #1051)
  • (_) fix(LCP): clipboard copy right
  • (_) fix: safeguard for undefined browserWin in sync middleware (PR #1048)
  • (_) fix: Electron app activate and power shutdown (PR #1045 Fixed #1038 Follow-up to #1041)
  • (_) fix: Mac application quit triggers graceful shutdown / resource cleanup (PR #1041)
  • (_) fix: regression from PR #930 regarding HTTPS Readium URL for publication sandboxing (see #930 (review) )
  • (_) fix(TTS): playback tweaks for edge cases related to navigation, and fixed fullscreen layout (follow up to PR #1044)
  • (_) feat: TTS readaloud, also fixes settings save/reset buttons style, also fixes incorrect sepia/night theme in bottom bar (PR #1044 Fixes #935)
  • (_) fix(typo): streamer stop() was not called correctly (PR #1043 Follows PR #930)
  • (_) fix: uncomment necessary code for the deletion of stale publication identifiers (PR #1042 Follows PR #930)
  • (_) chore(NPM): package updates
  • (_) fix(refactor): global Redux store persist, per-publication session state, OPDS catalog last column info, tags editor prevent empty text, mismatched reader settings (PR #930 Fixes #1036 Fixes #1037 Fixes #1035 Fixes #911)
  • (_) fix: Reader display/layout/formatting settings were not synchronized correctly (initial values), and MathJax refresh was triggered unnecessarily
  • (_) feat(dev): code scope checker (WebPack resource boundaries for reader / library logic)
  • (_) chore(NPM): package updates
  • (_) chore(dev): Hot Module Reload turned off by default (view state is entirely reloaded)
  • (_) fix(UI): fullscreen margins (Fixes #1033)
  • (_) chore(dev): fixed incorrect R2-xxx-js imports
  • (_) fix: LCP or OPDS download without Content Type attribute in Link, now fallback to HTTP response headers (content-type/disposition)
  • (_) fix: audiobooks duration time with iso8601 format, support for float values (PR #1028 Fixes #1026)
  • (_) chore(dev): TravisCI MacOS builds with no notarization (and no signing)
  • (_) chore(NPM): package updates, UUID major semver but no impact, TMP major 0.x.x allows custom temp dir config again
  • (_) fix(audiobooks): fallback on W3C publication manifest type when mandatory conformsTo is missing (PR #1025 Fixes #1023)
  • (_) chore(NPM): minor semver package updates, removal of react-hot-loader (Fixes #1024)
  • (_) chore(release): version bump for new development sprint

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.3.0...v1.4.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.