glotzerlab/signac

Upgrade codecov: use CircleCI orb, remove deprecated Python uploader

bdice opened this issue · 8 comments

bdice commented

Codecov is deprecating their bash and Python upload scripts and will disable them on February 1, 2022. We use the Python uploader to measure code coverage in several projects including signac and freud. I'm opening this issue to document my best understanding about how to proceed.

According to the Python migration guide we'll need to execute these steps:

  1. Remove codecov from any dependency file (e.g. requirements.txt)

For this repo, we'll remove the pip install codecov lines from .circleci/config.yml.

  1. Replace any calls to Codecov with the new Codecov Uploader

For this repo, we'll remove the call to codecov and add the codecov orb: https://circleci.com/developer/orbs/orb/codecov/codecov

I'm not sure exactly how this is supposed to be called. The docs suggest addding a "job" called codecov/upload but it seems like it should be a step we add to an existing job...

We will need an administrator to enable 3rd party orbs in the CircleCI security settings: https://app.circleci.com/settings/organization/github/glotzerlab/security. I can enable this when we're ready to transition (tagging @joaander for awareness).

  1. If you are using coveragepy to collect code coverage, you will need to add coverage xml before calling the new uploader.

We're already generating an XML output file with pytest --cov --cov-report=xml so no action is required for this step.

This also applies to signac-flow (@glotzerlab/signac-maintainers), signac-dashboard, freud (@glotzerlab/freud-maintainers), and garnett (@glotzerlab/garnett-maintainers).

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

I guess this is becoming more urgent. I assume that there has been no activity on this yet?

bdice commented

I guess this is becoming more urgent. I assume that there has been no activity on this yet?

Right. I did my best to list the steps but I haven't worked on this yet.

I guess this is becoming more urgent. I assume that there has been no activity on this yet?

Right. I did my best to list the steps but I haven't worked on this yet.

I could give it a shot, however are the 3rd party obs on CircleCI already enabled?

bdice commented

are the 3rd party obs on CircleCI already enabled?

Third party orbs are now enabled. Feel free to give it a try!

vyasr commented

@csadorf I did this in a couple of other projects so I went ahead and ported the changes to signac.

@vyasr Thanks for taking care of this and sorry about sitting on this for so long. This was still on my radar, but I kept pushing it. Is the issue fully resolved with #739?

vyasr commented

No worries. And yes, #739 resolves this.