0.14.0 Stable Release | InvenTree

# 0.14.0 Stable Release

02 Mar 2024 Oliver

The InvenTree development team is very excited to announce the latest stable release of InvenTree - v0.14.0. With ith over 200 pull requests since the 0.13.0 stable release, this release once again represents a significant step forward for the project.

## Breaking Changes

This release includes a number of changes which may affect existing installations of InvenTree. If you are upgrading from a previous release, read the following section carefully. You should also refer to the release notes for a full set of changes in this release.

### Django 4.2

In PR 6173, InvenTree has been updated to use Django 4.2. This is a major version update for Django, and required a number of changes to the InvenTree codebase and dependencies.

Most (hopefully all) of the required changes have been made, but there may be some edge cases which have been missed. If you encounter any issues with the Django 4.2 update, please report them on our github page.

You should also refer to the Django 4.2 release notes for a full list of changes.

### Site Access Changes

Django 4.2 has introduced some changes to how cross-site protection is handled. Your existing InvenTree installation may require some changes to continue to operate as expected. In particular, the `CORS` and `CSRF` settings have been made more strict by default. Refer to the server access configuration guide for instructions on which settings will need to be updated.

### Multi Site Support

InvenTree has, by default, shipped with multi site support enabled. This is an advanced django feature which 99% of users will not need, and only serves to complicate the installation process.

So, in PR 6390 we have disabled multi-site support by default. This should simplify the installation process for most users.

For any users who have been using multi-site support, you will need to manually re-enable it after upgrading to 0.14.0. Refer to the InvenTree documentation for more information.

### Test Results

InvenTree has long supported test results for stock items. In PR 6430, a significant enhancement was made to the test result system. Previously, test results were not linked to a specific test template in the database. Instead, the results and templates were loosely linked via a string key.

In 0.14.0, the test result system has been updated to use a proper database relationship between test results and test templates. This means that test results are now linked to a specific test template, and the test result system has been updated to reflect this change.

This change should be transparent to most users, but if you have been using the test result system in a custom way, you may need to update your code to reflect the new database structure.

In particular, any external systems which upload test results via the InvenTree API will need to be examined and tested. While the changes to the API have been implemented to ensure backwards compatibility with existing systems, it is possible that some edge cases have been missed.

### Docker Compose

In PR 6551 we have made a significant change to the way that InvenTree is deployed using Docker Compose. Previously, the provided docker compose template used nginx as a reverse proxy for the InvenTree web server, and for serving static and media files.

In this release, we have switched to using Caddy as the reverse proxy. Caddy is a modern, easy-to-use web server which is designed to be simple to configure and use. It confers a number of significant advantages to the InvenTree setup:

Simplified Configuration

Caddy is designed to be easy to configure, and the Caddyfile syntax is much simpler than the equivalent nginx configuration.

Automatic HTTPS

Caddy is designed to automatically handle HTTPS certificates using Let’s Encrypt. This means that InvenTree can be deployed with HTTPS enabled by default, without any additional configuration.

For users who have been running with the previous nginx based setup, no changes are required. Existing nginx configurations will continue to work as expected. However, for new installations, the Caddy based setup is now the recommended approach. We would also recommend that existing installations consider migrating to the Caddy based setup.

### Devcontainer

In PR 6590 we have made some changes to our devcontainer setup in vscode. The devcontainer is a docker-based development environment which is designed to make it easy to contribute to the InvenTree project. We now use postgresql as the database backend in the devcontainer setup - previously this setup used sqlite for a local development database.

However, as sqlite is not suitable for a multi-user development environment, we have switched to using postgresql. This should make the devcontainer setup more closely match a production environment.

Users who have been using the devcontainer setup will need to update their local vscode setup. At a minimum, you will need to rebuild the devcontainer.

If you encounter any issues updating your devcontainer setup, try deleting the `dev` directory and re-creating the devcontainer.

## New Features

A significant number of new features have been added to InvenTree in this release. Some of the highlights include:

### Machine Integration

PR 4824 provides a new machine integration system for InvenTree. This system allows InvenTree to communicate with external machines, and to track the status of those machines. This is a significant new feature which will allow InvenTree to be used in a wider range of manufacturing environments.

### Tracing Support

PR 6211 adds support for OpenTelemetry tracing. This allows InvenTree to be integrated with a wide range of tracing systems, and provides a powerful tool for monitoring and debugging InvenTree installations.

### Enhanced Validation

Enhanced custom validation is implemented in PR 6410. This addition allows for more comprehensive validation of models by integrated plugins. Refer to the updated validation plugin docs for more information.

### API Documentation

Multiple PR (including PR 6319) have been submitted to enable the generation of API documentation. This will allow for the automatic generation of API documentation, and will make it easier for developers to understand and use the InvenTree API. In fact, we now track all API changes in a separate repository.

### Plugin Error Logging

We have improved error logging for plugin code - see PR 6455. This will make it easier to debug issues with custom plugins.

### Unit System Updates

Multiple new features have been added to the physical unit management system in InvenTree.

- PR 6539 adds support for engineering units.
- PR 6584 adds support for temperature units.

### And More

Refer to the release notes for a full list of changes in this release!

## React Interface

Development of the new React frontend interface continues at a rapid pace. The new interface is designed to replace the existing frontend, and will provide a modern, responsive, and fast user interface for InvenTree.

The new interface is not yet feature complete, but is rapidly approaching a point where it can be used for day-to-day operations. We are very excited about the new interface, and we are looking forward to sharing it with the community.

The new interface is enabled by default, and can be accessed by navigating to `/platform/` on your InvenTree installation. You can see it live at https://demo.inventree.com/platform/. If you encounter any issues with the new interface, please report them on our github page!

### Developers Wanted

We are looking for developers to help with the React frontend. If you are interested in contributing to the project, please get in touch! There are many outstanding issues which need to be addressed, and many would make good starter issues - perfect for new contributors!

## Bug Fixes

As always, this release includes a number of bug fixes and performance improvements. We would like to thank everyone who has contributed to the project by reporting issues, and by submitting pull requests to fix them.

## New Contributors

This release has been enhanced by the contributions of many developers, and we would like to thank everyone who has contributed to the project!

Thanks to the following contributor who made their first contribution to the project in this release:

- mcollins-DL

Without the support of our contributors, InvenTree would not be where it is today. Thank you to everyone who has contributed to the project!

## New Languages

In this release we have added support for 1 new language:

- Slovak

If you would like to help translate InvenTree into your language, please read our translation guide. We currently support 32 languages, but there are many more that we would like to support!

## Release Notes

For a full list of changes, please see the release notes on GitHub.

## Deploying InvenTree

If you are new to the InvenTree project, there are multiple ways to deploy InvenTree for your own use. Please refer to the deployment guide for more information.