* Notes from discussion on Quality Assurance from the 10 Years of Guix event @ 2022-09-18 15:55 Christopher Baines 2022-10-05 14:01 ` Tanguy LE CARROUR 0 siblings, 1 reply; 13+ messages in thread From: Christopher Baines @ 2022-09-18 15:55 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 2199 bytes --] Here are some notes I took during the discussion on patch review/quality assurance at the 10 Years of Guix event. Discussion: - Find out how others review patches - Julian - Subscribe to guix-patches - Look at subjects - If not OCaml/Java/Maven, ignore email - If obvious issues can be seen, reply suggesting improvements - Run guix lint/build dependents - There are language/area specific things that are good to know about when reviewing patches - How the process works - How we can improve quality of Guix, avoid breakages - How we can simplify the workflow for reviewers - Minimise the burden for submitters - Lengthy guidance for submitting patches - Changelog format - Sending patches by email (git send-email) - guix lint archive error - Delay in feedback for first time submitters - Problems - Already broken packages when applying updates - How to help? - Motivation to do more - Debian: How can I help tool? - Learn how to review more patches - Doing useful things with little time Actions: - teams thing for finding out about patches, automate this somehow - generate a web page listing the people and teams - Filtered subscription to patches by team - Improve the qa.guix.gnu.org site - look at moving Mumi, QA Frontpage, ... on to Savannah - List infrastructure projects on a web page - More detailed guidance on the review process - Guidance for reviewers, e.g. don't ask for patch submitters to fix other problems - Split the guidance for submitting patches in to sections (bronze, silver, gold) - Give specific guidance for different tasks, so don't run lint if you're upgrading a package - Have some "trusted reviewer" status - Arrange focused time per month/week when people try to review patches - How should reviewers get patches merged when they don't have commit access? - Maybe script making contributions like updating packages - Make a similar tool to Debian's how can I help - Try to avoid suggesting updating packages with lots of dependencies - work out what is getting in the way of patches getting to the mailing list/debbugs - Put a warning about delays [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 987 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-09-18 15:55 Notes from discussion on Quality Assurance from the 10 Years of Guix event Christopher Baines @ 2022-10-05 14:01 ` Tanguy LE CARROUR 2022-10-05 16:51 ` Christopher Baines 2022-10-18 16:19 ` Tanguy LE CARROUR 0 siblings, 2 replies; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-05 14:01 UTC (permalink / raw) To: Christopher Baines, guix-devel Hi Chris, Quoting Christopher Baines (2022-09-18 17:55:30) > Here are some notes I took during the discussion on patch review/quality > assurance at the 10 Years of Guix event. Thanks for the notes! After months not contributing, today, I've started contributing patches again! Seems like I've forgotten everything, so I can give you a fresh look at the process… > - Minimise the burden for submitters > - Lengthy guidance for submitting patches Actually, the `16.4 Packaging Guidelines` and `16.6 Submitting Patches` are everything that I've ever looked for. The only problem is `16.5.4 Formatting Code` that makes use of `./etc/indent-code.el` that was removed back in January. > - Changelog format "format" and "content". I've heard about a magic trick in Emacs, but as a user of "the other editor", I have to write everything manually. I guess one could write a command that would detect what has changed and write the changelog. This could also be used on the reviewer/qa side to check if the patch actually does what it says it does. > - Sending patches by email (git send-email) This one is an easy one!… at least, as long a you only have 1 patch. For a patch set, one has to generate a cover letter, send it, wait for a bug id to be assigned then send the rest of the patch set. Looks trivial, but (too) many times I ended up creating multiple bug reports for the same patch set. And the fear of messing up the bug report system was something that discouraged me at the beginning. I still do some mistake from time to time, but… I do not care any more, because I now know how to fix them. > - Delay in feedback for first time submitters It doesn't actually have to be a human feedback. But being able to know that everything went well (or not) and what's the status of a patch is would be great. > - Learn how to review more patches Also learn how to review your first patch! Being able to push a "+1" button in the QA interface might be useful? For the time being, I don't know what feedback from me could be useful for a commiter and how to provide it. > - Doing useful things with little time Go through the list of "Update to X.Y.Z." patches, have a quick glance and push the "+1" button? > Actions: > - teams thing for finding out about patches, automate this somehow > - generate a web page listing the people and teams > - Filtered subscription to patches by team What the status on this? Where can I learn more about how teams work? > - Maybe script making contributions like updating packages > - Make a similar tool to Debian's how can I help > - Try to avoid suggesting updating packages with lots of dependencies `guix how-can-i-help` would be amazing! Something that would: - list all the packages in my current profile that can be updated, sorted by number of dependent packages; and - list all the packages in my profile that are currently broken. Actually, for the second point, I guess I'll figure out when upgrading my profile. Or maybe `guix weather` can help!? I guess I'll have to dive more into QA, Data Service, Weather to be of any help. But if you see anything that requires zero-knowledge just let me know! 😁 Regards, -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-05 14:01 ` Tanguy LE CARROUR @ 2022-10-05 16:51 ` Christopher Baines 2022-10-09 15:58 ` Tanguy LE CARROUR 2022-10-18 16:19 ` Tanguy LE CARROUR 1 sibling, 1 reply; 13+ messages in thread From: Christopher Baines @ 2022-10-05 16:51 UTC (permalink / raw) To: Tanguy LE CARROUR; +Cc: guix-devel [-- Attachment #1: Type: text/plain, Size: 4493 bytes --] Tanguy LE CARROUR <tanguy@bioneland.org> writes: >> - Minimise the burden for submitters >> - Lengthy guidance for submitting patches > > Actually, the `16.4 Packaging Guidelines` and `16.6 Submitting Patches` > are everything that I've ever looked for. I think the point here is that the Submitting Patches section is quite long. > The only problem is `16.5.4 Formatting Code` that makes use of `./etc/indent-code.el` > that was removed back in January. The latest version of the manual suggests using guix style, so this is maybe a problem limited to old versions of the manual? >> - Changelog format > > "format" and "content". > > I've heard about a magic trick in Emacs, but as a user of "the other editor", > I have to write everything manually. > > I guess one could write a command that would detect what has changed and > write the changelog. This could also be used on the reviewer/qa side to > check if the patch actually does what it says it does. I think there's room for improvement here in terms of telling people not to worry about it too much, plus providing more guidance on the format and common examples. There's also tooling like the etc/committer.scm script which I don't know anything about really, but it seems to handle writing this message in some cases. >> - Sending patches by email (git send-email) > > This one is an easy one!… at least, as long a you only have 1 patch. > For a patch set, one has to generate a cover letter, send it, wait for > a bug id to be assigned then send the rest of the patch set. > Looks trivial, but (too) many times I ended up creating multiple bug > reports for the same patch set. And the fear of messing up the bug report system > was something that discouraged me at the beginning. I still do some > mistake from time to time, but… I do not care any more, because I now > know how to fix them. Indeed, this is still an issue. >> - Delay in feedback for first time submitters > > It doesn't actually have to be a human feedback. But being able to know > that everything went well (or not) and what's the status of a patch is > would be great. Yep, and I think we are getting close to being able to do that. >> - Learn how to review more patches > > Also learn how to review your first patch! Being able to push a "+1" > button in the QA interface might be useful? > For the time being, I don't know what feedback from me could be useful > for a commiter and how to provide it. Yep, I think Arun had some useful ideas on this back in February [1]. Particuarly including a checklist somewhere (issues.guix.gnu.org or maybe qa.guix.gnu.org). 1: https://guix.gnu.org/en/blog/2022/online-guix-days-2022-announcement-2/ >> Actions: >> - teams thing for finding out about patches, automate this somehow >> - generate a web page listing the people and teams >> - Filtered subscription to patches by team > > What the status on this? Where can I learn more about how teams work? There's been a few messages to guix-devel. It's not something I know much about either. From my perspective, I'd like to be able to use this information in the qa-frontpage. I think the path to make that happen involves moving the work currently done through Laminar to create the branches for patch series in to the qa-frontpage, as that should make it easy to access the files changed in a patch series. >> - Maybe script making contributions like updating packages >> - Make a similar tool to Debian's how can I help >> - Try to avoid suggesting updating packages with lots of dependencies > > `guix how-can-i-help` would be amazing! Something that would: > - list all the packages in my current profile that can be updated, > sorted by number of dependent packages; and > - list all the packages in my profile that are currently broken. Indeed :) > Actually, for the second point, I guess I'll figure out when upgrading > my profile. Or maybe `guix weather` can help!? > > I guess I'll have to dive more into QA, Data Service, Weather to be of > any help. But if you see anything that requires zero-knowledge just let > me know! 😁 Please let me know if I can help with any of this. The QA frontpage in particular should have a bunch of easier things to do, and I've got a rough list of tasks I put together here [2]. 2: https://git.cbaines.net/guix/qa-frontpage/about/ Thanks, Chris [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 987 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-05 16:51 ` Christopher Baines @ 2022-10-09 15:58 ` Tanguy LE CARROUR 0 siblings, 0 replies; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-09 15:58 UTC (permalink / raw) To: Christopher Baines; +Cc: guix-devel Quoting Christopher Baines (2022-10-05 18:51:52) > Tanguy LE CARROUR <tanguy@bioneland.org> writes: > > >> - Minimise the burden for submitters > >> - Lengthy guidance for submitting patches > > > > Actually, the `16.4 Packaging Guidelines` and `16.6 Submitting Patches` > > are everything that I've ever looked for. > > I think the point here is that the Submitting Patches section is quite > long. You mean the 17 point list?! 😅 > > The only problem is `16.5.4 Formatting Code` that makes use of `./etc/indent-code.el` > > that was removed back in January. > > The latest version of the manual suggests using guix style, so this is > maybe a problem limited to old versions of the manual? I read it there: <https://guix.gnu.org/manual/en/html_node/Formatting-Code.html>: ```shell ./etc/indent-code.el gnu/packages/file.scm package ``` If the online manual is considered an old version, where should I look for the current documentation? Devel? It seems to be up to date there, indeed: <https://guix.gnu.org/en/manual/devel/en/guix.html#Formatting-Code> ```shell ./pre-inst-env guix style package ``` > >> - Changelog format > > > > "format" and "content". > > > > I've heard about a magic trick in Emacs, but as a user of "the other editor", > > I have to write everything manually. > > > > I guess one could write a command that would detect what has changed and > > write the changelog. This could also be used on the reviewer/qa side to > > check if the patch actually does what it says it does. > > I think there's room for improvement here in terms of telling people not > to worry about it too much, plus providing more guidance on the format > and common examples. > > There's also tooling like the etc/committer.scm script which I don't > know anything about really, but it seems to handle writing this message > in some cases. ```shell $ ./pre-inst-env guix refresh -u csvkit # […] gnu/packages/wireservice.scm:205:13: csvkit: updating from version 1.0.5 to version 1.0.7... # […] $ guile etc/committer.scm gnu: csvkit: Update to 1.0.7. * gnu/packages/wireservice.scm (csvkit): Update to 1.0.7. [master 715de68b73] gnu: csvkit: Update to 1.0.7. 1 file changed, 2 insertions(+), 2 deletions(-) ``` Mind=blown™ 🤯 Thanks!!! > >> - Learn how to review more patches > > > > Also learn how to review your first patch! Being able to push a "+1" > > button in the QA interface might be useful? > > For the time being, I don't know what feedback from me could be useful > > for a commiter and how to provide it. > > Yep, I think Arun had some useful ideas on this back in February > [1]. Particuarly including a checklist somewhere (issues.guix.gnu.org or > maybe qa.guix.gnu.org). > > 1: https://guix.gnu.org/en/blog/2022/online-guix-days-2022-announcement-2/ Added to my "to watch" list. > Please let me know if I can help with any of this. The QA frontpage in > particular should have a bunch of easier things to do, and I've got a > rough list of tasks I put together here [2]. > > 2: https://git.cbaines.net/guix/qa-frontpage/about/ First, I'll have to do my homework and read everything that's related to QA and DataService. I'll let you know as soon as I've found something useful to bring to the table. -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-05 14:01 ` Tanguy LE CARROUR 2022-10-05 16:51 ` Christopher Baines @ 2022-10-18 16:19 ` Tanguy LE CARROUR 2022-10-19 9:57 ` zimoun 2022-10-19 19:31 ` Efraim Flashner 1 sibling, 2 replies; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-18 16:19 UTC (permalink / raw) To: Christopher Baines; +Cc: guix-devel Hi Chris, Quoting Tanguy LE CARROUR (2022-10-05 16:01:40) > Quoting Christopher Baines (2022-09-18 17:55:30) > > […] > > - Maybe script making contributions like updating packages > > - Make a similar tool to Debian's how can I help > > - Try to avoid suggesting updating packages with lots of dependencies > > `guix how-can-i-help` would be amazing! Something that would: > - list all the packages in my current profile that can be updated, > sorted by number of dependent packages; and Just to let you know that, even if I haven't written `guix how-can-i-help` (yet), I've just written a `guix-refresh-all` that tells me: ```console $ guix-refresh-all gnu/packages/freedesktop.scm:2164:13: udiskie would be upgraded from 2.3.3 to 2.4.2 gnu/packages/wm.scm:1584:13: sway would be upgraded from 1.6.1 to 1.7 gnu/packages/wireservice.scm:205:13: csvkit would be upgraded from 1.0.5 to 1.0.7 gnu/packages/mail.scm:610:13: neomutt would be upgraded from 20211029 to 20220429 gnu/packages/mpd.scm:445:13: cantata would be upgraded from 2.4.2 to 2.5.0 gnu/packages/mail.scm:1326:13: notmuch would be upgraded from 0.36 to 0.37 gnu/packages/rust-apps.scm:190:13: bat would be upgraded from 0.20.0 to 0.22.1 gnu/packages/wm.scm:1704:13: swaybg would be upgraded from 1.0 to 1.1.1 gnu/packages/terminals.scm:1334:13: alacritty would be upgraded from 0.9.0 to 0.16.0 gnu/packages/gnupg.scm:830:2: pinentry-gtk2 would be upgraded from 1.2.0 to 1.2.1 gnu/packages/linux.scm:8793:13: wireplumber would be upgraded from 0.4.11 to 0.4.12 gnu/packages/libreoffice.scm:1059:13: libreoffice would be upgraded from 7.3.5.2 to 7.4.2.3 gnu/packages/mpd.scm:112:13: mpd would be upgraded from 0.23.8 to 0.23.10 gnu/packages/linphone.scm:801:13: linphone-desktop would be upgraded from 4.2.5 to 4.4.10 gnu/packages/messaging.scm:2171:13: profanity would be upgraded from 0.13.0 to 0.13.1 gnu/packages/gnome.scm:3060:13: libnotify would be upgraded from 0.7.9 to 0.8.1 gnu/packages/gnupg.scm:287:13: gnupg would be upgraded from 2.2.32 to 2.3.8 gnu/packages/rust-apps.scm:455:13: fd would be upgraded from 8.1.1 to 8.4.0 gnu/packages/curl.scm:66:12: curl would be upgraded from 7.79.1 to 7.85.0 gnu/packages/terminals.scm:929:13: go-github-com-junegunn-fzf would be upgraded from 0.25.0 to 0.34.0 gnu/packages/xorg.scm:1767:13: setxkbmap would be upgraded from 1.3.2 to 1.3.3 gnu/packages/file.scm:65:13: file would be upgraded from 5.41 to 5.43 gnu/packages/ncurses.scm:45:13: ncurses would be upgraded from 6.2.20210619 to 6.3 ``` So now, I know what I'll do tomorrow! 😅 This is no magic scheme, it's just an alias for: ```console $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning" ``` Yeah, I know… ugly! But, it does (part of) the job! 😎 Happy hacking! -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-18 16:19 ` Tanguy LE CARROUR @ 2022-10-19 9:57 ` zimoun 2022-10-23 15:40 ` Tanguy LE CARROUR 2022-10-23 21:33 ` kiasoc5 2022-10-19 19:31 ` Efraim Flashner 1 sibling, 2 replies; 13+ messages in thread From: zimoun @ 2022-10-19 9:57 UTC (permalink / raw) To: Tanguy LE CARROUR, Christopher Baines; +Cc: guix-devel Hi Tanguy, On Tue, 18 Oct 2022 at 18:19, Tanguy LE CARROUR <tanguy@bioneland.org> wrote: > ```console > $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning" > ``` > > Yeah, I know… ugly! But, it does (part of) the job! 😎 Well, if you are using a manifest file, you can directly pass it to ’guix refresh‘. Otherwise, guix package --export-manifest > /tmp/my-pkgs.scm guix refresh -m /tmp/my-pkgs.scm 2>&1 | ... And even, being in a checkout of Guix, guix refresh -m /tmp/my-pkgs.scm --update and then give a look at the script etc/committer.scm. Cheers, simon ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-19 9:57 ` zimoun @ 2022-10-23 15:40 ` Tanguy LE CARROUR 2022-10-24 7:34 ` zimoun 2022-10-23 21:33 ` kiasoc5 1 sibling, 1 reply; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-23 15:40 UTC (permalink / raw) To: Christopher Baines, zimoun; +Cc: guix-devel Hi Simon, Sorry it took me so long to answer, but I've been struggling for the past week with the upgrade of Poetry!! 😱 It requires updating `python-virtualenv` and `python-lockfile` and suddenly a **LOT** of packages needed to be rebuilt/updated. #dependencyHell! But that will definitively be the topic of a different thread… Quoting zimoun (2022-10-19 11:57:15) > On Tue, 18 Oct 2022 at 18:19, Tanguy LE CARROUR <tanguy@bioneland.org> wrote: > > > ```console > > $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning" > > ``` > > > > Yeah, I know… ugly! But, it does (part of) the job! 😎 > > Well, if you are using a manifest file, you can directly pass it to > ’guix refresh‘. Otherwise, > > guix package --export-manifest > /tmp/my-pkgs.scm > guix refresh -m /tmp/my-pkgs.scm 2>&1 | ... I'm not using manifest (anymore). I used to, but for the time being, I'm using `divenv` + `guix shell` and I'm quite happy with that setup. > And even, being in a checkout of Guix, > > guix refresh -m /tmp/my-pkgs.scm --update > > and then give a look at the script etc/committer.scm. That would create more patches than I could process I guess. I like the idea of cherry-picking from the "need to be updated" list. But `etc/committer.scm` is definitively a tool I was missing! Thanks! Regards, -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-23 15:40 ` Tanguy LE CARROUR @ 2022-10-24 7:34 ` zimoun 2022-10-24 11:43 ` Tanguy LE CARROUR 0 siblings, 1 reply; 13+ messages in thread From: zimoun @ 2022-10-24 7:34 UTC (permalink / raw) To: Tanguy LE CARROUR, Christopher Baines; +Cc: guix-devel Hi Tanguy, On dim., 23 oct. 2022 at 17:40, Tanguy LE CARROUR <tanguy@bioneland.org> wrote: >> guix package --export-manifest > /tmp/my-pkgs.scm >> guix refresh -m /tmp/my-pkgs.scm 2>&1 | ... > > I'm not using manifest (anymore). I used to, but for the time being, I'm using > `divenv` + `guix shell` and I'm quite happy with that setup. Note that the first command above creates the manifest for you. Usually, it works well enough. :-) Well, ’direnv’ + ’guix shell’ but you have a manifest, no? I mean how does ’guix shell’ know what to provide inside this new shell? For what it is worth, I have used similar workflow but I have been bored to run “guix pull”, do some stuff unrelated to ’project’, then later be back on ’project’ and then have failures. Instead, my workflow is splited into 2 ways depending on my phase of the Moon. Either, I create a profile inside the project directory. Either, I use channels.scm + manifest.scm and often run via ’guixify’ script (see below); e.g., guixify foo # run foo using the Guix environment guixify # enter in the environment Maybe, ’direnv’ would do a better job. The good point is that channels.scm and manifest.scm are included in the Git tree of the project. And they can be re-used with ’guix pack -f docker -m manifest.scm’ to generate Docker pack that I can share with colleagues. --8<---------------cut here---------------start------------->8--- #!/bin/sh guix time-machine -C channels.scm \ -- shell --pure \ -m manifest.scm \ -- $@ --8<---------------cut here---------------end--------------->8--- Cheers, simon ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-24 7:34 ` zimoun @ 2022-10-24 11:43 ` Tanguy LE CARROUR 0 siblings, 0 replies; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-24 11:43 UTC (permalink / raw) To: Christopher Baines, zimoun; +Cc: guix-devel Hi Simon, Quoting zimoun (2022-10-24 09:34:09) > On dim., 23 oct. 2022 at 17:40, Tanguy LE CARROUR <tanguy@bioneland.org> wrote: > > >> guix package --export-manifest > /tmp/my-pkgs.scm > >> guix refresh -m /tmp/my-pkgs.scm 2>&1 | ... > > > > I'm not using manifest (anymore). I used to, but for the time being, I'm using > > `divenv` + `guix shell` and I'm quite happy with that setup. > > Note that the first command above creates the manifest for you. > Usually, it works well enough. :-) I guess the "problem" is that I'm a "pipe person". I just don't like having to create a temp’ file. But I agree that your solution is more elegant. > Well, ’direnv’ + ’guix shell’ but you have a manifest, no? I mean how > does ’guix shell’ know what to provide inside this new shell? I used to have a `manifest.scm` file. I even used to (silly me!) commit it into the repository along side the project's code. I recently realized that it was easier to only have a git-ignored `.envrc` file containing: ``` use guix-shell python python-wrapper python-jedi poetry […] ``` The other project's dependencies are (still) managed by Poetry, so the list passed to Guix shell is quite short. Not that `guix-shell` is a custom function, for Direnv `guix` function still uses `guix environment`. But this would also work: ``` use guix --ad-hoc python python-wrapper python-jedi poetry […] ``` For some projects that are not dev project, I sometimes use a `manifest.scm`. I guess it also depends on the Moon phase. In those rare cases, my `.envrc` contains the following: ``` use guix-shell -m manifest.scm ``` Which can be abbreviated to `use guix-shell`, because it auto-magically loads the `manifest.scm` or `guix.scm` file present inside the folder. Regarding the `guix.scm` file, I recently decided to also move them out of the code repository of the (personal) projects I needed to package for Guix, because they don't actually belong with the code. They now live in a dedicated repository that I added to my Guix channels. > For what it is worth, I have used similar workflow but I have been bored > to run “guix pull”, do some stuff unrelated to ’project’, then later be > back on ’project’ and then have failures. Instead, my workflow is > splited into 2 ways depending on my phase of the Moon. Either, I create > a profile inside the project directory. Either, I use channels.scm + > manifest.scm and often run via ’guixify’ script (see below); e.g., > > guixify foo # run foo using the Guix environment > guixify # enter in the environment Thanks for sharing! I used to have the same kind of setup, but… > Maybe, ’direnv’ would do a better job. I wrote a `profile` function for Direnv that was doing the job of loading the environment. ``` use profile the-profile-for-my-project ``` I also had a `guix-all-profile` command that would executing the same command on all my profiles. Basically looping over them to `--upgrade` or `--delete-generations`. But I found it easier to use Guix shell. > The good point is that channels.scm and manifest.scm are included in the Git > tree of the project. And they can be re-used with ’guix pack -f docker -m > manifest.scm’ to generate Docker pack that I can share with colleagues. My colleagues use Debian. We agreed that I would not pollute the repo with my Guix files if they would not commit their Debian support files. 😅 Regards, -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-19 9:57 ` zimoun 2022-10-23 15:40 ` Tanguy LE CARROUR @ 2022-10-23 21:33 ` kiasoc5 1 sibling, 0 replies; 13+ messages in thread From: kiasoc5 @ 2022-10-23 21:33 UTC (permalink / raw) To: guix-devel On Wed, Oct 19 2022, 11:57:15 AM +0200 zimoun <zimon.toutoune@gmail.com> wrote: > and then give a look at the script etc/committer.scm. Didn't know this existed. This should definitely get a mention in the Guix manual. -- ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-18 16:19 ` Tanguy LE CARROUR 2022-10-19 9:57 ` zimoun @ 2022-10-19 19:31 ` Efraim Flashner 2022-10-23 15:48 ` Tanguy LE CARROUR 1 sibling, 1 reply; 13+ messages in thread From: Efraim Flashner @ 2022-10-19 19:31 UTC (permalink / raw) To: Tanguy LE CARROUR; +Cc: Christopher Baines, guix-devel [-- Attachment #1: Type: text/plain, Size: 3512 bytes --] On Tue, Oct 18, 2022 at 06:19:18PM +0200, Tanguy LE CARROUR wrote: > Hi Chris, > > Quoting Tanguy LE CARROUR (2022-10-05 16:01:40) > > Quoting Christopher Baines (2022-09-18 17:55:30) > > > […] > > > - Maybe script making contributions like updating packages > > > - Make a similar tool to Debian's how can I help > > > - Try to avoid suggesting updating packages with lots of dependencies > > > > `guix how-can-i-help` would be amazing! Something that would: > > - list all the packages in my current profile that can be updated, > > sorted by number of dependent packages; and > > Just to let you know that, even if I haven't written `guix > how-can-i-help` (yet), I've just written a `guix-refresh-all` that tells me: > > ```console > $ guix-refresh-all > gnu/packages/freedesktop.scm:2164:13: udiskie would be upgraded from 2.3.3 to 2.4.2 > gnu/packages/wm.scm:1584:13: sway would be upgraded from 1.6.1 to 1.7 > gnu/packages/wireservice.scm:205:13: csvkit would be upgraded from 1.0.5 to 1.0.7 > gnu/packages/mail.scm:610:13: neomutt would be upgraded from 20211029 to 20220429 > gnu/packages/mpd.scm:445:13: cantata would be upgraded from 2.4.2 to 2.5.0 > gnu/packages/mail.scm:1326:13: notmuch would be upgraded from 0.36 to 0.37 > gnu/packages/rust-apps.scm:190:13: bat would be upgraded from 0.20.0 to 0.22.1 > gnu/packages/wm.scm:1704:13: swaybg would be upgraded from 1.0 to 1.1.1 > gnu/packages/terminals.scm:1334:13: alacritty would be upgraded from 0.9.0 to 0.16.0 > gnu/packages/gnupg.scm:830:2: pinentry-gtk2 would be upgraded from 1.2.0 to 1.2.1 > gnu/packages/linux.scm:8793:13: wireplumber would be upgraded from 0.4.11 to 0.4.12 > gnu/packages/libreoffice.scm:1059:13: libreoffice would be upgraded from 7.3.5.2 to 7.4.2.3 > gnu/packages/mpd.scm:112:13: mpd would be upgraded from 0.23.8 to 0.23.10 > gnu/packages/linphone.scm:801:13: linphone-desktop would be upgraded from 4.2.5 to 4.4.10 > gnu/packages/messaging.scm:2171:13: profanity would be upgraded from 0.13.0 to 0.13.1 > gnu/packages/gnome.scm:3060:13: libnotify would be upgraded from 0.7.9 to 0.8.1 > gnu/packages/gnupg.scm:287:13: gnupg would be upgraded from 2.2.32 to 2.3.8 > gnu/packages/rust-apps.scm:455:13: fd would be upgraded from 8.1.1 to 8.4.0 > gnu/packages/curl.scm:66:12: curl would be upgraded from 7.79.1 to 7.85.0 > gnu/packages/terminals.scm:929:13: go-github-com-junegunn-fzf would be upgraded from 0.25.0 to 0.34.0 > gnu/packages/xorg.scm:1767:13: setxkbmap would be upgraded from 1.3.2 to 1.3.3 > gnu/packages/file.scm:65:13: file would be upgraded from 5.41 to 5.43 > gnu/packages/ncurses.scm:45:13: ncurses would be upgraded from 6.2.20210619 to 6.3 > ``` > > So now, I know what I'll do tomorrow! 😅 > > This is no magic scheme, it's just an alias for: > > ```console > $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning" > ``` I'd like to suggest swapping out the ag options for a grep option: grep -v -E '(already|failed|no updater|warning|redirection)' _should_ work, but I haven't tested that myself yet. > Yeah, I know… ugly! But, it does (part of) the job! 😎 > > Happy hacking! > > -- > Tanguy > -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-19 19:31 ` Efraim Flashner @ 2022-10-23 15:48 ` Tanguy LE CARROUR 2022-10-24 7:44 ` zimoun 0 siblings, 1 reply; 13+ messages in thread From: Tanguy LE CARROUR @ 2022-10-23 15:48 UTC (permalink / raw) To: Efraim Flashner; +Cc: Christopher Baines, guix-devel Hi Efraim, Quoting Efraim Flashner (2022-10-19 21:31:15) > On Tue, Oct 18, 2022 at 06:19:18PM +0200, Tanguy LE CARROUR wrote: > > Quoting Tanguy LE CARROUR (2022-10-05 16:01:40) > > > Quoting Christopher Baines (2022-09-18 17:55:30) > > […] > > This is no magic scheme, it's just an alias for: > > > > ```console > > $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 | ag -v "already" | ag -v "failed" | ag -v "no updater" | ag -v "warning" > > ``` > > I'd like to suggest swapping out the ag options for a grep option: > grep -v -E '(already|failed|no updater|warning|redirection)' > _should_ work, but I haven't tested that myself yet. Right! Those multiple `-v` looked weird! Thanks to your suggestion, I now have: ```console $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 \ | ag -v '(already|failed|no updater|warning|redirection)' ``` Regards, -- Tanguy ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Notes from discussion on Quality Assurance from the 10 Years of Guix event 2022-10-23 15:48 ` Tanguy LE CARROUR @ 2022-10-24 7:44 ` zimoun 0 siblings, 0 replies; 13+ messages in thread From: zimoun @ 2022-10-24 7:44 UTC (permalink / raw) To: Tanguy LE CARROUR, Efraim Flashner; +Cc: Christopher Baines, guix-devel Hi Tanguy, On dim., 23 oct. 2022 at 17:48, Tanguy LE CARROUR <tanguy@bioneland.org> wrote: > ```console > $ guix package -I | awk '{print $1}' | tr '\n' ' ' | xargs guix refresh 2>&1 \ > | ag -v '(already|failed|no updater|warning|redirection)' > ``` This pipe is equivalent to, guix package --export-manifest > /tmp/my-installed-packages.scm guix refresh -m /tmp/my-installed-packages.scm 2>&1 \ | ag -v '(already|failed|no updater|warning|redirection)' which is, IMHO, more Guixy. ;-) Cheers, simon ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-10-24 11:52 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-09-18 15:55 Notes from discussion on Quality Assurance from the 10 Years of Guix event Christopher Baines 2022-10-05 14:01 ` Tanguy LE CARROUR 2022-10-05 16:51 ` Christopher Baines 2022-10-09 15:58 ` Tanguy LE CARROUR 2022-10-18 16:19 ` Tanguy LE CARROUR 2022-10-19 9:57 ` zimoun 2022-10-23 15:40 ` Tanguy LE CARROUR 2022-10-24 7:34 ` zimoun 2022-10-24 11:43 ` Tanguy LE CARROUR 2022-10-23 21:33 ` kiasoc5 2022-10-19 19:31 ` Efraim Flashner 2022-10-23 15:48 ` Tanguy LE CARROUR 2022-10-24 7:44 ` zimoun
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).