summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPjotr Prins2022-12-23 20:54:17 +0100
committerPjotr Prins2022-12-23 20:54:17 +0100
commiteaac67fef883a2c891d9a0d0e3c2b77f6bcde7f7 (patch)
treec86417fd39d4b651fb6a98f82b732a006e0430ba
parent5337bbbe5fa17de12513479a6f98cbd379fd796f (diff)
downloadgn-gemtext-eaac67fef883a2c891d9a0d0e3c2b77f6bcde7f7.tar.gz
Notes on fixing Guix
-rw-r--r--topics/guix-profiles.gmi4
-rw-r--r--topics/guix/packages.gmi65
2 files changed, 69 insertions, 0 deletions
diff --git a/topics/guix-profiles.gmi b/topics/guix-profiles.gmi
index 3c40b81..153357d 100644
--- a/topics/guix-profiles.gmi
+++ b/topics/guix-profiles.gmi
@@ -1,5 +1,9 @@
# Updating Guix profiles (for production and development)
+This document describes updating Guix for GeneNetwork by using a channel. To develop guix packages see
+
+=> guix/packages.gmi
+
## Executive summary
To build guix profiles that can run GN2+GN3 we use a so-called channel.
diff --git a/topics/guix/packages.gmi b/topics/guix/packages.gmi
new file mode 100644
index 0000000..a52f49b
--- /dev/null
+++ b/topics/guix/packages.gmi
@@ -0,0 +1,65 @@
+# Guix packages
+
+To deploy GN we have packages in Guix itself (that comes with a distribution), in guix-bioinformatics and in guix-past (for older packages).
+
+Typically run a guix pull to get the latest guix:
+
+```
+mkdir -p ~/opt
+guix package -i guix -p ~/opt/guix
+```
+
+and checkout guix-past and guix-bioinformatics using git.
+
+Now Guix should be happy with
+
+```
+~/opt/guix-pull/bin/guix package -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ -A genenetwork
+genenetwork1 0.0.0-2.acf65ac out /home/wrk/guix-bioinformatics/gn/past/genenetwork1.scm:148:4
+genenetwork2 3.11-2.1328932 out /home/wrk/guix-bioinformatics/gn/packages/genenetwork.scm:452:4
+genenetwork3 0.1.0-2.e781996 out /home/wrk/guix-bioinformatics/gn/packages/genenetwork.scm:107:4
+```
+
+and we can try building
+
+```
+~/opt/guix-pull/bin/guix build -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ genenetwork2
+```
+
+Any errors at either command means that we have to fix packages.
+
+Note that you can use tux02 as a substitute server, see the README in guix-bioinformatics. That means that any package you build on tux02 can be downloaded from guix.genenetwork.org. So, best to build on tux02 - so everyone can share!
+
+On tux02, to ramp up parallel building speed, you may want to use `-c 24 -M 24 -k` switches.
+
+## Fixing a package
+
+Here python-pingouin failed. Which is pulled in by
+
+```
+tux02:~/guix-bioinformatics$ grep -r pingouin *
+gn/packages/genenetwork.scm: python-pingouin
+```
+
+git blame shows it was added in summer by Arun as part of the genenetwork3 package. A check of genenetwork3 shows
+
+```
+tux02:~/genenetwork3$ git blame gn3/computations/correlations.py
+```
+
+it was added by Alex in 2021.
+
+Now it is not puzzling why the tests fail for this package as the Guix package does not build on the build farm, see
+
+=> https://packages.guix.gnu.org/packages/python-pingouin/0.5.2/
+
+I am going to disable it for testing. By introducing the override
+
+```
+(define python-pingouin-without-tests
+ (package
+ (inherit python-pingouin)
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-pingouin)
+ ((#:tests? _ #f) #f)))))
+```