From fd97be6dcc93ead6b940f340676ff65324486423 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 30 Jan 2023 01:00:41 +0100 Subject: [PATCH 1/7] Add news entry --- .../2023-01-30-introducing-the-plugin-list.md | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 _news/2023-01-30-introducing-the-plugin-list.md diff --git a/_news/2023-01-30-introducing-the-plugin-list.md b/_news/2023-01-30-introducing-the-plugin-list.md new file mode 100644 index 00000000..1bb6dce9 --- /dev/null +++ b/_news/2023-01-30-introducing-the-plugin-list.md @@ -0,0 +1,27 @@ +--- +author: matmair +title: Introducing the Plugin List +--- + +Getting ready for 0.10.0, Website Updates and the Plugin List. + +### Preparations for 0.10.0 + +Since the last release, we've been working on the next version of InvenTree, which will be 0.10.0. There are already 85 PRs merged into the `master` branch, and we're expecting to release 0.10.0 in the next few weeks. + +There will be a full blog post once we release but here are a few perks to look for: +- The option to use [Slovenian](https://github.com/inventree/InvenTree/pull/4072). Around 7% are already translated - we need your help to get that number up. Head over to the [translation project](https://crowdin.com/project/inventree) if you want to help with any language. +- Attach the current order schedule to your calendar ([3858](https://github.com/inventree/InvenTree/pull/3858)) +- Improvements for report rendering ([4081](https://github.com/inventree/InvenTree/pull/4081)) and a lot of improvements to the docs +- Get orders by their reference via the API ([4083](https://github.com/inventree/InvenTree/pull/4083)) +- Improvements for SSO - including the UI ([4169](https://github.com/inventree/InvenTree/pull/4169), [4263](https://github.com/inventree/InvenTree/pull/4263)), better separation between local and SSO user management ([4171](https://github.com/inventree/InvenTree/pull/4171)) and restricting signups to specific domains ([4172](https://github.com/inventree/InvenTree/pull/4172)) +- Include alternative parts in your BOM exports ([4203](https://github.com/inventree/InvenTree/pull/4203)) +- A simple priority field for order ([4225](https://github.com/inventree/InvenTree/pull/4225)) + +### Website Updates + +The website got some UI fixes for mobile users and gained more icons. We also added a [team section](https://inventree.org/about/team) and moved away from cookie-based analytics. + +### Plugin List + +A new feature landed: the [plugin list](https://inventree.org/plugins). Check out the blog post for more details. From cf4f13d68ca4e0ea4d7c49f1bb77cba8932c2096 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 30 Jan 2023 01:06:47 +0100 Subject: [PATCH 2/7] add draft for blog post --- _posts/2023-01-30-plugin-list.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 _posts/2023-01-30-plugin-list.md diff --git a/_posts/2023-01-30-plugin-list.md b/_posts/2023-01-30-plugin-list.md new file mode 100644 index 00000000..ff35c64c --- /dev/null +++ b/_posts/2023-01-30-plugin-list.md @@ -0,0 +1,18 @@ +--- +author: matmair +title: Starting the Plugin List +--- + +Recently a new feature was launched: a central plugin list. + +### TLDR + +The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list for now. Beeing on the list is now an endorsement by the core team. + +### How it works + +TODO + +### Future ideas + +TODO From e8260b8c70d87410d3ad66405e33b82ec333d07f Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 30 Jan 2023 01:06:53 +0100 Subject: [PATCH 3/7] add link to news --- _news/2023-01-30-introducing-the-plugin-list.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_news/2023-01-30-introducing-the-plugin-list.md b/_news/2023-01-30-introducing-the-plugin-list.md index 1bb6dce9..01e7475d 100644 --- a/_news/2023-01-30-introducing-the-plugin-list.md +++ b/_news/2023-01-30-introducing-the-plugin-list.md @@ -24,4 +24,4 @@ The website got some UI fixes for mobile users and gained more icons. We also ad ### Plugin List -A new feature landed: the [plugin list](https://inventree.org/plugins). Check out the blog post for more details. +A new feature landed: the [plugin list](https://inventree.org/plugins). Check out the [blog post](/blog/2023/01/30/plugin-list) for more details. From 410dca613226bbad3205ca0634fe804a6e11c2bd Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Mon, 30 Jan 2023 01:16:52 +0100 Subject: [PATCH 4/7] small fixes --- _posts/2023-01-30-plugin-list.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2023-01-30-plugin-list.md b/_posts/2023-01-30-plugin-list.md index ff35c64c..099fd25d 100644 --- a/_posts/2023-01-30-plugin-list.md +++ b/_posts/2023-01-30-plugin-list.md @@ -3,11 +3,11 @@ author: matmair title: Starting the Plugin List --- -Recently a new feature was launched: a central plugin list. +Recently a new feature was launched: A central plugin list. ### TLDR -The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list for now. Beeing on the list is now an endorsement by the core team. +The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](https://inventree.org/plugins) for a start. Being on the list is not an endorsement or guarantee of service by the core team. ### How it works From a4a7da86bfc8d002ea681f15d88b93337e1834b8 Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 31 Jan 2023 01:05:14 +0100 Subject: [PATCH 5/7] Add the rest of the text --- _posts/2023-01-30-plugin-list.md | 64 +++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/_posts/2023-01-30-plugin-list.md b/_posts/2023-01-30-plugin-list.md index 099fd25d..edb56db9 100644 --- a/_posts/2023-01-30-plugin-list.md +++ b/_posts/2023-01-30-plugin-list.md @@ -5,14 +5,66 @@ title: Starting the Plugin List Recently a new feature was launched: A central plugin list. -### TLDR +## TLDR -The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](https://inventree.org/plugins) for a start. Being on the list is not an endorsement or guarantee of service by the core team. +The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](../plugins.html) for a start. Being on the list is not an endorsement or guarantee of service by the core team. -### How it works +## Why plugins and a plugin list? -TODO +InvenTree is a powerful tool but the use cases very widely. There are many things that can be done with it, but to many specail features also create confusion with the average hobbyist user. +That is why we created the plugin system. It allows users to extend InvenTree with custom functionality without having to modify or ding into core code. It is a great way to add features that are not needed by everyone, but are still useful for a subset of users. It can also be used to customize InvenTree to fit exsisting patterns (for eg. a exsisting part numbering scheme or order references). -### Future ideas +One of my main goals was to enable complex changes without the need of forking the code. This way users can still benefit from upstream changes and bugfixes without having to merge them manually. As a positive side effect it should also reduces requests for fixes of very old versions and enable users to always use the latest version of InvenTree as we try to keep the plugin (python) APIs stable. -TODO +The plugin system has been in core for a while now and from my own usage, conversations with users and requests on GitHub I know that small plugin collections have started to form. +I think most plugins are very tailored to the businesses/users that deploy them. I have seen some for shipping, integrating ERP systems, connecting machines or generating files for orders. Therefore they are not fit for public consumption. +There is however a number of public repos on GitHub and Gitlab with integrations for printers, adding functionality that we are not willing/able to add to core or do other cool things. + +The plugin list is a way to share the cool, public plugins you made with the community. I also hope that it enables new users faster onboarding. + +## How it works + +As mentioned [before](../_news/2022-04-23-news-are-starting.md), we use Jekyll for this website. This means that the list consists of static pages that are generated from YAML/Markdown files. The output is hosted by GitHub pages (for free ;-)) and can be previewed on PRs thanks to the Netlify app integration. + +A file contains a number of standardised fields in the header and markup text for the plugin page that uses Markdown (just like GitHub README pages). That information is used to generate: +- the individual plugin pages (eg. [this one](../_repo/inventree-brother-plugin.md)) +- plugin cards on the main page (showing the newest entries) +- a list of [all plugins](../plugins.html) +- overview pages for [tags](../tags.html) and [categories](../categories.html). + +Adding a new entry is as simple as forking, creating a new file in the plugins folder and opening a PR. More on that below. + +There are also entries and pages for authors/publishers. Currently we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author (eg. [this one](../_publishers/schrodingersgat.md)). That page also contians all blog posts written by the author and a few links. + +### Disclaimer + +While the list is moderated, the core team does not endorse or guarantee any service for the plugins listed. If you have any questions, please contact the plugin author directly. + +### Submittin a plugin + +If you want to add your plugin to the list, please follow the [instructions in the README](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list) of the repo for the website. The list is managed by members of the [InvenTree org](https://github.com/inventree) so it might take a few days till your request is processed. If you are submitting a plugin for the first time, there is a good chance you do not have a publisher/author entry either - please add that as well. Steps are listed in the README. + +Please make sure to update your listing if your plugin is no longer maintained or if anything important changes. For now there is no automated process to update listings from their repos. + +## Future ideas + +Several ideas have been brought forward regarding possible improvements of the plugin list since I started public work on it (the original idea is from Feb/Mar 2022, like the rest of the website). If you have any ideas, please let us know in the discussions on GitHub or in an issue. And if you want to help, please feel free to open a PR for anything listed below. + +Inclusion in InvenTree: Users of InvenTree should be able to browse and install plugins directly from within the web-app. This would require a way to install plugins and probably a way to update them too. A good example would be Octoprint's plugin manager. The main work would be to create a nice interface, the API endpoints (for installing and activating/deactivation) are already there. + +Regarding browsing on the site: +* A more detailed list with screenshots, short descriptions, standardised sections +* A way to rate plugins +* A way to show how often a plugin is used/downloaded (would probably need [4150](https://github.com/inventree/InvenTree/issues/4150)) +* A better way to search for plugins (by name, description, author, tags, etc.) - we deploying statically so that might be tricky +* A way to filter plugins by InvenTree version +* A way to filter plugins by language (if they are translated) +* A way to filter plugins by license (there are so many liceses that I did not include it in the first version) + +Quality of life: +* A more automated process to update the list from the plugin repos +* Improve the PyPi scraper to also work with GitHub and Gitlab repos +* A way to automatically test plugins for compatibility with InvenTree and show that on the listing +* RSS feed for new plugins + +Moonshot idea: A privacy friendly way to register your instance once and then have a button on the website that directly installs the plugin. That would also enable some cool other stuff with browser integrations, fast pairing for the app (very much requested by uni labs) and more. From c9011c81068931cb2643483584d178f5a5a1a22d Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 31 Jan 2023 01:17:52 +0100 Subject: [PATCH 6/7] small grammar & friends fixes --- _posts/2023-01-30-plugin-list.md | 43 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/_posts/2023-01-30-plugin-list.md b/_posts/2023-01-30-plugin-list.md index edb56db9..35ae250d 100644 --- a/_posts/2023-01-30-plugin-list.md +++ b/_posts/2023-01-30-plugin-list.md @@ -7,20 +7,20 @@ Recently a new feature was launched: A central plugin list. ## TLDR -The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](../plugins.html) for a start. Being on the list is not an endorsement or guarantee of service by the core team. +The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and is [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](../plugins.html) for a start. Being on the list is not an endorsement or guarantee of service by the core team. ## Why plugins and a plugin list? -InvenTree is a powerful tool but the use cases very widely. There are many things that can be done with it, but to many specail features also create confusion with the average hobbyist user. -That is why we created the plugin system. It allows users to extend InvenTree with custom functionality without having to modify or ding into core code. It is a great way to add features that are not needed by everyone, but are still useful for a subset of users. It can also be used to customize InvenTree to fit exsisting patterns (for eg. a exsisting part numbering scheme or order references). +InvenTree is a powerful tool but the use cases very widely. Many things can be done with it, but too many special features also create confusion for the average hobbyist user. +That is why we created the plugin system. It allows users to extend InvenTree with custom functionality without having to modify or ding into core code. It is a great way to add features that are not needed by everyone but are still useful for a subset of users. It can also be used to customize InvenTree to fit existing patterns (eg. part numbering scheme or order references). -One of my main goals was to enable complex changes without the need of forking the code. This way users can still benefit from upstream changes and bugfixes without having to merge them manually. As a positive side effect it should also reduces requests for fixes of very old versions and enable users to always use the latest version of InvenTree as we try to keep the plugin (python) APIs stable. +One of my main goals was to enable complex changes without the need of forking the code. This way users can still benefit from upstream changes and bugfixes without having to merge them manually. As a positive side effect, it should also reduce requests for fixes of very old versions and enable users to always use the latest version of InvenTree as we try to keep the plugin (python) APIs stable. The plugin system has been in core for a while now and from my own usage, conversations with users and requests on GitHub I know that small plugin collections have started to form. -I think most plugins are very tailored to the businesses/users that deploy them. I have seen some for shipping, integrating ERP systems, connecting machines or generating files for orders. Therefore they are not fit for public consumption. -There is however a number of public repos on GitHub and Gitlab with integrations for printers, adding functionality that we are not willing/able to add to core or do other cool things. +I think most plugins are very tailored to the businesses/users that deploy them. I have seen some for shipping, integrating ERP systems, connecting machines or generating files for orders. Therefore, they are not fit for public consumption. +There are, however, a number of public repos on GitHub and GitLab with integrations for printers, adding functionality that we are not willing/able to add to core or do other cool things. -The plugin list is a way to share the cool, public plugins you made with the community. I also hope that it enables new users faster onboarding. +The plugin list is a way to share the cool, public plugins you made with the community. I also hope that it enables new users to onboard faster. ## How it works @@ -30,41 +30,40 @@ A file contains a number of standardised fields in the header and markup text fo - the individual plugin pages (eg. [this one](../_repo/inventree-brother-plugin.md)) - plugin cards on the main page (showing the newest entries) - a list of [all plugins](../plugins.html) -- overview pages for [tags](../tags.html) and [categories](../categories.html). +- overview pages for [tags](../tags.html) and [categories](../categories.html) -Adding a new entry is as simple as forking, creating a new file in the plugins folder and opening a PR. More on that below. +Adding a new entry is as simple as forking, creating a new file in the plugins folder and opening a PR. More on that is below. -There are also entries and pages for authors/publishers. Currently we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author (eg. [this one](../_publishers/schrodingersgat.md)). That page also contians all blog posts written by the author and a few links. +There are also entries and pages for authors/publishers. Currently, we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author (eg. [this one](../_publishers/schrodingersgat.md)). That page also contains all blog posts written by the author and a few links. ### Disclaimer While the list is moderated, the core team does not endorse or guarantee any service for the plugins listed. If you have any questions, please contact the plugin author directly. -### Submittin a plugin +### Submitting a plugin -If you want to add your plugin to the list, please follow the [instructions in the README](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list) of the repo for the website. The list is managed by members of the [InvenTree org](https://github.com/inventree) so it might take a few days till your request is processed. If you are submitting a plugin for the first time, there is a good chance you do not have a publisher/author entry either - please add that as well. Steps are listed in the README. +If you want to add your plugin to the list, please follow the [instructions in the README](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list) of the repo for the website. The list is managed by members of the [InvenTree org](https://github.com/inventree), so it might take a few days to process your request. If you are submitting a plugin for the first time, there is a good chance you do not have a publisher/author entry either - please add that as well. The steps are listed in the README. -Please make sure to update your listing if your plugin is no longer maintained or if anything important changes. For now there is no automated process to update listings from their repos. +Please make sure to update your listing if your plugin is no longer maintained or if anything important changes. For now, there is no automated process to update listings from their repos. ## Future ideas -Several ideas have been brought forward regarding possible improvements of the plugin list since I started public work on it (the original idea is from Feb/Mar 2022, like the rest of the website). If you have any ideas, please let us know in the discussions on GitHub or in an issue. And if you want to help, please feel free to open a PR for anything listed below. +Several ideas have been brought forward regarding possible improvements to the plugin list since I started public work on it (the original idea is from Feb/Mar 2022, like the rest of the website). If you have any ideas, please let us know in the discussions on GitHub or in an issue. And if you want to help, please feel free to open a PR for anything listed below. -Inclusion in InvenTree: Users of InvenTree should be able to browse and install plugins directly from within the web-app. This would require a way to install plugins and probably a way to update them too. A good example would be Octoprint's plugin manager. The main work would be to create a nice interface, the API endpoints (for installing and activating/deactivation) are already there. +Inclusion in InvenTree: Users of InvenTree should be able to browse and install plugins directly from within the web app. This would require a way to install plugins and probably a way to update them too. A good example would be Octoprint's plugin manager. The main work would be to create a nice interface, the API endpoints (for installing and activating/deactivation) are already there. -Regarding browsing on the site: -* A more detailed list with screenshots, short descriptions, standardised sections +Regarding browsing the list on the site: +* A more detailed list with screenshots, short descriptions and standardised sections in the page itself * A way to rate plugins * A way to show how often a plugin is used/downloaded (would probably need [4150](https://github.com/inventree/InvenTree/issues/4150)) -* A better way to search for plugins (by name, description, author, tags, etc.) - we deploying statically so that might be tricky +* A better way to search for plugins (by name, description, author, tags, etc.) - we deploy statically so that might be tricky * A way to filter plugins by InvenTree version * A way to filter plugins by language (if they are translated) -* A way to filter plugins by license (there are so many liceses that I did not include it in the first version) - +* A way to filter plugins by license (there are so many licenses that I did not include it in the first version) Quality of life: * A more automated process to update the list from the plugin repos -* Improve the PyPi scraper to also work with GitHub and Gitlab repos +* Improve the PyPI scraper to also work with GitHub and GitLab repos * A way to automatically test plugins for compatibility with InvenTree and show that on the listing * RSS feed for new plugins -Moonshot idea: A privacy friendly way to register your instance once and then have a button on the website that directly installs the plugin. That would also enable some cool other stuff with browser integrations, fast pairing for the app (very much requested by uni labs) and more. +Moon-shot idea: A privacy-friendly way to register your instance once and then have a button on the website that directly installs the plugin. That would also enable some cool other stuff with browser integrations, fast pairing for the app (very much requested by uni labs) and more. From abcd49da9f3c8f96eca8143985d84963143f7b7d Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Tue, 31 Jan 2023 07:47:46 +0100 Subject: [PATCH 7/7] fix links --- _posts/2023-01-30-plugin-list.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_posts/2023-01-30-plugin-list.md b/_posts/2023-01-30-plugin-list.md index 35ae250d..9716fe5e 100644 --- a/_posts/2023-01-30-plugin-list.md +++ b/_posts/2023-01-30-plugin-list.md @@ -7,7 +7,7 @@ Recently a new feature was launched: A central plugin list. ## TLDR -The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and is [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website](../plugins.html) for a start. Being on the list is not an endorsement or guarantee of service by the core team. +The Plugin List is managed by the [InvenTree org](https://github.com/inventree) and is [open for submissions](https://github.com/inventree/inventree-website#adding-a-plugin-to-the-list). It is a simple list [on the website]({% link plugins.html %}) for a start. Being on the list is not an endorsement or guarantee of service by the core team. ## Why plugins and a plugin list? @@ -24,17 +24,17 @@ The plugin list is a way to share the cool, public plugins you made with the com ## How it works -As mentioned [before](../_news/2022-04-23-news-are-starting.md), we use Jekyll for this website. This means that the list consists of static pages that are generated from YAML/Markdown files. The output is hosted by GitHub pages (for free ;-)) and can be previewed on PRs thanks to the Netlify app integration. +As mentioned [before]({% link _news/2022-04-23-news-are-starting.md %}), we use Jekyll for this website. This means that the list consists of static pages that are generated from YAML/Markdown files. The output is hosted by GitHub pages (for free ;-)) and can be previewed on PRs thanks to the Netlify app integration. A file contains a number of standardised fields in the header and markup text for the plugin page that uses Markdown (just like GitHub README pages). That information is used to generate: -- the individual plugin pages (eg. [this one](../_repo/inventree-brother-plugin.md)) +- the individual plugin pages (eg. [this one]({% link _repo/inventree-brother-plugin.md %})) - plugin cards on the main page (showing the newest entries) -- a list of [all plugins](../plugins.html) -- overview pages for [tags](../tags.html) and [categories](../categories.html) +- a list of [all plugins]({% link plugins.html %}) +- overview pages for [tags]({% link tags.html %}) and [categories]({% link categories.html %}) Adding a new entry is as simple as forking, creating a new file in the plugins folder and opening a PR. More on that is below. -There are also entries and pages for authors/publishers. Currently, we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author (eg. [this one](../_publishers/schrodingersgat.md)). That page also contains all blog posts written by the author and a few links. +There are also entries and pages for authors/publishers. Currently, we only support one author per plugin, but that might change in the future. The author entry is used to generate a page for the author (eg. [this one]({% link _publishers/schrodingersgat.md %})). That page also contains all blog posts written by the author and a few links. ### Disclaimer