Non-destructive detector update support
tenuki opened this issue · 0 comments
Up to this point the detectors evolution although tracked in a source-code revision system was not designed to keep scout working for other versions than the latest.
The actual mechanism is: whenever scout is run, it fetches latest detectors versions from its main branch and compiles it.
The result of that is that when new detectors are deployed for newer versions of scout audit, those scout instances already deployed will try to update and receive detectors most probably incompatible with them.
To avoid that, we propose to use repository branches in which we maintain the latest detector version for each scout version.
Proposed branches (for detectors repositories) would be named this way:
release/<scout-version>
release/<scout-version>-<nightly-date>
Scout process will try to fetch the branch release/<scout-version>
and if its not found it will fallback to: release/<scout-version>-<nightly-date>
.
It would be required when a new version of scout is released to create such branch: release/<scout-version>-<nightly-date>
.
"Compatibility"
To not break actual version, in the detectors repositories would let main
with its current contents and would freeze it. The proposal is also to handle changes/improvements/new-versions by branching a develop
branch from current main
and to develop features in feature_X
branch from develop
and when ready merge them back to develop
when a new scout version is made, will create branches from above ( release/...
) from the develop
. Basically it is to start using develop as a base branch for new changes and releases.
Extra - Check
What's the default behavior when scout is run about detectors update:
- does it checkout new versions always? or when?
- can we force the detectors update?
- can we prevent the detectors update?