From fb9391fe613a8bdf188afb26ac0f621728657047 Mon Sep 17 00:00:00 2001 From: Robur Date: Fri, 12 Nov 2021 13:42:26 +0000 Subject: [PATCH] Prepare for initial public release --- CHANGES.md | 3 +++ README.md | 17 +++++++++++++---- builder-web.opam | 9 ++++++++- packaging/debian/control | 2 +- 4 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 CHANGES.md diff --git a/CHANGES.md b/CHANGES.md new file mode 100644 index 0000000..fc5a2e7 --- /dev/null +++ b/CHANGES.md @@ -0,0 +1,3 @@ +# v0.1.0 (2021-11-12) + +* Initial public release diff --git a/README.md b/README.md index 6e22f97..f4aab8e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # Builder-web - a web frontend for reproducible builds Builder-web takes in submissions of builds, typically from [builder](https://github.com/roburio/builder/), and displays the produced artifacts in a way that makes it easy to compare checksums and build status. -Produced binaries can be downloaded and run by users. +Produced binaries can be downloaded and executed. +[builds.robur.coop](https://builds.robur.coop/) itself runs builder-web. ## Overview @@ -12,9 +13,14 @@ Users can: * Get an overview of *jobs* - a job is typically script or opam package that is run and builds an artifact, * Browse all *builds* of a job - each job may have multiple builds, that are executed periodically by builder * Browse individual *build* and download artifacts and build information for reproducing the same binary. -Each build has a single binary as output - which checksum is recorded and can be searched for. The build information (opam acpackges, environment variables, host system packages) can be compared, and they may differ even if the checksum of the binary is identical. +* Compare two builds, observing the differences in used opam packages, environment variables, and system packages. +* Search for the SHA-256 hash of a binary to view a build that resulted in that binary. -The build artifacts are stored on the filesystem, its metadata is stored in the database. +## Installation + +Installing from source can be done with opam: `opam install builder-web`. + +We also provide [reproducible binary packages](https://builds.robur.coop/job/builder-web/). ## Setup @@ -22,11 +28,14 @@ Builder-web consists of a binary `builder-web` that runs a web server on port 30 These values can be changed with the `--port` and `--host` flags respectively. See `builder-web --help` for more information. +Service scripts for FreeBSD and systemd are provided. + The web server expects a sqlite3 database in its data directory. +An empty database can be created with `builder-db migrate`. ## Database migrations The sqlite3 database builder-web uses contains versioning information. On every schema change the database schema version is updated, and migration and rollback scripts are provided. The tool for database migrations is `builder-migrations`. -See the `--help` output for each migration for further details. +See the `builder-migrations --help` output for each migration for further details. diff --git a/builder-web.opam b/builder-web.opam index 2b55fa3..931a274 100644 --- a/builder-web.opam +++ b/builder-web.opam @@ -15,7 +15,9 @@ build: [ ] depends: [ - "builder" + "ocaml" {>= "4.10.0"} + "dune" {>= "2.7.0"} + "builder" {>= "0.2.0"} "dream" {>= "1.0.0~alpha2"} "cstruct" {>= "6.0.0"} "bos" @@ -47,3 +49,8 @@ depends: [ ] synopsis: "Web interface for builder" +description: """ +Builder-web takes in submissions of builds, typically from [builder](https://github.com/roburio/builder/), and displays the produced artifacts in a way that makes it easy to compare checksums and build status. +Produced binaries can be downloaded and executed. +[builds.robur.coop](https://builds.robur.coop/) itself runs builder-web. +""" diff --git a/packaging/debian/control b/packaging/debian/control index 1514588..0bb88d9 100644 --- a/packaging/debian/control +++ b/packaging/debian/control @@ -1,5 +1,5 @@ Package: builder-web -Version: 0.0.1-%%VERSION_NUM%% +Version: %%VERSION_NUM%% Section: unknown Priority: optional Maintainer: Robur Team