Package: guix-patches;
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Fri, 2 Jul 2021 16:30:02 UTC
Severity: normal
Tags: patch, wontfix
Done: Ludovic Courtès <ludo <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 49334 in the body.
You can then email your comments to 49334 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Fri, 02 Jul 2021 16:30:02 GMT) Full text and rfc822 format available.Ludovic Courtès <ludo <at> gnu.org>
:guix-patches <at> gnu.org
.
(Fri, 02 Jul 2021 16:30:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: guix-patches <at> gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH] DRAFT website: Add page listing branches. Date: Fri, 2 Jul 2021 18:29:04 +0200
TODO: - nice CSS - menu entry? - more branches * website/apps/development/builder.scm, website/apps/development/data.scm: website/apps/development/templates/branches.scm, website/apps/development/templates/components.scm, website/static/development/css/branches.css: New files. * website/haunt.scm: Use development builder. --- website/apps/development/builder.scm | 55 ++++++++++++ website/apps/development/data.scm | 89 +++++++++++++++++++ .../apps/development/templates/branches.scm | 56 ++++++++++++ .../apps/development/templates/components.scm | 65 ++++++++++++++ website/haunt.scm | 2 + website/static/development/css/branches.css | 38 ++++++++ 6 files changed, 305 insertions(+) create mode 100644 website/apps/development/builder.scm create mode 100644 website/apps/development/data.scm create mode 100644 website/apps/development/templates/branches.scm create mode 100644 website/apps/development/templates/components.scm create mode 100644 website/static/development/css/branches.css Hi Guix! This is something we discussed at the last Guix Days: having a dashboard showing the active Git branches, their status, applicable constraints, and a target “freeze” date (one consensual proposal was that, instead of actually freezing the branch, we’d fork it as ‘BRANCH-frozen’ or something like that, leaving the branch open for further changes). This patch against guix-artwork.git is an attempt at providing a low-tech dashboard. I think it’s a good starting point, and certainly better than nothing. :-) What do people think? Could someone help with CSS (here I copied ‘publications.css’), so that the thing is pretty and readable? I’m also not sure what to do with menu entries. One last thing: we’ll need to list the ‘staging’ branch etc. Thoughts? Ludo’. diff --git a/website/apps/development/builder.scm b/website/apps/development/builder.scm new file mode 100644 index 0000000..9e38ceb --- /dev/null +++ b/website/apps/development/builder.scm @@ -0,0 +1,55 @@ +;;; GNU Guix web site +;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see <http://www.gnu.org/licenses/>. + +(define-module (apps development builder) + #:use-module (apps aux system) + #:use-module (apps development data) + #:use-module (apps development templates branches) + #:use-module (haunt artifact) + #:use-module (haunt html) + #:use-module (haunt page) + #:use-module (haunt utils) + #:use-module (apps aux web) + #:use-module (apps media utils) + #:use-module (srfi srfi-1) + #:export (builder)) + +(define (builder site posts) + "Return the list of web resources that compose the app. + + This procedure is a Haunt builder procedure. + + SITE (<site>) + A site object that defines all the properties of the website. See + Haunt <site> objects for more information. + + POSTS (list of <post>) + A list of post objects that represent articles from the blog. See + Haunt <post> objects for more information. + + RETURN (list of <artifact> and <page>) + A list of objects that represent the web resources of the + application. See Haunt <artifact> and <page> objects for more + information." + (list (branch-list-builder))) + +(define (branch-list-builder) + "Return a Haunt artifact representing the publications page." + (serialized-artifact (url-path-join "branches" "index.html") + (branch-list-t branches) + sxml->html)) diff --git a/website/apps/development/data.scm b/website/apps/development/data.scm new file mode 100644 index 0000000..48daff5 --- /dev/null +++ b/website/apps/development/data.scm @@ -0,0 +1,89 @@ +;;; GNU Guix web site +;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see <http://www.gnu.org/licenses/>. + +(define-module (apps development data) + #:use-module (apps i18n) + #:use-module (apps base templates components) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-19) + #:export (branch? + branch-name + branch-synopsis + branch-description + branch-target-date + branch-merge-period + + branch-git-view-url + branch-build-status-url + branch-build-badge-url + + branches)) + +(define-record-type <branch> + (%branch name synopsis description date period) + branch? + (name branch-name) + (synopsis branch-synopsis) + (description branch-description) + (date branch-target-date) ;date + (period branch-merge-period)) ;seconds + +(define* (branch name #:key synopsis description target-date merge-period) + (%branch name synopsis description target-date merge-period)) + +(define (branch-git-view-url branch) + (string-append "https://git.savannah.gnu.org/cgit/guix.git/log?h=" + (branch-name branch))) + +(define (branch-build-status-url branch) + (string-append "https://ci.guix.gnu.org/jobset/" + (branch-name branch))) + +(define (branch-build-badge-url branch) + (string-append "https://ci.guix.gnu.org/jobset/" + (branch-name branch) "/badge.svg")) + +(define (string->date* str) + (string->date str "~Y-~m-~d")) + +(define branches + (list (branch "master" + #:synopsis (G_ "Main development branch") + #:description + (G_ + `(p "This is the main development branch, which " + (code "guix pull") " fetches by default. It should " + "contain only well-tested packages changes that do not " + "trigger more than 300 package rebuilds per " + "architecture. Run " + (code ,(G_ (manual-href "guix refresh -l" + (G_ "en") + (G_ "Invoking-guix-refresh.html")))) " " + "for an estimate of the number of rebuilds triggered " + "by a package change."))) + (branch "core-updates" + #:synopsis (G_ "Changes to core packages and build tools") + #:description + (G_ + `(p "This branch receives changes to core packages " + "that entail of most packages, and changes to " + ,(G_ (manual-href "build utilities" + (G_ "en") + (G_ "Build-Utilities.html"))) ".")) + #:target-date (string->date* "2021-07-20") + #:merge-period (* 4 30 24 3600)))) diff --git a/website/apps/development/templates/branches.scm b/website/apps/development/templates/branches.scm new file mode 100644 index 0000000..c834c6d --- /dev/null +++ b/website/apps/development/templates/branches.scm @@ -0,0 +1,56 @@ +;;; GNU Guix web site +;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see <http://www.gnu.org/licenses/>. + +(define-module (apps development templates branches) + #:use-module (apps base templates theme) + #:use-module (apps base types) + #:use-module (apps base utils) + #:use-module (apps i18n) + #:use-module (apps development templates components) + #:export (branch-list-t)) + +(define (branch-list-t branches) + "Return the branch page in SHTML." + (theme + #:title (C_ "webpage title" '("Branching status")) + #:description + (G_ "Status of active development branches.") + #:keywords + ;; TRANSLATORS: |-separated list of webpage keywords. + (string-split (G_ "Development|Branching") #\|) + #:active-menu-item (C_ "website menu" "Branching") + #:css (list + (guix-url "static/base/css/page.css") + (guix-url "static/development/css/branches.css")) + #:crumbs (list (crumb (C_ "website menu" "Publications") "./")) + #:content + `(main + (section + (@ (class "page")) + ,(G_ `(h2 "Branching")) + + ,(G_ + `(p + (@ (class "centered-block limit-width")) + + "This page lists currently-active Git development branches.")) + + (div + (@ (class "publication-list centered-block limit-width")) + + ,@(map branch->shtml branches)))))) diff --git a/website/apps/development/templates/components.scm b/website/apps/development/templates/components.scm new file mode 100644 index 0000000..d3f9fee --- /dev/null +++ b/website/apps/development/templates/components.scm @@ -0,0 +1,65 @@ +;;; GNU Guix web site +;;; Copyright © 2021 Ludovic Courtès <ludo <at> gnu.org> +;;; +;;; This file is part of the GNU Guix web site. +;;; +;;; The GNU Guix web site is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU Affero General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; The GNU Guix web site is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU Affero General Public License for more details. +;;; +;;; You should have received a copy of the GNU Affero General Public License +;;; along with the GNU Guix web site. If not, see <http://www.gnu.org/licenses/>. + +(define-module (apps development templates components) + #:use-module (apps aux lists) + #:use-module (apps aux web) + #:use-module (apps base templates components) + #:use-module (apps base utils) + #:use-module (apps i18n) + #:use-module (apps development data) + #:use-module (srfi srfi-19) + #:export (branch->shtml)) + +(define (next-deadline date period) + "Return DATE or, if DATE is past, DATE + PERIOD. DATE must be a SRFI-19 +date and PERIOD is a number of seconds." + (let ((now (current-time time-utc)) + (then (date->time-utc date))) + (if (and (time>? now then) + (time> (time-difference now then) + (make-time time-utc 0 + (* 2 7 3600 24)))) + (time-utc->date + (make-time time-utc 0 + (+ (time-second then) period))) + date))) + +(define (branch->shtml branch) + `(div (@ (class "branch-overview")) + (div (@ (class "branch-overview-heading")) + (a (@ (href ,(branch-git-view-url branch))) + (tt ,(branch-name branch))) + (a (@ (href ,(branch-build-status-url branch))) + (img (@ (alt ,(G_ "branch build status")) + (src ,(branch-build-badge-url branch)))))) + + (div (@ (class "branch-synopsis")) + ,(branch-synopsis branch)) + (div (@ (class "branch-description")) + ,(branch-description branch)) + + ,@(if (branch-target-date branch) + `(,(G_ `(div (@ (class "branch-date")) + "target merge date: " + ,(date->string + (next-deadline (branch-target-date branch) + (branch-merge-period branch)) + (C_ "SRFI-19 data->string format" + "~Y-~m-~d"))))) + '()))) diff --git a/website/haunt.scm b/website/haunt.scm index 01e2af7..78e3806 100644 --- a/website/haunt.scm +++ b/website/haunt.scm @@ -8,6 +8,7 @@ (apps i18n) ((apps media builder) #:prefix media:) ((apps packages builder) #:prefix packages:) + ((apps development builder) #:prefix development:) (haunt asset) (haunt builder assets) (haunt reader) @@ -26,4 +27,5 @@ download:builder media:builder packages:builder + development:builder (static-directory "static")))) diff --git a/website/static/development/css/branches.css b/website/static/development/css/branches.css new file mode 100644 index 0000000..2581793 --- /dev/null +++ b/website/static/development/css/branches.css @@ -0,0 +1,38 @@ +.branch-overview, +.branch-overview:link, +.branch-overview:visited { + display: block; + border-image: linear-gradient(to right, gray, transparent) 1; + border-style: none none solid none; + border-width: thin thick; + color: #4D4D4D; + padding: 20px 70px 20px 10px; + transition: border-width .2s cubic-bezier(.22,.61,.36,1); +} + +.branch-overview:active, +.branch-overview:focus, +.branch-overview:hover { + background-color: gold; + background-image: url("/static/base/img/link-arrow-shaper.svg"); + background-position: right; + background-repeat: no-repeat; + background-size: auto 100%; + border-image: linear-gradient(to right, #333, white, white) 1; + border-style: none none solid solid; +} + +.branch-overview-heading { + margin-bottom: 10px; +} + +.publication-info { + margin-bottom: 0px; +} + +.scientific-mark { + display: inline-block; + cursor: help; + height: 28px; + width: 28px; +} -- 2.32.0
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Sat, 03 Jul 2021 07:53:01 GMT) Full text and rfc822 format available.Message #8 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: "pelzflorian (Florian Pelz)" <pelzflorian <at> pelzflorian.de> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 49334 <at> debbugs.gnu.org Subject: Re: [bug#49334] [PATCH] DRAFT website: Add page listing branches. Date: Sat, 3 Jul 2021 09:52:32 +0200
Hi Ludo, On Fri, Jul 02, 2021 at 06:29:04PM +0200, Ludovic Courtès wrote: > Hi Guix! > > This is something we discussed at the last Guix Days: having a dashboard > showing the active Git branches, their status, applicable constraints, > and a target “freeze” date (one consensual proposal was that, instead of > actually freezing the branch, we’d fork it as ‘BRANCH-frozen’ or something > like that, leaving the branch open for further changes). > > This patch against guix-artwork.git is an attempt at providing a low-tech > dashboard. I think it’s a good starting point, and certainly better than > nothing. :-) > > What do people think? I like it. Thank you! > I’m also not sure what to do with > menu entries. One last thing: we’ll need to list the ‘staging’ branch etc. > > Thoughts? > > Ludo’. I don’t know, but maybe it should be in the About Guix menu on the website? Maybe the Guix manual should refer to https://guix.gnu.org/branches/ when it is online? > * website/apps/development/builder.scm, > website/apps/development/data.scm: > website/apps/development/templates/branches.scm, > website/apps/development/templates/components.scm, > website/static/development/css/branches.css: New files. s/data.scm:/data.scm,/ > +++ b/website/apps/development/data.scm > […]] > +(define branches > + (list (branch "master" > + #:synopsis (G_ "Main development branch") > + #:description > + (G_ > + `(p "This is the main development branch, which " > + (code "guix pull") " fetches by default. It should " > + "contain only well-tested packages changes that do not " > + "trigger more than 300 package rebuilds per " > + "architecture. Run " > + (code ,(G_ (manual-href "guix refresh -l" > + (G_ "en") > + (G_ "Invoking-guix-refresh.html")))) " " > + "for an estimate of the number of rebuilds triggered " > + "by a package change."))) > + (branch "core-updates" > + #:synopsis (G_ "Changes to core packages and build tools") > + #:description > + (G_ > + `(p "This branch receives changes to core packages " > + "that entail of most packages, and changes to " s/entail of/entail/ Regards, Florian
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Tue, 06 Jul 2021 10:35:02 GMT) Full text and rfc822 format available.Message #11 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: Mathieu Othacehe <othacehe <at> gnu.org> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 49334 <at> debbugs.gnu.org Subject: Re: bug#49334: [PATCH] DRAFT website: Add page listing branches. Date: Tue, 06 Jul 2021 12:33:56 +0200
Hey Ludo, > + #:target-date (string->date* "2021-07-20") > + #:merge-period (* 4 30 24 3600)))) This looks fine, thanks! I wonder if it would make sense to extract the target date and maybe other information from Cuirass. We could have something like specification properties with a key/value association. The https://ci.guix.gnu.org/specification/master/properties URL would return: --8<---------------cut here---------------start------------->8--- { TARGET_DATE: "2021-07-20" } --8<---------------cut here---------------end--------------->8--- This way, the https://guix.gnu.org/branches page would be mostly static and we could update specification properties directly from Cuirass web interface. WDYT? Thanks, Mathieu
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Thu, 08 Jul 2021 08:21:02 GMT) Full text and rfc822 format available.Message #14 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Mathieu Othacehe <othacehe <at> gnu.org> Cc: 49334 <at> debbugs.gnu.org Subject: Re: bug#49334: [PATCH] DRAFT website: Add page listing branches. Date: Thu, 08 Jul 2021 10:20:33 +0200
Hello! Mathieu Othacehe <othacehe <at> gnu.org> skribis: >> + #:target-date (string->date* "2021-07-20") >> + #:merge-period (* 4 30 24 3600)))) > > This looks fine, thanks! I wonder if it would make sense to extract the > target date and maybe other information from Cuirass. > > We could have something like specification properties with a key/value > association. The https://ci.guix.gnu.org/specification/master/properties > URL would return: > > { > TARGET_DATE: "2021-07-20" > } > > This way, the https://guix.gnu.org/branches page would be mostly static > and we could update specification properties directly from Cuirass web > interface. Ah, that’s an interesting idea. This would be a key/value property list that Cuirass wouldn’t touch, right? I kinda liked the idea of having the target date automatically repeat, whether or not we’re on time :-), but maybe what you suggest would be more reasonable. That said, if /properties returns JSON, we cannot make the page static, unless we add JS code to fetch /properties and to present it nicely, right? Thanks, Ludo’.
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Thu, 08 Jul 2021 12:01:02 GMT) Full text and rfc822 format available.Message #17 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: Mathieu Othacehe <othacehe <at> gnu.org> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 49334 <at> debbugs.gnu.org Subject: Re: bug#49334: [PATCH] DRAFT website: Add page listing branches. Date: Thu, 08 Jul 2021 14:00:19 +0200
Hey, > Ah, that’s an interesting idea. This would be a key/value property list > that Cuirass wouldn’t touch, right? Yes, the /specification/add/xxx and /specification/edit/xxx routes would allow to add/edit entries in this list though. We could also add the specification max dependencies count (300 master, 1800 on staging ...) as a property. > That said, if /properties returns JSON, we cannot make the page static, > unless we add JS code to fetch /properties and to present it nicely, > right? Right, it would require to add some javascript fanciness, but I can take care of it. Anyway, what you are proposing is already a nice step forward, this can come later. Thanks, Mathieu
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Fri, 09 Jul 2021 14:05:02 GMT) Full text and rfc822 format available.Message #20 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Mathieu Othacehe <othacehe <at> gnu.org> Cc: 49334 <at> debbugs.gnu.org Subject: Re: bug#49334: [PATCH] DRAFT website: Add page listing branches. Date: Fri, 09 Jul 2021 16:04:36 +0200
Hi! Mathieu Othacehe <othacehe <at> gnu.org> skribis: >> Ah, that’s an interesting idea. This would be a key/value property list >> that Cuirass wouldn’t touch, right? > > Yes, the /specification/add/xxx and /specification/edit/xxx routes > would allow to add/edit entries in this list though. > > We could also add the specification max dependencies count (300 master, > 1800 on staging ...) as a property. That’d be nice. >> That said, if /properties returns JSON, we cannot make the page static, >> unless we add JS code to fetch /properties and to present it nicely, >> right? > > Right, it would require to add some javascript fanciness, but I can take > care of it. Great. Note that so far there was no JS at all on the web site, and I think we’re aiming for “progressive enhancement”, so care should be taken to have a valid page even when JS is disabled. > Anyway, what you are proposing is already a nice step forward, this > can come later. Great. I wonder if Luis or another person more competent than myself could give a hand on styling. Any takers? :-) Ludo’.
guix-patches <at> gnu.org
:bug#49334
; Package guix-patches
.
(Sun, 12 Jun 2022 08:43:02 GMT) Full text and rfc822 format available.Message #23 received at 49334 <at> debbugs.gnu.org (full text, mbox):
From: Ricardo Wurmus <rekado <at> elephly.net> To: 49334 <at> debbugs.gnu.org Subject: [PATCH] DRAFT website: Add page listing branches. Date: Sun, 12 Jun 2022 10:39:18 +0200
It sounds like we wanted to move ahead with this, without waiting for an extra Cuirass API. Can this be merged as is? Styling can come later. -- Ricardo
Ludovic Courtès <ludo <at> gnu.org>
to control <at> debbugs.gnu.org
.
(Wed, 24 Jan 2024 22:18:02 GMT) Full text and rfc822 format available.Ludovic Courtès <ludo <at> gnu.org>
:Ludovic Courtès <ludo <at> gnu.org>
:Message #30 received at 49334-done <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 49334-done <at> debbugs.gnu.org Subject: Re: [bug#49334] [PATCH] DRAFT website: Add page listing branches. Date: Wed, 24 Jan 2024 23:17:07 +0100
Hey you! Ludovic Courtès <ludo <at> gnu.org> skribis: > This is something we discussed at the last Guix Days: having a dashboard > showing the active Git branches, their status, applicable constraints, > and a target “freeze” date (one consensual proposal was that, instead of > actually freezing the branch, we’d fork it as ‘BRANCH-frozen’ or something > like that, leaving the branch open for further changes). > > This patch against guix-artwork.git is an attempt at providing a low-tech > dashboard. I think it’s a good starting point, and certainly better than > nothing. :-) This has been superseded by the much nier front page at <https://qa.guix.gnu.org/>. Closing! Ludo’.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 22 Feb 2024 12:24:09 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.