Skip to content

Development

Layout

  • MovingAverage/ — C# worker (consumes the strategy devkit via NuGet).
  • MovingAveragePython/ — Python worker.
  • @common/scripts/ — shared build/publish tooling.
  • docs/ — this MkDocs site.

The strategy devkit itself (Virtufin.Strategy.DevKit + .Events + .Indicators) lives in the virtufin-strategy-devkit repo.

Build & test

dotnet test Virtufin.Strategies.slnx
python3 -m pytest MovingAveragePython/tests

Publishing

CI-driven, path-filtered per package:

  • movingaverage-nuget.yamlVirtufin.Worker.MovingAverage (worker nupkg via worker-nuget-common.yaml).
  • movingaveragepython-package.yamlvirtufin-worker-movingaveragepython (wheel via twine).
  • python-test.yaml — Python worker tests.
  • docs.yaml / docs-lint.yaml — site deploy + lint.

Publish ordering: MovingAverage depends on the devkit packages, which are published from virtufin-strategy-devkit. Publish the devkit first, then bump/publish the worker.

Versioning

Each worker has its own versions.env (LIBRARY_VERSION, used verbatim as the published version) + CHANGELOG.md. Bump both in the same commit as the change. The Virtufin.Worker.DevKit and Virtufin.Strategy.DevKit pins are updated when those packages publish new versions.

Conventions

Mirror virtufin-workers: worker directories with versions.env + config/config.json + src + scripts + tests; PackageWorker MSBuild target for C# worker nupkgs; stdlib-only Python with a module-level Process. Config is extension-only; indicator semantics key off eventtime, never wall time.