[RFC] Simplified wrapdb
See original GitHub issueI have been thinking and experimenting a bit with ways to improve our wrapdb workflow.
Current issues:
- The worflow to contribute new wraps requires manual steps that only @jpakkane can do (create new git repo, create releases).
- The namespace under github.com/mesonbuild/ is a mess with over a hundred projects.
- It requires running a (complex) python script server. It has to be hosted somewhere which has been an issue in the past. Even if it seems pretty stable now.
- For projects that has meson build system upstream we still have to create a git repo containing a single upstream.wrap file. Currently wrapdb force generating a patch tarball that contains erronous license file.
My proposal: https://github.com/xclaesse/wrapdb
- Move everything into a single git repository.
- All commits are preserved, I wrote a script that import git history from all individual repos we had.
- Contributing can be done with a simple PR, the CI takes care of creating release tarballs once merged. No more scripts manually run.
- All previous release tarballs have been imported, sha256 are still the same.
- No need of hosting a server, everything is just static files on github. However, we’ll need to setup redirects to keep using https://wrapdb.mesonbuild.com domain.
- All wraps and their files are in
subprojects/
directory, so we can actually build them for testing.
Example workflow:
- Here is an example PR to add gtk4.wrap: https://github.com/xclaesse/wrapdb/pull/2
- When that PR has been merged, CI has run: https://github.com/xclaesse/wrapdb/runs/2546577289?check_suite_focus=true
- Release tag has been created automatically: https://github.com/xclaesse/wrapdb/releases/gtk_4.3.0-1
- Note that it does not contain a patch zip because upstream has meson build system already.
TODO:
- Change
meson wrap
command to use new system. We’ll have keep old wrapdb server running for a while for people running older meson version. - Add CI that actually build wrap subprojects, at least for those we can easily reproduce. It can be used for Meson RC validation maybe.
Needed redirects:
- Old patch URL must keep working, e.g. https://wrapdb.mesonbuild.com/v1/projects/zlib/1.2.11/5/get_zip -> https://github.com/xclaesse/wrapdb/releases/download/zlib_1.2.11-5/zlib_1.2.11-5_patch.zip
- We don’t want to hardcode github.com URLs in meson. To access release list, we should add a redirect: https://wrapdb.mesonbuild.com/v2/releases.txt -> https://raw.githubusercontent.com/xclaesse/wrapdb/master/releases.txt.
- We don’t want to hardcode github.com URLs in wrap files. To download patch zip files we should add a redirect: https://wrapdb.mesonbuild.com/v2/zlib_1.2.11-5/zlib_1.2.11-5_patch.zip -> https://github.com/xclaesse/wrapdb/releases/download/zlib_1.2.11-5/zlib_1.2.11-5_patch.zip
Issue Analytics
- State:
- Created 2 years ago
- Reactions:1
- Comments:23 (23 by maintainers)
Top Results From Across the Web
Meson WrapDB packages
Project Versions Provided dependencies
arduinocore‑avr 1.8.2‑1 · 1.6.20‑1
argparse 2.9‑1 · 2.6‑1, 2.5‑1, 2.4‑1, 2.2‑1 argparse
bdwgc 8.2.2‑1 · 8.2.0‑1, 7.6.8‑1 gc
Read more >refs/tags/v3.10.2 - third_party/json - fuchsia Git repositories
The library supports JSON Merge Patch (RFC 7386) as a patch format. Instead of using JSON Pointer (see above) to specify values to...
Read more >[libcamera-devel,RFC,v3,4/5] Add Python bindings - Patchwork
I've struggled with this multiple times, and I haven't figured out a simple solution. We can build new C++ classes that wrap the...
Read more >README.md · apertis/v2022dev2 · pkg / libinih · GitLab
inih (INI Not Invented Here) is a simple .INI file parser written in C. ... INI files, including RFC 822-style multi-line syntax and...
Read more >FreeBSD Developers' Handbook
Popular in Universities as it is simple enough to teach to undergraduates as a ... automatic tunneling (described in 4.3 of this RFC)...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
or
versions: [{version: x, provides: y}]
Done: https://github.com/mesonbuild/wrapdb_v2test/commit/56d54d6e4432bfaeef2c88becf37a553393e8cee