codecov-cli icon indicating copy to clipboard operation
codecov-cli copied to clipboard

Provide prebuilt binaries for FreeBSD

Open ararslan opened this issue 1 year ago โ€ข 20 comments

This issue is basically https://github.com/codecov/uploader/issues/849 for the modern era. ๐Ÿ˜„ The move from the Node.js-based uploader to the Python-based CLI means that coverage can now be submitted from FreeBSD, e.g. on Cirrus CI and Travis, which is awesome! However, since prebuilt binaries are not available for FreeBSD like they are for other platforms, FreeBSD CI builds need to install from PyPI via pip. That in itself is not a problemโ€”however, there is no Python wheel platform tag for FreeBSD, so installation requires a full source build of the package and all of its dependencies. This takes about 7 minutes of CI time on Cirrus for every run. In contrast, downloading and using the official prebuilt binaries from https://cli.codecov.io takes just a few seconds. It would be great to be able to avoid using all of that extra compute time.

Just as some of the binaries here are built using QEMU on GitHub Actions, FreeBSD binaries could be built using https://github.com/vmactions/freebsd-vm. (Alternatively, binaries for AArch64 Linux, both glibc and musl, could be built natively on Cirrus, which also natively supports FreeBSD, but I imagine y'all don't want to maintain a separate CI setup alongside GitHub Actions.)

Admittedly I don't know much about Python packaging but I'm more than happy to help however I can! cc also @lwhsu, who also offered to support for the previous issue.

ararslan avatar May 08 '24 16:05 ararslan

@trent-codecov, would love your input here on whether or not we can support this asset

thomasrockhu-codecov avatar May 14 '24 16:05 thomasrockhu-codecov

Thanks, @thomasrockhu-codecov! @trent-codecov, let me know if there's any information I can provide that would be useful. #440 shows how the asset can be built (and tested, though that isn't implemented in that PR) on CI.

ararslan avatar May 16 '24 21:05 ararslan

Any thoughts here, @trent-codecov?

ararslan avatar May 23 '24 16:05 ararslan

๐Ÿฆ— ๐Ÿฆ— ๐Ÿฆ—

ararslan avatar Aug 09 '24 21:08 ararslan

@ararslan apologies for the radio silence here. I'll circle the wagons internally here to see what we can do with this

rohan-at-sentry avatar Aug 19 '24 15:08 rohan-at-sentry

Thanks @rohan-at-sentry! Let me know if there's anything I can do to help or support. See also #440, which builds the release asset.

ararslan avatar Aug 20 '24 00:08 ararslan

@thomasrockhu-codecov this looks like a good contribution. We can add this to the CLI release site easy enough. Have you tested this in any capacity? I don't have enough expertise here to ensure correctness.

trent-codecov avatar Sep 17 '24 19:09 trent-codecov

The local build on Cirrus CI that I described in the top-level post is the same as what's implemented in #440, and it works as expected running on Cirrus. You can also add FreeBSD to your CI testing matrix using https://github.com/vmactions/freebsd-vm, just like what's used for building the release asset in #440. The downside of doing so would be the added overhead of the VM operations (setup, teardown, copying things back and forth, etc.) plus the lack of FreeBSD-specific Python wheels that leads to additional compilation.

ararslan avatar Sep 17 '24 21:09 ararslan

@trent-codecov, @thomasrockhu-codecov: Is there anything I can do to support here? Any changes to be made to #440?

ararslan avatar Oct 29 '24 00:10 ararslan

@ararslan sorry, to be transparent I'm working on a large release this week. I will take a look at this feature/PR in November and what our needs might be. Thanks for being so patient and for your help.

thomasrockhu-codecov avatar Oct 29 '24 03:10 thomasrockhu-codecov

Thanks for the update, much appreciated! Best of luck with the release. ๐Ÿ™‚

ararslan avatar Oct 29 '24 15:10 ararslan

@thomasrockhu-codecov and @trent-codecov, just wanted to bump this in case it fell off of your radar.

ararslan avatar Nov 26 '24 23:11 ararslan

Happy new year, folks! @thomasrockhu-codecov and @trent-codecov, bumping again for 2025. ๐Ÿ˜„

ararslan avatar Jan 07 '25 22:01 ararslan

@ararslan thanks for the bump, will try to slate this in this month

thomasrockhu-codecov avatar Jan 09 '25 20:01 thomasrockhu-codecov

Think this might be feasible for next month, @thomasrockhu-codecov / @trent-codecov?

ararslan avatar Feb 01 '25 00:02 ararslan

@ararslan yeah, sorry, I'm updating our release process to add some capacity here

thomasrockhu-codecov avatar Feb 01 '25 02:02 thomasrockhu-codecov

FYI @thomasrockhu-codecov and @trent-codecov, I've rebased #440 in case that would be useful if/when you're able to look into this request. ๐Ÿ™‚

ararslan avatar Mar 12 '25 19:03 ararslan

Happy 1-year anniversary of this issue! ๐Ÿ˜„ @thomasrockhu-codecov and/or @trent-codecov, is there any chance this would be considered at some point?

ararslan avatar May 07 '25 22:05 ararslan

@ararslan happy 1-year anniversary. Sorry this is taking so long to get through, we have been pretty slammed. I don't want to get your hopes up that this is going to happen immediately, but it is at least been on my radar for awhile. I will try to get this on our roadmap in the next few months.

thomasrockhu-codecov avatar May 11 '25 01:05 thomasrockhu-codecov

No worries, I definitely understand! I appreciate the consideration. Let me know if/how I can help whenever the time comes.

ararslan avatar May 11 '25 06:05 ararslan