This repository has been archived on 2026-03-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
oubliette/CLAUDE.md
Torjus Håkestad 8e8f5366be refactor: move version to Go source, extract in flake.nix
Define version once in cmd/oubliette/main.go and use builtins.match
in flake.nix to extract it. Add versioning guidelines to CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:56:54 +01:00

1.4 KiB

Oubliette

SSH honeypot written in Go. See PLAN.md for full project plan and architecture.

Development

  • Nix devshell: Always use nix develop -c to run commands, e.g. nix develop -c go test ./..., nix develop -c golangci-lint run.
  • Tech stack: Go, SQLite, x/crypto/ssh, Go templates + htmx for web UI. Single binary with embedded assets.

Guidelines

  • Write tests for all important functionality.
  • Update README.md when new features are added. Keep entries concise for minor stuff.
  • Keep code simple and focused. Refer to PLAN.md for design decisions.
  • When adding new config options, always add them to oubliette.toml.example as well.

Versioning

We use semver (MAJOR.MINOR.PATCH). The version is defined in cmd/oubliette/main.go (const Version) and extracted automatically by flake.nix.

  • Patch (0.1.00.1.1): Bug fixes, minor tweaks, documentation changes.
  • Minor (0.1.00.2.0): New features, new config options, new shell types.
  • Major (0.x.y1.0.0): Breaking changes to config format or public interfaces.

Bump the version when merging a feature branch to master, not on every commit. While pre-1.0, breaking changes only require a minor bump.

Git workflow

  • Use conventional commits (e.g. feat:, fix:, refactor:, docs:, test:, chore:).
  • Check out a feature branch before starting work on a new feature.