All notable changes to thoth will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.11.2] - 2023-06-19
- Upgrade
wasm-packto v0.12.0 - Upgrade
clapto v2.34.0
[0.11.1] - 2023-06-15
- Add CC0 license to MARC records
- Upgrade rust to
1.70.0in production and developmentDockerfile - Upgrade build dependencies (npm
v9.6.7, nodev18.16.0and rollupv3.23.1) in production and developmentDockerfile - Upgrade
wasm-packto v0.11.1 - Replace
marcfork with actual crate - Update about page
[0.11.0] - 2023-04-14
- 490 - Generate MARC 21 markup
- 491 - Generate MARC 21 XML
- 492 - Add Thoth's MARC organization code to MARC records
- 492 - Add ORCID IDs to MARC
- 492 - Add contact details to APP
- 492 - Streamline
thoth-export-server's XML module
[0.10.0] - 2023-04-03
- 42 - Generate MARC 21 records
- New
workfieldbibliography_note
[0.9.18] - 2023-03-27
- Upgrade
r2d2to v0.8.10 - Upgrade
scheduled-thread-poolto v0.2.7 - Upgrade
opensslto v0.10.48 - Upgrade
remove_dir_allto v0.5.3
[0.9.17] - 2023-03-25
- Upgrade rust to
1.68.1in production and developmentDockerfile - Upgrade build dependencies (npm
v9.6.2, nodev18.15.0and rollupv3.20.2) in production and developmentDockerfile - Upgrade
wasm-packto v0.11.0
[0.9.16] - 2023-03-24
- #480 Add field to work table to track when the work or any of its relations was last updated
- Removed manual character checks and derivable defaults to comply with
rustc 1.68.0 - 484 GraphQL queries: support filtering on multiple enum variants for work status and language relation, and add filtering for works last updated before/after a specified timestamp
[0.9.15] - 2023-03-01
- Issue adding institutions in previous release
[0.9.14] - 2023-03-01
- Upgrade
openssl-srcto v111.25.0 - Upgrade
bumpaloto v3.12.0
- #326 - Debounce search queries
[0.9.13] - 2023-02-21
- Input actix keep alive via CLI arguments
- Implement a failed request retry policy in client
[0.9.12] - 2023-02-17
- Reduce number of concurrent requests
[0.9.11] - 2023-02-17
- Upgrade rust to
1.67.1in production and developmentDockerfile - Upgrade build dependencies (npm
v9.5.0, nodev18.14.1and rollupv3.15.0) in production and developmentDockerfile
[0.9.10] - 2023-02-17
- Include
limitandoffsetinthoth-client's works query - Paginate
get_worksrequests in export API using concurrent requests - Input number of actix workers via CLI arguments
- Work count query to
thoth-client
[0.9.9] - 2023-02-16
- Upgrade
actix-webto v4.3.0 - Upgrade
actix-corsto v0.6.4 - Upgrade
env_loggerto v0.10.0 - Upgrade
jsonwebtokento v8.2.0 - Upgrade
strumto v0.24.1 - Output real IP address in actix logs
[0.9.8] - 2023-02-14
- Replace generic error with actual message when migrations fail
- Upgrade node and rollup in github actions
- Github action to check that all migrations run successfully
- About page with organisation information
[0.9.7] - 2023-02-02
- Correct wrong fields used in
0.9.6migration
[0.9.6] - 2023-01-31
- Use inlined syntax in format strings to comply with
rustc 1.67.0 - Upgrade rust to
1.67.0in production and developmentDockerfile - Upgrade build dependencies (npm
v9.4.0, nodev18.13.0and rollupv3.12.0) in production and developmentDockerfile - #457 - Upgrade
juniperto v0.15.10 - Upgrade
dieselto v2.0.2 - Upgrade
uuidto v0.8.2 - Upgrade
paperclipto v0.8.0 - Upgrade
graphql_clientto v0.12.0 - Upgrade
chronoto v0.4.23
- #469 - Expand DOI regex to include square brackets
[0.9.5] - 2023-01-17
- Upgrade rust to
1.66.0in production and developmentDockerfile - Upgrade build dependencies (npm
v9.2.0, nv9.0.1, nodev18.12.1and rollupv3.7.4) in production and developmentDockerfile
- #463 - Update Thema codes to v1.5
[0.9.4] - 2022-12-05
- #414 - Synchronise chapters'
work_statusandpublication_datewith parent's upon parent's update
[0.9.3] - 2022-11-21
- #456 - Implement JSON output format
- #455 - Extend CSV output format to include all available fields
[0.9.2] - 2022-11-01
- #396 - Expand the list of contribution types with: SoftwareBy, ResearchBy, ContributionsBy, Indexer
- #451 - Output both short and long abstracts in Crossref DOI deposit
[0.9.1] - 2022-10-27
- #449 - Update EBSCO Host ONIX price type code
[0.9.0] - 2022-10-24
- #333 - Add references to schema
- Output references in Crossref DOI deposit
- #444 - Output abstracts in Crossref DOI deposit
- #443 - Output affiliations in Crossref DOI deposit
- #446 - Output fundings in Crossref DOI deposit
- Simplify syntax in CRUD methods
[0.8.11] - 2022-10-07
- #298 - Make database constraint errors more user-friendly in API output and APP notifications
- Replaced docker musl image (no longer maintained) with official images, installing requirements needed for static compilation
[0.8.10] - 2022-09-30
- #438 - Allow specifying query parameters based on the requested specification
- Upgrade rust to
1.64.0in developmentDockerfile
[0.8.9] - 2022-09-21
- #426 - Add ProQuest Ebrary ONIX 2.1 specification
- #420 - Add RNIB Bookshare to the list of supported platforms for ONIX 2.1
- #423 - Add a link to the Thoth user manual under "Docs" tab of navbar
- Development workflow in docker
- #429 - Incomplete metadata record errors are now returned as a 404 instead of 500
- Added derives for
EqalongsidePartialEqto comply withrustc 1.63.0 - Upgrade rust to
1.63.0in developmentDockerfile - Order contributions and relations by ordinal, and subjects by type and ordinal
[0.8.8] - 2022-08-02
- #389 - Streamline chapter (child work) creation process
- #411 - Make
copyright_holderoptional - #393 - Use en-dash in
page_intervalinstead of hyphen - Ignore
extra_unused_lifetimeswarning until clippy's fix for the false positive is live - Split build, test, and lint workflow job into separate jobs
[0.8.7] - 2022-07-22
- #379 - Limit to 6 the number of ISBNs offered in CrossRef metadata export
- #388 - Upgrade packages flagged in Dependabot alerts
- #370 - Upgrade Yew to v0.19
[0.8.6] - 2022-07-01
- #390 - Implement OverDrive ONIX 3.0 specification
- #392 - Fix encoding of print ISBN in JSTOR ONIX output
[0.8.5] - 2022-05-30
- #287 - Allow editing contributions (and affiliations)
- #360 - Prevent adding 0 as the price of a publication
- #376 - Restrict Licence field entries to URL-formatted strings
[0.8.4] - 2022-05-11
- #29 - Implement CrossRef DOI Deposit specification
- #72 - Implement Google Books ONIX 3.0 specification
- #356 - Upgrade actix to v4
[0.8.3] - 2022-04-18
- #359 - Allow editing publications
[0.8.2] - 2022-04-06
- Added CA certificates to docker image to allow https requests from containers
[0.8.1] - 2022-03-11
- #104 - Implement BibTeX specification
- Removed unnecessary title branching logic from KBART/ONIX output formats
[0.8.0] - 2022-03-01
- #341 - Add weight to publication
- Tidied verbose bools and single-character strings to comply with
rustc 1.59.0 - #300 - Moved width/height to Publication, added depth, improved metric/imperial display
- Upgrade docker's base images to latest available releases
[0.7.2] - 2022-02-08
- #339 - Update publication types to include AZW3, DOCX and FictionBook
- #331 - Update series model to include description and CFP URL
- Allow triggering docker action manually
- Add code of conduct and support document to repository
[0.7.1] - 2022-01-24
- Removed redundant
to_stringcalls to comply withrustc 1.58.0 - #329 - Update EBSCO Host ONIX pricing and contributor display logic
- Allow building docker image manually in actions
[0.7.0] - 2022-01-11
- #28 - Implement chapter structure
- GraphQL queries: support filtering on multiple enum variants (e.g. work types, language codes)
- Dashboard: display Institution stats
- Issues form: typing filter string in series search box has no effect on which series are displayed
[0.6.1] - 2021-12-13
- Removed redundant closures and
impls to comply withrustc 1.57.0
- #309 - Update Thema codes to v1.4
[0.6.0] - 2021-11-29
- #92 - Implement institution table, replacing funder and standardising contributor affiliations
[0.5.0] - 2021-11-29
- #297 - Implement publication location
- Requirement to Number fields preventing user from entering numbers below 0 for Counts/below 1 for Editions and Ordinals, and sets Contribution Ordinal default to 1 instead of 0
- #299 - Update Project MUSE ONIX subject output logic
- Updated if and else branches to comply with
rustc 1.56.0
- #292 - Cannot unset publication date: error when trying to clear a previously set publication date
- #295 - various subforms failing to trim strings before saving (including on mandatory fields which are checked for emptiness)
- Factored out duplicated logic for handling optional field values, simplifying the code and reducing the likelihood of further bugs such as #295 being introduced
- Minor issue where some required fields were not marked as "required" (so empty values would be sent to the API and raise an error)
- Issue with subforms where clicking save button bypassed field requirements (so instead of displaying a warning message such as "Please enter a number", invalid values would be sent to the API and raise an error)
- #310 - Add jstor specification to formats
[0.4.7] - 2021-10-04
- #43, #49 - Implement EBSCO Host's ONIX 2.1 specification
- #44 - Implement JSTOR's ONIX 3.0 specification
- #253 - Implement Project MUSE ONIX specification tests
- #242 - Move API models to object-specific subdirectories
- #274 - Add width/height units to CSV specification
- #263 - Add
Doi,IsbnandOrcidtypes to client schema
[0.4.6] - 2021-09-02
- #272 - Use more fields in
contributorsfiltering
- #271 - Make filter parameter optional in
subjectCount
[0.4.5] - 2021-08-12
- #259 - Units selection dropdown to Work and NewWork pages, which updates the Width/Height display on change
- #259 - Local storage key to retain user's choice of units across all Work/NewWork pages
- #259 - Backend function to convert to/from database units (mm): uses 1inch = 25.4mm as conversion factor, rounds mm values to nearest mm, rounds cm values to 1 decimal place, rounds inch values to 2 decimal places
- #259 - Constraints on Width/Height fields depending on unit selection: user may only enter whole numbers when in mm, numbers with up to 1 decimal place when in cm, numbers with up to 2 decimal places when in inches
- #259 - GraphQL and APP queries to specify units when submitting new Width/Height values, and handle conversion if required
[0.4.4] - 2021-08-02
- Read button in catalogue now uses the landing page URL instead of the DOI
- Removed needless borrow to comply with
clippyunderrustc 1.54.0
[0.4.3] - 2021-07-28
- #48 - Implement OAPEN ONIX 3.0 specification
- #254 - Ensure order of fields in create work match those in edit work
[0.4.2] - 2021-07-05
- #125 - Implement
ISBNtype to standardise parsing - #217 - Add "Contribution Ordinal" field to indicate order of contributions within a work
[0.4.1] - 2021-06-22
- #234 - Move database calls out of GraphQL model
- #136, #233 - Implement
DoiandOrcidtypes to standardise parsing thoth-errorscrate to shareThothErrorandThothResult
[0.4.0] - 2021-06-15
- Updated
yewtov0.18.0 - Updated
actix-webto3.3.2 - Catch client errors with
ThothError::EntityNotFound - Use a custom instance of GaphiQL
- Unify
Workoutput structure in client using GraphQL fragments
actix_rt
[0.3.6] - 2021-05-11
- Problem building docker image
[0.3.5] - 2021-05-11
- #213 - Link to documentation in readme
- #206 - Notify user when a new version of the APP is available
- #231 - Link to publication page in work page
- #224 - Implement limit and offset in linked queries
- Implement Crud trait with database calls per object
- #236 - Split server logic into individual crates
- Update rustc to 1.51.0 in docker image
- Replace composite keys in
contributionandissuewith standard UUIDs - Server configuration parsed from binary
[0.3.4] - 2021-03-29
- Upgraded rusct in docker image. Moved
wasm-packto a less fragile build stage using official image, keeping main build statically compiled
[0.3.3] - 2021-03-26
- #120 - Implement table sorting by columns in APP
- #203 - Cascade filtering options to relation queries in API
- #210 - Specify .xml extension when outputting ONIX files
- #182 - Ensure issue's series and work have the same imprint
[0.3.2] - 2021-03-09
- #202 - Enum type filtering in GraphQL queries
- #202 - Query works by DOI
- #195 - Prompt confirmation upon delete
- #199, #201 - Error displaying publications if filtering on empty ISBN or URL
- Trigger a warning when the current user does not have any editting permissions
[0.3.1] - 2021-03-04
- #197 - Error deserialising publications in APP
[0.3.0] - 2021-03-03
- #162 - Only records linked to publishers user has access to are listed in APP
- #167 - Make work contribution the canonical source of contributor names in ONIX output
- #177 - Allow querying objects by linked publisher(s)
- #159, #160, #161 - Add publisher accounts
- #163 - Save a snapshot of each object upon update
- #164, #165 - Add contributor names to contribution
- #168 - Warn users when editing a contributor or a funder that is linked to a work
- #185 - Allow resetting user passwords through CLI
- Allow creating publisher accounts through CLI
- #181 - Enforce numeric values for issue ordinal
[0.2.13] - 2021-01-14
- Update API URL in docker github action
- Remove staging tag in docker github action
[0.2.12] - 2021-01-12
- #153 - Implement created and updated dates to each structure
[0.2.11] - 2021-01-06
- #151 - Make browser prompt user to save Onix XML to file
- #143 - Start using Github Actions instead of Travis
- #121 - Add created and updated dates to each table
[0.2.10] - 2021-01-04
- #127 - Do not exit main entity edit pages upon saving
- #147 - Remove subject code validation for non open subject headings
[0.2.9] - 2020-11-24
- Hide creative commons icon when license is unset in APP catalogue
- Display book cover placeholder when cover URL is unset
- Status tags to APP catalogue
[0.2.8] - 2020-11-23
- Upgrade fontawesome to v5.4.0
- Information banner to APP homepage
- New BISAC codes
[0.2.7] - 2020-11-19
- #118 - Ensure empty data is sent as null not as empty strings
- #131 - Moved forms with relationships outside main object form
[0.2.6] - 2020-11-13
- Fix pricing functionality ommitted in previous release
[0.2.5] - 2020-11-13
- New BISAC codes
[0.2.4] - 2020-11-10
- Implemented pricing CRUD in APP
[0.2.3] - 2020-11-06
- Implemented pagination in all admin components
- Implemented pagination in catalogue
[0.2.2] - 2020-11-03
- Set
THOTH_APIon build via docker
[0.2.1] - 2020-11-02
- Redirect to relevant routes upon save and create actions in APP
- Delete functionality in all APP objects
[0.2.0] - 2020-10-23
[0.1.10] - 2020-06-03
- Roadmap button in index catalogue
[0.1.9] - 2020-06-03
- Roadmap document
[0.1.8] - 2020-06-02
- New design for the index catalogue
[0.1.7] - 2020-03-27
- #35 - Fix date format and lack in ONIX sender header
- Add place of publication to ONIX file
- Use code 03 (description) instead of 30 (abstract) in OAPEN ONIX
[0.1.6] - 2020-03-26
- Fix incompatibilities with OAPEN ONIX parser
- Map ONIX parameter to UUID directly, instead of converting afterwards
- Normalise server route definitions
[0.1.5] - 2020-03-25
- Load assets statically
[0.1.4] - 2020-03-24
- "/" now renders its own page, instead of redirecting to "/graphiql"
- #27 - Produce an OAPEN compatible ONIX file
- #26 - Create an endpoint to allow generating ONIX streams from "/onix/{workId}"
- Dropped support for creating ONIX from binary
[0.1.3] - 2020-03-16
- Pin compiler's docker image to a specific version (best practice)
- Use COPY instead of ADD for directories in Dockerfile (best practice)
- #24 - Implemented rust style guidelines
- #23 - Redirect "/" to "/graphiql"
- #18 - Create ThothError structure to start catching all other types of errors
- #24 - Enforce rust style guidelines using husky (pre-push hook) and travis
- #17 - Allow producing a proto ONIX file from the binary
[0.1.2] - 2020-03-03
- #10 - Port exposing is handled in Dockerfile instead of docker-compose
- #16 - Moved server start function from binary to library
- #9 - Docker image is now compiled statically
- #13 - Added limit and offset arguments to all queries
- #13 - Added default order by clauses to all queries
- #15 - Implemented GraphQL errors for diesel errors
- #13 - Added filter arguments for publishers and works queries
[0.1.1] - 2020-02-27
- Improved Dockerfile to allow running database migrations at run time
- Implemented imprints for publisher graphql object
- #6 - Added subcommands to main binary to allow running embedded migrations without having to install diesel_cli
- Automatic publication to crates.io
[0.1.0] - 2020-02-21
- Database migrations
- GraphQL handlers implementing the thoth schema