cova icon indicating copy to clipboard operation
cova copied to clipboard

Get Cova tests passing on latest Zig master

Open mochalins opened this issue 10 months ago • 1 comments

NB: I understand this PR conflates significant styling changes with the actual fixes necessary to achieve tests passing on Zig master.

However, in this case I noticed that the styling was egregiously difficult to follow for any kind of contribution, as an enormous diff would be generated just by saving a file. Notably:

  • Inconsistent-but-frequent trailing whitespace -- typically removed as a best-practice standard, and built into many modern editors on filesave as the default. This alone causes quite a few lines of diffs from saving.
  • Zero adherence to zig fmt -- as a Zig development best practice, most Zig-related tooling in editors auto-applies a zig fmt pass on file save. In fact, many projects incorporate a zig fmt --check in their CI as well, and zig fmt is also used as a pre-pass prevention of characters that are disallowed by the compiler (e.g. removing tabs).

In addition, I struggled to understand the convention for line lengths in this project.

While I normally wouldn't try to suggest style changes in the midst of any other PR, I hope it is understandable that the styling of this project made contribution difficult enough that it was an order of magnitude less effort to simply allow best-practice integrated styling tools to run their course.

I did apply another manual pass over all the files changed to try to reduce stylistic changes as much as possible from the original project, notably with added/removed commas and newlines so that zig fmt would keep the same indentation structure.

As for the actual relevant changes here:

  • Added the newly necessary .fingerprint field to the build.zig.zon
  • Updated the Zig badge in README to accurately reflect version
  • Removed fields being used in a test that didn't exist in struct definition

And, minor addendum of adding a .gitignore for .zig-cache that is generated when running tests.

mochalins avatar Apr 26 '25 04:04 mochalins

Hey, I appreciate your interest in Cova.

Regarding the styling issues, I am not a fan of zig fmt's opinions and have decided to purposefully keep it disabled for the time being. I understand that this is frustrating from a contribution standpoint, but it's where I currently stand. As Zig and Cova get closer to v1.0, I'll create contribution guidelines with a more satisfactory answer to this issue.

Regarding Zig v0.15 compatibility, Cova main is intended to track Zig Stable. It looks like I left the v0.14.0 nightly tag in by mistake and I appreciate you pointing that out. I'll also be creating a zig-nightly branch that'll be periodically updated to support the nightly releases.

00JCIV00 avatar Apr 26 '25 12:04 00JCIV00