# The future of incendium

**URL:** <https://forum.inductiveautomation.com/t/the-future-of-incendium/89495>\
**Category:** Ignition\
**Tags:** python, ignition81, database, vision, scripting\
**Created:** [April 25, 2024, 11:44pm UTC](https://forum.inductiveautomation.com/t/the-future-of-incendium/89495 "2024-04-25T23:44:14Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![coatl-dev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/coatl-dev/32/82365_2.png) [@coatl-dev](https://forum.inductiveautomation.com/u/coatl-dev)\
**Post date:** [April 25, 2024, 11:44pm UTC](https://forum.inductiveautomation.com/t/the-future-of-incendium/89495/1 "2024-04-25T23:44:14Z")

</div>

Hello community,

We come to you with, what we consider, an important announcement regarding the future of the `incendium` project ([Ignition Exchange](https://inductiveautomation.com/exchange/2104/overview), [GitHub](https://github.com/ignition-incendium/incendium)).

Starting with version 2024.4.0 (if we manage to ship it before April 30, 2024) we will only distribute it as a [J/P]ython package, meaning you will be able to install it via `python2 -m pip install` as a dependency to your scripting projects, and via `jython -m pip install` if you'd like to install it under `IGNITION_HOME/user-lib/pylib/site-packages` (Ref: **Using pip** from the [Python In Ignition](https://support.inductiveautomation.com/hc/en-us/articles/360056397252-Python-In-Ignition) article)

We also intend to refactor the `incendium.util` module and find a better place for most of the functions, except two which are getting the axe: `get_timer` and `get_timestamp`.

Pros:

- We will reduce maintainer burnout, so instead of maintaining three repos ([incendium](https://github.com/ignition-incendium/incendium), [project](https://github.com/ignition-incendium/project) and [stubs](https://github.com/ignition-incendium/stubs)), we will only support and continue development on two.
- `incendium` will be `pip`-installable on Jython and Python 2.7.
- We will add the following modules: `gui`\[1\], and `l10n` as a result from refactoring the `util` module.
- We will add the following classes under `incendium.exceptions`: `Error`, `GatewayError`, `JavaError`, and `MSSQLError`\[2\].

Cons:

- You will lose code completion on the Designer and Script Console until Inductive Automation enables code analysis on third-party Python libraries\[3\].
- We're removing `incendium.util.get_timer` and `incendium.util.get_timestamp`.

Stay tuned for more.

* * *

1. Why `incendium.gui` if we already have `incendium.vision.gui`? Because we intend to add `incendium.perspective.gui` in the future. 

2. If you'd like to do the same for MariaDB, MySQL, Oracle, PostgreSQL, and SQLite, you may create your own class and inherit from `JavaError` and create a PR while you're at it. 

3. Learn more here: [Coming in 8.1.18: Script editor improvements](https://forum.inductiveautomation.com/t/coming-in-8-1-18-script-editor-improvements/59629)

---

<div class="post-metadata">

**Author:** ![coatl-dev](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/coatl-dev/32/82365_2.png) [@coatl-dev](https://forum.inductiveautomation.com/u/coatl-dev)\
**Post date:** [May 1, 2024, 3:40pm UTC](https://forum.inductiveautomation.com/t/the-future-of-incendium/89495/2 "2024-05-01T15:40:04Z")

</div>

Announcing the release of incendium 2024.5.0, we were not able to release it before May 1, but that's all right.

## v2024.5.0 (2024-05-01)

### BREAKING CHANGE

- deprecate incendium.util module

### Refactor

- **util** : move functions out of util ([#199](https://github.com/ignition-incendium/incendium/pull/199))

[https://github.com/ignition-incendium/incendium/releases/tag/v2024.5.0](https://github.com/ignition-incendium/incendium/releases/tag/v2024.5.0)

With some minor corrections on our previous announcements.

We did not get rid of `get_timer` and `get_timestamp`. These can still be used, with a workaround if you're calling them from an Expression Function. You may find code examples on our [Wiki](https://github.com/ignition-incendium/incendium/wiki).

## Installation

NOTE: You may use Python 2.7.18 or Jython 2.7.3.

`pip`-install `incendium`:

```sh
$ jython -m pip install incendium
DEPRECATION: A future version of pip will drop support for Python 2.7.
Collecting incendium
  Downloading https://files.pythonhosted.org/packages/b5/dc/4765f1f7cbfc163c305e428007a03a7ccfc03bba9ca02bdb7a4aca23f6be/incendium-2024.5.0-py2-none-any.whl
Collecting typing; platform_python_implementation == "Jython" (from incendium)
  Downloading https://files.pythonhosted.org/packages/0b/cb/da856e81731833b94da70a08712f658416266a5fb2a9d9e426c8061becef/typing-3.10.0.0-py2-none-any.whl
Installing collected packages: typing, incendium
Successfully installed incendium-2024.5.0 typing-3.10.0.0
WARNING: You are using pip version 19.1, however version 20.3.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

```

Then, copy the `incendium` directory and `typing.py` to `$IGNITION/user-lib/pylib`:

```sh
$ cp ~/.pyenv/versions/jython-2.7.3/Lib/site-packages/typing.py /opt/homebrew/opt/ignition/libexec/user-lib/pylib/site-packages

$ cp -r ~/.pyenv/versions/jython-2.7.3/Lib/site-packages/incendium /opt/homebrew/opt/ignition/libexec/user-lib/pylib/site-packages

```

Verify installation:

```sh
$ ls -alF /opt/homebrew/opt/ignition/libexec/user-lib/pylib/site-packages 
total 176
drwxr-xr-x 5 cesarcoatl admin 160 May 1 08:21 ./
drwxr-xr-x 252 cesarcoatl admin 8064 Apr 25 13:57 ../
-rw-r--r-- 1 cesarcoatl admin 119 Apr 9 10:15 README
drwxr-xr-x 32 cesarcoatl admin 1024 May 1 08:21 incendium/
-rw-r--r-- 1 cesarcoatl admin 84492 May 1 08:21 typing.py

```

If you don' want to use Jython, you may still install `incendium` with Python 2.7.18, please note that we do install additional depencendies like `enum34==1.1.10`, `ignition-api>=8.1` and `typing==3.10.0.0`, just note that `ignition-api` does not belong under `$IGNITION/user-lib/pylib/site-packages`, it is only intended for code completion when coding on your IDE of choice.

If you're already a user, upgrade to the latest version at your own convenience. If you're not yet a user, feel free to drop it on your Ignition Gateway, this works for both Standard and Edge editions.

Thanks for reading, and happy coding!

The coatl.dev Team

* * *

Links of interest:

- [PyPI](https://pypi.org/project/incendium/)
- [Source](https://github.com/ignition-incendium/incendium)
- [Issues/Feature Requests](https://github.com/ignition-incendium/incendium/issues)
- [Discussions](https://github.com/ignition-incendium/incendium/discussions)
