--- author: SchrodingersGat title: 0.16.0 Stable Release --- 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](https://github.com/inventree/InvenTree/pulls?q=is%3Apr+is%3Aclosed+milestone%3A0.16.0) against this release target! ## Release Notes For a full list of changes made in this release, please see the [release notes on GitHub](https://github.com/inventree/InvenTree/releases/tag/0.16.0). ## 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](https://github.com/inventree/InvenTree/pulls?q=is%3Apr+is%3Aclosed+milestone%3A0.16.0+label%3Abreaking). ### Report Printing Refactor In [PR #7074](https://github.com/inventree/InvenTree/pull/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](https://github.com/inventree/InvenTree/pull/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](https://github.com/inventree/InvenTree/pull/7763) for more information. ### Plugin API Lookup In [PR #7224](https://github.com/inventree/InvenTree/pull/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](https://github.com/inventree/InvenTree/pulls?q=is%3Apr+is%3Aclosed+milestone%3A0.16.0+label%3Asecurity). ### 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](https://github.com/inventree/InvenTree/pull/7469). ### Frontend SBOMs [PR #7784](https://github.com/inventree/InvenTree/pull/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](https://docs.inventree.org). ## 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](https://github.com/inventree/InvenTree/pulls?q=is%3Apr+is%3Aclosed+milestone%3A0.16.0+label%3Abug). 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](https://github.com/inventree/inventree/issues). ## 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](https://crowdin.com/project/inventree). ## 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](https://github.com/tsimonq2) made their first contribution in [#6449](https://github.com/inventree/InvenTree/pull/6449) * [@zanieb](https://github.com/zanieb) made their first contribution in [#7317](https://github.com/inventree/InvenTree/pull/7317) * [@Gigahawk](https://github.com/Gigahawk) made their first contribution in [#7480](https://github.com/inventree/InvenTree/pull/7480) * [@mp-strachan](https://github.com/mp-strachan) made their first contribution in [#7488](https://github.com/inventree/InvenTree/pull/7488) * [@tomvaneyck](https://github.com/tomvaneyck) made their first contribution in [#7610](https://github.com/inventree/InvenTree/pull/7610) * [@lifeisafractal](https://github.com/lifeisafractal) made their first contribution in [#7651](https://github.com/inventree/InvenTree/pull/7651) * [@mredpath2](https://github.com/mredpath2) made their first contribution in [#7563](https://github.com/inventree/InvenTree/pull/7563) * [@medo64](https://github.com/medo64) made their first contribution in [#7760](https://github.com/inventree/InvenTree/pull/7760) * [@niclash](https://github.com/niclash) made their first contribution in [#7801](https://github.com/inventree/InvenTree/pull/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]({% link contribute.md %}). ## 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](https://crowdin.com/project/inventree). ### 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]({% link contribute.md %}#code). ### Report Bugs If you find a bug in InvenTree, please report it to us on our [GitHub issues page](https://github.com/inventree/inventree/issuse). 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](https://github.com/inventree/InvenTree/tree/master/docs). ### 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](https://polar.sh/inventree) - [GitHub](https://github.com/sponsors/inventree) - [PayPal](https://paypal.me/inventree?locale.x=en_AU) ## 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]({% link deploy.md %}) for more information.