- core functionality
- storage format
- indexing
- interval-btree?
- smart indexing (index file)
- repeating events
- infinite shadow (ghost events)
- basic repetition
- update repeating
- remove repeating
- pkg/core/core_events.go:139-143
- pkg/core/core_events.go:359
- tests
- connect repeating event exceptions
- exception needs to have uuid
- time encoded inside uuidv8
- config file per repo?
- tags
- better tests
- load repositories
- Undo function (git reset HEAD~1)
- iCalendar compatibility
- import (periodical & one-time)
- export
- to a file
- idk about url
- github-pages?
- custom http file server?
- encryption
- storing a key
- values-only
- deterministic? (same input <=> same output)
- +good git diffs
- -patterns across files can be found
- local notifications (managed by client)
- core has some method like "fetch" for polling (15/30 min interval)
- -push notifications (almost instant) need a backend
.git-calendar-data/
├── default/
│ ├── .git/
│ ├── events/
│ │ └── <UUID>.json
│ ├── tags/
│ │ └── <UUID>.json
│ ├── index.jsonl
│ └── index-rich.jsonl
├── shared/
│ ├── .git/
│ ├── events/
│ │ └── <UUID>.json
│ ├── tags/
│ │ └── <UUID>.json
│ ├── index.jsonl
│ └── index-rich.jsonl
├── default.key
├── shared.readonly
└── shared.key
(there are no wasm-only tests at this time, but could be useful)
Install wasmbrowsertest:
go install github.com/agnivade/wasmbrowsertest@latestRun tests like so:
GOOS=js GOARCH=wasm go test -exec $(go env GOPATH)/bin/wasmbrowsertest ./pkg/... ./cmd/wasmOr, if you don't wanna specify the -exec:
- Rename the exacutable so that
go testfinds it automatically:
mv "$(go env GOPATH)/bin/wasmbrowsertest" "$(go env GOPATH)/bin/go_js_wasm_exec"- And then run tests like you normally would:
GOOS=js GOARCH=wasm go test ./pkg/... ./cmd/wasm