Your one-stop-cake-shop for everything Freshly Baked has to offer
11
fork

Configure Feed

Select the types of activity you want to include in your feed.

at test 101 lines 3.7 kB view raw view rendered
1<!-- 2SPDX-FileCopyrightText: 2025 FreshlyBakedCake 3 4SPDX-License-Identifier: MIT 5--> 6 7# Welcome to the *patisserie* 8 9*~ your one-stop-cake-shop for everything Freshly Baked has to offer ~* 10 11## Structure 12 13*Patisserie* is a [monorepo](https://en.wikipedia.org/wiki/Monorepo), which means 14there are multiple projects hosted here. Here's a list! 15 16| Project | Description | 17| ----------- | ------------------------------------------------------------------------------------------------- | 18| *packetmix* | Our [*NixOS*](https://nixos.org) configurations ("All you need to bake a delicious system") | 19| *sprinkles* | Our [*Niri*](https://github.com/YaLTeR/niri) widgets ("Add some decoration to your Niri desktop") | 20 21## Cloning a single project 22 23You may clone and push to *patisserie* via [*tangled*](https://tangled.sh) as 24you usually would. If you'd like to clone only a single project, however, we 25provide a public [*josh* proxy](https://josh-project.github.io/josh/) which can 26be used to filter your clone: 27 28```bash 29git clone https://git.freshlybakedca.ke/patisserie.git:workspace=projects/packetmix.git 30# Swap out the "packetmix" at the end of the command for whatever project you want to clone 31``` 32 33If you need to push then, as with *tangled* normally, you are required to use 34SSH. 35 36*Josh* can push via SSH, but requires you to forward your SSH agent to 37authenticate your push: 38 39```ssh-config 40# In ~/.ssh/config 41Host git.freshlybakedca.ke 42 User git 43 ForwardAgent yes 44``` 45 46When you've added this section to your ssh config, you can add a custom push URL 47to use SSH. 48 49```bash 50git remote set-url --push ssh://git@git.freshlybakedca.ke/patisserie.git:workspace=projects/packetmix.git 51# Swap out "packetmix" at the end of the URL for whatever project you have cloned 52``` 53 54Except for when creating branches, pushing will work as-normal for SSH clones. 55 56### Creating new branches 57 58When pushing to *josh*, creating branches won't work on a regular `git push`. 59This is because *josh* doesn't know what state you want the rest of the 60repository to be for your branch 61 62You can tell *josh* by providing the `base=` push option like so: 63 64```bash 65git push origin HEAD:my-new-branch -o base=main 66``` 67 68If you're using a git frontend (e.g. [Jujutsu](https://jj-vcs.github.io/jj)) 69which does not allow you to set push options, you may find it useful to 70temporarily set them through the git configuration while performing git 71operations. In Jujutsu, you might do that through these aliases: 72 73```toml 74[aliases] 75josh-push-base-main = [ 'util', 'exec', '--', 'sh', '-c', 'git config push.pushOption base=main && jj git push "$@"; git config --unset push.pushOption', '--' ] 76josh-push-create = [ 'util', 'exec', '--', 'sh', '-c', 'git config push.pushOption create && jj git push "$@"; git config --unset push.pushOption', '--' ] 77josh-push-force = [ 'util', 'exec', '--', 'sh', '-c', 'git config push.pushOption force && jj git push "$@"; git config --unset push.pushOption', '--' ] 78josh-push-merge = [ 'util', 'exec', '--', 'sh', '-c', 'git config push.pushOption merge && jj git push "$@"; git config --unset push.pushOption', '--' ] 79``` 80 81You must make sure you always unset the push option, even if your push failed. 82Pushing with unexpected push options can cause accidental and annoying-to-fix 83actions to be taken on your behalf 84 85### Signing commits 86 87As *josh* rewrites commits, they will not be validly signed everywhere. 88We therefore recommend you turn off commit signing for *patisserie* or any 89subprojects which you clone down 90 91For example, 92 93```bash 94git config commit.gpgsign false 95``` 96 97or 98 99```bash 100jj config set --repo git.sign-on-push false 101```