From bef7bd9229d733ff2ececcab3bea8d98398fe0c4 Mon Sep 17 00:00:00 2001 From: TakeV Date: Mon, 11 Nov 2024 17:35:49 -0500 Subject: [PATCH] add readme info for getting started --- README.md | 0 README.org | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ manifest.scm | 6 +++ 3 files changed, 109 insertions(+) delete mode 100644 README.md create mode 100644 README.org create mode 100644 manifest.scm diff --git a/README.md b/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/README.org b/README.org new file mode 100644 index 0000000..aa07c33 --- /dev/null +++ b/README.org @@ -0,0 +1,103 @@ +The guix channel for all solarpunk packages and services! + +* Authentication + +To set up automatic authentication, run the following: + +#+begin_src sh + mkdir -p .git/hooks # Optional, but ensures that hooks will be installed automatically + git pull origin keyring:keyring + guix git authenticate e5386665c5b75c317a9073cfb990b49706318fcf 1086326DE207068C1C025129A64F41345C7400AF +#+end_src + +If you are adding this channel to your guix channels, use the following definition: + +#+begin_src scheme + (channel + (name 'guix-punk) + (url "https://git.solarpunk.moe/Solarpunk/guix-punk.git") + (branch "main") + (introduction + (make-channel-introduction + "e5386665c5b75c317a9073cfb990b49706318fcf " + (openpgp-fingerprint + "1086 326D E207 068C 1C02 5129 A64F 4134 5C74 00AF")))) +#+end_src + + +* Committing + +Given that solarpunk.moe is an anarcho-communist collective, we love to have anyone who wishes able to contribute whatever they want to the group, for anyone to use. Here are some things to help you get started. + +** guix + +This is a guix channel, thus you should probably be using guix when working with it. + +** direnv + +It is highly recommended that you use [[https://direnv.net][direnv]] when hacking on the channel. The [[file:.envrc.sample][.envrc.sample]] should get you set up very quickly, and will set up your guix shell, and configure guix to load the modules directory automatically. Just copy =.envrc.sample= to =.envrc=. + +*** guix direnvrc + +By default direnvrc's =use_guix= function uses the old =guix environment= command, which is deprecated. It would be a good idea to put the following in your =direnvrc= (by default =$XDG_CONFIG_HOME/direnv/direnvrc=): + +#+begin_src sh +use_guix() +{ + eval "$(guix shell --search-paths "$@")" +} +#+end_src + +** authentication + +*If you are a contributor, please make sure that you have signed all of your commits with a GPG key. If you need help setting that up, either contact TakeV, or follow the instructions below.* + +*** setting up gpg + +If you do not have a gpg key, create one. This example uses ed25519 as the keys are smaller (though still secure). If you want to use rsa, you can replace =ed25519= with =rsa3072= or =rsa4096= (the later is more secure, though 3072 is good enough). + + #+begin_src sh +gpg --default-new-key-algo ed25519 --gen-key +#+end_src + +Follow the prompts. Use the email you have configured git to use. + +*** setting up signing + +Once you have a key, set up git to sign your commits using that key. First, get the key. + +#+begin_src sh + gpg --list-secret-keys --keyid-format=long +#+end_src + +That will get you any secret keys you have. For example, for TakeV: + +#+begin_src + sec rsa3072/640A6795ECDAAC2F 2022-02-20 [C] [expires: 2026-10-19] + 908EF02651C362EC776ADA98640A6795ECDAAC2F + uid [ultimate] TakeV + ssb rsa3072/A64F41345C7400AF 2022-02-20 [S] [expires: 2026-10-19] + ssb rsa3072/D7C59303CECD5F44 2022-02-20 [E] [expires: 2026-10-19] + ssb rsa3072/59B3307AECE32267 2022-02-20 [A] [expires: 2026-10-19] +#+end_src + +Copy the value in the row labeled =[S]=, in the second column, after the slash. In the example above, it would be =A64F41345C7400AF=. + +Run the following, using your keyid: + +#+begin_src sh + gpg config user.signingkey + gpg config commit.gpgsign true +#+end_src + +You should be all set! + +*** getting added an an authorized committer + +To get added as an authorized comitter, talk to an existing committer (someone who is currently registered in [[file:.guix-authorizations][.guix-authorizations]]). You will need to send them your public key. + +If you are the one being talked to about getting added: + +1) Add the new entity's key to the keyring branch, using the =NAME.key= pattern. +2) Add their signing key fingerprint to [[file:.guix-authorizations][.guix-authorizations]]. + diff --git a/manifest.scm b/manifest.scm new file mode 100644 index 0000000..7615e25 --- /dev/null +++ b/manifest.scm @@ -0,0 +1,6 @@ +;; What follows is a "manifest" equivalent to the command line you gave. +;; You can store it in a file that you may then pass to any 'guix' command +;; that accepts a '--manifest' (or '-m') option. + +(specifications->manifest + (list "gnupg" "pinentry"))