Commitf7750b3eRecorded25 Apr 2026Repositorysigil-git

Extract sigil-git from sigil monorepo as standalone repo

Message

Single-package extraction: sigil-git is the git-operations library used by sigil-build's deps resolver and reusable as a small forge-aware git API for any Sigil tool.

Filter-repo preserves the in-tree history under packages/sigil-git/ as master (24 commits). Per the sigil-package-extraction playbook:

- package.sgl: add explicit version: 0.13.1; switch url: from https://codeberg.org/sigil/sigil to https://codeberg.org/sigil/sigil-git; authors string normalized to "David Wilson <[email protected]>" - README.md: package overview, usage example, build/test instructions - .gitignore: build/ and .sigil/ build artifacts - manifest.scm: guix-shell environment (gcc-toolchain, make, pkg-config, git — git is a runtime dep for git-clone-bare, git-fetch, git-worktree-* shell-outs) - dev-redirects.sgl: maps codeberg:sigil/sigil-lang to ../sigil-lang for canonical ecosystem layout (~/Projects/Code/sigil/<repo>/) - sigil.lock: pins sigil-stdlib to sigil-lang master a436005a (v0.13.1)

The package's only dependency is sigil-stdlib pulled from codeberg:sigil/sigil-lang via from-git.

23/23 tests pass via published sigil-lang fetch.

Changed
 .gitignore        |  2 ++
 README.md         | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 dev-redirects.sgl |  6 ++++++
 manifest.scm      |  8 ++++++++
 package.sgl       |  5 +++--
 sigil.lock        |  9 +++++++++
 6 files changed, 79 insertions(+), 2 deletions(-)
Diff
.gitignoreadded
@@ -0,0 +1,2 @@
+1
build/
+2
.sigil/
README.mdadded
@@ -0,0 +1,51 @@
+1
# sigil-git
+2
+3
Git operations for [Sigil](https://codeberg.org/sigil/sigil) tools — URL
+4
parsing, bare-repo cloning, worktree management, and remote fetch via
+5
shell-out to the system `git`.
+6
+7
This package was extracted from the sigil monorepo — the in-tree history
+8
under `packages/sigil-git/` is preserved here as `master`.
+9
+10
It backs the dependency resolver in `sigil-build` (cloning + fetching
+11
`from-git` deps) and is also reusable as a small `git` API for any Sigil
+12
tool that needs to talk to a forge.
+13
+14
## Usage
+15
+16
```scheme
+17
(import (sigil git))
+18
+19
;; Parse a forge-shorthand URL
+20
(parse-git-url "codeberg:sigil/sigil-git")
+21
; => alist with forge='codeberg user="sigil" repo="sigil-git"
+22
+23
;; Bare-clone for the dep cache
+24
(git-clone-bare "codeberg:sigil/sigil-git" "/tmp/sigil-git.git")
+25
+26
;; Add a detached-HEAD worktree at a specific ref
+27
(git-worktree-add "/tmp/sigil-git.git" "/tmp/wt" "v0.13.1")
+28
```
+29
+30
The full export list lives at the top of `src/sigil/git.sgl`.
+31
+32
## Build & test
+33
+34
This is a pure-Scheme package. No native build step.
+35
+36
```bash
+37
sigil deps install # fetch sigil-stdlib via codeberg:sigil/sigil-lang
+38
sigil test --report # run test/test-git.sgl
+39
```
+40
+41
For local development against an unpublished sigil-lang, use
+42
`dev-redirects.sgl` (sibling checkout at `../sigil-lang/`):
+43
+44
```bash
+45
sigil deps install --redirects ./dev-redirects.sgl
+46
sigil test --redirects ./dev-redirects.sgl --report
+47
```
+48
+49
## License
+50
+51
BSD-3-Clause. See the monorepo for the canonical license text.
dev-redirects.sgladded
@@ -0,0 +1,6 @@
+1
;; Development redirects — point dependencies at local Sigil checkouts
+2
(redirects
+3
repos: (list
+4
(for-repo
+5
url: "codeberg:sigil/sigil-lang"
+6
use: (from-path dir: "../sigil-lang"))))
manifest.scmadded
@@ -0,0 +1,8 @@
+1
;; sigil-git development environment
+2
;; Use with: guix shell -m manifest.scm
+3
+4
(specifications->manifest
+5
'("gcc-toolchain"
+6
"make"
+7
"pkg-config"
+8
"git"))
package.sglmodified
@@ -1,10 +1,11 @@
1
(package
2
name: "sigil-git"
+3
version: "0.13.1"
4
sigil: "^0.13"
5
description: "Git operations for Sigil tools"
5
url: "https://codeberg.org/sigil/sigil"
+6
url: "https://codeberg.org/sigil/sigil-git"
7
license: "BSD-3-Clause"
7
authors: (list "David Wilson")
+8
authors: (list "David Wilson <[email protected]>")
9
10
dependencies: (list
11
(from-git url: "codeberg:sigil/sigil-lang" package: "sigil-stdlib" version: "^0.13.1")))
sigil.lockadded
@@ -0,0 +1,9 @@
+1
;; Auto-generated by sigil deps install. Do not edit.
+2
(lock
+3
(package name: "sigil-stdlib"
+4
url: "codeberg:sigil/sigil-lang"
+5
ref: "^0.13.1"
+6
sha: "a436005a34754522d3c38b608aa892b4f8e13dd3"
+7
package-selector: "sigil-stdlib"
+8
version: "0.13.1")
+9
)