* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
@ 2021-07-02 16:29 Ludovic Courtès
2021-07-03 7:52 ` pelzflorian (Florian Pelz)
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Ludovic Courtès @ 2021-07-02 16:29 UTC (permalink / raw)
To: 49334; +Cc: Ludovic Courtès
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@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@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@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@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
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-02 16:29 [bug#49334] [PATCH] DRAFT website: Add page listing branches Ludovic Courtès
@ 2021-07-03 7:52 ` pelzflorian (Florian Pelz)
2021-07-06 10:33 ` Mathieu Othacehe
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: pelzflorian (Florian Pelz) @ 2021-07-03 7:52 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 49334
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-02 16:29 [bug#49334] [PATCH] DRAFT website: Add page listing branches Ludovic Courtès
2021-07-03 7:52 ` pelzflorian (Florian Pelz)
@ 2021-07-06 10:33 ` Mathieu Othacehe
2021-07-08 8:20 ` Ludovic Courtès
2022-06-12 8:39 ` Ricardo Wurmus
2024-01-24 22:17 ` bug#49334: " Ludovic Courtès
3 siblings, 1 reply; 8+ messages in thread
From: Mathieu Othacehe @ 2021-07-06 10:33 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 49334
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-06 10:33 ` Mathieu Othacehe
@ 2021-07-08 8:20 ` Ludovic Courtès
2021-07-08 12:00 ` Mathieu Othacehe
0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2021-07-08 8:20 UTC (permalink / raw)
To: Mathieu Othacehe; +Cc: 49334
Hello!
Mathieu Othacehe <othacehe@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’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-08 8:20 ` Ludovic Courtès
@ 2021-07-08 12:00 ` Mathieu Othacehe
2021-07-09 14:04 ` Ludovic Courtès
0 siblings, 1 reply; 8+ messages in thread
From: Mathieu Othacehe @ 2021-07-08 12:00 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 49334
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-08 12:00 ` Mathieu Othacehe
@ 2021-07-09 14:04 ` Ludovic Courtès
0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2021-07-09 14:04 UTC (permalink / raw)
To: Mathieu Othacehe; +Cc: 49334
Hi!
Mathieu Othacehe <othacehe@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’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#49334] [PATCH] DRAFT website: Add page listing branches.
2021-07-02 16:29 [bug#49334] [PATCH] DRAFT website: Add page listing branches Ludovic Courtès
2021-07-03 7:52 ` pelzflorian (Florian Pelz)
2021-07-06 10:33 ` Mathieu Othacehe
@ 2022-06-12 8:39 ` Ricardo Wurmus
2024-01-24 22:17 ` bug#49334: " Ludovic Courtès
3 siblings, 0 replies; 8+ messages in thread
From: Ricardo Wurmus @ 2022-06-12 8:39 UTC (permalink / raw)
To: 49334
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#49334: [PATCH] DRAFT website: Add page listing branches.
2021-07-02 16:29 [bug#49334] [PATCH] DRAFT website: Add page listing branches Ludovic Courtès
` (2 preceding siblings ...)
2022-06-12 8:39 ` Ricardo Wurmus
@ 2024-01-24 22:17 ` Ludovic Courtès
3 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2024-01-24 22:17 UTC (permalink / raw)
To: 49334-done
Hey you!
Ludovic Courtès <ludo@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’.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-01-24 22:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-02 16:29 [bug#49334] [PATCH] DRAFT website: Add page listing branches Ludovic Courtès
2021-07-03 7:52 ` pelzflorian (Florian Pelz)
2021-07-06 10:33 ` Mathieu Othacehe
2021-07-08 8:20 ` Ludovic Courtès
2021-07-08 12:00 ` Mathieu Othacehe
2021-07-09 14:04 ` Ludovic Courtès
2022-06-12 8:39 ` Ricardo Wurmus
2024-01-24 22:17 ` bug#49334: " Ludovic Courtès
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.