artsy / README

:wave: - The documentation for being an Artsy Engineer
Creative Commons Attribution 4.0 International
1.1k stars 120 forks source link

RFC: Adopt Codecov at Artsy, starting with Gravity #422

Closed lidimayra closed 2 years ago

lidimayra commented 3 years ago

Proposal:

Adopt Codecov at Artsy, starting with Gravity

Reasoning:

Exceptions:

None

Additional Context:

https://about.codecov.io/

How is this RFC resolved?

Deciding whether we want to adopt codecov or not and in case we do start this setting with Gravity as an experiment.

kajatiger commented 3 years ago

I definitely like that it will spare the reviewer the hint that there is a test missing for a new implementation. I like when tools are taking over these kind of simple jobs. In the past I have had different experiences... Sometimes it was useful, and sometimes the tool kept being ignored and in the end was just hindering work. I think it also depends on the configuration and usage. But I am definitely up for a try.

anandaroop commented 2 years ago

I'm intrigued. We've done this very sporadically for some projects (example — coveralls instead of codecov, technically), but I can't recall conversations about pros & cons myself.

One suggestion is that if we do proceed with this, we might trial it on a smaller Rails project than Gravity to begin with, to get a better idea if we should adopt more widely.

Actually now that I'm poking around I see that Exchange used to have this enabled but it seems like it was turned off at some point? It might be fruitful to ask that team why.

lidimayra commented 2 years ago

Hmm, that's a very good point!! As I understand, Exchange is mostly maintained by @artsy/transact-devs and @artsy/px-devs, right? Would you have some thoughts to be shared on this?

joeyAghion commented 2 years ago

I for one would be very interested in coverage data for a project like Gravity, since it has decent coverage but possibly a lot of slow and redundant tests. We need to constantly be consolidating and refining its tests to avoid excessive bloat.

However, I've been burned by the Codecov integration too many times to advocate for adopting it across more projects:

I guess all I'm saying is that these integrations tend to require a lot of maintenance, and seeing value in the results is not the same as volunteering to fix the inevitable issues that come up. I'd be interested to find a way to generate a coverage report periodically rather than integrate them into every CI run, especially if we don't plan to respect the output on a PR-by-PR basis.

lidimayra commented 2 years ago

Great inputs, thanks a lot, @joeyAghion !!

Based on these points, I would think if it would make sense to discuss setting up just simplecov as a code coverage analysis tool (without necessarily integrating it with codecov). What would you think?

joeyAghion commented 2 years ago

I'm not that familiar with simplecov or how that would make the integration simpler. Assuming that's the case, though, I'd be open to it. I second @anandaroop's suggestion to pilot with a smaller Rails project first (like maybe by fixing/replacing Exchange's tooling).

lidimayra commented 2 years ago

In that case, would it make sense to think about this as a Future Friday project?

lidimayra commented 2 years ago

Resolution

We decided codecov might not be the ideal option, but we would like to have coverage data somehow. We'll work on an initial setup for Exchange as a Future Friday project

Level of Support

5: Unclear Resolution.

Additional Context:

Depending on the results of the FF implementation, we'll have more clarity on what would be the best approach for us

Next Steps

Future Friday project