shaderc icon indicating copy to clipboard operation
shaderc copied to clipboard

Should we remove the downloads provided by the builders?

Open zoddicus opened this issue 5 years ago • 6 comments
trafficstars

Points I can immediately think about this:

Reason to remove:

  1. These builds are not pegged to any specific release, instead they are just most recent build that has succeeded. Thus are not particularly stable and could lead to unreproducible builds.
  2. They have not undergone any QA.
  3. No workflow that we actively maintain/care about depends on them.
  4. In general they are not considered supported.
  5. We don't have the resources/appetite to support them formally.

Reason to keep:

  1. Desire to supply users with a simple artifact.
  2. Some users, maybe, already have workflows that depend on these binaries.

I am personally of the opinion that this is a situation where a partial solution is worse than no solution. The downloads are not really intended to be production ready nor supported, but a number of recent bugs suggest that users are attempting to integrate them into their workflows as a blackbox solution. This is leaving them in an awkward position when there are issues, since we are unwillingly to fix bugs, but since they are not building it themselves so it is difficult for them to fix it themselves.

An alternative might be to remove various libraries from the downloads, and only ship the user land executables, if those are desired by people. I think if someone is wanting to use the libraries in their project, taking an untested random blob from the internet is the wrong way to do it, building the libraries should be part of their work flow.

zoddicus avatar Apr 14 '20 16:04 zoddicus

@dj2 @dneto0 thoughts?

zoddicus avatar Apr 14 '20 16:04 zoddicus

As a user, I'd very much like to have a prebuilt stable version I could reference from CI scripts. The current downloads aren't useful for that partly because they're unstable, but even moreso because a download URL hidden in a HTML redirect is incredibly difficult to fetch from a script.

Ralith avatar Sep 12 '20 19:09 Ralith

Isn't that just the VulkanSDK?

dj2 avatar Sep 14 '20 18:09 dj2

That includes quite a lot of stuff I don't need, and seems to be hidden behind similarly obfuscatory javascript besides.

Ralith avatar Sep 17 '20 17:09 Ralith

This is something I'm actively looking into for multiple projects. Assigning to myself.

ben-clayton avatar Sep 17 '20 17:09 ben-clayton

As a user, (1) would be helpful for me, but (2)/(4) are not particularly important beyond supporting these URLs returning a consistent payload for a reasonable amount of time. In general using third-party software the expectations around QA or support are fairly low 😄

My use case involves using Bazel. It would be most convenient (in lieu of this repo using Bazel itself) to download pre-built binaries. This is done by providing a URL and (rightfully) a hash, so determinism is vital. I can host the binaries myself, but if I wanted to share my rules/build with other people it would be preferable to use "official" URLs (it would look less suspicious.)

Additionally, if there was a way to enumerate the builds/releases programmatically, it would be easy for me to keep my rules up to date (via automated PRs).

I understand the merits of (3)/(5).

j3parker avatar May 03 '21 12:05 j3parker