-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Run codec-fixtures tests via Actions #218
Conversation
it works at least |
I'd split it out into a separate workflow / action, so it shows up as a separate line item in the checks that run against PRs |
Mixed feelings. Compare and contrast with dragging fixture data in as a git submodule: Submodule:
Linking together loosely with github actions like this:
The choice is difficult because one thing that's an outright red in the pros/cons is also directly linked to one of the more valuable greens. |
It's also kinda weird the volume of code that's split into the codec-fixtures repo.
Maybe these are sufficiently low-frequency events we can choose to shrug at it. My inner devops and reproducibility nerd is just 🤕 |
My vote goes for a submodule that's periodically updated. Unless we "pin" via a submodule or some other way, CI becomes non-deterministic over time, which can quickly become painful. See multiformats/go-multicodec#49 for example - we moved go-multicodec to pulling multicodec in via a submodule at a specific commit, rather than always fetching master. Otherwise |
I should add that I realise that CI is not properly 100% deterministic. But as long as you do things reasonably well, a green check on a specific commit today should remain green in six months or two years. If the commit points to master branches from other repositories, that suddenly becomes quite unlikely :) |
Re:
This is a tricky call, but the intention is that it uses codecs to test other codecs, and that's not just codecs that are natively here in ipld-prime, so it broadens out beyond being an ipld-prime concern. As of ipld/codec-fixtures#2 it now does dagpb tests too. I would like to get dag-jose tests in too in the near future (it's possible with JS now, I don't know what the state of Go is). ETH and Bitcoin inclusion would be possible too. Then, any consumer of these tests for third-party implementations can just use the ones for codecs they are interested in testing, but we have a fairly straightforward means of verifying correctness as long as you implement >1 codec (as long as one of them is dag-json or dag-cbor). So, I don't think it makes sense to absorb any, or much, of the code into this repo. There could even be a case to rename the "go" and "js" directories to be more specific - maybe "js-multiformats" (the moniker that's grown for the new JS stack) and "go-ipld-prime" to make way for alternative implementations of them in those languages. |
I got a cron working in ipld/codec-fixtures that tries out the |
I ended up adding a submodule in #231 . It's checked out by CI at ... ah, but that's the |
🤷 giving it a try, what do others think about this approach?