diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2021-04-14 23:17:37 +0200 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2021-04-14 23:39:24 +0200 |
| commit | 09e3c8bff91e9af7dbce3ecc7e585e1df7c0c0ae (patch) | |
| tree | 57dc825895961255b3c76fb1aba9cd2ba67fbf86 | |
| parent | software: Guarantee person pointer identity (!). (diff) | |
Add /people.
* projects.scm: New file, with code formerly...
* software.sxml: ... here. Include it.
* people.sxml: New file.
* haunt.scm (static-pages): Add it.
* posts/kickoff.md, index.md: Refer to it.
| -rw-r--r-- | haunt.scm | 2 | ||||
| -rw-r--r-- | index.md | 2 | ||||
| -rw-r--r-- | people.sxml | 49 | ||||
| -rw-r--r-- | posts/kickoff.md | 2 | ||||
| -rw-r--r-- | projects.scm | 224 | ||||
| -rw-r--r-- | software.sxml | 226 |
6 files changed, 278 insertions, 227 deletions
| @@ -160,6 +160,8 @@ representation." | |||
| 160 | 160 | ||
| 161 | (sxml-page "/en/software/index.html" | 161 | (sxml-page "/en/software/index.html" |
| 162 | "software.sxml") | 162 | "software.sxml") |
| 163 | (sxml-page "/en/people/index.html" | ||
| 164 | "people.sxml") | ||
| 163 | (markdown-page "/en/documents/index.html" | 165 | (markdown-page "/en/documents/index.html" |
| 164 | "documents.md") | 166 | "documents.md") |
| 165 | (markdown-page "/en/contribute/index.html" | 167 | (markdown-page "/en/contribute/index.html" |
| @@ -7,7 +7,7 @@ frontpage: yes | |||
| 7 | Here’s what “GNU” means to us: | 7 | Here’s what “GNU” means to us: |
| 8 | 8 | ||
| 9 | - Gathering under a New Umbrella — | 9 | - Gathering under a New Umbrella — |
| 10 | [We](https://wiki.gnu.tools/gnu:social-contract-endorsement), | 10 | [We](/en/people), |
| 11 | maintainers and contributors of [well-known free software | 11 | maintainers and contributors of [well-known free software |
| 12 | projects](/en/software) are making this place our new home, fighting | 12 | projects](/en/software) are making this place our new home, fighting |
| 13 | for the freedom of computer users and hacking the good hack. | 13 | for the freedom of computer users and hacking the good hack. |
diff --git a/people.sxml b/people.sxml new file mode 100644 index 0000000..e9ab88b --- /dev/null +++ b/people.sxml | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | (use-modules (srfi srfi-1)) | ||
| 2 | |||
| 3 | (include "projects.scm") | ||
| 4 | |||
| 5 | (define %members | ||
| 6 | ;; List of member/projects tuples. | ||
| 7 | (let ((table (make-hash-table eq? hashq))) | ||
| 8 | (hash-table-fold %projects | ||
| 9 | (lambda (key project lst) | ||
| 10 | (for-each (lambda (member) | ||
| 11 | (let ((projects (hash-table-ref/default | ||
| 12 | table member '()))) | ||
| 13 | (hash-table-set! table member | ||
| 14 | (cons project | ||
| 15 | projects)))) | ||
| 16 | (project-members project))) | ||
| 17 | '()) | ||
| 18 | (sort (delete-duplicates | ||
| 19 | (hash-table-fold table alist-cons '())) | ||
| 20 | (match-lambda* | ||
| 21 | (((member1 . _) (member2 . _)) | ||
| 22 | (string<? (person-name member1) | ||
| 23 | (person-name member2))))))) | ||
| 24 | |||
| 25 | `((title . "Software") | ||
| 26 | (author . "The GNU Assembly") | ||
| 27 | (date . ,(string->date* "2021-04-14 23:00")) | ||
| 28 | |||
| 29 | (content | ||
| 30 | ((h2 "People") | ||
| 31 | (p "The following maintainers and contributors participate in " | ||
| 32 | "the GNU Assembly and have endorsed the " | ||
| 33 | (a (@ (href "/en/documents/social-contract")) | ||
| 34 | "Social Contract") ":") | ||
| 35 | |||
| 36 | (ul ;; (@ (class "projects")) | ||
| 37 | ,@(map (match-lambda | ||
| 38 | ((person projects ...) | ||
| 39 | `(li (@ (class "person")) | ||
| 40 | ,(let ((home-page (person-url person))) | ||
| 41 | (if home-page | ||
| 42 | `(a (@ (href ,home-page)) | ||
| 43 | ,(person-name person)) | ||
| 44 | (person-name person))) | ||
| 45 | " (" | ||
| 46 | ,(string-join (map project-name projects) | ||
| 47 | ", ") | ||
| 48 | ")"))) | ||
| 49 | %members))))) | ||
diff --git a/posts/kickoff.md b/posts/kickoff.md index 8fa1d15..869475c 100644 --- a/posts/kickoff.md +++ b/posts/kickoff.md | |||
| @@ -75,6 +75,6 @@ list](https://lists.gnu.tools/hyperkitty/list/assembly@lists.gnu.tools/) | |||
| 75 | is where this group discusses its organization, including | 75 | is where this group discusses its organization, including |
| 76 | [governance](/en/documents/governance). | 76 | [governance](/en/documents/governance). |
| 77 | 77 | ||
| 78 | Currently, the GNU Assembly consists of maintainers and developers from | 78 | Currently, the GNU Assembly consists of [maintainers and developers](/en/people) from |
| 79 | about [30 packages](/en/software)—old and young, small and big. You too | 79 | about [30 packages](/en/software)—old and young, small and big. You too |
| 80 | can [join us](/en/contribute)! | 80 | can [join us](/en/contribute)! |
diff --git a/projects.scm b/projects.scm new file mode 100644 index 0000000..9551582 --- /dev/null +++ b/projects.scm | |||
| @@ -0,0 +1,224 @@ | |||
| 1 | (use-modules (ice-9 match) | ||
| 2 | (srfi srfi-9) | ||
| 3 | (srfi srfi-69) | ||
| 4 | (haunt utils)) | ||
| 5 | |||
| 6 | (define-record-type <project> | ||
| 7 | (project id name url logo members) | ||
| 8 | project? | ||
| 9 | (id project-id) | ||
| 10 | (name project-name) | ||
| 11 | (url project-url) | ||
| 12 | (logo project-logo) | ||
| 13 | (members project-members set-project-members!)) | ||
| 14 | |||
| 15 | (define-record-type <person> | ||
| 16 | (make-person name url avatar) | ||
| 17 | person? | ||
| 18 | (name person-name) | ||
| 19 | (url person-url) | ||
| 20 | (avatar person-avatar)) | ||
| 21 | |||
| 22 | (define* (person name #:optional url avatar) | ||
| 23 | (make-person name url avatar)) | ||
| 24 | |||
| 25 | (define %projects | ||
| 26 | (let ((table (make-hash-table)) | ||
| 27 | (placeholder-logo "/static/images/logos/placeholder.svg")) | ||
| 28 | (for-each | ||
| 29 | (match-lambda | ||
| 30 | ((id name url logo) | ||
| 31 | (hash-table-set! table id | ||
| 32 | (project id name url logo (list)))) | ||
| 33 | ((id name url) | ||
| 34 | (hash-table-set! table id | ||
| 35 | (project id name url placeholder-logo (list))))) | ||
| 36 | '((8sync | ||
| 37 | "8sync" | ||
| 38 | "https://www.gnu.org/software/8sync/" | ||
| 39 | "/static/images/logos/8sync.png") | ||
| 40 | (adns | ||
| 41 | "GNU adns" | ||
| 42 | "https://www.gnu.org/software/adns/") | ||
| 43 | (archimedes | ||
| 44 | "GNU Archimedes" | ||
| 45 | "https://www.gnu.org/software/archimedes/") | ||
| 46 | (binutils | ||
| 47 | "binutils" | ||
| 48 | "https://www.gnu.org/software/binutils/") | ||
| 49 | (classpath | ||
| 50 | "GNU Classpath" | ||
| 51 | "https://www.gnu.org/software/classpath/") | ||
| 52 | (dominion | ||
| 53 | "GNU Dominion" | ||
| 54 | "https://savannah.gnu.org/projects/dominion") | ||
| 55 | (gcc | ||
| 56 | "GNU Compiler Collection (GCC)" | ||
| 57 | "https://gcc.gnu.org" | ||
| 58 | "/static/images/logos/gcc.png") | ||
| 59 | (gdb | ||
| 60 | "GDB" | ||
| 61 | "https://www.gnu.org/software/gdb/" | ||
| 62 | "/static/images/logos/gdb.svg") | ||
| 63 | (glibc | ||
| 64 | "GNU C Library" | ||
| 65 | "https://www.gnu.org/software/libc/" | ||
| 66 | "/static/images/logos/glibc.jpg") | ||
| 67 | (gneural | ||
| 68 | "GNU Gneural Network" | ||
| 69 | "https://www.gnu.org/software/gneuralnetwork/" | ||
| 70 | "/static/images/logos/gneural_network.png") | ||
| 71 | (gnucobol | ||
| 72 | "GnuCOBOL" | ||
| 73 | "https://gnucobol.sourceforge.io/" | ||
| 74 | "/static/images/logos/gnucobol.png") | ||
| 75 | (gnupg | ||
| 76 | "GnuPG" | ||
| 77 | "https://gnupg.org" | ||
| 78 | "/static/images/logos/gnupg.png") | ||
| 79 | (gsl | ||
| 80 | "GNU Scientific Library" | ||
| 81 | "https://www.gnu.org/software/gsl/") | ||
| 82 | (guile | ||
| 83 | "GNU Guile" | ||
| 84 | "https://www.gnu.org/software/guile/" | ||
| 85 | "/static/images/logos/guile.svg") | ||
| 86 | (guile-debbugs | ||
| 87 | "Guile-Debbugs" | ||
| 88 | "https://savannah.gnu.org/projects/guile-debbugs/" | ||
| 89 | "/static/images/logos/guile.svg") | ||
| 90 | (guile-gnome | ||
| 91 | "Guile-GNOME" | ||
| 92 | "https://www.gnu.org/software/guile-gnome/" | ||
| 93 | "/static/images/logos/guile.svg") | ||
| 94 | (guile-opengl | ||
| 95 | "Guile-OpenGL" | ||
| 96 | "https://www.gnu.org/software/guile-opengl/" | ||
| 97 | "/static/images/logos/guile.svg") | ||
| 98 | (guile-rpc | ||
| 99 | "GNU Guile-RPC" | ||
| 100 | "https://www.gnu.org/software/guile-rpc/" | ||
| 101 | "/static/images/logos/guile.svg") | ||
| 102 | (guix | ||
| 103 | "GNU Guix" | ||
| 104 | "https://guix.gnu.org" | ||
| 105 | "/static/images/logos/guix.png") | ||
| 106 | (gwl | ||
| 107 | "Guix Workflow Language" | ||
| 108 | "https://guixwl.org" | ||
| 109 | "/static/images/logos/gwl.png") | ||
| 110 | (hurd | ||
| 111 | "GNU Hurd" | ||
| 112 | "https://hurd.gnu.org" | ||
| 113 | "/static/images/logos/hurd.png") | ||
| 114 | (indent | ||
| 115 | "GNU indent" | ||
| 116 | "https://www.gnu.org/software/indent/") | ||
| 117 | (libgcrypt | ||
| 118 | "GNU Libgcrypt" | ||
| 119 | "https://gnupg.org/related_software/libgcrypt/" | ||
| 120 | "/static/images/logos/gnupg.png") | ||
| 121 | (libtasn1 | ||
| 122 | "GNU Libtasn1" | ||
| 123 | "https://www.gnu.org/software/libtasn1/") | ||
| 124 | (lilypond | ||
| 125 | "GNU LilyPond" | ||
| 126 | "https://lilypond.org/" | ||
| 127 | "/static/images/logos/lilypond.png") | ||
| 128 | (liquid-war-6 | ||
| 129 | "Liquid War 6" | ||
| 130 | "https://www.gnu.org/software/liquidwar6/") | ||
| 131 | (mcsim | ||
| 132 | "GNU MCSim" | ||
| 133 | "https://www.gnu.org/software/mcsim/" | ||
| 134 | "/static/images/logos/mcsim.png") | ||
| 135 | (mediagoblin | ||
| 136 | "GNU MediaGoblin" | ||
| 137 | "https://mediagoblin.org/" | ||
| 138 | "/static/images/logos/mediagoblin.svg") | ||
| 139 | (mes | ||
| 140 | "GNU Mes" | ||
| 141 | "https://www.gnu.org/software/mes/") | ||
| 142 | (mpc | ||
| 143 | "GNU MPC" | ||
| 144 | "http://www.multiprecision.org/mpc/") | ||
| 145 | (nano-archimedes | ||
| 146 | "GNU Nano-Archimedes" | ||
| 147 | "https://www.gnu.org/software/archimedes/") | ||
| 148 | (shepherd | ||
| 149 | "GNU Shepherd" | ||
| 150 | "https://www.gnu.org/software/shepherd/") | ||
| 151 | (source-highlight | ||
| 152 | "GNU Source Highlight" | ||
| 153 | "https://www.gnu.org/software/src-highlite/") | ||
| 154 | (userv | ||
| 155 | "GNU userv" | ||
| 156 | "https://www.gnu.org/software/userv/"))) | ||
| 157 | table)) | ||
| 158 | |||
| 159 | (define-syntax-rule (define-member person projects ...) | ||
| 160 | (let ((p person)) | ||
| 161 | (for-each (lambda (project-id) | ||
| 162 | (let ((project | ||
| 163 | (hash-table-ref %projects project-id | ||
| 164 | (lambda () | ||
| 165 | (error (format #false | ||
| 166 | "Unknown project ~a for ~a~%" | ||
| 167 | project-id name)))))) | ||
| 168 | (set-project-members! | ||
| 169 | project (cons p (project-members project))))) | ||
| 170 | (quote (projects ...))))) | ||
| 171 | |||
| 172 | (define-member (person "Carlos O'Donell") | ||
| 173 | glibc gcc) | ||
| 174 | (define-member (person "Mark J. Wielaard" | ||
| 175 | "https://gnu.wildebeest.org/blog/mjw/") | ||
| 176 | classpath gcc glibc) | ||
| 177 | (define-member (person "Andy Wingo" | ||
| 178 | "https://wingolog.org") | ||
| 179 | guile guile-gnome guile-opengl) | ||
| 180 | (define-member (person "Ludovic Courtès" | ||
| 181 | "https://people.bordeaux.inria.fr/lcourtes/") | ||
| 182 | guix guile shepherd guile-rpc) | ||
| 183 | (define-member (person "Frederic Y. Bois") | ||
| 184 | mcsim) | ||
| 185 | (define-member (person "Andrej Shadura") | ||
| 186 | indent) | ||
| 187 | (define-member (person "Werner Koch") | ||
| 188 | gnupg libgcrypt) | ||
| 189 | (define-member (person "Mark Galassi") | ||
| 190 | gsl dominion) | ||
| 191 | (define-member (person "Jean Michel Sellier") | ||
| 192 | archimedes nano-archimedes gneural) | ||
| 193 | (define-member (person "Christopher Webber" | ||
| 194 | "https://dustycloud.org") | ||
| 195 | 8sync mediagoblin) | ||
| 196 | (define-member (person "Ian Jackson") | ||
| 197 | adns userv) | ||
| 198 | (define-member (person "Samuel Thibault") | ||
| 199 | hurd) | ||
| 200 | (define-member (person "Jan Nieuwenhuizen") | ||
| 201 | mes lilypond) | ||
| 202 | (define-member (person "Christian Mauduit") | ||
| 203 | liquid-war-6) | ||
| 204 | (define-member (person "Nikos Mavrogiannopoulos") | ||
| 205 | libtasn1) | ||
| 206 | (define-member (person "Andreas Enge") | ||
| 207 | mpc) | ||
| 208 | (define-member (person "Han-Wen Nienhuys") | ||
| 209 | lilypond) | ||
| 210 | (define-member (person "Tobias Geerinckx-Rice") | ||
| 211 | guix) | ||
| 212 | (define-member (person "Bernard Giroud") | ||
| 213 | gnucobol) | ||
| 214 | (define-member (person "Tom Tromey") | ||
| 215 | source-highlight) | ||
| 216 | (define-member (person "Jeff Law") | ||
| 217 | gcc) | ||
| 218 | (define-member (person "David Malcolm") | ||
| 219 | gcc) | ||
| 220 | (define-member (person "Ricardo Wurmus" | ||
| 221 | "https://elephly.net") | ||
| 222 | guix gwl guile-debbugs) | ||
| 223 | (define-member (person "Marius Bakke") | ||
| 224 | guix) | ||
diff --git a/software.sxml b/software.sxml index cc6a308..9942eb7 100644 --- a/software.sxml +++ b/software.sxml | |||
| @@ -1,228 +1,4 @@ | |||
| 1 | (use-modules (ice-9 match) | 1 | (include "projects.scm") |
| 2 | (srfi srfi-9) | ||
| 3 | (srfi srfi-69) | ||
| 4 | (haunt utils)) | ||
| 5 | |||
| 6 | (define-record-type <project> | ||
| 7 | (project id name url logo members) | ||
| 8 | project? | ||
| 9 | (id project-id) | ||
| 10 | (name project-name) | ||
| 11 | (url project-url) | ||
| 12 | (logo project-logo) | ||
| 13 | (members project-members set-project-members!)) | ||
| 14 | |||
| 15 | (define-record-type <person> | ||
| 16 | (make-person name url avatar) | ||
| 17 | person? | ||
| 18 | (name person-name) | ||
| 19 | (url person-url) | ||
| 20 | (avatar person-avatar)) | ||
| 21 | |||
| 22 | (define* (person name #:optional url avatar) | ||
| 23 | (make-person name url avatar)) | ||
| 24 | |||
| 25 | (define %projects | ||
| 26 | (let ((table (make-hash-table)) | ||
| 27 | (placeholder-logo "/static/images/logos/placeholder.svg")) | ||
| 28 | (for-each | ||
| 29 | (match-lambda | ||
| 30 | ((id name url logo) | ||
| 31 | (hash-table-set! table id | ||
| 32 | (project id name url logo (list)))) | ||
| 33 | ((id name url) | ||
| 34 | (hash-table-set! table id | ||
| 35 | (project id name url placeholder-logo (list))))) | ||
| 36 | '((8sync | ||
| 37 | "8sync" | ||
| 38 | "https://www.gnu.org/software/8sync/" | ||
| 39 | "/static/images/logos/8sync.png") | ||
| 40 | (adns | ||
| 41 | "GNU adns" | ||
| 42 | "https://www.gnu.org/software/adns/") | ||
| 43 | (archimedes | ||
| 44 | "GNU Archimedes" | ||
| 45 | "https://www.gnu.org/software/archimedes/") | ||
| 46 | (binutils | ||
| 47 | "binutils" | ||
| 48 | "https://www.gnu.org/software/binutils/") | ||
| 49 | (classpath | ||
| 50 | "GNU Classpath" | ||
| 51 | "https://www.gnu.org/software/classpath/") | ||
| 52 | (dominion | ||
| 53 | "GNU Dominion" | ||
| 54 | "https://savannah.gnu.org/projects/dominion") | ||
| 55 | (gcc | ||
| 56 | "GNU Compiler Collection (GCC)" | ||
| 57 | "https://gcc.gnu.org" | ||
| 58 | "/static/images/logos/gcc.png") | ||
| 59 | (gdb | ||
| 60 | "GDB" | ||
| 61 | "https://www.gnu.org/software/gdb/" | ||
| 62 | "/static/images/logos/gdb.svg") | ||
| 63 | (glibc | ||
| 64 | "GNU C Library" | ||
| 65 | "https://www.gnu.org/software/libc/" | ||
| 66 | "/static/images/logos/glibc.jpg") | ||
| 67 | (gneural | ||
| 68 | "GNU Gneural Network" | ||
| 69 | "https://www.gnu.org/software/gneuralnetwork/" | ||
| 70 | "/static/images/logos/gneural_network.png") | ||
| 71 | (gnucobol | ||
| 72 | "GnuCOBOL" | ||
| 73 | "https://gnucobol.sourceforge.io/" | ||
| 74 | "/static/images/logos/gnucobol.png") | ||
| 75 | (gnupg | ||
| 76 | "GnuPG" | ||
| 77 | "https://gnupg.org" | ||
| 78 | "/static/images/logos/gnupg.png") | ||
| 79 | (gsl | ||
| 80 | "GNU Scientific Library" | ||
| 81 | "https://www.gnu.org/software/gsl/") | ||
| 82 | (guile | ||
| 83 | "GNU Guile" | ||
| 84 | "https://www.gnu.org/software/guile/" | ||
| 85 | "/static/images/logos/guile.svg") | ||
| 86 | (guile-debbugs | ||
| 87 | "Guile-Debbugs" | ||
| 88 | "https://savannah.gnu.org/projects/guile-debbugs/" | ||
| 89 | "/static/images/logos/guile.svg") | ||
| 90 | (guile-gnome | ||
| 91 | "Guile-GNOME" | ||
| 92 | "https://www.gnu.org/software/guile-gnome/" | ||
| 93 | "/static/images/logos/guile.svg") | ||
| 94 | (guile-opengl | ||
| 95 | "Guile-OpenGL" | ||
| 96 | "https://www.gnu.org/software/guile-opengl/" | ||
| 97 | "/static/images/logos/guile.svg") | ||
| 98 | (guile-rpc | ||
| 99 | "GNU Guile-RPC" | ||
| 100 | "https://www.gnu.org/software/guile-rpc/" | ||
| 101 | "/static/images/logos/guile.svg") | ||
| 102 | (guix | ||
| 103 | "GNU Guix" | ||
| 104 | "https://guix.gnu.org" | ||
| 105 | "/static/images/logos/guix.png") | ||
| 106 | (gwl | ||
| 107 | "Guix Workflow Language" | ||
| 108 | "https://guixwl.org" | ||
| 109 | "/static/images/logos/gwl.png") | ||
| 110 | (hurd | ||
| 111 | "GNU Hurd" | ||
| 112 | "https://hurd.gnu.org" | ||
| 113 | "/static/images/logos/hurd.png") | ||
| 114 | (indent | ||
| 115 | "GNU indent" | ||
| 116 | "https://www.gnu.org/software/indent/") | ||
| 117 | (libgcrypt | ||
| 118 | "GNU Libgcrypt" | ||
| 119 | "https://gnupg.org/related_software/libgcrypt/" | ||
| 120 | "/static/images/logos/gnupg.png") | ||
| 121 | (libtasn1 | ||
| 122 | "GNU Libtasn1" | ||
| 123 | "https://www.gnu.org/software/libtasn1/") | ||
| 124 | (lilypond | ||
| 125 | "GNU LilyPond" | ||
| 126 | "https://lilypond.org/" | ||
| 127 | "/static/images/logos/lilypond.png") | ||
| 128 | (liquid-war-6 | ||
| 129 | "Liquid War 6" | ||
| 130 | "https://www.gnu.org/software/liquidwar6/") | ||
| 131 | (mcsim | ||
| 132 | "GNU MCSim" | ||
| 133 | "https://www.gnu.org/software/mcsim/" | ||
| 134 | "/static/images/logos/mcsim.png") | ||
| 135 | (mediagoblin | ||
| 136 | "GNU MediaGoblin" | ||
| 137 | "https://mediagoblin.org/" | ||
| 138 | "/static/images/logos/mediagoblin.svg") | ||
| 139 | (mes | ||
| 140 | "GNU Mes" | ||
| 141 | "https://www.gnu.org/software/mes/") | ||
| 142 | (mpc | ||
| 143 | "GNU MPC" | ||
| 144 | "http://www.multiprecision.org/mpc/") | ||
| 145 | (nano-archimedes | ||
| 146 | "GNU Nano-Archimedes" | ||
| 147 | "https://www.gnu.org/software/archimedes/") | ||
| 148 | (shepherd | ||
| 149 | "GNU Shepherd" | ||
| 150 | "https://www.gnu.org/software/shepherd/") | ||
| 151 | (source-highlight | ||
| 152 | "GNU Source Highlight" | ||
| 153 | "https://www.gnu.org/software/src-highlite/") | ||
| 154 | (userv | ||
| 155 | "GNU userv" | ||
| 156 | "https://www.gnu.org/software/userv/"))) | ||
| 157 | table)) | ||
| 158 | |||
| 159 | (define-syntax-rule (define-member person projects ...) | ||
| 160 | (let ((p person)) | ||
| 161 | (for-each (lambda (project-id) | ||
| 162 | (let ((project | ||
| 163 | (hash-table-ref %projects project-id | ||
| 164 | (lambda () | ||
| 165 | (error (format #false | ||
| 166 | "Unknown project ~a for ~a~%" | ||
| 167 | project-id name)))))) | ||
| 168 | (set-project-members! | ||
| 169 | project (cons p (project-members project))))) | ||
| 170 | (quote (projects ...))))) | ||
| 171 | |||
| 172 | (define-member (person "Carlos O'Donell") | ||
| 173 | glibc gcc) | ||
| 174 | (define-member (person "Mark J. Wielaard" | ||
| 175 | "https://gnu.wildebeest.org/blog/mjw/") | ||
| 176 | classpath gcc glibc) | ||
| 177 | (define-member (person "Andy Wingo" | ||
| 178 | "https://wingolog.org") | ||
| 179 | guile guile-gnome guile-opengl) | ||
| 180 | (define-member (person "Ludovic Courtès" | ||
| 181 | "https://people.bordeaux.inria.fr/lcourtes/") | ||
| 182 | guix guile shepherd guile-rpc) | ||
| 183 | (define-member (person "Frederic Y. Bois") | ||
| 184 | mcsim) | ||
| 185 | (define-member (person "Andrej Shadura") | ||
| 186 | indent) | ||
| 187 | (define-member (person "Werner Koch") | ||
| 188 | gnupg libgcrypt) | ||
| 189 | (define-member (person "Mark Galassi") | ||
| 190 | gsl dominion) | ||
| 191 | (define-member (person "Jean Michel Sellier") | ||
| 192 | archimedes nano-archimedes gneural) | ||
| 193 | (define-member (person "Christopher Webber" | ||
| 194 | "https://dustycloud.org") | ||
| 195 | 8sync mediagoblin) | ||
| 196 | (define-member (person "Ian Jackson") | ||
| 197 | adns userv) | ||
| 198 | (define-member (person "Samuel Thibault") | ||
| 199 | hurd) | ||
| 200 | (define-member (person "Jan Nieuwenhuizen") | ||
| 201 | mes lilypond) | ||
| 202 | (define-member (person "Christian Mauduit") | ||
| 203 | liquid-war-6) | ||
| 204 | (define-member (person "Nikos Mavrogiannopoulos") | ||
| 205 | libtasn1) | ||
| 206 | (define-member (person "Andreas Enge") | ||
| 207 | mpc) | ||
| 208 | (define-member (person "Han-Wen Nienhuys") | ||
| 209 | lilypond) | ||
| 210 | (define-member (person "Tobias Geerinckx-Rice") | ||
| 211 | guix) | ||
| 212 | (define-member (person "Bernard Giroud") | ||
| 213 | gnucobol) | ||
| 214 | (define-member (person "Tom Tromey") | ||
| 215 | source-highlight) | ||
| 216 | (define-member (person "Jeff Law") | ||
| 217 | gcc) | ||
| 218 | (define-member (person "David Malcolm") | ||
| 219 | gcc) | ||
| 220 | (define-member (person "Ricardo Wurmus" | ||
| 221 | "https://elephly.net") | ||
| 222 | guix gwl guile-debbugs) | ||
| 223 | (define-member (person "Marius Bakke") | ||
| 224 | guix) | ||
| 225 | |||
| 226 | 2 | ||
| 227 | `((title . "Software") | 3 | `((title . "Software") |
| 228 | (author . "The GNU Assembly") | 4 | (author . "The GNU Assembly") |