Skip to content
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

Merge neorv32-vunit with neorv32 #1116

Open
csantosb opened this issue Dec 5, 2024 · 3 comments
Open

Merge neorv32-vunit with neorv32 #1116

csantosb opened this issue Dec 5, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@csantosb
Copy link
Contributor

csantosb commented Dec 5, 2024

Is your feature request related to a problem? Please describe.

Commit a0f4349 succeeds on running sim tests, see here

But it fails to run tests in neorv32-vunit, see here, due to a test runner timeout

I manage to reproduce the issue locally.

Now, I think that the point on unit testing with vunit is to check this kind of errors for every new commit, being notified of any such issue. Having two separate repositories goes against this logic.

Describe the solution you'd like

Merge neorv32-vunit with neorv32.

Describe alternatives you've considered

What I’m doing now is to mirror two repositories, combining them and pushing somewhere else where I run the tests. But this is far from ideal.

Additional context

I’m running here the whole tests using a fully reproducible pipeline under guix, but I need to merge different repositories, doing some scripting.

@stnolting stnolting added the enhancement New feature or request label Dec 10, 2024
@stnolting
Copy link
Owner

Now, I think that the point on unit testing with vunit is to check this kind of errors for every new commit, being notified of any such issue. Having two separate repositories goes against this logic.

I fully agree with you.

The only problem is all the dependencies. Some commits ago, vunit was part of this repository. It was included as a GitHub package (from a another repository) that is based on a Docker file that gets pulled-in from another source. If someone changes something in that chain the entire workflow is broken. We already have this problem with GHDL, RISC-V GCC, FreeRTOS, the RISC-V architecture tests, ... And I fail completely in trying to manage them all. 😅

That's why certain parts of this project got "sourced-out" into seperate repositories. I also know that this is not ideal, but unfortunately I can't manage it any other way. 🙈

@csantosb
Copy link
Contributor Author

I see the problem. This is annoying.

This is precisely the kind of troubles I’m trying to fix once forever with guix.

Having a couple of manifest files to create a declarative and reproducible env for ci is easy; pushing manually to github/lab is not a problem. Achieving the same automatically is more complicated, I’m afraid (and so I use https://sr.ht by now).

@csantosb
Copy link
Contributor Author

I've been setting up a declarative docker image to be used with ci github actions, here. Repo tags match image tags.

It is fully reproducible, and based on a set of packages. The image is deterministic in the sense that if may be produced again bit per bit as for its channels file, see readme, so no upstream breakages.

Tested with neorv32 and its vunit suite.

Hope it helps !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants