CoinFabrik/scout-audit

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?