-
-
Notifications
You must be signed in to change notification settings - Fork 3
Description
We're ready to prepare the StackStorm v3.3
release and starting pre-release testing..
Release Process Preparation
Per Release Management Schedule @nmaludy is the Release Manager and @blag Assisting for v3.3. They will freeze the master
for the major repositories in StackStorm org, follow the StackStorm Release Process which is now available to public, accompanied by the Useful Info for Release managers. Communication is happening in #releasemgmt
and #development
Slack channels.
The first step is pre-release manual user-acceptance testing for v3.3dev
.
Why Manual testing?
StackStorm is very serious about testing and has a lot of it: Unit tests, Integration, Deployment/Integrity checks, Smoke tests and eventually end-2-end tests when automation spins up new AWS instance for each OS/flavor we support, installs real st2 like user would and runs set of st2tests (for each st2 PR, nightly, periodically, during release).
See st2ci and st2cd for more examples and workflows about how StackStorm automation is used to test StackStorm (dogfooding).
That's a perfect way to verify what we already know and codify expectations about how StackStorm should function.
However it's not enough.
There are always new unknowns to discover, edge cases to experience and tests to add. Hence, manual Exploratory Testing is an exercise where entire team gathers together and starts trying (or breaking) new features before the new release. Because we're all different, perceive software differently and try different things we might find new bugs, improper design, oversights, edge cases and more.
This is how StackStorm previously managed to land less major/critical bugs into production.
TL;DR
Install StackStorm v3.3dev
unstable packages, try random things in random environments (different OS) and report any regressions found comparing to v3.2
:
curl -sSL https://stackstorm.com/packages/install.sh | bash -s -- --user=st2admin --password=Ch@ngeMe --unstable
Extra points for PR hotfixes and adding new or missing test cases.
Major changes
- Mistral removal
- Ensure Mistral and Postgres are no longer installed (st2mistral, mistral, postgres, etc)
- Removal of EL6 support
- Deprecation of Python 2
- Ensure proper warnings are shown
- MongoDB 4.0
- Ensure MongoDB 4.0 is installed with latest version
- Ensure no issues or performance regressions are observed
- Remove authentication headers St2-Api-Key, X-Auth-Token and Cookie from webhook payloads to prevent them from being stored in the database. (security bug fix) #4983
- Write a webhook rule and send it these headers to the webhook, ensure that the trigger doesn't contain these header values
- Removal of HipChat support in st2chatops
- st2web dependencies have been upgraded for security reasons, need to do a thorough walk-through to ensure nothing is broken
- Depreacation of chef-stackstorm
-
st2-docker
revamp based onst2-dockerfiles
Full Changelog
Changes which are recommended to ack, explore, check and try in a random way.
st2
Added
-
Add make command to autogen JSON schema from the models of action, rule, etc. Add check
to ensure update to the models require schema to be regenerated. (new feature) -
Improved st2sensor service logging message when a sensor will not be loaded when assigned to a
different partition (@punkrokk) #4991 -
Add support for a configurable connect timeout for SSH connections as requested in #4715
by adding the new configuration parameterssh_connect_timeout
to thessh_runner
group in st2.conf. (new feature) #4914This option was requested by Harry Lee (@tclh123) and contributed by Marcel Weinberg (@winem).
-
Added a FAQ for the default user/pass for the
tools/launch_dev.sh
script and print out the
default pass to screen when the script completes. (improvement) #5013Contributed by @punkrokk
-
Added deprecation warning if attempt to install or download a pack that only supports
Python 2. (new feature) #5037Contributed by @amanda11
-
Added deprecation warning to each StackStorm service log, if service is running with
Python 2. (new feature) #5043Contributed by @amanda11
-
Added deprecation warning to st2ctl, if st2 python version is Python 2. (new feature) #5044
Contributed by @amanda11
Changed
-
Switch to MongoDB
4.0
as the default version starting with all supported OS's in st2
v3.3.0
(improvement) #4972Contributed by @punkrokk
-
Added an enhancement where ST2api.log no longer reports the entire traceback when trying to get a datastore value
that does not exist. It now reports a simplified log for cleaner reading. Addresses and Fixes #4979. (improvement) #4981Contributed by Justin Sostre (@saucetray)
-
The built-in
st2.action.file_writen
trigger has been renamed tost2.action.file_written
to fix the typo (bug fix) #4992 -
Renamed reference to the RBAC backend/plugin from
enterprise
todefault
. Updated st2api
validation to use the new value when checking RBAC configuration. Removed other references to
enterprise for RBAC related contents. (improvement) -
Remove authentication headers
St2-Api-Key
,X-Auth-Token
andCookie
from webhook payloads to
prevent them from being stored in the database. (security bug fix) #4983
Fixed
-
Fixed a bug where
type
attribute was missing for netstat action in linux pack. Fixes #4946Reported by @scguoi and contributed by Sheshagiri (@Sheshagiri)
-
Fixed a bug where persisting Orquesta to the MongoDB database returned an error
message: key 'myvar.with.period' must not contain '.'
. This happened anytime an
input
,output
,publish
or contextvar
contained a key with a.
within
the name (such as with hostnames and IP addresses). This was a regression introduced by
trying to improve performance. Fixing this bug means we are sacrificing performance of
serialization/deserialization in favor of correctness for persisting workflows and
their state to the MongoDB database. (bug fix) #4932Contributed by Nick Maludy (@nmaludy Encore Technologies)
-
Fix a bug where passing an empty list to a with items task in a subworkflow causes
the parent workflow to be stuck in running status. (bug fix) #4954 -
Fixed a bug in the example nginx HA template declared headers twice (bug fix) #4966
Contributed by @punkrokk -
Fixed a bug in the
paramiko_ssh
runner where SSH sockets were not getting cleaned
up correctly, specifically when specifying a bastion host / jump box. (bug fix) #4973Contributed by Nick Maludy (@nmaludy Encore Technologies)
-
Fixed a bytes/string encoding bug in the
linux.dig
action so it should work on Python 3
(bug fix) #4993 -
Fixed a bug where a python3 sensor using ssl needs to be monkey patched earlier. See also #4832, #4975 and SSLContext infinite recursion in Python 3.6 gevent/gevent#1016 (bug fix) #4976
Contributed by @punkrokk
-
Fixed bug where action information in RuleDB object was not being parsed properly
because mongoengine EmbeddedDocument objects were added to JSON_UNFRIENDLY_TYPES and skipped.
Removed this and added if to use to_json method so that mongoengine EmbeddedDocument
are parsed properly.Contributed by Bradley Bishop (@bishopbm1 Encore Technologies)
-
Fix a regression when updated
dnspython
pip dependency resulted in
st2 services unable to connect to mongodb remote host (bug fix) #4997 -
Fixed a regression in the
linux.dig
action on Python 3. (bug fix) #4993Contributed by @blag
-
Fixed a bug in pack installation logging code where unicode strings were not being
interpolated properly. (bug fix)Contributed by @misterpah
-
Fixed a compatibility issue with the latest version of the
logging
library API
where thefind_caller()
function introduced some new variables. (bug fix) #4923Contributed by @Dahfizz9897
Removed
-
Removed
Mistral
workflow engine (deprecation) #5011Contributed by Amanda McGuinness (@amanda11 Ammeon Solutions)
-
Removed
CentOS 6
/RHEL 6
support #4984Contributed by Amanda McGuinness (@amanda11 Ammeon Solutions)
-
Removed our fork of
codecov-python
for CI and have switched back to the upstream version (improvement) #5002
orquesta
Fixed
- Warn users when there is a loop and no start task identified. (bug fix)
- Lock global variables during initialization to make them thread safe. (bug fix)
- Workflow stuck in running if one or more items failed in a with items task. (bug fix)
st2chatops
- StackStorm/st2chatops#144 - add set -euo pipefail to docker-entrypoint.sh files
- StackStorm/st2chatops#156 - Bump version in npm-shrinkwrap.json
- StackStorm/st2chatops#154 - Remove HipChat adapter
- StackStorm/st2chatops#153 - Remove EL6 from st2chatops
st2web
- StackStorm/st2web#805 - Update dependency css-extract to v1.3.1
- StackStorm/st2web#794 - Security Updates
- StackStorm/st2web#756 - Remove gulp util
- StackStorm/st2web#793 - fix some imports
- StackStorm/st2web#791 - Updated lodash 4.17.12 to 4.17.19
- StackStorm/st2web#757 - Dependency clean up
- StackStorm/st2web#751 - updated deprecated cryptiles
- StackStorm/st2web#768 - Remove EL6 support
- StackStorm/st2web#753 - Do not lookup release from package cloud if fork in circle config.yml
Conclusion
Please report findings here and bugs/regressions in respective repositories.
Depending on severity and importance bugs might be fixed before the release or postponed to the next release if they're very minor and not a release blocker.
Issues Found During Release
- -v doesn't allow you to set version st2-packages#665 (not a regression, existed in 3.2)
- Document note for MongoDB upgrade path from 3.4 -> 3.6 -> 4.0 st2docs#1026 (document upgrade procedure)
- v3.3 version specific migration scripts: uninstall Mistral and PostgreSQL st2docs#1027 (document upgrade procedure)
- Default inquiry respond doesn't populate response payload st2web#809 (not a regression, existed in 3.2)
- ST2 logs writing "(unknown file)" in log prefix, instead of module name st2#5057 (logging problems in python 3, fixed by Fixed python 3 incompatibility in logging API implemenation of findCaller st2#5058, Fixed python 3 incompatibility in logging API implemenation of findCaller (v3.3 cherry pick) st2#5059)
PRs Merged for Release
- Revert commit 618b4bd695d1c094a427c0adf2e72260ee052c91 st2-packages#666 (rollback 3.3 staging SNAFU)
- Enhanced error message when st2_prep_release is run twice st2cd#442 (helpful error message for release managers)
- Added upgrade specific instructions for 3.3 st2docs#1028 (document upgrade procedure)
- Feature/upgrade notes 33 (cherry pick for v3.3) st2docs#1031 (document upgrade procedure - cherry pick v3.3)
- Updated roadmap based on changes accomplished in v3.3.0 st2docs#1030 (roadmap update for 3.3)
- Updated roadmap based on changes accomplished in v3.3.0 (cherry pick for v3.3) st2docs#1032 (roadmap update for 3.3 - cherry pick for v3.3)
- Added plan to upgrade MongoDB puppet-st2#319 (mongodb upgrade procedure)
- Update version to 1.2.0 orquesta#215 (orquesta 1.2.0 release)
- Update orquesta verison to v1.2.0 st2#5055 (pull in orquesta 1.2.0)
- Update orquesta verison to v1.2.0 (st2 v3.3) st2#5056 (pull in orquesta 1.2.0 - cherry pick v3.3)
- Fixed python 3 incompatibility in logging API implemenation of findCaller st2#5058 (fix for logging problems in python 3, fixes ST2 logs writing "(unknown file)" in log prefix, instead of module name st2#5057)
- Fixed python 3 incompatibility in logging API implemenation of findCaller (v3.3 cherry pick) st2#5059 (fix for logging problems in python 3, fixes ST2 logs writing "(unknown file)" in log prefix, instead of module name st2#5057 - cherry pick v3.3)
- Added -y to repoquery command so el8 imports GPG keys st2ci#191 (importing GPG keys for EL8 upgrade test)
TODOs
- Blog post for orquestaconvert
- Blog post for release
- Blog post for exchange/community update