Jekyll2025-09-17T18:43:15+00:00/blog/feed.atomInvenTreeInvenTree is an open-source inventory management system which provides intuitive parts management and stock control. It is at the center of an ecosystem of addins for EDA tools, API wrapper, deeply integrated plugins and 3rd party tools.1.0.0 Release2025-09-15T00:00:00+00:002025-09-15T00:00:00+00:00/blog/2025/09/15/1.0.01.0.0 Release

The 1.0.0 release marks a major milestone for the InvenTree project. Not only does it represent an important step in the evolution of the software, but it also introduces a host of new features and improvements that enhance the user experience.

This release includes significant updates to the user interface, performance optimizations, and a range of new functionalities that have been requested by our community.

With over 600 closed issues, this release is a testament to the hard work and dedication of our contributors. We are excited to see how these changes will benefit users and help them manage their inventories more effectively.

Changelog

For a full list of changes made in this release, please see the release notes on GitHub. The major changes are documented below, but there are many other improvements and bug fixes that have been implemented as well.

You can also view a full changelog between 0.17.0 and 1.0.0

Going forward, we will be tracking major project changes in an internal CHANGELOG file - this file will be updated with each release, and will provide an overview of the major changes made in each version. This file is in addition to the release notes which are provided by GitHub.

Update Procedure

To update to the latest version of InvenTree, please follow the updating instructions provided in the InvenTree documentation. Note that the particular update procedure may vary depending on your installation method.

User Experience Survey

In conjunction with the 1.0.0 release, we have launched a user experience survey to gather feedback from our community. This survey is designed to help us understand how users are utilizing InvenTree, what features they find most valuable, and where we can improve.

The survey is anonymous and should take no more than 10 minutes to complete. We encourage all users to participate, as your feedback is invaluable in shaping the future of InvenTree. Please consider taking the survey and sharing it with others who use InvenTree.

Breaking Changes

As with any major release, there are some breaking changes that users should be aware of. These changes may require adjustments to existing installations, plugins, or customizations.

The most significant breaking changes are documented below, but users should also refer to the full list of breaking changes.

User Interface Overhaul

By far the largest change introduced in this release is the new user interface. The UI has been completely refactored to use a modern javascript / React framework, which allows for a more responsive and dynamic user experience. This change not only improves the performance of the application but also makes it easier to maintain and extend in the future.

The new UI is now available at the /web/ endpoint - and the old UI has been removed entirely.

Note that old URLs have been remapped to the new UI, so users should not experience any issues with bookmarks or links that point to the old interface.

The general “look and feel” of the InvenTree UI remains consistent with previous versions, but the underlying technology has been updated to provide a more robust and flexible foundation for future development.

While we have made every effort to ensure that the new UI is compatible with existing data and functionality, there may be some edge cases where users encounter issues. We encourage users to report any problems they encounter so that we can address them promptly. In particular, if there are any features that are missing or not functioning as expected, please let us know via GitHub issues.

Plugin System Enhancements

The plugin system has received significat attention in this release. In particular, the plugin system now provides a mechanism for plugins to render their own user interface componenents within the new UI framework.

To this end, we have released an npm package that provides an interface layer for plugins looking to render custom components within the InvenTree UI.

Additionally, we now have a plugin creation tool which allows users to quickly scaffold InvenTree plugins.

Machine Registry Enhancements

The machine registry has received an overhaul which introduces a breaking change for any plugins which implement custom machine registry functionality.

If you have implemented a custom machine registry plugin, you will need to update your plugin to work with the new machine registry system. In particular, the plugin must now implement a new MachineDriverMixin class, which provides a consistent interface for interacting with the machine registry.

User Interface Plugins

This change may require some adjustments for users who have customized their InvenTree installation, particularly if they have created custom templates or plugins that rely on the old UI structure.

Any plugins which have not been updated to work with the new UI will not function correctly, and will need to be adjusted to work with the new interface. This is after we removed the old PanelMixin class. This means that any plugins which inherit from the PanelMixin class will now throw an error when loaded.

The new UI plugin system provides a significant amount of context information to the plugins at render time. This means that plugins can now access information about the current user, the current page, and other relevant data when rendering their components.

Additionally, the plugins can access the API directly from the UI, allowing for more dynamic interactions and data retrieval, without the plugin needing to authenticate separately.

This plugin context system was introduced in #9439, but further additions and improvements have been made in subsequent pull requests.

The @inventreedb/ui npm package provides full type definitions for the plugin context, making it easier for developers to create plugins that integrate seamlessly with the new UI.

Further, the npm package provieds a set of pre-defined react components which can be reused by plugins.

Scaffolding a UI plugin from scratch represents a significant amount of work, so we have created a plugin creation tool which generates all of the necessary boilerplate code to get started quickly. This tool can be used to create a new plugin that is ready to be extended with custom functionality.

To integrate seamlessly with the UI, plugin developers should be aware that some core libraries (such as react / mantine / lingui) must be externalized, as they are already provided by the InvenTree UI. This means that plugins should not include their own versions of these libraries, as this can lead to conflicts and unexpected behavior.

Note that this is all handled automatically by the plugin creation tool, so developers should not need to worry about this unless they are creating plugins manually.

Notification Plugins

We have changed the way that notification methods can be implented via plugins. This change was made to ensure that custom notification methods were able to be loaded and unloaded correctly, and to provide a more consistent approach for implementing notification methods across different plugins.

However - this change is not backwards compatible with existing plugins that implement notification methods. Plugin developers will need to update their plugins to use the new notification system in order to continue providing custom notification methods.

Builtin Plugins

The InvenTree project now includes a number of builtin plugins that provide additional functionality and features. These plugins are designed to work seamlessly with the new UI and provide a range of enhancements to the core InvenTree functionality.

Some of these plugins are mandatory - as they are required for the core functionality of InvenTree. These mandatory plugins are installed automatically when InvenTree is installed, and cannot be disabled.

Docker Changes

Our official docker image is now based on a Debian image, rather than Alpine. This change was made due to a number of limitations with the Alpine image. The move to a Debian image also brings the docker image closer to the other installation methods, and the devcontainer setup.

Functionally, the new docker image should behave identically to the old image, and users should not experience any issues when updating.

Additionally, we have updated the supported postgres version in our docker image from version 13 to version 17.

For new installations, this should not cause any issues, as the docker image will automatically pull the latest version of postgres.

For existing installations, this will only make a difference if you wish to update your existing database. Note that our docker image will still support connection to older versions of postgres, so users can continue to use their existing database without any issues.

API Changes

There have been a significant number of changes to the InvenTree API in this release, although the majority of these changes are backwards compatible.

All API changes are documented in the source code, and users can refer to this file to see the specific changes that have been made.

Additionally, the API schema is documented and provides a comprehensive overview of the available endpoints and their parameters.

Stock Item Creation

Creation of stock items via the API has been adjusted, to ensure that the return type is consistent. Now, the return type is always an array of items, even if only a single item is created. Refer to PR #9969 for more information on this change.

Auth Changes

We have refactored our authentication framework significantly, both to support the new UI and also to align with modern best practices.

These changes should not affect most users, as we have endeavored to maintain compatibility with existing authentication methods. However, users who have implemented custom authentication mechanisms may need to review their code to ensure compatibility with the new framework.

In particular we have updated our django-allauth framework to align with changes to that library.

Bulk Update Mixin

In PR #9313 we introduced a “BulkUpdateMixin” class which allows some API endpoints to support bulk updates. This mixin can be used to extend existing API endpoints to allow for bulk updates of objects, which can significantly improve performance when updating large datasets.

Part Scheduling

The existing “Part Scheduling” feature has been removed in this release, and replaced with a plugin-based solution. This change was made to allow for greater flexibility and customization of the scheduling functionality, as well as to improve performance and maintainability.

Refer to the InvenTree Stock Forecasting plugin to replace the old part scheduling functionality.

Part Stocktake

The “Part Stocktake” feature has been refactored to make use of the new import/export framework. Prior to 1.0.0, the concept of “stocktake” referred to two separate concepts:

  1. The ability to provide a snapshot of the current stock levels for a part
  2. Record historical stock levels for a part

These are now split into two separate features:

Stocktake Export

Exporting stocktake data is now handled by a provided export plugin, which integrates into the refactored data export framework. This means that the “stocktake” feature is no longer a separate exporter pathway. Refer to the InvenTree documentation for details on how to use the new stocktake export functionality.

Stock History

The “Stock History” feature remains in place, and allows users to view the historical stock levels for a part. This feature provides a detailed view of how stock levels have changed over time, and can be useful for tracking inventory trends and identifying potential issues.

Refer to PR #10124 for further information on this change.

Auto-Create Child Builds

The “auto-creation of child builds” feature has been removed from the core functionality, as it was not configurable and too narrowly scoped to be useful for most users. This feature has been replaced with a more flexible plugin-based solution, which allows users to create custom logic for automatically creating child builds based on their specific requirements.

Refer to PR #9574 for more information.

Remove django-import-export

In #8685 we removed the django-import-export framework, which is what was previously used for data import and export. This has been replaced with a custom API driven solution which is more flexible and easier to use. Our new framework runs in the background worker, allowing for processing of large datasets without blocking the user interface (or causing the web server to timeout).

Our data import and export framework has been completely rewritten, and replaced with a custom API driven solution.

Stock Return

The “Stock Return” functionality has been expanded to allow for stock to be returned after having been consumed by a build order. To facilitate this, the API has been refactored to allow for stock returns to be processed more efficiently, and the user interface has been updated to reflect these changes.

However this does represent a breaking change to the API, and users who have implemented custom logic for handling stock returns will need to update their code to accommodate the new API structure.

Refer to PR #10132 for more information on this change.

New Features / Improvements

There are a number of new features and improvements in this release, many of which have been requested by our community. Some of the most notable changes include:

Performance Improvements

We have made significant performance improvements across the board, particularly in areas such as data loading and rendering. The new UI framework is designed to be more efficient, which should result in a smoother experience for users, especially when dealing with large datasets.

The API has also been optimized to reduce response times and improve overall performance.

Dashboard

The new user interface now includes a customizable dashboard that allows users to add, remove, and rearrange widgets according to their preferences. This feature provides a more personalized experience and enables users to focus on the information that is most relevant to them.

This dashboard can be extended with custom widgets provided by plugins, allowing for even greater flexibility and customization.

Order Calendar Views

We have reimplemented calendar views for purchase orders, sales orders, and build orders. These calendar views allow users to see their orders in a calendar format, making it easier to visualize and manage their order schedules.

Email Enhancements

PR #9608 enhances email support capabilities, including plugin support for sending and receiving emails.

Order Start Dates

In #PR 8966 we introduced a new “start date” field for purchase orders and sales orders. This field allows users to specify the date when the order is expected to start processing, which can be useful for planning and scheduling purposes. In #8915 the “start date” field was also added for build orders.

Reporting Printing

Printing of reports and labels is now offloaded to the background worker, allowing for more efficient processing of large reports without blocking the user interface. This change also introduces progress tracking for report generation, so users can see the status of their report as it is being generated.

Additionally, reports and labels can now be generated programatically from plugins, allowing for greater flexibility and customization of report generation.

Report Merging

PR #9532 introduces a new feature that allows users to merge multiple items into a single report. When generating reports against multiple items, users can now select to render the report as a single document, rather than generating separate reports for each item.

This is selected as an option against a particular report template. Note that it requires the report template to be designed to support merging, as not all templates will be suitable for this feature.

Part Parameter Tracking

PR #10023 tracks the user who last modified a part parameter, and when it was last modified. This change provides greater visibility into changes made to part parameters.

External Build Orders

In PR #9312 we introduced support for external build orders, allowing users to manage build orders that are fulfilled by external suppliers. This feature is particularly useful for users who need to manage builds that are outsourced to third-party manufacturers or suppliers.

Refer to the InvenTree documentation for further information.

BOM Enhancements

Added support for greater flexibility in managing Bills of Materials (BOMs) - refer to #10042 for details.

Build Order Consume

PR #8191 adds the ability to partially consume stock against a build order, even if the build order is not yet complete. This feature allows users to consume stock as it allocated, rather than waiting for the entire build order to be completed. This provides users greater flexibility in managing their inventory and build orders, and can help to reduce delays in production.

Serial Number Navigation

PR #9505 adds the ability to navigate between serial numbers in the user interface.

Override Global Settings

PR #9718 introduces the ability to override global settings via system-level configuration. This allows system administrators to “lock down” certain settings, preventing users from changing them in the user interface. This is particularly useful for ensuring consistency across installations and preventing accidental changes to critical settings.

Override Plugins

In PR #10094 we introduced the ability for system adminstrators to mark certain plugins as “mandatory” at the system configuration level. This means that these plugins cannot be disabled or uninstalled by users, ensuring that critical functionality remains available.

Bug Fixes

There have been a significant number of bug fixes in this release, with over 150 tagged PRs.

Note that many of these bug fixes are related to implementation of the new interface, and may not represent issues present in previous versions of the InvenTree software.

Contributing

As always, we would like to extend our heartfelt thanks to all of the contributors who have worked tirelessly to make this release possible. The InvenTree project is a community-driven effort, and it is only through the contributions of our users that we are able to continue improving and evolving the software.

There are now over 100 contributors to the InvenTree project, and we are grateful for each and every one of you. Whether you have contributed code, reported bugs, provided feedback, or simply used the software, your support is invaluable to us.

New Contributors

The following developers made their first contributions to the InvenTree project in this release:

  • @gunstr made their first contribution in https://github.com/inventree/InvenTree/pull/9274
  • @reilly-callaway made their first contribution in https://github.com/inventree/InvenTree/pull/9575
  • @aluminum-ice made their first contribution in https://github.com/inventree/InvenTree/pull/9638
  • @cbenhagen made their first contribution in https://github.com/inventree/InvenTree/pull/9641
  • @GoryMoon made their first contribution in https://github.com/inventree/InvenTree/pull/9704
  • @willbicks made their first contribution in https://github.com/inventree/InvenTree/pull/9655
  • @gitbock made their first contribution in https://github.com/inventree/InvenTree/pull/9775
  • @RedEchidnaUK made their first contribution in https://github.com/inventree/InvenTree/pull/9400
  • @tristanle22 made their first contribution in https://github.com/inventree/InvenTree/pull/9532
  • @sufyan-mukadam made their first contribution in https://github.com/inventree/InvenTree/pull/9673
  • @the78mole made their first contribution in https://github.com/inventree/InvenTree/pull/10107
  • @daniil4udo made their first contribution in https://github.com/inventree/InvenTree/pull/10179

Translation

Our translation efforts continue to grow, with coverage increasing across a wide range of languages. We are grateful to all of our translators who have contributed to making InvenTree accessible to users around the world.

If you are interested in contributing to the translation efforts, please visit our Crowdin project and join the community of translators.

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.

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.

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.

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!

If you are using InvenTree in a commercial setting, please consider sponsoring the project to help support ongoing development and maintenance. Your support is greatly appreciated and helps to ensure that InvenTree remains a viable and sustainable project for years to come.

If your company benefits from InvenTree, please consider a one time sponsorship or a recurring sponsorship to help support the project.

Future Plans

Our focus over the last year has been on the new user interface, and we are excited to see it finally come to fruition in this release. However, there is still much work to be done, and we have a number of plans for future development.

Check out our GitHub issues page for a list of outstanding issues and feature requests. We are always looking for help to improve the project, and we welcome contributions from the community.

You can also help by completing the user survey to provide feedback on your experience with InvenTree, and help us to prioritize future development efforts.

]]>
SchrodingersGat
Machine Plugin Refactor2025-08-21T00:00:00+00:002025-08-21T00:00:00+00:00/blog/2025/08/21/machine-refactorMachine Plugin Refactor

In preparation for the upcoming 1.0.0 release, we have made some breaking changes to the machine registry plugin system.

These changes require that any existing plugins which implement custom machine drivers must be updated to use the new plugin system. A new mixin class, MachineDriverMixin, has been introduced to facilitate this transition.

Plugin developers should refer to the notes below to determine how to update their plugins.

References

Changes

The linked pull request makes a number of changes to both the plugin system and machine registry.

The most significant of these changes is the introduction of the MachineDriverMixin class, which now provides a standard interface for plugins which register custom machine drivers, or custom machine types.

Plugin developers can refer to linked pull request, in addition to the updated plugin mixin documentation, for more information on how to implement this new interface.

The required changes to existing plugins are minimal, and should be straightforward to implement.

Example

As an example, the inventree-brother-plugin has been updated to use the new MachineDriverMixin class.

Refer to this pull request to see the changes made to the plugin.

]]>
SchrodingersGat
Celebrating 5k Stars on GitHub!2025-05-22T00:00:00+00:002025-05-22T00:00:00+00:00/blog/2025/05/22/5kThe team is rejoiced to acknowledge that the project has now reached 5.000 Stars on GitHub. This and the nearly 1k forks are a reminder of how widely InvenTree has spread in recent years.

We are getting the last setup-improvements and a few smaller features ready to publish the 1.0 release to signify the stability that fellow contributors and users have been experiencing since 2017.

We are always looking for translators / proofreaders.
Using InvenTree and proud to share? Submit to being featured on the website.

]]>
matmair
0.17.1 Release2024-12-27T00:00:00+00:002024-12-27T00:00:00+00:00/blog/2024/12/27/0.17.10.17.1 Release

We have just released version 0.17.1 which includes a number of patches and bug fixes.

Release Notes

View the release notes for more information.

]]>
SchrodingersGat
0.17.0 Stable Release2024-12-17T00:00:00+00:002024-12-17T00:00:00+00:00/blog/2024/12/17/0.17.0The 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.

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!

]]>
SchrodingersGat
0.16.9 Release2024-11-30T00:00:00+00:002024-11-30T00:00:00+00:00/blog/2024/11/30/0.16.90.16.9 Release

We have just released version 0.16.9 which includes a number of patches and bug fixes.

Release Notes

View the release notes for more information.

]]>
SchrodingersGat
0.16.8 Release2024-11-07T00:00:00+00:002024-11-07T00:00:00+00:00/blog/2024/11/07/0.16.80.16.8 Release

We have just released version 0.16.8 which includes a patch for a critical bug in the InvenTree package installer. We recommend that users upgrade to this version as soon as possible.

Missing Translation Files

Some users were experiencing reports of missing translation files when installing InvenTree using the package installer. The issue was identified and resolved in this release. Refer to the release notes (linked below) for more information.

Release Notes

View the release notes

]]>
SchrodingersGat
UI Roadmap - going 1.02024-09-23T00:00:00+00:002024-09-23T00:00:00+00:00/blog/2024/09/23/ui-roadmapIn August 2023 we announced in a blog post that we are working on a new user interface for InvenTree. This post is a follow-up to that announcement and provides an overview of the progress we have made so far and what we are planning to do next. The most important information for you: the next release (0.17.0) will be the last with the old interface (CUI) as the default. The new interface (PUI) will be the default starting with the 0.18.0 release.
The plan is to release 1.0 once PUI has all features ported, that will probably be the release after 0.18.0. 1.0 will not include CUI or the needed front- and backend code to support it.

Most of this article is probably only interesting for (plugin) developers, but we hope it gives you a good overview of what is happening.

PUI / CUI - A short overview

The new interface is called PUI (Platform User Interface) and the old one CUI (Classic User Interface). PUI is built with React and is a single-page application. CUI is built with Django templates and uses a mixture of jQuery, templated JS and some libraries. PUI is designed to be more consistent, use the API everywhere and support better testing (end-to-end, typing). The original blog post has more information on the design goals.

Why remove CUI?

CUI has proven to be hard to understand for new contributors and hard to maintain in a consistent quality. Some common issues like cache invalidation, inconsistent rendering and hard-to-enforce permissions are easier to solve in PUI. Therefore 1.0 will be PUI only. The compiled javascript, CSS and html files will be removed from the repository. CUI-only endpoints/tags will also be removed. Some HTML rendering will be kept as the report/label generation uses that.

This will probably remove around 2k files from the repo, around 370k lines. As of writing, we have 4.4k files and 2.4M lines in the repo.

Effect on plugins

Plugins that render into the UI will need to be updated to work with PUI. This could affect you if your plugins use the mixins PanelMixin, SettingsContentMixin, NavigationMixin or UrlsMixin. Rendering into PUI is best done with UserInterfaceMixin (available in 0.17.0) - which is actively expanded to support rendering more tightly integrated than PanelMixin and CUI. For example #8137 supports rendering custom template editors in PUI.

We will issue guidance regarding the transition of plugins into the new mechanisms before 1.0 goes to production.

How can you help?

  • Use the new UI - if you are on the 0.16.x release train your instance should already be serving it
  • Report bugs - if you find something that is not working as expected please report it
  • Report missing features - if you are missing something from CUI please report it (we have an EPIC that tracks them)
  • Start looking into developing PUI and contributing - we use React and Mantine, widely used technologies
  • Support the development - we have been developing PUI for over a year with more or less 3 people. Donations could help us spend more time or awarding bounties for features/design improvements.

The big 1.0

1.0 will be a big milestone for InvenTree. InvenTree has been running in the heart of many companies for years. The switch to PUI enables much safer work on the UI. The release number 1.0 signals that the last part of the system is now modernised and ready for the future. We are looking forward to it and hope you are too.

Switching to 1.0 will also mean that we will follow SemVer fully. Big breaking changes will only be in major releases, feature releases (1.0, 1.1, 1.2) will follow the SemVer rules. This will make it easier for some of our enterprise users who face backlash or difficulty because of the below 1.0 version number.

We are discussing a few more breaking changes in 1.0 - feel free to chime in on the dedicated issue #6417.

]]>
matmair
0.16.0 Stable Release2024-08-25T00:00:00+00:002024-08-25T00:00:00+00:00/blog/2024/08/25/0.16.0The 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.

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!

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.

]]>
SchrodingersGat
0.15.2 Bugfix Release2024-05-26T00:00:00+00:002024-05-26T00:00:00+00:00/blog/2024/05/26/0.15.2The InvenTree team has just released version 0.15.2 which includes a patch for a critical security vulnerability.

Security Patch

We have fixed a critical security vulnerability in the InvenTree codebase which was identified and reported by one of our users. For more information on this security advisory, please refer to GHSA-2crp-q9pc-457j.

Release Notes

Releases notes for the 0.15.2 release can be found on our GitHub page

Security Policy

We take security very seriously at InvenTree. If you identify a security vulnerability in the InvenTree codebase, please report it to us immediately. You can find more information on our security policy.

]]>
SchrodingersGat