Skip to content

Latest commit

 

History

History
88 lines (81 loc) · 2.29 KB

File metadata and controls

88 lines (81 loc) · 2.29 KB

TODO

  • 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

Data Folder Structure

.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

Testing Web/Wasm parts:

(there are no wasm-only tests at this time, but could be useful)

Install wasmbrowsertest:

go install github.com/agnivade/wasmbrowsertest@latest

Run tests like so:

GOOS=js GOARCH=wasm go test -exec $(go env GOPATH)/bin/wasmbrowsertest ./pkg/... ./cmd/wasm

Or, if you don't wanna specify the -exec:

  1. Rename the exacutable so that go test finds it automatically:
mv "$(go env GOPATH)/bin/wasmbrowsertest" "$(go env GOPATH)/bin/go_js_wasm_exec"
  1. And then run tests like you normally would:
GOOS=js GOARCH=wasm go test ./pkg/... ./cmd/wasm