Files
pkgstash/TODO.md
T
2026-04-30 08:34:43 -06:00

45 lines
2.2 KiB
Markdown

- add a UA to get client, some servers are 403 the default go client
- Add better logging for errors, filename more deatail
- Solve timeout issue large pkgs, maybe stream
- Move project to github as primary
- Complete testing
- Deployment(PKGBUILD, bootstrap script?)
- More complete sync(refresh packages on schedule with db, prefetch updates to pkgs we already have)
- clean cache of old files
- Add chi for mux
- Build server/tool
- ~retry on failed fetch~
- ~Basic config Testing~
- ~flag for loading non default config~
- ~add cli option for config location~
- ~Deployment(systemd, systemd.timer)~
- ~Basic testing for internal/cache~
- ~basic file server that fulfills pacman api~
- ~fetch requested files from mirror~
- ~DB sync from mirror~
- ~Config file and import~
Looking at what you've built and what's left on your TODO, here's how I'd think about the "done" line for a capstone:
**What you already have that's impressive:**
- Real concurrent systems work — singleflight, atomic ops, mutex
- Custom HTTP transport with timeout tuning
- Atomic file writes with the tmp-then-rename pattern
- Meaningful test suite with httptest, not just trivial unit tests
- Clean dependency injection, thoughtful package boundaries
- Config validation with proper error wrapping
**What would make it a complete capstone story:**
- The streaming solution for large packages — this is your most interesting unsolved technical problem and directly demonstrates you understand the HTTP layer
- At least one more meaningful feature working end-to-end, either the refresh scheduling via systemd timer or the prefetch-on-refresh logic
- Actually deployed and serving your home network — "running in production" is a strong closer
**What I'd leave out of the capstone scope:**
- The AUR builder — that's a whole second project honestly
- Chi middleware — nice but not substantive enough to matter
The through-line you want to be able to tell is: *I built a caching reverse proxy from scratch in Go, handling concurrency, filesystem atomicity, and HTTP semantics correctly, and deployed it on real hardware.* You're close to being able to say that. The streaming piece and a working deployment are the remaining gaps.
How far out is the capstone deadline?