Open germandiagogomez opened 4 years ago
That is true, https://wrapdb.mesonbuild.com/ is currently down.
Wow, just to get git workflows working for the first time in one of my solo repos I was repeatedly force-pushing on a development branch. So there is one Github-generated reference here for each force-push I did because the commit message contained a link to this issue. I was unaware of this.
I tried to delete the references here with no success. There is no button to delete them. Sorry.
Ping (I know, everyone hates pings - sorry!). Can we get this fixed? It is also breaking a couple of AUR repos.
it's being worked on
For everyone who has a failing CI because of this: I would recommend against depending on external resources for your CI in general, and on wrapdb in particular since it has been unreliable in the past too.
meson subprojects download
in your Dockerfile, then copy subprojects/
folder somewhere in your docker image. Then when running the CI job, you can first copy the cached subprojects/
folder.In the meantime, tarballs can be found in https://github.com/mesonbuild/THE_PROJECT/releases
For everyone who is more concerned about their project being unbuildable by users, regardless of tricks used in order to make CI pass for a while:
You can and should update the patch_url in your wrapdb-provided .wrap
s to point to the original file location, which will be in https://github.com/mesonbuild/${name-of-wrapped-project}/releases
The wrapdb maintainers erroneously consider that it is "more reliable" to host independently of github, in case meson ever migrates somewhere else, but this is not the first time the wrapdb has gone down, and I think I know which one I trust more.
Since mesonbuild will not delete all their repos (thus removing historical, archived data) -- right??? -- this is perfectly safe and can't stop working. Although I do understand the desire to ensure meson wrap search|install|update
(a developer tool) is independent of github, this doesn't apply to the actual downloaded .wrap files (used by end users via meson setup builddir/ && ninja -C builddir/
).
See https://github.com/falconindy/auracle/pull/69 for an example of how to do this for the "fmt" wrap.
@eli-schwartz note that is has nothing to do with "more reliable" at all. The point is to have control over the domain name, to not be locked on github.com forever.
Since mesonbuild will not delete all their repos (thus removing historical, archived data) -- right??? -- this is perfectly safe and can't stop working.
github is owned by Microsoft, they can change terms, add adds, whatever... Many reasons why we could some day have to delete github account. Not saying this is likely, but could happen, it wouldn't be the first time in internet history that big companies screw up services and plainly shut it down.
Even if GitHub.com Inc. shut down and decommissioned their website, breaking all downloads, wraps hosted on wrapdb.mesonbuild.com but pointing to patch_url's on github could still be updated to use new hosting, and meson wrap update
could allow people to install a new version of the wrap with the same contents, but a different download url.
Making the service unreliable today, in order to protect against it becoming unreliable in the future, is simple illogical.
A better design for downloading artifacts would be to host a static structure on github, e.g. rely on ${domain}/mesonbuild/${wrap}/releases/download/${version}/foo.zip
perhaps? and then make download.mesonbuild.com be a DNS redirect to github.com, allowing you to reimplement it elsewhere as an ftp server in an emergency.
Or rebuild a gh-pages site periodically. You could use e.g. mesonbuild.com/${project}/
pointing mesonbuild.github.io/${project}/
which is each wrap repository's gh-pages branch, I think.
(hmm, I wrote a comment about using github pages, but it seems it got lost)
Currently wrapdb needs to run a python script on the host, but that shouldn't be needed. As far as I know the only needed feature is list all available wraps with their version, that can be served as a static text file that gets regenerated when pushing new wraps. So using github pages should be possible to have URLs under mesonbuild.com domain, I think.
I have a server ready to go, if anyone wants to help set it up let me know.
My suggestion would be to first restore the existing service as it was and then focus on where to go in future.
@tp-m totally agree... But I don't think we even have a DB dump anywhere... :/
I would not like to sound unnice, since this is open-source and all voluntary work, but using wrap and having a failure like this for almost one week seems to me like a high bar to adoption.
This impacted my workflow heavily (yes, I was maybe erroneously relying on wrapdb when using Jenkins pipeline).
There are some mitigations for the problem in the comments above, but I think it would be a good idea to have a proposal to make guarantees and/or fallbacks?
It comes to mind for me that if the concern about github hosting of packages is a problem, why not do the following (in the wrap logic in python):
This way we could guarantee 100% availability for the time being with no additional cost, I understand. In all fairness, there are mitigations mentioned in the guide, but the last thing that someone (like me) with a pipeline wants is that it gets difficult to modify things depending on when a service fails or not, and since this can happen, I would propose to have some behavior similar to the one I drafted above implemented for minimal switching costs.
so for example:
meson setup --wrap-fallback-to=https://github.com/wrap-projects/,/my/subprojects-pool/
How would this behave?
Feedback and refinements are welcome.
The project was already switched to a cached proxy mode to github. The plan is to have multiple independent mirrors.
Also I guess a with regard to a long unavailability it is a good idea to setup some better monitoring, I personally wasn't aware of it until Friday the 24th. I will try to fix this in the coming week.
Describe the bug
Wrap db not working. Cannot download projects and cannot use locally.
To Reproduce
This simple line won't work:
Expected behavior
Meson wrap should download packages for subprojects
Error message in Ubuntu Linux 19.10 (Windows error is the same, but with a bit different output)
system parameters
meson --version
0.52.1ninja --version
if it's a Ninja build 1.9.0