dstl / Stone-Soup

A software project to provide the target tracking community with a framework for the development and testing of tracking algorithms.
https://stonesoup.rtfd.io
MIT License
388 stars 128 forks source link

Migrate to GitHub Actions #776

Open sdhiscocks opened 1 year ago

sdhiscocks commented 1 year ago

This is a proposed change to migrate to GitHub Actions. The closer integration has some benefits over using CircleCI, such as easier linking and highlighting lines of code with flake8 errors, or which parts of the documentation have formatting errors. Having everything in one place and avoiding logging into another 3rd party service makes the checks easier for contributors to access.

One disadvantage is the documentation artefacts have to be downloaded, rather than viewed online. To consider is whether to keep CircleCI for this?

One minor issue, which I do not know the cause of, is GitHub Actions images (or possible a dependency) seems to have underflow errors (e.g. very small probabilities in things like particle filter going to zero), explicitly raised as an error, rather than ignored that seems to be default most everywhere else. Therefore there is an additional commit that explicitly sets underflow errors to be ignored in relevant places.

codecov[bot] commented 1 year ago

Codecov Report

Patch coverage has no change and project coverage change: +0.15 :tada:

Comparison is base (7d31310) 94.85% compared to head (106061b) 95.00%.

:exclamation: Current head 106061b differs from pull request most recent head 114bc42. Consider uploading reports for the commit 114bc42 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #776 +/- ## ========================================== + Coverage 94.85% 95.00% +0.15% ========================================== Files 175 176 +1 Lines 9634 10006 +372 Branches 1915 2000 +85 ========================================== + Hits 9138 9506 +368 - Misses 352 355 +3 - Partials 144 145 +1 ``` | Flag | Coverage Δ | | |---|---|---| | integration | `68.48% <ø> (-0.44%)` | :arrow_down: | | unittests | `90.15% <ø> (+0.33%)` | :arrow_up: | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl#carryforward-flags-in-the-pull-request-comment) to find out more. | [Impacted Files](https://codecov.io/gh/dstl/Stone-Soup/pull/776?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl) | Coverage Δ | | |---|---|---| | [stonesoup/sensormanager/reward.py](https://codecov.io/gh/dstl/Stone-Soup/pull/776?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl#diff-c3RvbmVzb3VwL3NlbnNvcm1hbmFnZXIvcmV3YXJkLnB5) | `97.87% <ø> (ø)` | | | [stonesoup/types/orbitalstate.py](https://codecov.io/gh/dstl/Stone-Soup/pull/776?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl#diff-c3RvbmVzb3VwL3R5cGVzL29yYml0YWxzdGF0ZS5weQ==) | `96.24% <ø> (ø)` | | ... and [5 files with indirect coverage changes](https://codecov.io/gh/dstl/Stone-Soup/pull/776/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl) Help us with your feedback. Take ten seconds to tell us [how you rate us](https://about.codecov.io/nps?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl). Have a feature suggestion? [Share it here.](https://app.codecov.io/gh/feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=dstl)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

sdhiscocks commented 1 year ago

Looks good. Regarding the docs, could we host the built docs on a readthedocs subdomain or something similar to save having to sdownload them/keep CircleCI just for that use case?

Looks like that is an option. I'll look into it some more.

Also, on the issue with underflow, I've seen the issue elsewhere that on GitHub Actions, so I think it's a dependency that may be changing NumPy global default error state.

sdhiscocks commented 1 year ago

Also, on the issue with underflow, I've seen the issue elsewhere that on GitHub Actions, so I think it's a dependency that may be changing NumPy global default error state.

Fixed just an hour ago https://github.com/geospace-code/pymap3d/issues/79