aboutsummaryrefslogtreecommitdiff
path: root/TODOs.md
blob: 3cc4f2a95634efd9c3043a7549d2d2de93c4897d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Tasks

## TODO Add translations for `src/gistatic.msg` messages {#task-75773a97-a961-39e2-462b-1d42664c0e5a}
- TODO in 2021-07-31

## TODO Embed `src/unit-test.{c,h}` into `src/gistatic.c` {#task-ae96e5b6-ab04-3a3d-1777-b28031273a19}
- TODO in 2021-07-31

## TODO Add explanation and comparison to stagit and CGit {#task-39e71afe-4ac9-4c3d-97e4-9ac41f826089}
- TODO in 2021-06-11

## TODO Synchronize Cargo.toml version and Makefile {#task-09018dd8-f1a2-4b0b-a56f-dea9fdc78d99}
- TODO in 2021-05-31

---

The version in the Makefile is the primary one.

## TODO v0 Overview {#task-946c7f4f-2b97-40ff-b620-5fc241900709}
- TODO in 2021-03-05

---

- [ ] hierarquical tree view, per branch and per commit
- [ ] show notes in commit
- [ ] `tarballs/` folder, with `.tar.xz` and `.tar.xz.asc` files
- [ ] generate tarballs for all tags and all branches
- [ ] SHA in log
- [ ] `.patch` files (with `git format-patch --stdout -1 $SHA`), raw view
- [ ] blame view, with history
- [ ] highlight code
- [ ] render markdown
- [ ] leverage `cloc`
- [ ] Atom feed of commits and releases
- [ ] use mustache for generating HTML and Gemini files

Benchmark on (stagit):

- Git: 60k commits, 100MB repository
- Guix: 75k commits, 311MB repository
- Nixpkgs: 275k commits, 2.5GB repository
- Linux: 1M commits, 2,5GB repository

# Bugs

# Improvements

# Questions

# Decisions

## DONE Perl vs C {#decision-d349b5be-3e00-4e00-a110-0eb7f402d4ab}
- DONE in 2021-05-28
- TODO in 2021-03-06

---

Instead of Perl vs C, it became Perl vs Rust, and I've chosen Rust.

I choose Rust over C because it is a higher-level language than C is.
It allows me to produce binaries and libraries without extra dependencies (unlike C++'s `libstdc++`), and I can deal with memory management without reference counting (unlike Nim) or garbage collection (unlike D).

I'm favoring Rust as a C-like tool because it allows me to write code that transcends the language barries: with C/Rust code, a `.so` library can be consumed by any programming language on any environment.
The binary application that will be the CLI could be written in any language, also, but it is done so in Rust for convenience.

So the question of Perl vs C now is becoming applicable only on more specific scenarios: when having a `libsomething.so` isn't worth anything.
This isn't the case for this library.

# Resources

- <https://github.com/jacquesg/p5-Git-Raw/>
- <http://modernperlbooks.com/books/modern_perl_2016/01-perl-philosophy.html>

# Scratch

use .xz over .gz

https://nicholasreese.com/lessons-from-building-a-static-site-generator/
https://news.ycombinator.com/item?id=27687899

Accessibility and ARIA elements of HTML

https://drewdevault.com/2019/07/08/Announcing-annotations-for-sourcehut.html

gistatic can't compare commits!
Add this to a "honest list of drawbacks"