Find the current maintainers and contributors to the project at our authors page.
Maintainers subscribe to the project and get notification of GitHub issue creation and updates. At least one maintainer needs to participate in a GitHub issue after created.
Maintainers subscribe to the project and get notification of pull requests (PR). For bug fix PR, at least one maintainer needs to review and approve the PR before merging to the develop branch. For new feature PR, one maintainer will lead the discussion to review and merge it.
This repo generally follow the branching model summarized by Vincent Driessen. The two long-term branches are develop
and release
.
Kestrel language repo uses the following semantic versioning rules before OCA-wide versioning guideline is established:
A package is released with version Major.Minor.Patch.
Major number: This should be incremented every time there is dramatic model change of the Kestrel language, e.g., entity-based cyber reasoning is established from
v0
tov1
, which rules how variables are defined/used, how to pivot between hunt steps, and how the composition of hunt-flow is performed.Minor number: This should be incremented every time important features are introduced, which could make backward incompatible changes to the language or interfaces, but not dramatically change the language model. Examples:
- A new feature realizes a new capability within the scope of the existing architecture or design concept, e.g., new analytics interface, it should be a new minor number.
- A new command is added to syntax within the scope of existing architecture, e.g.,
CONFIG
for dynamically updating configuration in a session,GENERATE REPORT
to generate hunting report from the hunt-flow. - A dramatic improvement of the internal data model, e.g., firepit supports full entity-based graph schema.
Patch number: This should be incremented every time small improvement features are added, bugs are fixed, and other small updates that do not change the language syntax or interface.
A maintainer should release a new Kestrel runtime (PyPI package name: kestre-lang
) following the procedure:
Update version and changelog
- Sync the local git repo to the latest of the
develop
branch. - Update the
version
field inpackages/*/pyproject.toml
for any package that has been updated. - Update dependencies in
packages/*/pyproject.toml
. - Always bump the
version
field inpackages/kestrel_jupyter/pyproject.toml
(the umbrella package). - Add changes in
CHANGELOG.rst
under the umbrella package version. - Add new contributors to
AUTHORS.rst
if any. - Commit the updates with the umbrella package version as the message.
- Push the local
develop
branch to remote.
- Sync the local git repo to the latest of the
Graduate code to the
release
branch- Open a PR to merge the
develop
branch to therelease
branch. Use umbrella package version as the PR title. - Merge the PR.
- Open a PR to merge the
Create a new release
Go to the release page and click Draft a new release.
Type the umbrella package version number as the new tag to create.
Choose
release
branch as the Target.Specify a release title. Use the date for ordinary release.
Write a summary of the release.
- Patch number release: copy the CHANGELOG entries.
- Minor number release: may have a TLDR at the beginning highlighting the most important new feature.
Hit the Publish release button.
After release check
- Check kestrel-jupyter on PyPI after a few minutes to confirm new package built and released.
- May activate/pin the released version of Kestrel documentation at readthedocs version control.
- Announce the release at OCA Kestrel channel.
In the case of a vulnerability, please contact any of the maintainers via slack to resolve the vulnerability as soon as possible (before or after it is published). To join OCA slack workspace, please follow the instructions in the README.