You've decided to create or update a StackStorm integration pack. That's great! We appreciate every contribution, and can't wait for your PR. To make sure other people (and robots) can use, extend and enjoy your work as well, we have some guidelines in place, so please take a few minutes to read this doc through.
You can get additional information about StackStorm packs and contributions in the StackStorm documentation:
-
If you're contributing to a pack, please update the version in
pack.yaml
! Without the version bump your PR will not be accepted. Pack versions follow SemVer, and you should declare the new version accordingly. -
If you're creating a brand-new pack, make sure all the metadata is in place: the
pack.yaml
file, the necessary folder structure, ideally a 64x64 PNG icon. -
It's important that all packs remain stable and reliable, so we recommend writing automated tests for your actions and sensors: refer to the pack testing manual for details. While it's not mandatory, complex or mission-critical packs should normally have at least a few tests; smaller contributions can do with a reasonable amount of manual testing.
-
Formatting your code should be done according to PEP8 (see StackStorm code style guide for details) and will be evaluated with
flake8
andpylint
. The styling tests are run automatically and the PR won't be accepted unless they pass, so it usually makes sense to have a linter in your text editor or lint the code manually before submitting it. -
Packs in
st2contrib
should normally be dedicated to a single product and independent of other packs except for the default packs in StackStorm core. If you must have a dependency, please mention it in the readme; if you have a workflow encompassing actions from multiple packs, consider placing it into a separateexamples
directory. -
Lastly, we would really appreciate it if you could enrich your pack with some ChatOps aliases. A lot of people use ChatOps in StackStorm, and having default aliases can increase the pack's adoption. Bonus points for alias contributions to existing packs!
To run code formatting checks and automated tests (if any) on your pack,
use the following make
command in st2contrib
root directory:
FORCE_CHECK_PACK=<pack name> make {all,lint}
Thank you for reading! Please remember those are just guidelines, not strict rules, and if there's a reason some of them don't apply to your pack, it's fine; just make sure to mention it in your PR, and may the force be with you! ❤️