add readme info for getting started

This commit is contained in:
TakeV 2024-11-11 17:35:49 -05:00
parent 5eb8b7524d
commit bef7bd9229
Signed by: TakeV
GPG key ID: A64F41345C7400AF
3 changed files with 109 additions and 0 deletions

View file

103
README.org Normal file
View file

@ -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 <takev@disroot.org>
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 <YOUR KEY ID HERE>
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]].

6
manifest.scm Normal file
View file

@ -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"))