0.17.0 Stable Release
17 Dec 2024 Oliver
The InvenTree team is proud to announce the release of InvenTree version 0.17.0! This is the most significant release of InvenTree to date, with a huge number of new features, bug fixes, and improvements. We have closed out over 400 pull requests against this release milestone, and received contributions from multiple developers including seven new contributors.
Release Notes
For a full list of changes made in this release, please see the release notes on GitHub.
Breaking Changes
The following “breaking” changes have been made in this release. Some of these changes will require manual intervention if you are upgrading from a previous version of InvenTree.
Samesite Cookie Fix
Some changes to the underlying Django project have changed the way that samesite cookies are handled. This change illuminated an issue with the way that InvenTree was handling cookies, and this has been fixed in this release.
For existing installs, this change may require intervention from a system administrator to ensure that cookies are handled correctly. Refer to the pull request for further guidance.
Background Worker and Global Cache
The background worker process is now forced to use a single worker thread if global caching (i.e. via Redis) is not enabled. This is to prevent multiple background workers from running concurrently and causing issues with the background task queue. This prevents issues with undefined behavior due to race conditions, but may come with a performance penalty for some installations. Refer to the pull request for further details.
Test Statistics
The “Test Statistics” panel has now been removed from the core InvenTree code, and is now available as a separate plugin. This change was made to reduce the complexity of the core InvenTree codebase, and to allow for more flexibility in the way that plugins are managed. Refer to the pull request for more information.
Plugin Installation Improvements
PR 8503 provides a significant improvement to how plugin installation is synchronized when running InvenTree as a containerized application. Additional checksums are now used to ensure that the plugin installation process is more robust. While this change should be transparent to most users, it is a significant change to the way that plugins are installed and managed.
Security Patches
The following security patches have been applied in this release:
Dependency Updates
A number of core dependencies have been updated to the latest versions to ensure that InvenTree is running the most secure versions of the software. This includes updates to the Django framework, as well as other core dependencies.
XSS Vulnerability via Malicious Barcodes
PR 8286 fixes an issue where a malicious user could craft a custom barcode which could be used to execute a cross-site scripting (XSS) attack. This fix ensures that barcodes are correctly sanitized before being rendered in the InvenTree UI.
All Security Patches
Refer to our GitHub page for a complete list of security patches in this release.
Bug Fixes
Null Location
PR 8565 ensures that the location field of a StockItem is nullified when the item is consumed by a build order or shipped to a customer.
Chinese Language Support
PR 7878 fixes an issue with the Chinese language support in InvenTree.
Part Pricing Fix
PR 8090 fixes a bug which prevented automatic updates of part pricing calculations from working correctly.
Other Bug Fixes
Refer to our GitHub page for a complete list of bug fixes in this release.
New Features
Some of the headline features in this release include:
Order Hold
In PR 7807 we added the ability to mark orders as on hold. This additional status enhances the flexibility of the order management system in InvenTree.
Testable Parts
PR 7888 allows parts to be independently marked as testable. Parts with this flag can have tests associated with them, and can be tested as part of the build process. Note that this flag was previously inherent to the trackable flag, which also allowed parts to be allocated with a serial number. This change separates the two flags, allowing for more flexibility in the way that parts are managed.
User Defined States
Custom “states” can now be defined for a number of different objects in InvenTree. This feature was added in PR 7862 and allows for user defined states to be used in place of some of the default object states. This will open up new possibilities for customizing the way that InvenTree is used.
Sales Order Shipments
We have had a major overhaul in how sales order shipments are managed. When allocating stock against a sales order, the allocation no longer needs to point to a particular shipment. Additionally, the new user interface provides a detailed view for each shipment.
Date Filtering
PR 8544 implements API support for date filtering against different endpoints, in addition to UI elements for the new React interface.
Failed Task Logging
Background task failures are now logged to the database, ensuring that administrators can track the status of background tasks more effectively. This feature was added in PR 8333
Dashboard
The new user interface now supports a configurable dashboard, with multiple widgets that can be added, removed, and re-arranged. This feature was added in PR 8278, and also allows plugins to define custom widgets which can be added to the dashboard.
Translations
The InvenTree translation project has now received contributions from over 450 community members! This is a phenomenal achievement, and we are grateful to all of our contributors who have helped to make InvenTree available in multiple languages.
New Contributors
As always, we are grateful to all of our contributors who have helped to make this release possible. In particular, we would like to thank the following new contributors:
- @timmyhadwen made their first contribution in https://github.com/inventree/InvenTree/pull/8129
- @fuzeman made their first contribution in https://github.com/inventree/InvenTree/pull/8194
- @skydiablo made their first contribution in https://github.com/inventree/InvenTree/pull/8255
- @webtroter made their first contribution in https://github.com/inventree/InvenTree/pull/8292
- @chris-thorn made their first contribution in https://github.com/inventree/InvenTree/pull/8366
- @jacobfelknor made their first contribution in https://github.com/inventree/InvenTree/pull/8475
- @Mixaill made their first contribution in https://github.com/inventree/InvenTree/pull/8516
1.0.0 Release Target
This release marks our last minor release before our 1.0.0 release target. In the coming months we will be making some major changes to the InvenTree codebase to prepare for the 1.0.0 release. In particular, this will include a major overhaul of the frontend codebase - you can read more about that here.
Our major immediate goals for the project are to ensure that the new user interface is feature complete. This will include ensuring that all existing features are available in the new UI, and that the new UI is fully functional.
Support the Project
InvenTree is an open-source project, and we rely on the support of our community to keep the project running. There are many ways that you can support the project, including:
Code Contributions
Check out our GitHub page for a list of outstanding issues and feature requests. If you are a developer, you can help to contribute to the project by submitting a pull request.
In particular, we are looking for assistance with frontend development, as we work to complete the new user interface and improve the overall UI/UX of the project.
Documentation / Technical Writing
If you have experience with technical writing, you can help to improve the InvenTree documentation. We are always looking for help to improve the documentation and make it more accessible to new users.
Translation
We are always looking for help with translations. If you are fluent in a language other than English, you can help to translate InvenTree into your language. Checkout our Crowdin project to get started.
Report Bugs
If you encounter a bug in InvenTree, please report it on our GitHub issues page. Please ensure that you provide as much information as possible to help us diagnose and fix the issue.
Financial 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!
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!