Dear, The command “guix time-machine” is really cool but today it is not easy to find the commit corresponding to one specific version. For example, try to install the version 1.6.8 of the package ’msmtp’.
A concrete example is described here [1]. And when reproducing scientific papers, the versions are not always provided but instead the dates are. How to install the same ’msmtp’ as in 2018-12-08? The Guix Data Service helps for such situation: https://data.guix.gnu.org/repository/1/branch/master/package/msmtp/output-history but its database starts on 2019-01-01 (if I have correct). It is an external service and will never collect data from all specifics channels (guix-past, your-name-it, etc.). Well, it is a good complement and all the JSON files are under used, for example, to know if the package builds or not. Another story. Today, the 2 previous use-cases are usually solved by cloning the repository from Savannah and then by invoking Git commands. It is not fully satisfactory since this repository is already checked out, by default: ~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/ Let this path affected to the environment variable $SRC. Then, to find the 2 commits, the user can run: --8<---------------cut here---------------start------------->8--- $ git -C $SRC --date=short --format="%h %cd %s" | grep msmtp 5d2b9b0749 2020-08-26 gnu: msmtp: Update to 1.8.12. 56e1cc0c34 2020-06-10 gnu: msmtp: Update to 1.8.11. 70ebab5aa7 2020-05-09 gnu: msmtp: Update to 1.8.10. b93b7b2585 2020-03-29 gnu: msmtp: Don't rely on netcat to send queued messages. a4fd9423b0 2019-12-30 gnu: msmtp: Update to 1.8.7. 58da4b0a84 2019-10-02 gnu: msmtp: Update to 1.8.6. 214cbec2cf 2019-07-16 gnu: msmtp: Update to 1.8.5. 34e549d813 2019-07-11 gnu: msmtp: Install additional files. 06c86f166d 2019-04-29 gnu: msmtp: Update to 1.8.4. ce53048fb8 2019-02-14 gnu: msmtp: Update to 1.8.3. b8c0b9c1a3 2019-01-31 gnu: msmtp: Update to 1.8.2. 1460e77abf 2018-12-10 gnu: msmtp: Update to 1.8.1. 91b3a6d4db 2018-09-09 gnu: msmtp: Remove unneeded input. 37f9cfae43 2018-09-09 gnu: msmtp: Update to 1.8.0. 1a80f1a9e3 2018-07-11 gnu: msmtp: Update to 1.6.8. 899358d18a 2016-12-20 gnu: msmtp: Update to 1.6.6. d23d1ddf6e 2016-07-21 gnu: msmtp: Update to 1.6.5. 70dced54ed 2016-05-06 gnu: msmtp: Update to 1.6.4. 823e2ed4b3 2016-02-28 gnu: msmtp: Install msmtpq. 72d8b5baf4 2015-12-21 gnu: msmtp: Update to 1.6.3. 4c60ce4a6b 2015-11-06 gnu: msmtp: Update to 1.6.2. 0704788109 2015-03-19 gnu: msmtp: Use mirror:// URI. d6e941bc95 2014-12-09 gnu: add msmtp --8<---------------cut here---------------end--------------->8--- The proposal is to implement the same result hiding all the plumbing details, i.e., guix git log --oneline | grep msmtp Well, naming is hard. :-) Therefore, the subcommand could have another name (bikeshedding, bikeshedding :-)). The next steps could be: - take in account the channels, and maybe sort all the commits by dates - have an --format option - have an --grep option - etc. depending on the progress of the student. IMHO, there are small actionable steps that fit how Outreachy program works (at least how I understand it works). Does it make sense? If yes, I volunteer to co-mentor, even if I am not sure to be enough qualified to do so. BTW, co-mentoring is good. What do you think? [1] https://lists.gnu.org/archive/html/help-guix/2019-06/msg00098.html All the best, simon