Annif

Latest version: v1.1.0

Safety actively analyzes 621907 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 8

5.2.2

651 Upgrade TensorFlow to version 2.11.*

3.6.1

646 Use axios in web UI; remove jQuery

1.1.0

This release introduces CLI commands to share projects via Hugging Face Hub, takes care of various maintenance tasks and fixes minor bugs.

The [🤗 Hugging Face Hub](https://huggingface.co/) intends to facilitate the sharing of AI models and datasets, and now Annif CLI includes `upload` and `download` commands, which can be used to push and pull a set of selected projects and vocabularies to and from a Hugging Face Hub repository. In this release these commands are regarded experimental; there can be changes in them in the future. See [this Wiki page](https://github.com/NatLibFi/Annif/wiki/Hugging-Face-Hub-integration) for more information about the commands. See also [this Hugging Face Hub collection](https://huggingface.co/collections/NatLibFi/annif-models-65b35fb98b7c508c8e8a1570) which contains the projects served at Finto AI.

Connexion dependency is upgraded to Connexion 3. From now on, when running Annif with Gunicorn, it is required to use Uvicorn workers; the workers can be set using the option `--worker-class uvicorn.workers.UvicornWorker`, see [Connexion 3 documentation](https://connexion.readthedocs.io/en/3.0.6/v3.html#running-the-application) for more details. However, Docker image users do not have to add this option because an enviroment variable in the Docker image sets the worker-class. Two changes due to the upgrade to Connexion 3 relate to the REST API:
- the header `Access-Control-Allow-Origin: *` is now included in the response only if there's an Origin header in the request, whereas before that header was sent if the Origin header was not present in the request,
- the URL `/v1/projects/` used to give a 404 response, but now it redirects to the correct URL `/v1/projects`.

Support for Python 3.8 is removed. Python 3.12 is supported except for NN-ensemble and STWFSA backends.

It is now possible to select the projects that Annif loads on startup using the environment variable `ANNIF_PROJECTS_INIT`, which can be useful in container environments as this allows distributing resource demand across multiple Annif processes.


**Supported Python versions**
* 3.9, 3.10 and 3.11 are fully supported
* 3.12 is supported except NN-ensemble and STWFSA backends

**Backward compatibility**
* NN ensemble projects trained with Annif v1.0 or older need to be retrained; for other projects the warnings by SciKit-learn are harmless
* When using Annif with Gunicorn HTTP server the worker class needs to be set to Uvicorn with the option `--worker-class uvicorn.workers.UvicornWorker`

**Enhancements**
762/760 Implement `annif upload` and `annif download` commands for Hugging Face Hub integration
774/733 Allow loading selected projects using environment variable
736 Optimization: load a vocabulary only once even if used in different languages
745 Show Annif version in WebUI
751 Create [`SECURITY.md`](https://github.com/NatLibFi/Annif/blob/main/SECURITY.md)

**Maintenance**
702/689/698 Upgrade to Connexion3
780 Add partial Python 3.12 support
770 Drop Python 3.8 support
771/786 Update dependencies for v1.1 release
739 Harden GitHub Actions
781 Make Dependabot group GitHub Actions updates into one PR
740-744/750/757/758/763-766/783 Upgrade GitHub Actions

**Bug fixes**
784/785 Add informational error message for failed loading of nn-ensemble model
732 Fix: Add missing completion command to commands list in RTD
773 Fix blocked http-request for version number on https site
778 Fix project data files detection
752 Fix tests error due to pinned Schemathesis version 3.19.* / Docker rebuild
759 Fix installation on Python 3.8 due to missing Tensorflow-io wheel
767 Fix tests and Docker rebuild due to defunct Schemathesis and pytest dependencies resolution
768 Fix ReadTheDocs builds by upgrading docs build dependencies

1.0.2

This is a patch release that fixes bugs arisen after the Annif 1.0.1 release.

Bugs fixed:
759 Fix installation on Python 3.8 due to missing Tensorflow-io wheel
767 Fix tests and Docker rebuild due to defunct Schemathesis and pytest dependencies resolution

1.0.1

This is a patch release that fixes a bug arisen after Annif 1.0 release.

The bug affected only running unit tests, but the side-effect was that it also prevented rebuilding the Docker image of version 1.0.

Bugs fixed:
747/752 Tests error due to pinned schemathesis version 3.19.* / Docker rebuild fails

1.0.0

We are excited to introduce Annif version 1.0!

Advancing the version number to the 1.x series means that Annif is considered ready for more general, production use. The upcoming releases in the series (patches 1.0.x and minor feature releases 1.x.x) will be backward compatible, following the semantic versioning principle. See a [Wiki page describing the aspects of the compatibility](https://github.com/NatLibFi/Annif/wiki/Backward-compatibility-between-Annif-releases).

The changes in this release include enhancements to the command-line interface as well as many bug fixes and maintenance updates. The CLI commands, options and most parameters can now be tab-completed when the support is enabled: see instructions in [README.md](https://github.com/NatLibFi/Annif/tree/915d5db805163d9b8dffe01bee48bd835bb87f79#shell-compeletions). Also the CLI startup time has been optimized, and the output of many commands has been refined.

Python 3.11 is now mostly supported; the Omikuji backend cannot yet be used on Python 3.11 because the Omikuji library does not support it at the moment.

From now on the Docker image of the latest release in the [quay.io repository](https://quay.io/repository/natlibfi/annif?tab=tags) is going to be rebuilt from time to time in order to apply security updates to the image. The rebuilds will not change Annif itself. Version tags (`<major>.<minor>[.<patch>]`) can be used to reference the latest build of the version. To allow more strict pinning to a particular build, the images will also be tagged with the build date as a suffix: `<major>.<minor>.<patch>-<YYYYMMDD>`.

Supported Python versions:
* 3.8, 3.9 and 3.10 are fully supported
* 3.11 is supported except Omikuji backend

Backward compatibility:
* MLLM, STWFSA and NN ensemble projects trained with Annif v0.61 or older need to be retrained; for other projects the warnings by SciKit-learn are harmless
* Using STWFSA backend now requires installing an optional dependency

New features:
684/693 Support for CLI command completions
703/727 Python 3.11 support

Improvements:
696 Optimize CLI startup time
686/694 Improve outputs of project inspection CLI commands
704 Show scores in outputs of suggest, eval and index with only 4 decimals

Maintenance:
690/708 Use Python type hints
699/700 Make stwfsapy an optional dependency (credit: cbartz)
315/712/714 Add CI/CD job for testing Docker image
707/711 Ensure system packages are up-to-date in Docker image
715 Add CI/CD workflow for rebuilding Docker image
706/725 Test CLI startup time with CI/CD job
723 Update ReadTheDocs documentation
726/697/532 Update and pin dependencies v1.0
730 Switch to Keras v3 save format for nn_ensemble
731 Upgrade Docker baseimage to Debian Bookworm

Bug fixes:
705 Fix crashing index command when targeted directory contains subject files
717 Fix Python version in GitHub Actions CI/CD pipeline
718 Fix missing limit parameter in STWFSA backend
722 Fix train state and modification time for unfinished project training
720/721 Suppress TensorFlow info messages to debug level
695 Fix displaying of modification time for null value in Web UI project information
701 Remove duplicated fasttext entry in optional dependencies list in Dockerfile
728 Avoid PytestUnknownMarkWarning due to "slow" marker
729 Avoid scikit-learn UserWarning for vectorizer parameter token_pattern

Other:
616 Discussion on semantic versioning for Annif releases beyond 1.0

Page 1 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.