Skip to content

StackStorm v3.2dev pre-release Testing #6

Closed
@arm4b

Description

@arm4b

We're ready to prepare the StackStorm v3.2 release and starting pre-release testing.

This will be the first StackStorm release under the Linux Foundation with new Open Source Governance and Maintainers team. We now rely on our Community more than ever and invite everyone to help with the pre-release testing and development/contribution.

Release Process Preparation

Per Release Management Schedule @armab is the Release Manager and @punkrokk Assisting for v3.2. 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.2dev.

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.2dev staging packages, try random things in random environments (different OS) and report any regressions found comparing to v3.1:

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

Important changes which are highly encouraged to try and test.

Full Changelog

Changes which are recommended to ack, explore, check and try in a random way.

st2

Added

Changed

  • Install pack with the latest tag version if it exists when branch is not specialized.
    (improvement) Install pack with the latest tag st2#4743

  • Implement "continue" engine command to orquesta workflow. (improvement) Orquesta workflows have incorrect status st2#4740

  • Update various internal dependencies to latest stable versions (apscheduler, eventlet,
    kombu, amqp, pyyaml, mongoengine, python-gnupg, paramiko, tooz, webob, bcrypt).

    Latest version of mongoengine should show some performance improvements (5-20%) when
    writing very large executions (executions with large results) to the database. Update various Python dependencies to latest stable versions st2#4767

  • Improved development instructions in requirements.txt and dist_utils.py comment headers
    (improvement) Fix dependency conflicts st2#4774

  • Add new actionrunner.stream_output_buffer_size config option and default it to -1
    (previously default value was 0). This should result in a better performance and smaller
    CPU utilization for Python runner actions which produce a lot of output.
    (improvement)

    Reported and contributed by Joshua Meyer (@jdmeyer3) fixing subprocess to use system buffer instead of being unbuffered st2#4803

  • Add new action_runner.pip_opts st2.conf config option which allows user to specify a list
    of command line option which are passed to pip install command when installing pack
    dependencies into a pack specific virtual environment. Don't call eventlet directly inside the st2reactor code st2#4792

  • Refactor how orquesta handles individual item result for with items task. Before the fix,
    when there are a lot of items and/or result size for each item is huge, there is a negative
    performance impact on write to the database when recording the conductor state. (improvement)

  • Remove automatic rendering of workflow output when updating task state for orquesta workflows.
    This caused workflow output to render incorrectly in certain use case. The render_workflow_output
    function must be called separately. (improvement)

  • Update various internal dependencies to latest stable versions (cryptography, jinja2, requests,
    apscheduler, eventlet, amqp, kombu, semver, six) Update pip dependencies, fix conflicting dependency version, ensure there are no conflicting dependencies st2#4819 (improvement)

  • Improve MongoDB connection timeout related code. Connection and server selection timeout is now
    set to 3 seconds. Previously a default value of 30 seconds was used which means that for many
    connection related errors, our code would first wait for this timeout to be reached (30 seconds)
    before returning error to the end user. Fix SSL support for MongoDB and RabbitMQ under Python 3.x st2#4834

  • Upgrade pymongo to the latest stable version (3.10.0.). Update pymongo to the latest version st2#4835 (improvement)

  • Updated Paramiko to v2.7.1 to support new PEM ECDSA key formats Fixes: #4890 to support new ssh key types st2#4901 (improvement)

  • Remove .scrutinizer.yml config file. No longer used.

  • Convert escaped dict and dynamic fields in workflow db models to normal dict and dynamic fields.
    (performnce improvement)

  • Add support for PEP 508 <https://www.python.org/dev/peps/pep-0508/stackstorm/st2#environment-markers>_
    environment markers in generated requirements.txt files. (improvement) Various requirements fixups st2#4895

  • Use pip-compile from pip-tools instead of pip-conflict-checker (improvement) Fix futurist version conflict st2#4896

  • Refactor how inbound criteria for join task in orquesta workflow is evaluated to count by
    task completion instead of task transition. (improvement)

  • The workflow engine orquesta is updated to v1.1.0 for the st2 v3.2 release. The version upgrade
    contains various new features and bug fixes. Please review the release notes for the full list of
    changes at https://github.com/StackStorm/orquesta/releases/tag/v1.1.0 and the st2 upgrade notes
    for potential impact. (improvement)

Fixed

Removed

Full list of changes: https://github.com/StackStorm/st2/blob/master/CHANGELOG.rst

orquesta

Added

  • Add feature to retry task execution on given condition with delay in between retries and
    max number of retries. (new feature)
    Contributed by Hiroyasu Ohyama (@userlocalhost) and Nick Maludy (@nmaludy)
  • Add support to rerun completed workflow (failed or succeeded) from given task(s). (new feature)

Changed

  • Replace "noop" with "continue" when "do" is not specified. The new "continue" command
    will not alter the previous task state and will continue to conduct the workflow
    execution. Orquesta workflows have incorrect status st2#4740 (improvement)
  • Refactor conductor to not store each item result in task state. If there are a lot of items
    and/or result size is huge per item, then there will be a performance impact on database
    write operations when recording the conductor state. (improvement)
  • Use ujson to deepcopy dict(s) for faster performance. (improvement)
  • Refactor how inbound criteria for join task is evaluated to count by task completion
    instead of task transition. (improvement)

Fixed

Fore more info see https://github.com/StackStorm/orquesta/blob/master/CHANGELOG.rst

st2chatops

st2web

  • No changes.

Warning!
st2web UI needs a contributor/maintainer! Security alerts due to outdated dependencies, as well as tech debt, issues and number of unreviewed PRs is all high.


This could be huge. With almost 1 year since v3.1 st2 release codebase accumulated so many new features, changes and fixes.

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions