0.15.0 Stable Release | InvenTree

# 0.15.0 Stable Release

14 May 2024 Oliver

Development on InvenTree continues at a rapid pace, and we are pleased to announce the release of InvenTree version 0.15.0. With more than 300 commits since the 0.14.0 stable release, this release includes a wide range of new features, bug fixes, and improvements.

## Breaking Changes

### Code Restructure

The code structure has been refactored to improve maintainability and readability. As we work to refactor the entire frontend interface, there is a significant split between the backend code (Python) and the frontend code (React). This refactor has been a long time coming, and we are excited to see it finally merged into the main branch.

The code is now split into two main directories:

- `./src/backend/` contains all the server code (Python, Django)
- `./src/frontend/` contains all the client code (JavaScript, React)

Additionally, we are working to improve the test coverage of the frontend code, and have added a number of new tests to ensure that the frontend code is as robust as possible.

You can read more about the code refactor in this PR.

## Security Patches

A number of patches were applied to the InvenTree codebase to address security vulnerabilities. These updates were implemented as part of our ongoing commitment to security and privacy.

These patches include:

- Add OSSF Scorecard - #6769
- Bump django from 4.2.10 to 4.2.11 - #6745
- Pin hashes in requirement files #7081

## New Features

A number of significant new features and enhancements have been added in this release. Some of these new features are described below:

### Template Editor

An interactive template editor (for editing report and label templates) has been added to the React frontend. This feature allows users to create and edit templates directly within the InvenTree interface, and also provides a live preview for label and report templates.

This presents a significant improvement over the previous template editing process, which required users to manually edit template files in an offline editor.

Full details can be found in this PR.

### Backup and Restore Functionality

Backup and restore functionality has been improved by adding new command line options for the `backup` and `restore` management commands. These commands allow users greater control when creating a backup of the InvenTree database, and restoring it at a later time.

### Company Active Field

An “active” field has been added to the Company model. This field allows users to mark a company as “active” or “inactive”, which can be useful for managing company records in InvenTree.

Read more in this PR.

## React Interface Development

Development of the new React interface continues steadily. This is our major focus now, and we are working to migrate all frontend code to React. From this point onwards, major bug fixes and security patches will still be applied to the old frontend, but new features will only be added to the React frontend.

We intend to depreciate the old frontend in the future, so we encourage all users to start using the new React interface as soon as possible.

### URL Redirects

URL redirects have been implemented in the React frontend to ensure that users are redirected to the correct page when they navigate to a specific URL. This feature improves the user experience and ensures that users are always directed to the correct page.

Refer to this PR.

### Login State Management

Login management for the React frontend has received some significant updates in #7158. This PR improves the login state management for the React frontend, and ensures that the login state is correctly maintained across the application.

## New Language Support

We have added translation support for the following languages.

- Add Latvian language in #6749

## Devops Changes

This release cycle has seen a focus on improving the development and testing process for InvenTree. We have updated our unit testing framework, improved our CI/CD pipeline, and made a number of other changes to improve the development process.

### Code Coverage

We have moved our code coverage reporting to codecov. This change allows us to better track code coverage across the entire codebase, and ensure that we are maintaining a high level of test coverage.

### Playwright Tests

We now run Playwright tests in our CI pipeline. This allows us to test the frontend interface in a more automated way, and ensures that the frontend code is functioning correctly. As the React frontend makes heavy use of the InvenTree API, this testing also helps increase test coverage of the API and backend code.

## Bug Fixes

As always, a number of bug fixes have been implemented in this release. For a full list of the bugs squashed in this release, refer to our GitHub page.

## New Contributors

Two new contributors have made their first contribution to the InvenTree project in this release:

- @XanderLuciano made their first contribution in #6694
- @emmanuel-ferdman made their first contribution in #7019

As always, we welcome new contributors to the project! If you are interested in contributing to InvenTree, whether it be code, documentation, or translations, please get in touch!

## 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.