* Re: 01/01: hydra: services: Fix Cuirass configuration. [not found] ` <20180720182935.45B8E204A2@vcs0.savannah.gnu.org> @ 2018-07-20 21:22 ` Ludovic Courtès 2018-07-20 23:07 ` Clément Lassieur 0 siblings, 1 reply; 3+ messages in thread From: Ludovic Courtès @ 2018-07-20 21:22 UTC (permalink / raw) To: Clément Lassieur; +Cc: guix-devel, guix-sysadmin Howdy Clément, clement@lassieur.org (ClXment Lassieur) skribis: > commit 641b9750c30cd8275765aaa6457aea961224f928 > Author: Clément Lassieur <clement@lassieur.org> > Date: Fri Jul 20 20:10:28 2018 +0200 > > hydra: services: Fix Cuirass configuration. > > * hydra/modules/sysadmin/services.scm (guix-input): Take a NAME argument. > (cuirass-specs): Use the correct input names. Rename '#:proc-arguments' to > '#:proc-args'. Add specifications for the "staging" and "core-updates" > branches. Add missing '#:load-path-inputs' and '#:package-path-inputs' > fields. > --- > hydra/modules/sysadmin/services.scm | 35 ++++++++++++++++++++++++++--------- Thanks a lot for fixing it! Cuirass is back up and running now on berlin. One question: could we have a single “guix” input corresponding to https://git…/guix.git for the master branch? I suppose that should work in theory? Anyway the database migration went smoothly and the new schema looks much better. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 01/01: hydra: services: Fix Cuirass configuration. 2018-07-20 21:22 ` 01/01: hydra: services: Fix Cuirass configuration Ludovic Courtès @ 2018-07-20 23:07 ` Clément Lassieur 2018-07-23 12:58 ` Ludovic Courtès 0 siblings, 1 reply; 3+ messages in thread From: Clément Lassieur @ 2018-07-20 23:07 UTC (permalink / raw) To: Ludovic Courtès; +Cc: guix-devel, guix-sysadmin Heya :-) Ludovic Courtès <ludo@gnu.org> writes: > Thanks a lot for fixing it! Cuirass is back up and running now on > berlin. Yay! One note though: Cuirass reads the config once, and only adds the specifications whose name isn't already in the database. So it would have worked if you had used '() as a specification list, because the database was in a consistent state (thanks to the upgrade). The four specifications I added are totally useless, except for their names, and the fact that they describe the database. What I mean is that if you change them it won't have any effect. But if you change their name, Cuirass will think they are new and try to add them to the database. This behaviour is terrible, because it means the configuration is non deterministic. It would be great to add a mechanism that detects specification changes, and updates the database accordingly. But I'm not sure it's feasible. Another solution would be to edit the database through a web interface, à la hydra :-), but that would require a lot of work. > One question: could we have a single “guix” input corresponding to > https://git…/guix.git for the master branch? I suppose that should work > in theory? The inputs can all be named "guix", if that's what you mean. Actually, they can all be named the way you want, except the 'guix-modular' ones that can only be named "guix" or "guix-modular"[1]. I think we should add an ad-hoc 'key' field to avoid that restriction. That 'key' field would be the key used by the evaluator to access the 'guix-checkout'. As for allowing the same input to be used by several specifications (that is, a N - N relationship between the Inputs and the Specifications tables), it is possible, but it would require deep changes: each input would need to have a associated stamp in the database, and when the input changes, the evaluation of all its specs would need to be triggered. It would be more efficient though, because it would reduce the number of 'git pull'. I chose to implement a N - 1 relationship between Inputs and Specifications because that's how Hydra does, it requires less code changes, and in most cases several specifications won't use the exact same inputs. But we can definitely improve it if you think it's worth it! > Anyway the database migration went smoothly and the new schema looks > much better. Thank you! HTH! Clément [1]: https://git.savannah.gnu.org/cgit/guix.git/tree/build-aux/hydra/guix-modular.scm#n66 ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 01/01: hydra: services: Fix Cuirass configuration. 2018-07-20 23:07 ` Clément Lassieur @ 2018-07-23 12:58 ` Ludovic Courtès 0 siblings, 0 replies; 3+ messages in thread From: Ludovic Courtès @ 2018-07-23 12:58 UTC (permalink / raw) To: Clément Lassieur; +Cc: guix-devel, guix-sysadmin Hey! Clément Lassieur <clement@lassieur.org> skribis: > Ludovic Courtès <ludo@gnu.org> writes: > >> Thanks a lot for fixing it! Cuirass is back up and running now on >> berlin. > > Yay! > > One note though: Cuirass reads the config once, and only adds the > specifications whose name isn't already in the database. So it would > have worked if you had used '() as a specification list, because the > database was in a consistent state (thanks to the upgrade). > > The four specifications I added are totally useless, except for their > names, and the fact that they describe the database. What I mean is > that if you change them it won't have any effect. But if you change > their name, Cuirass will think they are new and try to add them to the > database. Yeah I know, terrible. > This behaviour is terrible, because it means the configuration is non > deterministic. It would be great to add a mechanism that detects > specification changes, and updates the database accordingly. But I'm > not sure it's feasible. Another solution would be to edit the database > through a web interface, à la hydra :-), but that would require a lot of > work. In practice I have to admit that I add, remove, or modify specs through the sqlite3 command line, and that’s okayish (did you know that SQL was initially designed to be *the* user interface to the database? :-)). Another approach would be to have part of our database available in Git instead of in an actual database. So Cuirass would pull its specs from a Git repo and that’s it. That’s less work than writing an HTTP interface, and that’s more flexible/convenient. >> One question: could we have a single “guix” input corresponding to >> https://git…/guix.git for the master branch? I suppose that should work >> in theory? > > The inputs can all be named "guix", if that's what you mean. Actually, > they can all be named the way you want, except the 'guix-modular' ones > that can only be named "guix" or "guix-modular"[1]. I think we should > add an ad-hoc 'key' field to avoid that restriction. That 'key' field > would be the key used by the evaluator to access the 'guix-checkout'. > > As for allowing the same input to be used by several specifications > (that is, a N - N relationship between the Inputs and the Specifications > tables), it is possible, but it would require deep changes: each input > would need to have a associated stamp in the database, and when the > input changes, the evaluation of all its specs would need to be > triggered. It would be more efficient though, because it would reduce > the number of 'git pull'. > > I chose to implement a N - 1 relationship between Inputs and > Specifications because that's how Hydra does, it requires less code > changes, and in most cases several specifications won't use the exact > same inputs. But we can definitely improve it if you think it's worth > it! OK. Well that’s good enough for now! Thanks for explaining! Ludo’. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-07-23 12:58 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20180720182934.2138.94704@vcs0.savannah.gnu.org> [not found] ` <20180720182935.45B8E204A2@vcs0.savannah.gnu.org> 2018-07-20 21:22 ` 01/01: hydra: services: Fix Cuirass configuration Ludovic Courtès 2018-07-20 23:07 ` Clément Lassieur 2018-07-23 12:58 ` 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.