0.16.0 Stable Release | InvenTree

# 0.16.0 Stable Release

25 Aug 2024 Oliver

The InvenTree development team is pleased to announce the release of InvenTree stable version 0.16.0. This release once again includes a wide range of new features, bug fixes, and improvements. We have closed out over 250 pull requests against this release target!

## Release Notes

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

## Breaking Changes

This release includes a number of changes which adjust existing APIs and may require updates to custom code or scripts.

View a full list of breaking changes on our GitHub page.

### Report Printing Refactor

In PR #7074, the report printing system has received a major refactor. This change has been a long time coming, and we are excited to see it finally merged into the main branch.

Previously, each report template type was stored in a separate database table. All reports have now been consolidated into a single table, which simplifies the codebase and makes it easier to manage report templates.

A similar single table has been implemented for label templates.

Additionally, the report template live editor has received some improvements, making it easier to create and edit report templates directly within the InvenTree interface.

This change has removed a number of existing API endpoints, as all report functionality is consolidated to a smaller set of API commands. Refer to the InvenTree API documentation for more information.

### Attachment Refactor

In PR #7420, all attachment tables have been consolidated into a single table. This code change results in a large number of redundant API endpoints being removed, and simplifies the codebase. As all attachments are now stored in a single table, any custom plugins which interact with attachments will need to be updated to reflect this change.

### Plugin Static File Management

We have changed the way that static files for plugins are handled. Previously only plugins which used the “app mixin” system could include static files. Now, all plugins can include static files, which are automatically loaded by the InvenTree system.

Refer to PR #7763 for more information.

### Plugin API Lookup

In PR #7224 the plugin API was changed to use the “slug” of the plugin as the primary lookup, rather than the unique ID in the database. This change simplifies the plugin API and makes it easier to manage plugins, allowing consistent access to plugin data.

## Security Patches

A number of critical security updates have been made. For a full list, refer to the GitHub project page.

### Dependency Updates

We have updated a number of dependencies to address security vulnerabilities. These updates are part of our ongoing commitment to security and privacy. While there have been a significant number of dependency updates in this release cycle, below is a list of PRs which address security vulnerabilities:

- https://github.com/inventree/InvenTree/pull/7839
- https://github.com/inventree/InvenTree/pull/7827
- https://github.com/inventree/InvenTree/pull/7620
- https://github.com/inventree/InvenTree/pull/7430

### 2FA Login Fix

2FA authentication for the new React frontend has been fixed in PR #7469.

### Frontend SBOMs

PR #7784 generates SBOMs for the frontend, providing detailed information on the dependencies used in the frontend codebase.

## New Features

This has been a significant release cycle for new features, with a number of exciting additions to the InvenTree codebase. There are so many new updates here that we can’t list them all, some of the highlights include:

### User Interface Improvements

Major improvements have been made to the new React frontend, with a number of new features and enhancements. The new frontend is now the primary focus of development, 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.

### Data Import / Export

We have been working on an entire rewrite of the data import and export system. This new system is more robust and flexible, and allows for more complex data import and export operations. This system is now live in the new React frontend, and we are excited to see it in action.

Future work will focus on bringing all import/export functionality across to the new system, and removing the old import/export system entirely.

### Validation Plugin Enhancements

The validation plugin system has been significantly enhanced to provide greater flexibility for custom validation options.

### API Documentation

The API documentation has been enhanced, and is now built automatically from the InvenTree codebase and included in the InvenTree documentation.

## Bug Fixes

Our commitment to bug fixes continues, with a number of issues resolved in this release cycle. For a full list of bug fixes, refer to the GitHub project page.

Many of these bugs have been identified and fixed by our community of users, and we are grateful for their ongoing support! If you identify a bug in InvenTree, please report it to us on our GitHub issues page.

## Translation Support

Our support for multiple languages continues to grow, and we are grateful to the many contributors who have helped us add new languages to InvenTree. To contribute to the translation effort, please refer our Crowdin page.

## New Contributors

Once again, we are excited to welcome a number of new contributors to the InvenTree project. We are grateful for the time and effort that these contributors have put into the project, and we look forward to working with them in the future.

- @tsimonq2 made their first contribution in #6449
- @zanieb made their first contribution in #7317
- @Gigahawk made their first contribution in #7480
- @mp-strachan made their first contribution in #7488
- @tomvaneyck made their first contribution in #7610
- @lifeisafractal made their first contribution in #7651
- @mredpath2 made their first contribution in #7563
- @medo64 made their first contribution in #7760
- @niclash made their first contribution in #7801

We welcome any new contributors to the project, and we are always looking for new people to help us improve InvenTree. If you are interested in contributing to the project, please refer to our Contributing Guidelines.

## 1.0.0 Release

We continue to push hard to reach the 1.0.0 release milestone. This release will mark a significant milestone in the InvenTree project, and we are excited to see it come to fruition. Fingers crossed that the next minor release will be the last one before our 1.0.0 release!

### User Interface Improvements

The new React interface remains a major hurdle to overcome before the 1.0.0 release. We are working hard to migrate all frontend code to React, and would greatly appreciate any help from the community in this effort. Any assistance with frontend development, testing, or bug fixing would be greatly appreciated. Please reach out via our GitHub page if you are interested in helping out.

## Support the Project

As always, there are many ways to support the InvenTree project!

### Translation

We are always looking for new translators to help us add new languages to InvenTree. If you are fluent in a language other than English, please consider contributing to our translation effort on Crowdin.

### Code Contributions

We welcome code contributions from the community. If you are interested in contributing to the InvenTree codebase, please refer to our Contributing Guidelines.

### Report Bugs

If you find a bug in InvenTree, please report it to us on our GitHub issues page. Reporting bugs is critical to improving the software, and we appreciate any help in identifying and fixing issues.

### Documentation

Documenting a large software project is a challenging and ongoing effort. If you are able to provide assistance in improving the documentation set, please consider doing so! Documentation contributions can be made on GitHub.

### Financial Support

If you or your company uses InvenTree, please consider sponsoring the project to show your support. Sponsorships help to keep this project sustainable, and buys time for the core developers to commit to the project. A recurring or one off sponsorship is a great way to help InvenTree development to continue at full steam!

A friendly reminder that the majority of the work undertaken to keep InvenTree running is done by a very small group of core developers, who do so in their spare time (and are not sponsored by their employers to work on InvenTree). If you benefit from the InvenTree project, please consider contributing to maintain vibrant development of this software!

- Polar.sh
- GitHub
- PayPal

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