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

[new release] builder-web (0.2.0) #26523

Merged
merged 1 commit into from
Sep 10, 2024

Conversation

reynir
Copy link
Contributor

@reynir reynir commented Sep 10, 2024

Web interface for builder

CHANGES:

A whole slew of changes. Internally, we made a lot of incremental changes and improvements without doing a release. Thus this release is rather big. There is a lot of database migrations to apply, and unfortunately they have to be applied one at a time.

  • Add a /failed-builds/ endpoint that lists the most recent failed builds.
  • By default don't display failed builds on the front page.
  • Times are printed with the 'Z' time zone offset indicator.
  • Link to comparisons of builds take into account whether the "input", among others the list of dependencies, is different.
  • New subcommand builder-db extract-build takes a build UUID and extracts the builder "full" file.
  • Add /job//build//all.tar.gz endpoint with a gzip compressed tar archive of all build artifacts.
  • Visual overhaul.
  • Add (optional) visualizations displaying package dependencies ("opam-graph") and for unikernels a "modulectomy" view of how much each OCaml module is contributing to the final binary size. The visualizations are read from a cache on disk and can be generated from a script.
  • A script hook is added on file upload. It may be used to generate visualizations or publish system packages to a repository.
  • The 404 file not found page tries to be more informative.
  • The build page for a unikernel build displays the solo5 device manifest, e.g. with block devices "storage", and net devices "service".
  • URLs with trailing slash redirect to without the trailing slash.
  • Builder-web will try to be more helpful if its database doesn't exist or the database version is wrong.
  • The opam diff works for mirage 4 unikernels taking into account the opam-monorepo/duniverse packages.
  • Markdown rendering is now done using cmarkit instead of omd.
  • Builder-web doesn't display jobs older than 30 days (customizable with --expired-jobs command line argument) on the front page.
  • Build artifacts are stored by their content, and artifacts are automatically deduplicated. This makes builder-web much more space efficient on deployments that don't use deduplication on the filesystem level.
  • New subcommands builder-db vacuum * to remove older builds. Can be called from a cron job to keep disk usage bounded.
  • Lots of other improvements and bug fixes.

CHANGES:

A whole slew of changes. Internally, we made a lot of incremental changes and improvements without doing a release. Thus this release is rather big. There is a lot of database migrations to apply, and unfortunately they have to be applied one at a time.

* Add a /failed-builds/ endpoint that lists the most recent failed builds.
* By default don't display failed builds on the front page.
* Times are printed with the 'Z' time zone offset indicator.
* Link to comparisons of builds take into account whether the "input", among others the list of dependencies, is different.
* New subcommand `builder-db extract-build` takes a build UUID and extracts the builder "full" file.
* Add /job/<job>/build/<build>/all.tar.gz endpoint with a gzip compressed tar archive of all build artifacts.
* Visual overhaul.
* Add (optional) visualizations displaying package dependencies ("opam-graph") and for unikernels a "modulectomy" view of how much each OCaml module is contributing to the final binary size. The visualizations are read from a cache on disk and can be generated from a script.
* A script hook is added on file upload. It may be used to generate visualizations or publish system packages to a repository.
* The 404 file not found page tries to be more informative.
* The build page for a unikernel build displays the solo5 device manifest, e.g. `with block devices "storage", and net devices "service"`.
* URLs with trailing slash redirect to without the trailing slash.
* Builder-web will try to be more helpful if its database doesn't exist or the database version is wrong.
* The opam diff works for mirage 4 unikernels taking into account the opam-monorepo/duniverse packages.
* Markdown rendering is now done using cmarkit instead of omd.
* Builder-web doesn't display jobs older than 30 days (customizable with `--expired-jobs` command line argument) on the front page.
* Build artifacts are stored by their content, and artifacts are automatically deduplicated. This makes builder-web much more space efficient on deployments that don't use deduplication on the filesystem level.
* New subcommands `builder-db vacuum *` to remove older builds. Can be called from a cron job to keep disk usage bounded.
* Lots of other improvements and bug fixes.
@dbuenzli
Copy link
Contributor

This is all green except for this timeout.

extras
opam-2.0-ocaml-4.14
[builder-web.0.2.0 (failed: Sorry, resolution of the request timed out.)](https://opam.ci.ocaml.org/github/ocaml/opam-repository/commit/0ad58d310c29a30f6303299082433d6c82d6f27f/variant/extras,opam-2.0-ocaml-4.14,builder-web.0.2.0)

I guess it's good to merge.

@mseri
Copy link
Member

mseri commented Sep 10, 2024

Thanks to both of you

@mseri mseri merged commit 1273d61 into ocaml:master Sep 10, 2024
1 of 3 checks passed
@reynir reynir deleted the release-builder-web-v0.2.0 branch September 11, 2024 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants