Mar 4, 2021
by @blag and Amanda McGuinness of Ammeon Solutions
It has been more than 4 months since our previous v3.3.0 release and we’re super excited about this one!
After Extreme Networks Open-Sourced the EWC Enterprise code last year, this was the most requested and waited release by our Community. In StackStorm v3.4.0 all these goodies have been finally integrated! Besides that, Python 2 Deprecation had happened and many other changes, fixes, and improvements were shipped in v3.4.0.
Let’s get into the details below.
Following the Python 2 Deprecation Plan: Say goodbye to python 2, since version 3.4, StackStorm code itself will only run on Python 3. For the v3.4 release, we have chosen to run on Python 3.6 across all of our supported platforms. For users still on Ubuntu 16.04, you will need to source your own Python 3.6 packages, but we have been using the Python 3.6 Ubuntu PPA without many issues.
Looking forward to StackStorm 3.5, we will be removing the ability to install Python 2 packs. Note that we will still install packs into their own virtual environments, so pack actions do not necessarily have to run under the same Python version as StackStorm code itself, as long as they support a Python 3 point release.
Regarding packs, by default, StackStorm 3.4 installs packs using Python 3.6. You can forcibly install any old Python 2 packs with
--force flag, but it will still be setup with a Python 3.6 virtualenv. Additionally, as part of the migration to Python 3, we also updated all packs in StackStorm Exchange to only test with and support Python 3. This allowed us to simplify our CI infrastructure for Exchange packs, and positions us to better support more modern versions of Python 3 in the future.
Please follow the Upgrade Notes for 3.4.0 release from the documentation to understand how the Python migration affects you: https://docs.stackstorm.com/3.4/install/upgrades.html#v3-4
In this release, we also integrated the former enterprise-only features: the LDAP authentication backend, and RBAC authorization backend. You can find more about how to use and configure them on respective StackStorm documentation pages: Role Based Access Control and LDAP.
The graphical Workflow Designer is now a built-in component of StackStorm web UI. When viewing an Orquesta workflow in the action list for a pack you can find new “+” and “Edit” buttons:
This will open a graphical designer:
Now all of our users can use these great features!
We transitioned some of our more simple CI jobs from Travis CI to GitHub Actions. We removed Python 2 and transitioned the lint tests, compile tests, pack tests, and unit tests to GitHub Actions, but we left the integration tests on Travis CI because we could not quite get them working on GitHub Actions. While splitting our CI test across four different providers is not ideal, it’s working out pretty well so far, and we hope to completely transition the integration tests in the future.
Between the other changes was the removal of obsolete
st2resultstracker service, added notification support for err-stackstorm which is a Python-based chatops framework alternative, added a
timeout parameter to
packs.install, updated many dependencies, better use of UTF-8 instead of ASCII across the codebase, Orquesta workflow improvements and new features like
orquesta-rehearse command to run unit tests for workflows as well as tens of other fixes and enhancements in StackStorm. Please find the list in the Changelog and follow the official v3.4.0 Upgrade Instructions when migrating from the older versions.
For StackStorm 3.5, due out in June, we planned to add Python 3.8 supporting Ubuntu 20.04 and deprecating and/or removing support for Ubuntu 16.04. Significant performance enhancements in the core and workflows, adding Redis as a default coordination backend in the installation will be another set of additions to improve the StackStorm. Now that we have integrated the enterprise components we will be focusing back on features, fixing bugs, and updating our development and distribution scripts. Given the feedback we received from the ChatOps 2020 User Survey we are still working on rewriting st2chatops in Python and improving its integration with the rest of StackStorm. This will not be an easy task, so please pitch in and help out if you can! Find StackStorm v3.5.0 Roadmap project and ChatOps Discussion on Github.
Special thanks to Harsh Nanchahal of Starbucks and Shital Raut of Orchestral for their work on integrating the LDAP and RBAC backends into the ST2 codebase. Shital also helped integrate the Workflow Designer component, fixed up the Travis-CI and CircleCI, worked out integration bugs, and updated dependencies with security advisories.
Community member Jacob Floyd updated some of the maintainer scripts we use to manage StackStorm Exchange packs and deployed the Python 3 changes to all pack CI configurations.
StackStorm Contributors Mick McGrath of Bitovi and Amanda McGuinness of Ammeon helped testing the Workflow Designer as well. Amanda was also an incredibly helpful assistant release manager throughout the v3.4 release process, leading the Python 2 deprecation plan, spotting multiple bugs before they were merged, finding bugs in the development packages, digging through and debugging the package build process, and testing out the pre-release packages.
As always, we’d like to thank all of the users who contributed feedback during the pre-release testing: especially Himadri Ganguly, Marcel Weinberg, Aaron Jonen, Dennis Whitney, and many of the aforementioned people. This release would not have been possible without the support, testing, and contributions from the many pre-release testers!
If StackStorm was helpful to you, please make a Donation to the project CommunityBridge profile. The funds will be used to support the StackStorm infrastructure behind the releases, packages, CI/CD.