Skip to content

Annif 0.60

Compare
Choose a tag to compare
@juhoinkinen juhoinkinen released this 20 Jan 08:32
v0.60.0
9eb42dd

This release includes improvements and maintenance updates in particular to the Web UI and REST API as well as some new functionality, especially related to multilingual support. The Web UI no longer relies on jQuery, as the last parts that were used were replaced with Axios. The REST API and Web UI updates are by @UnniKohonen, who has joined @NatLibFi as a trainee in the Annif & Finto development teams.

It is now possible to override the language for subject suggestion labels instead of always using the project language: when using the annif suggest command by giving the new --language/-L option, and when using the REST API suggest method by the new optional language parameter.

A new resource is added to the root of the REST API (i.e. http://<annif_host>/v1/) that gives basic information on the API (a title for the API and the version of Annif being used). Also, the REST API spec has been updated to OpenAPI 3.0. In the Web UI it is now possible to see detailed information about a project (language, backend type, modification timestamp etc.). 

Multiprocessing support for Mac OS and Windows environments has been improved by supporting the 'spawn' multiprocessing mode.

The language detection is now performed with Simplemma instead of pycld3. This functionality is now installed by default instead of being an optional extra.

New code style tools Black and isort are now used to help maintaining good code quality; see CONTRIBUTING.md how they can be used and instructions to how best participate in Annif development.

Many dependendencies have been updated to their most recent versions.

Note also that we are preparing for Annif 1.0 release. For this purpose we have opened the issue #616 for discussing the expectations of backward compatibility and Semantic Versioning in releases beyond 1.0.

Backward compatibility:

  • Models trained with Annif v0.59 should remain working; the warnings by SciKit-learn are harmless
  • The annif loadvoc command has been removed, as in the previous release it was deprecated and replaced by the annif load-vocab command.

New features:
#628/#630 Allow overriding subject label language in CLI and REST suggest operations
#637/#638 Add support for spawn multiprocessing mode
#654 Add project info to web UI
#655/#658 Add REST API root resource

Improvements:
#593/#626 Use Simplemma instead of pycld3 for language detection
#643 Add CONTRIBUTING.md file
#645 Use tailored user-agent in requests by HTTP-backend
#644/#649 Upgrade REST API spec to OpenAPI 3
#627 Upgrade joblib to 1.2.x
#642 Upgrade jQuery to version 3.6.1
#646 Use axios in web UI; remove jQuery
#648 Upgrade Bootstrap to version 5.2.2
#651 Upgrade TensorFlow to version 2.11.*
#660 Update dependencies v0.60
#647/661 Order of projects when using project configuration directory

Maintenance:
#609/#640 Use black code style
#641 Use isort to order import statements
#656 Install linting tools with Poetry in CI/CD pipeline
#624 Increase timeout of test and publish GH Actions jobs
#653 Add CodeQL workflow for GitHub code scanning
#599/#650 Avoid using pytest-flake8 plugin
 #657/#662 Upgrade GitHub Actions
#636 Better set up for docker-compose