philemonchiro_obsidian-note.../CONTRIBUTING.md
Philemon Chiro 94d3f74406 Release 0.2.5
- New "Flat sticky notes" setting disables the per-card wall rotation.
  Requested by a Reddit user who wanted notes to sit perfectly straight.
- Drop the third-party "builtin-modules" dependency in favor of Node's
  built-in node:module.builtinModules — addresses a directory-scanner
  hygiene warning.
- Drop text-decoration-color on colored-card links, since it was only
  partially supported by Obsidian's bundled Chromium and the inherited
  underline color reads fine.
- Add CONTRIBUTING.md covering build, dev, PR conventions, and the
  release workflow.
2026-05-16 20:29:13 +02:00

50 lines
2.2 KiB
Markdown

# Contributing to Notekeeper
Thanks for considering a contribution. This is a small project and the bar to merge is intentionally low — useful is more important than perfect.
## Project shape
- **`main.ts`** — the entire plugin source, single file by design. Includes the view, modals, settings tab, and helpers.
- **`styles.css`** — every visual style. Light-theme overrides live in a clearly-marked block at the bottom.
- **`manifest.json` / `versions.json`** — the Obsidian plugin manifest and per-version minimum-app-version map.
- **`main.js`** — esbuild output. Committed so manual installs work without a build step. Rebuild it before opening a PR.
## Build and dev
```bash
npm install
npm run dev # watch + rebuild on save
npm run build # type-check + production bundle
```
Local lint (matches the directory's automated scan, modulo the rules disabled in `eslint.config.mjs`):
```bash
npx eslint main.ts
```
## Opening a PR
- Make sure `npm run build` succeeds and `main.js` is up to date in the commit.
- Run `npx eslint main.ts` — should be clean.
- Test the change in a real vault. The `Documents/Obsidian Vault` pattern works, or any vault you don't mind experimenting on; just symlink or copy `main.js`, `manifest.json`, and `styles.css` into `<vault>/.obsidian/plugins/notekeeper/` and reload.
- Keep the diff narrow. If you find adjacent things to clean up, file a separate issue or PR.
## Filing an issue
Open one [on GitHub](https://github.com/PhilemonChiro/obsidian-notekeeper/issues). Helpful to include:
- Obsidian version and platform (desktop/mobile, OS)
- Notekeeper version (from settings)
- A short repro — ideally the smallest sequence of clicks that triggers the behaviour
- A screenshot or short clip if the bug is visual
Feature requests are very welcome. Even one-line ones.
## Releases
Releases ship through `.github/workflows/release.yml` on every `X.Y.Z` tag push. The workflow builds, signs `main.js` / `manifest.json` / `styles.css` with [GitHub build provenance attestation](https://docs.github.com/en/actions/security-for-github-actions/using-artifact-attestations), and either creates the release or uploads to an existing tag.
## Licence
Notekeeper is MIT. Contributions are accepted under the same licence.