diff --git a/README.md b/README.md index 12ba58d..d29093f 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,13 @@ bird check - Requires Chrome to be logged into x.com - May prompt for keychain access on first run +### Browser cookie sources (macOS) + +- **Chrome (default)**: reads `~/Library/Application Support/Google/Chrome//Cookies` (WAL/SHM copied too). Select with `--chrome-profile `; defaults to `Default` or whatever you set in config. +- **Firefox**: reads `~/Library/Application Support/Firefox/Profiles//cookies.sqlite`. Select with `--firefox-profile `; defaults to `*.default-release` if present. Use this when Chrome isn’t logged in. + +Precedence still holds: CLI flags > env vars > project config > global config. So a one-off `--firefox-profile default-release` overrides any config defaults. + ### Posting via Sweetistics (API key) If you have a Sweetistics API key, `bird` can post through the Sweetistics SaaS instead of using local Twitter cookies: diff --git a/docs/releasing.md b/docs/releasing.md new file mode 100644 index 0000000..b2ce949 --- /dev/null +++ b/docs/releasing.md @@ -0,0 +1,56 @@ +# Releasing bird 0.1.x + +Target destinations: +- npm: `@steipete/bird` +- Homebrew: tap formula in `steipete/homebrew-tap` (e.g., `bird.rb`) + +## Checklist (npm + GitHub) +1) Version bump + - Update `package.json` `version` (semver, e.g., `0.1.0`). + - Update `CHANGELOG.md` and tag the release section. + +2) Clean build & tests + - `pnpm install` + - `pnpm test` + - `pnpm run build` + +3) Publish to npm (scoped) + - Ensure you are logged in (`npm whoami`). + - `npm publish --access public` (from repo root). Package name is `@steipete/bird`. + +4) Git tag & GitHub release + - `git tag v0.1.0 && git push origin v0.1.0` + - Create GitHub release from the tag. Include changelog notes and attach optional binary (see below). + +## Optional: attach compiled binary +If you want a single-file binary for Homebrew/GitHub assets: +- Build: `pnpm run binary` (uses Bun to produce `./bird`). +- Upload `bird` to the GitHub release and use it for the Homebrew tarball. + +## Homebrew tap update (steipete/homebrew-tap) +1) Package the binary + - From repo root: `tar -czf bird-macos-universal-v0.1.0.tar.gz bird` + - Compute SHA: `shasum -a 256 bird-macos-universal-v0.1.0.tar.gz` + +2) Update formula in tap repo + - File: `homebrew-tap/bird.rb` (create if absent). Model it after `poltergeist.rb`. + - Fields to update: + - `url "https://github.com/steipete/bird/releases/download/v0.1.0/bird-macos-universal-v0.1.0.tar.gz"` + - `sha256 ""` + - `version "0.1.0"` + - Install block: `bin.install "bird"` + - `test do`: minimal `assert_match "0.1.0", shell_output("#{bin}/bird --version")` + +3) Push tap changes + - `git add bird.rb && git commit -m "bird 0.1.0" && git push` + +## Release order suggestion +1) Merge to `main` and tag. +2) Publish npm. +3) Build binary, upload to GitHub release. +4) Update Homebrew tap with new URL/SHA. + +## Notes +- Scoped npm name (`@steipete/bird`) requires `--access public` on first publish. +- Homebrew formula assumes macOS universal binary; adjust URL/name if you ship per-arch. +- Config defaults (JSON5) and Firefox/Chrome cookie selection are documented in `README.md` — keep that in sync for each release.