all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Web interface pushed
@ 2018-07-29 22:08 Clément Lassieur
  2018-07-29 23:46 ` Ludovic Courtès
  2018-07-30  7:38 ` amirouche
  0 siblings, 2 replies; 32+ messages in thread
From: Clément Lassieur @ 2018-07-29 22:08 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: Guix-devel

Hi Tatiana,

So, I did the pagination review and I pushed your work tonight.  :-)

I added checks to avoid crashes when the table is empty (FIRST and LAST
expect non-empty lists).

I modified a few minor things too:

- the commit message, so that it matches our convention
- the indentation
- I removed code comments, trailing '\' in SQL queries, useless
  newlines, useless exports
- I renamed a few things (e.g. thing-list with things, %pagesize with
  %page-size)
- I replaced (+ 1 x) with (1+ x)
- I used string-join to avoid long strings
- I used FIRST instead of CAR when used with LAST (for more consistency,
  but it's the exact same thing)
- I replaced FIRST and LAST with BUILD-ID and BUILD-STOPTIME, so to make
  it more furure-proof and easier to understand
- I used a format string for RESPOND-HTML (to avoid "\"\"")
- I finally opted for a non-parameter %page-size (yes, I changed my mind
  :-), I just didn't see any reason to use one)
- I removed ('page (string->number param)) from REQUEST-PARAMETERS (I
  think it was useless)
- I added a missing copyright header

And that's all!

Thanks for this work, it'll be very useful.  Don't hesitate send new
patches to improve it!

Best regards,
Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-29 22:08 Web interface pushed Clément Lassieur
@ 2018-07-29 23:46 ` Ludovic Courtès
  2018-07-30 12:45   ` Pjotr Prins
  2018-07-30  7:38 ` amirouche
  1 sibling, 1 reply; 32+ messages in thread
From: Ludovic Courtès @ 2018-07-29 23:46 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova

Hello,

Clément Lassieur <clement@lassieur.org> skribis:

> So, I did the pagination review and I pushed your work tonight.  :-)

\o/  Thumbs up to Tatiana for all the great work and to Clément for the
review and final polishing!  Really cool (and not so common!) to have
code on ‘master’ before GSoC is over.

I hope we can deploy it soon on berlin.guixsd.org.

Ludo’.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-29 22:08 Web interface pushed Clément Lassieur
  2018-07-29 23:46 ` Ludovic Courtès
@ 2018-07-30  7:38 ` amirouche
  2018-07-30  9:11   ` Clément Lassieur
  1 sibling, 1 reply; 32+ messages in thread
From: amirouche @ 2018-07-30  7:38 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 1358 bytes --]


Hi
On Monday, July 30, 2018 00:08 CEST, Clément Lassieur <clement@lassieur.org> wrote:
 Hi Tatiana,

So, I did the pagination review and I pushed your work tonight. :-)

I added checks to avoid crashes when the table is empty (FIRST and LAST
expect non-empty lists).

I modified a few minor things too:

- the commit message, so that it matches our convention
- the indentation
- I removed code comments, trailing '\' in SQL queries, useless
newlines, useless exports
- I renamed a few things (e.g. thing-list with things, %pagesize with
%page-size)
- I replaced (+ 1 x) with (1+ x)
- I used string-join to avoid long strings
- I used FIRST instead of CAR when used with LAST (for more consistency,
but it's the exact same thing)
- I replaced FIRST and LAST with BUILD-ID and BUILD-STOPTIME, so to make
it more furure-proof and easier to understand
- I used a format string for RESPOND-HTML (to avoid "\"\"")
- I finally opted for a non-parameter %page-size (yes, I changed my mind
:-), I just didn't see any reason to use one)
- I removed ('page (string->number param)) from REQUEST-PARAMETERS (I
think it was useless)
- I added a missing copyright header

And that's all!

Thanks for this work, it'll be very useful. Don't hesitate send new
patches to improve it!

Best regards,
Clément
 How can I test?


 

[-- Attachment #2: Type: text/html, Size: 1622 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30  7:38 ` amirouche
@ 2018-07-30  9:11   ` Clément Lassieur
  2018-07-30  9:23     ` Alex Sassmannshausen
                       ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Clément Lassieur @ 2018-07-30  9:11 UTC (permalink / raw)
  To: amirouche@hypermove.net; +Cc: Guix-devel, Tatiana Sholokhova

Hi,

amirouche@hypermove.net <amirouche@hypermove.net> writes:

> Hi
>
> How can I test?

On https://cuirass.lassieur.org:8081/ for now, and on
https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
it :-)

Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30  9:11   ` Clément Lassieur
@ 2018-07-30  9:23     ` Alex Sassmannshausen
  2018-07-30  9:41       ` Nils Gillmann
  2018-07-30 12:08     ` Ricardo Wurmus
  2018-07-30 14:10     ` Hartmut Goebel
  2 siblings, 1 reply; 32+ messages in thread
From: Alex Sassmannshausen @ 2018-07-30  9:23 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova

Wow, that looks beautiful! Congratulations to all involved, and
especially Tatiana :D

Alex


Clément Lassieur writes:

> Hi,
>
> amirouche@hypermove.net <amirouche@hypermove.net> writes:
>
>> Hi
>>
>> How can I test?
>
> On https://cuirass.lassieur.org:8081/ for now, and on
> https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
> it :-)
>
> Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30  9:23     ` Alex Sassmannshausen
@ 2018-07-30  9:41       ` Nils Gillmann
  0 siblings, 0 replies; 32+ messages in thread
From: Nils Gillmann @ 2018-07-30  9:41 UTC (permalink / raw)
  To: Alex Sassmannshausen
  Cc: Guix-devel, Clément Lassieur, Tatiana Sholokhova

Wow, good work Tatiana!

Alex Sassmannshausen transcribed 384 bytes:
> Wow, that looks beautiful! Congratulations to all involved, and
> especially Tatiana :D
> 
> Alex
> 
> 
> Clément Lassieur writes:
> 
> > Hi,
> >
> > amirouche@hypermove.net <amirouche@hypermove.net> writes:
> >
> >> Hi
> >>
> >> How can I test?
> >
> > On https://cuirass.lassieur.org:8081/ for now, and on
> > https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
> > it :-)
> >
> > Clément
> 
> 

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30  9:11   ` Clément Lassieur
  2018-07-30  9:23     ` Alex Sassmannshausen
@ 2018-07-30 12:08     ` Ricardo Wurmus
  2018-07-30 12:14       ` Gábor Boskovits
  2018-07-30 14:10     ` Hartmut Goebel
  2 siblings, 1 reply; 32+ messages in thread
From: Ricardo Wurmus @ 2018-07-30 12:08 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova


Clément Lassieur <clement@lassieur.org> writes:

> Hi,
>
> amirouche@hypermove.net <amirouche@hypermove.net> writes:
>
>> Hi
>>
>> How can I test?
>
> On https://cuirass.lassieur.org:8081/ for now, and on
> https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
> it :-)

I just reconfigured berlin.guixsd.org.  The web interface is now
available there.

Thanks Tatiana and Clément!

--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30 12:08     ` Ricardo Wurmus
@ 2018-07-30 12:14       ` Gábor Boskovits
  0 siblings, 0 replies; 32+ messages in thread
From: Gábor Boskovits @ 2018-07-30 12:14 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel, Clément Lassieur, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 597 bytes --]

Ricardo Wurmus <rekado@elephly.net> ezt írta (időpont: 2018. júl. 30., H,
14:09):

>
> Clément Lassieur <clement@lassieur.org> writes:
>
> > Hi,
> >
> > amirouche@hypermove.net <amirouche@hypermove.net> writes:
> >
> >> Hi
> >>
> >> How can I test?
> >
> > On https://cuirass.lassieur.org:8081/ for now, and on
> > https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
> > it :-)
>
> I just reconfigured berlin.guixsd.org.  The web interface is now
> available there.
>
> Thanks Tatiana and Clément!
>
--
> Ricardo
>
> Thanks for all! Nice work!

[-- Attachment #2: Type: text/html, Size: 1467 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-29 23:46 ` Ludovic Courtès
@ 2018-07-30 12:45   ` Pjotr Prins
  2018-07-30 13:26     ` Ricardo Wurmus
  0 siblings, 1 reply; 32+ messages in thread
From: Pjotr Prins @ 2018-07-30 12:45 UTC (permalink / raw)
  To: Ludovic Courtès
  Cc: Guix-devel, Clément Lassieur, Tatiana Sholokhova

On Mon, Jul 30, 2018 at 01:46:10AM +0200, Ludovic Courtès wrote:
> Hello,
> 
> Clément Lassieur <clement@lassieur.org> skribis:
> 
> > So, I did the pagination review and I pushed your work tonight.  :-)
> 
> \o/  Thumbs up to Tatiana for all the great work and to Clément for the
> review and final polishing!  Really cool (and not so common!) to have
> code on ‘master’ before GSoC is over.

+1.

One comment: I think we should strive to design GSoC programmes in a
way that students get to push earlier to trunk. I know Guix can be
complex, but even so, I think we would have less failure if we make it
small pieces and better gratification. Maybe this year's students can
say something about that here.

Pj.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30 12:45   ` Pjotr Prins
@ 2018-07-30 13:26     ` Ricardo Wurmus
  2018-08-01 19:47       ` Tatiana Sholokhova
  0 siblings, 1 reply; 32+ messages in thread
From: Ricardo Wurmus @ 2018-07-30 13:26 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: Guix-devel, Clément Lassieur, Tatiana Sholokhova


Hi Pjotr,

> One comment: I think we should strive to design GSoC programmes in a
> way that students get to push earlier to trunk. I know Guix can be
> complex, but even so, I think we would have less failure if we make it
> small pieces and better gratification.

This has always been our goal.  The projects can usually be implemented
in independent chunks that could be merged into the “master” branch at
various stages.

--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30  9:11   ` Clément Lassieur
  2018-07-30  9:23     ` Alex Sassmannshausen
  2018-07-30 12:08     ` Ricardo Wurmus
@ 2018-07-30 14:10     ` Hartmut Goebel
  2018-07-30 16:02       ` Clément Lassieur
  2 siblings, 1 reply; 32+ messages in thread
From: Hartmut Goebel @ 2018-07-30 14:10 UTC (permalink / raw)
  To: guix-devel

Am 30.07.2018 um 11:11 schrieb Clément Lassieur:
> On https://cuirass.lassieur.org:8081/ for now, and on
> https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
> it :-)

Wow, this is much, much quicker then the old UI. I'm just curious how I
could get the build log. Anything I misses?

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel@crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30 14:10     ` Hartmut Goebel
@ 2018-07-30 16:02       ` Clément Lassieur
  2018-07-30 18:43         ` Amirouche Boubekki
  0 siblings, 1 reply; 32+ messages in thread
From: Clément Lassieur @ 2018-07-30 16:02 UTC (permalink / raw)
  To: Hartmut Goebel; +Cc: guix-devel

Hartmut Goebel <h.goebel@crazy-compilers.com> writes:

> Am 30.07.2018 um 11:11 schrieb Clément Lassieur:
>> On https://cuirass.lassieur.org:8081/ for now, and on
>> https://berlin.guixsd.org/ when Ricardo guix pulls and guix reconfigures
>> it :-)
>
> Wow, this is much, much quicker then the old UI. I'm just curious how I
> could get the build log. Anything I misses?

It's a todo :-)

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30 16:02       ` Clément Lassieur
@ 2018-07-30 18:43         ` Amirouche Boubekki
  0 siblings, 0 replies; 32+ messages in thread
From: Amirouche Boubekki @ 2018-07-30 18:43 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

Le lun. 30 juil. 2018 à 18:03, Clément Lassieur <clement@lassieur.org> a
écrit :

> Hartmut Goebel <h.goebel@crazy-compilers.com> writes:
>
> > Am 30.07.2018 um 11:11 schrieb Clément Lassieur:
> >> On https://cuirass.lassieur.org:8081/ for now, and on
> >> https://berlin.guixsd.org/ when Ricardo guix pulls and guix
> reconfigures
> >> it :-)
> >
> > Wow, this is much, much quicker then the old UI. I'm just curious how I
> > could get the build log. Anything I misses?
>
> It's a todo :-)
>

(display "win\n")

[-- Attachment #2: Type: text/html, Size: 1102 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-07-30 13:26     ` Ricardo Wurmus
@ 2018-08-01 19:47       ` Tatiana Sholokhova
  2018-08-02  6:53         ` Clément Lassieur
                           ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Tatiana Sholokhova @ 2018-08-01 19:47 UTC (permalink / raw)
  To: guix-devel; +Cc: Clément Lassieur

[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]

Hi all,

Thank you for the congratulations! I am excited to have the web-interface
pushed into the master branch. I would like to thank you all for your great
support. Special thanks to Clément for helpful final reviews and merging
all the changes together.

Now I would like to add some more features to the interface to enhance it
further. Am I right that now I should again organize my changes as a new
separate branch?

Best regards,
Tatiana

On Mon, 30 Jul 2018 at 15:27, Ricardo Wurmus <rekado@elephly.net> wrote:

>
> Hi Pjotr,
>
> > One comment: I think we should strive to design GSoC programmes in a
> > way that students get to push earlier to trunk. I know Guix can be
> > complex, but even so, I think we would have less failure if we make it
> > small pieces and better gratification.
>
> This has always been our goal.  The projects can usually be implemented
> in independent chunks that could be merged into the “master” branch at
> various stages.
>
> --
> Ricardo
>
>

[-- Attachment #2: Type: text/html, Size: 1362 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-01 19:47       ` Tatiana Sholokhova
@ 2018-08-02  6:53         ` Clément Lassieur
  2018-08-02 16:00           ` Gábor Boskovits
  2018-08-02 18:13         ` Amirouche Boubekki
  2018-08-03 13:53         ` Ricardo Wurmus
  2 siblings, 1 reply; 32+ messages in thread
From: Clément Lassieur @ 2018-08-02  6:53 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel

Hi Tatiana,

Tatiana Sholokhova <tanja201396@gmail.com> writes:

> Hi all,
>
> Thank you for the congratulations! I am excited to have the web-interface
> pushed into the master branch. I would like to thank you all for your great
> support. Special thanks to Clément for helpful final reviews and merging
> all the changes together.

:-)

> Now I would like to add some more features to the interface to enhance it
> further.

That would be great!

> Am I right that now I should again organize my changes as a new
> separate branch?

It's worth doing a separate branch if the change is large and
complicated, but I think the best is to add things little by little in a
consistent way.  Then you can use 'git format-patch' to generate a patch
file, and send it to the mailing list.  Or you can use 'git send-email'.
Don't hesitate to ask help about those commands.  Most people send
patches to the patch mailing list (guix-patches@gnu.org) because it's
easier to keep track of them (there is an interface:
https://debbugs.gnu.org/db/pa/lguix-patches.html), but in the end, it
doesn't really matter :-) so do as you wish.

Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02  6:53         ` Clément Lassieur
@ 2018-08-02 16:00           ` Gábor Boskovits
  2018-08-02 16:49             ` Clément Lassieur
  0 siblings, 1 reply; 32+ messages in thread
From: Gábor Boskovits @ 2018-08-02 16:00 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 1697 bytes --]

Clément Lassieur <clement@lassieur.org> ezt írta (időpont: 2018. aug. 2.,
Cs, 8:54):

> Hi Tatiana,
>
> Tatiana Sholokhova <tanja201396@gmail.com> writes:
>
> > Hi all,
> >
> > Thank you for the congratulations! I am excited to have the web-interface
> > pushed into the master branch. I would like to thank you all for your
> great
> > support. Special thanks to Clément for helpful final reviews and merging
> > all the changes together.
>
> :-)
>
> > Now I would like to add some more features to the interface to enhance it
> > further.
>
> >Hello Tatiana, did you meet my writeup?
>I believe that a filtering function would be a very useful addition.
>Also most of the time the results differing from the results in the
previous evaluations are the most interesting.
>Can we get this kind of information somehow?
>Also, do you think, that a page with a possibility to download the build
log is possible?


> That would be great!
>
> Am I right that now I should again organize my changes as a new
> > separate branch?
>
> It's worth doing a separate branch if the change is large and
> complicated, but I think the best is to add things little by little in a
> consistent way.  Then you can use 'git format-patch' to generate a patch
> file, and send it to the mailing list.  Or you can use 'git send-email'.
> Don't hesitate to ask help about those commands.  Most people send
> patches to the patch mailing list (guix-patches@gnu.org) because it's
> easier to keep track of them (there is an interface:
> https://debbugs.gnu.org/db/pa/lguix-patches.html), but in the end, it
> doesn't really matter :-) so do as you wish.
>
> Clément
>
>

[-- Attachment #2: Type: text/html, Size: 2578 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02 16:00           ` Gábor Boskovits
@ 2018-08-02 16:49             ` Clément Lassieur
  2018-08-02 18:48               ` Gábor Boskovits
  0 siblings, 1 reply; 32+ messages in thread
From: Clément Lassieur @ 2018-08-02 16:49 UTC (permalink / raw)
  To: Gábor Boskovits; +Cc: Guix-devel, Tatiana Sholokhova

Hi Gábor,

Gábor Boskovits <boskovits@gmail.com> writes:

> Also most of the time the results differing from the results in the
> previous evaluations are the most interesting.
> Can we get this kind of information somehow?

About that, I am preparing a commit that would get Cuirass to stop
building all derivations, but only the ones that don't exist yet.
That's https://bugs.gnu.org/32190.  For example, Cuirass wouldn't build
anything when there is a new commit that just updates the documentation,
and the green red and grey buttons would show 0, 0, 0.  Is that what you
meant?

Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-01 19:47       ` Tatiana Sholokhova
  2018-08-02  6:53         ` Clément Lassieur
@ 2018-08-02 18:13         ` Amirouche Boubekki
  2018-08-02 20:17           ` Clément Lassieur
  2018-08-03 13:53         ` Ricardo Wurmus
  2 siblings, 1 reply; 32+ messages in thread
From: Amirouche Boubekki @ 2018-08-02 18:13 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel, Clément Lassieur


[-- Attachment #1.1: Type: text/plain, Size: 9042 bytes --]

I read some of the code, I like it :)

diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 82f49a4..af24a28 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -20,6 +20,10 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with Cuirass.  If not, see <http://www.gnu.org/licenses/>.

+;; Comment:
+
+;; This is called base because it interface with guix daemon.
+
 (define-module (cuirass base)
   #:use-module (fibers)
   #:use-module (cuirass logging)
diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm
index 2d66ff9..0899cd1 100644
--- a/src/cuirass/http.scm
+++ b/src/cuirass/http.scm
@@ -117,6 +117,13 @@
     (map build->hydra-build builds)))

 (define (request-parameters request)
+  ;; REVIEW: this 'parameters' is ambigious in aiohttp. It's called
+  ;; request.query because the part after ? in the URL is called the "query
+  ;; string". Also parameters can be passed via the path part of the URL.
+
+  ;; here is what I use
+  ;;
https://github.com/a-guile-mind/guile-web/blob/master/src/web/decode.scm
+
   "Parse the REQUEST query parameters and return them under the form
   '((parameter . value) ...)."
   (let* ((uri (request-uri request))
@@ -125,11 +132,14 @@
         (map (lambda (param)
                (match (string-split param #\=)
                  ((key param)
-                  (let ((key-symbol (string->symbol key)))
+                  (let ((key-symbol (string->symbol (uri-decode key))))
                     (cons key-symbol
                           (match key-symbol
-                            ('id (string->number param))
-                            ('nr (string->number param))
+                                 ('id (string->number (uri-decode param)))
+                                 ;; I don't think this will scale in terms
of
+                                 ;; kind query pairs where the key part
can be
+                                 ;; many different things
+                            ('nr (string->number (uri-decode param)))
                             (_   param)))))))
              (string-split query #\&))
         '())))
@@ -138,9 +148,10 @@
 ;;;
 ;;; Web server.
 ;;;
-;;; The api is derived from the hydra one. It is partially described here :
+;;; The exposed api is derived from the hydra one. It is partially
described
+;;; here :
 ;;;
-;;; https://github.com/NixOS/hydra/blob/master/doc/manual/api.xml
+;;;   https://github.com/NixOS/hydra/blob/master/doc/manual/api.xml
 ;;;

 (define (request-path-components request)
@@ -217,6 +228,8 @@
                     (with-critical-section db-channel (db)
                       (db-get-specifications db)))))
     (("build" build-id)
+     ;; REVIEW: don't inline that much code in same procedure aka.
procedures
+     ;; for the win1
      (let ((hydra-build
             (with-critical-section db-channel (db)
               (handle-build-request db (string->number build-id)))))
@@ -234,6 +247,7 @@
               (let ((uri (string->uri-reference
                           (string-append "/log/"
                                          (basename output)))))
+                ;; create a procedure for that when you will have forms.
                 (respond (build-response #:code 302
                                          #:headers `((location . ,uri)))
                          #:body "")))
@@ -241,7 +255,10 @@
               ;; Not entry for BUILD-ID in the 'Outputs' table.
               (respond-json-with-error
                500
+               ;; 500 is very strong error, it's must not be used for
expected failure
+               ;; by the way this is rendering logic, it should be in it's
own procedure.
                (format #f "Outputs of build ~a are unknown." build-id)))
+
              (#f
               (respond-build-not-found build-id)))
            (respond-build-not-found build-id))))
@@ -251,13 +268,25 @@
             (nr (assq-ref params 'nr)))
        (if nr
            (respond-json (object->json-string
+                          ;; don't nest here the code. Because http
handlers should follow
+                          ;; the following pattern:
+                          ;;
+                          ;;   (define (handler request body)
+                          ;;      (let ((input (snarf-input request body)))
+                          ;;          (shallow-validate-with-exception
input)
+                          ;;          (deep-validate-with-exception input
(db))
+                          ;;          (let ((out (domain-code-goes-here)))
+                          ;;             (sxml->response (handler-template
out))))
+                          ;;
+                          ;; Basically, the current code requires top down
and bottom up
+                          ;; reading. Declaring intermediate variables
helps readbility.
                           (with-critical-section db-channel (db)
                             (db-get-evaluations db nr))))
-           (respond-json-with-error 500 "Parameter not defined!"))))
+           (respond-json-with-error 400 "Parameter not defined!"))))  ;;
aka. bad request
     (("api" "latestbuilds")
      (let* ((params (request-parameters request))
             ;; 'nr parameter is mandatory to limit query size.
-            (valid-params? (assq-ref params 'nr)))
+            (valid-params? (assq-ref params 'nr)))  ;; or exception?
        (if valid-params?
            ;; Limit results to builds that are "done".
            (respond-json
@@ -359,7 +388,10 @@
     ;; process each client request and then directly go back waiting for
the
     ;; next client (conversely, Guile's 'run-server' loop processes clients
     ;; one after another, sequentially.)  We can do that because we don't
-    ;; maintain any state across connections.
+    ;; maintain any state across connections.  I don't understand that
+    ;; comment. Why no state across connections? isn't sqlite that stores
+    ;; states? Does it mean there is no global mutable in memory data in
+    ;; cuirass?
     ;;
     ;; XXX: We don't do 'call-with-sigint' like 'run-server' does.
     (let* ((impl (lookup-server-impl 'fiberized))
diff --git a/src/schema.sql b/src/schema.sql
index eb0f7e9..769360f 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -1,5 +1,8 @@
 BEGIN TRANSACTION;

+-- REVIEW: The name of the table must be all small caps.
+-- COMMENT: Some people argue table name must be singular
+--          but I disagree, both might work.
 CREATE TABLE Specifications (
   name          TEXT NOT NULL PRIMARY KEY,
   load_path_inputs TEXT NOT NULL, -- list of input names whose load path
will be in Guile's %load-path
@@ -64,7 +67,7 @@ CREATE TABLE Builds (
   log           TEXT NOT NULL,
   status        INTEGER NOT NULL,
   timestamp     INTEGER NOT NULL,
-  starttime     INTEGER NOT NULL,
+  starttime     INTEGER NOT NULL,  -- REVIEW: why not start_time?
   stoptime      INTEGER NOT NULL,
   FOREIGN KEY (derivation) REFERENCES Derivations (derivation),
   FOREIGN KEY (evaluation) REFERENCES Evaluations (id)
@@ -75,5 +78,12 @@ CREATE TABLE Builds (
 CREATE INDEX Builds_Derivations_index ON Builds(status ASC, timestamp ASC,
id, derivation, evaluation, stoptime DESC);
 CREATE INDEX Inputs_index ON Inputs(specification, name, branch);
 CREATE INDEX Derivations_index ON Derivations(derivation, evaluation,
job_name, system);
+-- COMMENT: Indices make the following trade off: slow down writes and take
+--          more space (disk and memory) and in prize you get faster reads.
+-- COMMENT: you'd better add CREATE INDEX just below the table that they
+--          speed up queries for.
+

 COMMIT;
+
+--


Le mer. 1 août 2018 à 21:47, Tatiana Sholokhova <tanja201396@gmail.com> a
écrit :

> Hi all,
>
> Thank you for the congratulations! I am excited to have the web-interface
> pushed into the master branch. I would like to thank you all for your great
> support. Special thanks to Clément for helpful final reviews and merging
> all the changes together.
>
> Now I would like to add some more features to the interface to enhance it
> further. Am I right that now I should again organize my changes as a new
> separate branch?
>
> Best regards,
> Tatiana
>
> On Mon, 30 Jul 2018 at 15:27, Ricardo Wurmus <rekado@elephly.net> wrote:
>
>>
>> Hi Pjotr,
>>
>> > One comment: I think we should strive to design GSoC programmes in a
>> > way that students get to push earlier to trunk. I know Guix can be
>> > complex, but even so, I think we would have less failure if we make it
>> > small pieces and better gratification.
>>
>> This has always been our goal.  The projects can usually be implemented
>> in independent chunks that could be merged into the “master” branch at
>> various stages.
>>
>> --
>> Ricardo
>>
>>

[-- Attachment #1.2: Type: text/html, Size: 11987 bytes --]

[-- Attachment #2: cuirass.amz3.20180802.diff --]
[-- Type: text/x-patch, Size: 8332 bytes --]

diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index 82f49a4..af24a28 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -20,6 +20,10 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with Cuirass.  If not, see <http://www.gnu.org/licenses/>.
 
+;; Comment:
+
+;; This is called base because it interface with guix daemon.
+
 (define-module (cuirass base)
   #:use-module (fibers)
   #:use-module (cuirass logging)
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index 56f421d..ccb8309 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -547,6 +547,7 @@ Assumes that if group id stays the same the group headers stay the same."
                    ;; before those in 'scheduled' state (-2).
                    "status DESC, timestamp DESC")
                   (_ "id DESC")))
+         ;; TODO: create macro to read the following SQL query from something-get-builds.sql
          (stmt-text (format #f "SELECT * FROM (
 SELECT Builds.id, Outputs.name, Outputs.path, Builds.timestamp,
 Builds.starttime, Builds.stoptime, Builds.log, Builds.status,
diff --git a/src/cuirass/http.scm b/src/cuirass/http.scm
index 2d66ff9..0899cd1 100644
--- a/src/cuirass/http.scm
+++ b/src/cuirass/http.scm
@@ -117,6 +117,13 @@
     (map build->hydra-build builds)))
 
 (define (request-parameters request)
+  ;; REVIEW: this 'parameters' is ambigious in aiohttp. It's called
+  ;; request.query because the part after ? in the URL is called the "query
+  ;; string". Also parameters can be passed via the path part of the URL.
+
+  ;; here is what I use
+  ;; https://github.com/a-guile-mind/guile-web/blob/master/src/web/decode.scm
+
   "Parse the REQUEST query parameters and return them under the form
   '((parameter . value) ...)."
   (let* ((uri (request-uri request))
@@ -125,11 +132,14 @@
         (map (lambda (param)
                (match (string-split param #\=)
                  ((key param)
-                  (let ((key-symbol (string->symbol key)))
+                  (let ((key-symbol (string->symbol (uri-decode key))))
                     (cons key-symbol
                           (match key-symbol
-                            ('id (string->number param))
-                            ('nr (string->number param))
+                                 ('id (string->number (uri-decode param)))
+                                 ;; I don't think this will scale in terms of
+                                 ;; kind query pairs where the key part can be
+                                 ;; many different things
+                            ('nr (string->number (uri-decode param)))
                             (_   param)))))))
              (string-split query #\&))
         '())))
@@ -138,9 +148,10 @@
 ;;;
 ;;; Web server.
 ;;;
-;;; The api is derived from the hydra one. It is partially described here :
+;;; The exposed api is derived from the hydra one. It is partially described
+;;; here :
 ;;;
-;;; https://github.com/NixOS/hydra/blob/master/doc/manual/api.xml
+;;;   https://github.com/NixOS/hydra/blob/master/doc/manual/api.xml
 ;;;
 
 (define (request-path-components request)
@@ -217,6 +228,8 @@
                     (with-critical-section db-channel (db)
                       (db-get-specifications db)))))
     (("build" build-id)
+     ;; REVIEW: don't inline that much code in same procedure aka. procedures
+     ;; for the win1
      (let ((hydra-build
             (with-critical-section db-channel (db)
               (handle-build-request db (string->number build-id)))))
@@ -234,6 +247,7 @@
               (let ((uri (string->uri-reference
                           (string-append "/log/"
                                          (basename output)))))
+                ;; create a procedure for that when you will have forms.
                 (respond (build-response #:code 302
                                          #:headers `((location . ,uri)))
                          #:body "")))
@@ -241,7 +255,10 @@
               ;; Not entry for BUILD-ID in the 'Outputs' table.
               (respond-json-with-error
                500
+               ;; 500 is very strong error, it's must not be used for expected failure
+               ;; by the way this is rendering logic, it should be in it's own procedure.
                (format #f "Outputs of build ~a are unknown." build-id)))
+
              (#f
               (respond-build-not-found build-id)))
            (respond-build-not-found build-id))))
@@ -251,13 +268,25 @@
             (nr (assq-ref params 'nr)))
        (if nr
            (respond-json (object->json-string
+                          ;; don't nest here the code. Because http handlers should follow
+                          ;; the following pattern:
+                          ;;
+                          ;;   (define (handler request body)
+                          ;;      (let ((input (snarf-input request body)))
+                          ;;          (shallow-validate-with-exception input)
+                          ;;          (deep-validate-with-exception input (db))
+                          ;;          (let ((out (domain-code-goes-here)))
+                          ;;             (sxml->response (handler-template out))))
+                          ;;
+                          ;; Basically, the current code requires top down and bottom up
+                          ;; reading. Declaring intermediate variables helps readbility.
                           (with-critical-section db-channel (db)
                             (db-get-evaluations db nr))))
-           (respond-json-with-error 500 "Parameter not defined!"))))
+           (respond-json-with-error 400 "Parameter not defined!"))))  ;; aka. bad request
     (("api" "latestbuilds")
      (let* ((params (request-parameters request))
             ;; 'nr parameter is mandatory to limit query size.
-            (valid-params? (assq-ref params 'nr)))
+            (valid-params? (assq-ref params 'nr)))  ;; or exception?
        (if valid-params?
            ;; Limit results to builds that are "done".
            (respond-json
@@ -359,7 +388,10 @@
     ;; process each client request and then directly go back waiting for the
     ;; next client (conversely, Guile's 'run-server' loop processes clients
     ;; one after another, sequentially.)  We can do that because we don't
-    ;; maintain any state across connections.
+    ;; maintain any state across connections.  I don't understand that
+    ;; comment. Why no state across connections? isn't sqlite that stores
+    ;; states? Does it mean there is no global mutable in memory data in
+    ;; cuirass?
     ;;
     ;; XXX: We don't do 'call-with-sigint' like 'run-server' does.
     (let* ((impl (lookup-server-impl 'fiberized))
diff --git a/src/schema.sql b/src/schema.sql
index eb0f7e9..769360f 100644
--- a/src/schema.sql
+++ b/src/schema.sql
@@ -1,5 +1,8 @@
 BEGIN TRANSACTION;
 
+-- REVIEW: The name of the table must be all small caps.
+-- COMMENT: Some people argue table name must be singular
+--          but I disagree, both might work.
 CREATE TABLE Specifications (
   name          TEXT NOT NULL PRIMARY KEY,
   load_path_inputs TEXT NOT NULL, -- list of input names whose load path will be in Guile's %load-path
@@ -64,7 +67,7 @@ CREATE TABLE Builds (
   log           TEXT NOT NULL,
   status        INTEGER NOT NULL,
   timestamp     INTEGER NOT NULL,
-  starttime     INTEGER NOT NULL,
+  starttime     INTEGER NOT NULL,  -- REVIEW: why not start_time?
   stoptime      INTEGER NOT NULL,
   FOREIGN KEY (derivation) REFERENCES Derivations (derivation),
   FOREIGN KEY (evaluation) REFERENCES Evaluations (id)
@@ -75,5 +78,12 @@ CREATE TABLE Builds (
 CREATE INDEX Builds_Derivations_index ON Builds(status ASC, timestamp ASC, id, derivation, evaluation, stoptime DESC);
 CREATE INDEX Inputs_index ON Inputs(specification, name, branch);
 CREATE INDEX Derivations_index ON Derivations(derivation, evaluation, job_name, system);
+-- COMMENT: Indices make the following trade off: slow down writes and take
+--          more space (disk and memory) and in prize you get faster reads.
+-- COMMENT: you'd better add CREATE INDEX just below the table that they
+--          speed up queries for.
+
 
 COMMIT;
+
+--

^ permalink raw reply related	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02 16:49             ` Clément Lassieur
@ 2018-08-02 18:48               ` Gábor Boskovits
  2018-08-02 19:21                 ` Amirouche Boubekki
  0 siblings, 1 reply; 32+ messages in thread
From: Gábor Boskovits @ 2018-08-02 18:48 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 926 bytes --]

Clément Lassieur <clement@lassieur.org> ezt írta (időpont: 2018. aug. 2.,
Cs, 18:49):

> Hi Gábor,
>
> Gábor Boskovits <boskovits@gmail.com> writes:
>
> > Also most of the time the results differing from the results in the
> > previous evaluations are the most interesting.
> > Can we get this kind of information somehow?
>
> About that, I am preparing a commit that would get Cuirass to stop
> building all derivations, but only the ones that don't exist yet.
> That's https://bugs.gnu.org/32190.  For example, Cuirass wouldn't build
> anything when there is a new commit that just updates the documentation,
> and the green red and grey buttons would show 0, 0, 0.  Is that what you
> meant?
>
> > Not exactly. What I would be interested is to get a list of packages that
> previous succeeded, and now they fail, and also a list of packages that
were
> failing, but now build.


> Clément
>

[-- Attachment #2: Type: text/html, Size: 1513 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02 18:48               ` Gábor Boskovits
@ 2018-08-02 19:21                 ` Amirouche Boubekki
  2018-08-02 20:16                   ` Clément Lassieur
  0 siblings, 1 reply; 32+ messages in thread
From: Amirouche Boubekki @ 2018-08-02 19:21 UTC (permalink / raw)
  To: Gábor Boskovits
  Cc: guix-devel, Clément Lassieur, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 1159 bytes --]

Le jeu. 2 août 2018 à 20:49, Gábor Boskovits <boskovits@gmail.com> a écrit :

> Clément Lassieur <clement@lassieur.org> ezt írta (időpont: 2018. aug. 2.,
> Cs, 18:49):
>
>> Hi Gábor,
>>
>> Gábor Boskovits <boskovits@gmail.com> writes:
>>
>> > Also most of the time the results differing from the results in the
>> > previous evaluations are the most interesting.
>> > Can we get this kind of information somehow?
>>
>> About that, I am preparing a commit that would get Cuirass to stop
>> building all derivations, but only the ones that don't exist yet.
>> That's https://bugs.gnu.org/32190.  For example, Cuirass wouldn't build
>> anything when there is a new commit that just updates the documentation,
>> and the green red and grey buttons would show 0, 0, 0.  Is that what you
>> meant?
>>
>> > Not exactly. What I would be interested is to get a list of packages
> that
> > previous succeeded, and now they fail, and also a list of packages that
> were
> > failing, but now build.
>
>
>> Clément
>>
>
You do link the diff of each commit with the files that were impacted by
the change and must be re-evaluated?

[-- Attachment #2: Type: text/html, Size: 1997 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02 19:21                 ` Amirouche Boubekki
@ 2018-08-02 20:16                   ` Clément Lassieur
  0 siblings, 0 replies; 32+ messages in thread
From: Clément Lassieur @ 2018-08-02 20:16 UTC (permalink / raw)
  To: Amirouche Boubekki; +Cc: guix-devel, Tatiana Sholokhova

Amirouche Boubekki <amirouche.boubekki@gmail.com> writes:

> You do link the diff of each commit with the files that were impacted by
> the change and must be re-evaluated?

You mean on the web interface?  We can actually see the commit that
triggered a new evaluation, and displaying the diff could be a nice
improvement!

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-02 18:13         ` Amirouche Boubekki
@ 2018-08-02 20:17           ` Clément Lassieur
  0 siblings, 0 replies; 32+ messages in thread
From: Clément Lassieur @ 2018-08-02 20:17 UTC (permalink / raw)
  To: Amirouche Boubekki; +Cc: guix-devel, Tatiana Sholokhova

Amirouche Boubekki <amirouche.boubekki@gmail.com> writes:

> I read some of the code, I like it :)

Thank you four that review Amirouche!  I'll have a look when I find the
time, and reply your questions if I can, but in the meantime, don't
hesitate to send patches. :-)

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-01 19:47       ` Tatiana Sholokhova
  2018-08-02  6:53         ` Clément Lassieur
  2018-08-02 18:13         ` Amirouche Boubekki
@ 2018-08-03 13:53         ` Ricardo Wurmus
  2018-08-04 21:53           ` Tatiana Sholokhova
  2 siblings, 1 reply; 32+ messages in thread
From: Ricardo Wurmus @ 2018-08-03 13:53 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel, Clément Lassieur


Hi Tatiana,

> Now I would like to add some more features to the interface to enhance it
> further. Am I right that now I should again organize my changes as a new
> separate branch?

You are welcome to use a new branch that is based on the current
“master” branch.  While it is not necessary to have a remote branch (as
Clément wrote before), I think it might be useful for GSoC, as they
require posting a link to your final work.

Could you please let us know what you plan to work on during the final
weeks?  I’m very excited about getting to play with the features you
will be adding.

--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-03 13:53         ` Ricardo Wurmus
@ 2018-08-04 21:53           ` Tatiana Sholokhova
  2018-08-04 22:03             ` Ricardo Wurmus
  0 siblings, 1 reply; 32+ messages in thread
From: Tatiana Sholokhova @ 2018-08-04 21:53 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Clément Lassieur

[-- Attachment #1: Type: text/plain, Size: 1952 bytes --]

Hi Ricardo,

The next features I am thinking of are

   - make red, green and grey links on the evaluations page actually
   working and usable for filtering builds of the evaluation with a given
   status;
   - add some navigation tools to improve usability, especially for the
   case when a user wants to go back to the previous level of the interface
   (e.g. from evaluation page to specifications list);
   - add a page with some basic info about a build, containing a link to
   the corresponding build log;

I am going to make a new branch and push these changes in a few days, so
you could try them.

I have a question regarding the link for the final GSOC evaluation.
According to the GSOC requirements
<https://developers.google.com/open-source/gsoc/help/work-product#requirement>,
from the provided URL it should demonstrate the result of the project. I
suppose that it would be nice to include the example of the working
interface running on https://berlin.guixsd.org/ to the final document which
I will prepare for the evaluation (and which also will contain a link to
the list of changes made to the codebase). Would it be appropriate to do
so?

Best regards,
Tatiana

пт, 3 авг. 2018 г. в 15:53, Ricardo Wurmus <rekado@elephly.net>:

>
> Hi Tatiana,
>
> > Now I would like to add some more features to the interface to enhance it
> > further. Am I right that now I should again organize my changes as a new
> > separate branch?
>
> You are welcome to use a new branch that is based on the current
> “master” branch.  While it is not necessary to have a remote branch (as
> Clément wrote before), I think it might be useful for GSoC, as they
> require posting a link to your final work.
>
> Could you please let us know what you plan to work on during the final
> weeks?  I’m very excited about getting to play with the features you
> will be adding.
>
> --
> Ricardo
>
>

[-- Attachment #2: Type: text/html, Size: 2416 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-04 21:53           ` Tatiana Sholokhova
@ 2018-08-04 22:03             ` Ricardo Wurmus
  2018-08-07 21:33               ` Tatiana Sholokhova
  0 siblings, 1 reply; 32+ messages in thread
From: Ricardo Wurmus @ 2018-08-04 22:03 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel, Clément Lassieur


Hi Tatiana,

> The next features I am thinking of are
>
>    - make red, green and grey links on the evaluations page actually
>    working and usable for filtering builds of the evaluation with a given
>    status;
>    - add some navigation tools to improve usability, especially for the
>    case when a user wants to go back to the previous level of the interface
>    (e.g. from evaluation page to specifications list);
>    - add a page with some basic info about a build, containing a link to
>    the corresponding build log;

This all sounds very good and manageable.  I think this also matches
some of the open items that Gábor identified earlier.

> I am going to make a new branch and push these changes in a few days, so
> you could try them.

Excellent!

> I have a question regarding the link for the final GSOC evaluation.
> According to the GSOC requirements
> <https://developers.google.com/open-source/gsoc/help/work-product#requirement>,
> from the provided URL it should demonstrate the result of the project. I
> suppose that it would be nice to include the example of the working
> interface running on https://berlin.guixsd.org/ to the final document which
> I will prepare for the evaluation (and which also will contain a link to
> the list of changes made to the codebase). Would it be appropriate to do
> so?

Yes, this would be fine, but note that the document should really stand
on its own.  Whatever is shown on https://berlin.guixsd.org/ will change
over time.  You can add a link to it as an example, but make sure that
your “work product” page would not feel incomplete without it.
(E.g. take screenshots if you want to show specific features instead of
linking to pages on https://berlin.guixsd.org/)

If you want to we could also aim to publish this as a blog post on the
Guix website, but that’s really up to you.  The Guix blog is a good way
to make your work known in the community and to people who are following
the project.

--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-04 22:03             ` Ricardo Wurmus
@ 2018-08-07 21:33               ` Tatiana Sholokhova
  2018-08-09  9:17                 ` Clément Lassieur
                                   ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Tatiana Sholokhova @ 2018-08-07 21:33 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Clément Lassieur

[-- Attachment #1: Type: text/plain, Size: 3268 bytes --]

Hi Ricardo,

I pushed commits implementing the features we discussed before. Could you
please take a look at them? I have reconsidered the idea of having a
separate page with build information, as I do not see what additional
information we can display on this page except the link to the log file.
So, for now I have added a link to the log file in the newly added column
of the table with information about builds of an evaluation. What do you
think about this?

I thought about writing the summary of and sending it to the mailing list,
but now I think that a blog post would be more convenient for a reader.
What is the source format for guix blog markdown and is where something
special I need to know about preparing the blog post? Also, I would like to
create a draft version of the final document and share it with you in order
to discuss it before publishing. What do you think is the best way to
maintain this draft? I would suggest google doc, but it may be not
compatible with the blog post format.

Best regards,
Tatiana

On Sun, 5 Aug 2018 at 00:03, Ricardo Wurmus <rekado@elephly.net> wrote:

>
> Hi Tatiana,
>
> > The next features I am thinking of are
> >
> >    - make red, green and grey links on the evaluations page actually
> >    working and usable for filtering builds of the evaluation with a given
> >    status;
> >    - add some navigation tools to improve usability, especially for the
> >    case when a user wants to go back to the previous level of the
> interface
> >    (e.g. from evaluation page to specifications list);
> >    - add a page with some basic info about a build, containing a link to
> >    the corresponding build log;
>
> This all sounds very good and manageable.  I think this also matches
> some of the open items that Gábor identified earlier.
>
> > I am going to make a new branch and push these changes in a few days, so
> > you could try them.
>
> Excellent!
>
> > I have a question regarding the link for the final GSOC evaluation.
> > According to the GSOC requirements
> > <
> https://developers.google.com/open-source/gsoc/help/work-product#requirement
> >,
> > from the provided URL it should demonstrate the result of the project. I
> > suppose that it would be nice to include the example of the working
> > interface running on https://berlin.guixsd.org/ to the final document
> which
> > I will prepare for the evaluation (and which also will contain a link to
> > the list of changes made to the codebase). Would it be appropriate to do
> > so?
>
> Yes, this would be fine, but note that the document should really stand
> on its own.  Whatever is shown on https://berlin.guixsd.org/ will change
> over time.  You can add a link to it as an example, but make sure that
> your “work product” page would not feel incomplete without it.
> (E.g. take screenshots if you want to show specific features instead of
> linking to pages on https://berlin.guixsd.org/)
>
> If you want to we could also aim to publish this as a blog post on the
> Guix website, but that’s really up to you.  The Guix blog is a good way
> to make your work known in the community and to people who are following
> the project.
>
> --
> Ricardo
>
>

[-- Attachment #2: Type: text/html, Size: 4031 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-07 21:33               ` Tatiana Sholokhova
@ 2018-08-09  9:17                 ` Clément Lassieur
  2018-08-09 19:59                 ` amirouche
  2018-08-09 20:46                 ` Ricardo Wurmus
  2 siblings, 0 replies; 32+ messages in thread
From: Clément Lassieur @ 2018-08-09  9:17 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel

Hello Tatiana,

Tatiana Sholokhova <tanja201396@gmail.com> writes:

> I pushed commits implementing the features we discussed before. Could you
> please take a look at them? I have reconsidered the idea of having a
> separate page with build information, as I do not see what additional
> information we can display on this page except the link to the log file.
> So, for now I have added a link to the log file in the newly added column
> of the table with information about builds of an evaluation. What do you
> think about this?

Thank you!  I'll review these patches today or tomorrow.

Another idea would be to implement a 'search' feature that would allow
to search by job name.  Clicking on the job name would take us to a page
that would display all the builds for that job name.  Also, in the
Builds view, the job names could be clickable too.

WDYT?
Clément

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-07 21:33               ` Tatiana Sholokhova
  2018-08-09  9:17                 ` Clément Lassieur
@ 2018-08-09 19:59                 ` amirouche
  2018-08-09 20:46                 ` Ricardo Wurmus
  2 siblings, 0 replies; 32+ messages in thread
From: amirouche @ 2018-08-09 19:59 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel, Clément Lassieur

[-- Attachment #1: Type: text/plain, Size: 906 bytes --]


On Tuesday, August 07, 2018 23:33 CEST, Tatiana Sholokhova <tanja201396@gmail.com> wrote:
 
I thought about writing the summary of and sending it to the mailing list, but now I think that a blog post would be more convenient for a reader. What is the source format for guix blog markdown and is where something special I need to know about preparing the blog post? Also, I would like to create a draft version of the final document and share it with you in order to discuss it before publishing.$ git clone git://git.savannah.gnu.org/guix/guix-artwork.git guix/artwork
$ cd guix/artwork/website/
$ guix package -i git glibc-locales gnutls guile guile-json guile-syntax-highlight guix haunt

Then

$ GUIX_WEB_SITE_LOCAL=yes haunt build
$ haunt serve

The blog post are sxml or markdown inside posts/ directory inside website/.

Send a patch with your blog post using: git format-patch -p1.

[-- Attachment #2: Type: text/html, Size: 1117 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-07 21:33               ` Tatiana Sholokhova
  2018-08-09  9:17                 ` Clément Lassieur
  2018-08-09 19:59                 ` amirouche
@ 2018-08-09 20:46                 ` Ricardo Wurmus
  2018-08-10  5:01                   ` Gábor Boskovits
  2 siblings, 1 reply; 32+ messages in thread
From: Ricardo Wurmus @ 2018-08-09 20:46 UTC (permalink / raw)
  To: Tatiana Sholokhova; +Cc: guix-devel, Clément Lassieur


Hi Tatiana,

> I pushed commits implementing the features we discussed before. Could you
> please take a look at them?

I’ll leave the review to Clément who volunteered to take a look at your
commits soon.  (He’s more familiar with Cuirass than I am.)

> I have reconsidered the idea of having a
> separate page with build information, as I do not see what additional
> information we can display on this page except the link to the log file.
> So, for now I have added a link to the log file in the newly added column
> of the table with information about builds of an evaluation. What do you
> think about this?

I think that’s fine for now.

I’d like to show more information in the future, such as build time, git
change that triggered the build, links to packages that depend on this
build (and packages that affect this build in case of a propagated
failure), etc.

> I thought about writing the summary of and sending it to the mailing list,
> but now I think that a blog post would be more convenient for a reader.
> What is the source format for guix blog markdown and is where something
> special I need to know about preparing the blog post?

You don’t need to know anything about the blog to prepare the post.  The
format is markdown.  Amirouche sent instructions on how to build the
website (including the blog), but you don’t need to play with this if
you don’t want to.  It would be sufficient to send the blog post draft
to Clément, Ludovic, and myself via email.  (Please don’t use Google
Docs.)  We would comment inline if any changes are needed.

Once approved I would publish it on your behalf.

Does this sound okay?

--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-09 20:46                 ` Ricardo Wurmus
@ 2018-08-10  5:01                   ` Gábor Boskovits
  2018-08-10  9:10                     ` Clément Lassieur
  0 siblings, 1 reply; 32+ messages in thread
From: Gábor Boskovits @ 2018-08-10  5:01 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: Guix-devel, Clément Lassieur, Tatiana Sholokhova

[-- Attachment #1: Type: text/plain, Size: 2001 bytes --]

Ricardo Wurmus <rekado@elephly.net> ezt írta (időpont: 2018. aug. 9., Cs,
22:46):

>
> Hi Tatiana,
>
> > I pushed commits implementing the features we discussed before. Could you
> > please take a look at them?
>
> I’ll leave the review to Clément who volunteered to take a look at your
> commits soon.  (He’s more familiar with Cuirass than I am.)
>
> > I have reconsidered the idea of having a
> > separate page with build information, as I do not see what additional
> > information we can display on this page except the link to the log file.
> > So, for now I have added a link to the log file in the newly added column
> > of the table with information about builds of an evaluation. What do you
> > think about this?
>
> I think that’s fine for now.
>
> I’d like to show more information in the future, such as build time, git
> change that triggered the build, links to packages that depend on this
> build (and packages that affect this build in case of a propagated
> failure), etc.
>
>
Here we could also find a place for things like previous builds, last
successful build, last failing build later.


> > I thought about writing the summary of and sending it to the mailing
> list,
> > but now I think that a blog post would be more convenient for a reader.
> > What is the source format for guix blog markdown and is where something
> > special I need to know about preparing the blog post?
>
> You don’t need to know anything about the blog to prepare the post.  The
> format is markdown.  Amirouche sent instructions on how to build the
> website (including the blog), but you don’t need to play with this if
> you don’t want to.  It would be sufficient to send the blog post draft
> to Clément, Ludovic, and myself via email.  (Please don’t use Google
> Docs.)  We would comment inline if any changes are needed.
>
> Once approved I would publish it on your behalf.
>
> Does this sound okay?
>
> --
> Ricardo
>
>

[-- Attachment #2: Type: text/html, Size: 2512 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-10  5:01                   ` Gábor Boskovits
@ 2018-08-10  9:10                     ` Clément Lassieur
  2018-08-11 16:38                       ` Ricardo Wurmus
  0 siblings, 1 reply; 32+ messages in thread
From: Clément Lassieur @ 2018-08-10  9:10 UTC (permalink / raw)
  To: Gábor Boskovits, Ricardo Wurmus; +Cc: Guix-devel, Tatiana Sholokhova

Hello!

Gábor Boskovits <boskovits@gmail.com> writes:

>> > I have reconsidered the idea of having a
>> > separate page with build information, as I do not see what additional
>> > information we can display on this page except the link to the log file.
>> > So, for now I have added a link to the log file in the newly added column
>> > of the table with information about builds of an evaluation. What do you
>> > think about this?
>>
>> I think that’s fine for now.
>>
>> I’d like to show more information in the future, such as build time, git
>> change that triggered the build, links to packages that depend on this
>> build (and packages that affect this build in case of a propagated
>> failure), etc.

Note that there is no notion of 'package' in Cuirass.  Most of the
things you said would work with 'derivations' though.  But to add a link
to the package, we would need a way to find out if a derivation refers
to a package.  I don't know how to do this.

> Here we could also find a place for things like previous builds, last
> successful build, last failing build later.

The 'job name' page I was talking about[1] is what you want, isn't it?

Clément

[1]: https://lists.gnu.org/archive/html/guix-devel/2018-08/msg00039.html

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: Web interface pushed
  2018-08-10  9:10                     ` Clément Lassieur
@ 2018-08-11 16:38                       ` Ricardo Wurmus
  0 siblings, 0 replies; 32+ messages in thread
From: Ricardo Wurmus @ 2018-08-11 16:38 UTC (permalink / raw)
  To: Clément Lassieur; +Cc: Guix-devel, Tatiana Sholokhova


Clément Lassieur <clement@lassieur.org> writes:

>>> I’d like to show more information in the future, such as build time, git
>>> change that triggered the build, links to packages that depend on this
>>> build (and packages that affect this build in case of a propagated
>>> failure), etc.
>
> Note that there is no notion of 'package' in Cuirass.  Most of the
> things you said would work with 'derivations' though.  But to add a link
> to the package, we would need a way to find out if a derivation refers
> to a package.  I don't know how to do this.

Yeah, I used “package” as a shorthand for “derivation for a package”.
Links to related derivations would be enough.

We may want to consider taking a closer look at the format for
derivations and think about whether it would make sense to extend it, so
that it is easier to understand the derivation’s context.

>> Here we could also find a place for things like previous builds, last
>> successful build, last failing build later.
>
> The 'job name' page I was talking about[1] is what you want, isn't it?
>
> Clément
>
> [1]:
> https://lists.gnu.org/archive/html/guix-devel/2018-08/msg00039.html

Yes, that’s what I’d like.


--
Ricardo

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2018-08-13 12:26 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-29 22:08 Web interface pushed Clément Lassieur
2018-07-29 23:46 ` Ludovic Courtès
2018-07-30 12:45   ` Pjotr Prins
2018-07-30 13:26     ` Ricardo Wurmus
2018-08-01 19:47       ` Tatiana Sholokhova
2018-08-02  6:53         ` Clément Lassieur
2018-08-02 16:00           ` Gábor Boskovits
2018-08-02 16:49             ` Clément Lassieur
2018-08-02 18:48               ` Gábor Boskovits
2018-08-02 19:21                 ` Amirouche Boubekki
2018-08-02 20:16                   ` Clément Lassieur
2018-08-02 18:13         ` Amirouche Boubekki
2018-08-02 20:17           ` Clément Lassieur
2018-08-03 13:53         ` Ricardo Wurmus
2018-08-04 21:53           ` Tatiana Sholokhova
2018-08-04 22:03             ` Ricardo Wurmus
2018-08-07 21:33               ` Tatiana Sholokhova
2018-08-09  9:17                 ` Clément Lassieur
2018-08-09 19:59                 ` amirouche
2018-08-09 20:46                 ` Ricardo Wurmus
2018-08-10  5:01                   ` Gábor Boskovits
2018-08-10  9:10                     ` Clément Lassieur
2018-08-11 16:38                       ` Ricardo Wurmus
2018-07-30  7:38 ` amirouche
2018-07-30  9:11   ` Clément Lassieur
2018-07-30  9:23     ` Alex Sassmannshausen
2018-07-30  9:41       ` Nils Gillmann
2018-07-30 12:08     ` Ricardo Wurmus
2018-07-30 12:14       ` Gábor Boskovits
2018-07-30 14:10     ` Hartmut Goebel
2018-07-30 16:02       ` Clément Lassieur
2018-07-30 18:43         ` Amirouche Boubekki

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.