nigels-com / glew

The OpenGL Extension Wrangler Library
Other
2.58k stars 608 forks source link

Pin the Registry commits to stabilize the build #400

Closed geffrak closed 2 months ago

geffrak commented 8 months ago

https://github.com/KhronosGroup/OpenGL-Registry/pull/591 introduced changes that are not properly parsed by the "auto" step.

This pull request is pinning the commit being used while building so we can have a stable and predictable build.

Fixes #399

nigels-com commented 8 months ago

Reluctant to pin these.

Will take a look at resolving the problem. This happens from time to time.

nigels-com commented 8 months ago

I can make a last-known-good snapshot available, if that's useful.

nigels-com commented 8 months ago

Fixed via #401, can you confirm this isn't needed? And thanks for raising the alarm!

geffrak commented 8 months ago

We could have an automation that updates the commis if they can build. It would be great to have a deterministic build per commit.

nigels-com commented 8 months ago

I agree in principle that we could trigger builds when upstream changes. But I do have a reservation that this could prove costly. In practice, humans raise the alarm fairly prompty!

nigels-com commented 8 months ago

I'll see if I can trigger a build every few days, at least.

geffrak commented 7 months ago

I'm really sorry to argue with you since you are the main maintainer, but not having the Registry pinned to a commit makes the build random. In our project, we pin the all the third parties commits, and now all the commits before your fix are un-buildable, so all the commits of the project I work on are unbuildable. Ideally, I would like to make sure that this situation doesn't happen anymore.

You can see how we consume glew here: https://github.com/AcademySoftwareFoundation/OpenRV/blob/main/cmake/dependencies/glew.cmake#L14-L24

nigels-com commented 7 months ago

@geffrak Yes indeed, we do much the same at my workplace too.

GLEW is a bit of an oddball project though. It's supposed to move forward over time, and nearly all the time that it successful. The thing that has changed over the years is that people want to consume GLEW directly via git, rather than (as intended) via the official releases. But this repo is more about the scripts for generating the sources, than it is about the sources themselves.

The alternative that I'd recommend would be to pin to Perlmint/glew-cmake which has the advantage of completely skipping the further dependency of the upstream specification repos.