Skip to content

Prepare Obsidian marketplace release packaging#10

Merged
bobthearsonist merged 2 commits into
mainfrom
issue/5-marketplace-readiness
May 5, 2026
Merged

Prepare Obsidian marketplace release packaging#10
bobthearsonist merged 2 commits into
mainfrom
issue/5-marketplace-readiness

Conversation

@bobthearsonist

Copy link
Copy Markdown
Owner

Refs #5

Summary

  • add pnpm packaging and validation scripts for Obsidian release assets
  • add root manifest/versions mirrors required for marketplace lookup while keeping plugin source in the monorepo
  • document the release/tag/submission checklist and current blockers

Validation

  • npx --yes pnpm@10 --filter @visual-notes/obsidian-plugin run version
  • npx --yes pnpm@10 validate:obsidian-release
  • npx --yes pnpm@10 build
  • npx --yes pnpm@10 typecheck
  • npx --yes pnpm@10 lint

Blockers remaining

  • first GitHub release still needs to be cut with manifest.json, main.js, and styles.css
  • screenshots/GIFs are still pending
  • final manual Obsidian smoke test from release assets is still required

@bobthearsonist

Copy link
Copy Markdown
Owner Author

@copilot review

Copilot AI commented May 3, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Two issues found and fixed in f947b0d:

  1. Double statSync call in scripts/package-obsidian-plugin.mjsrequireExistingFile was calling statSync(path) twice (once to check .isFile(), again to check .size). Cached the result in a local variable.

  2. Redundant validate:obsidian-release alias in package.json — it was an exact duplicate of package:obsidian with no distinct behaviour. Removed; use pnpm package:obsidian directly.

Everything else looks good: metadata mirrors, drift-detection in the packaging script, version-bump sync, and the release checklist all look correct.

@bobthearsonist

Copy link
Copy Markdown
Owner Author

Marketplace readiness validation after ff-only pull to f947b0d.

Validated Copilot fixes present:

  • package:obsidian no longer has redundant validate alias in root package.json.
  • scripts/package-obsidian-plugin.mjs uses one statSync result per file check.

Commands run successfully:

  • npx -y pnpm@10.33.2 install --frozen-lockfile
  • npx -y pnpm@10.33.2 lint
  • npx -y pnpm@10.33.2 typecheck
  • npx -y pnpm@10.33.2 build
  • npx -y pnpm@10.33.2 package:obsidian

Generated dist/obsidian-plugin assets inspected: manifest.json, main.js, styles.css, versions.json all present and non-empty; manifest id/version/minAppVersion are visual-notes / 0.1.0 / 1.11.4; root, plugin, and dist manifest/versions files match.

Status: ready for marketplace readiness review. No remaining blockers found.

@bobthearsonist

Copy link
Copy Markdown
Owner Author

@copilot review

Copilot AI commented May 3, 2026

Copy link
Copy Markdown
Contributor

@copilot review

Review complete. No blocking issues found.

scripts/package-obsidian-plugin.mjs

  • Validation, field checks, and drift detection are correct.
  • One minor observation: when readJson fails (missing file or malformed JSON), it pushes an "Unable to read …" error and returns {}. Downstream requireString calls on the empty object then emit cascading "must define a non-empty string" errors — noisy but harmless, since failIfInvalid() exits before any copy operations and the root-cause error is present in the output.
  • JSON.stringify drift comparison is reliable because version-bump.mjs copies files byte-for-byte with identical key order. Verified both manifests have the same key order.
  • dist/ is in .gitignore — release assets won't be committed accidentally.

version-bump.mjs — writes updated versions.json then copies both files to repo root. Ordering is correct.

plugins/obsidian-plugin/package.json — the version script stages ../../manifest.json and ../../versions.json; pnpm sets CWD to the package directory, so the relative paths resolve correctly.

Root manifest.json / versions.json — match the plugin copies exactly (verified programmatically). fundingUrl: "" is accepted by the Obsidian marketplace validator.

docs/marketplace-readiness.md — checklist and workflow accurately reflect the tooling. Remaining open items (first release, smoke test, screenshots) are correctly marked unchecked.

No changes required. Ready to merge once the three manual blockers are cleared.

bobthearsonist and others added 2 commits May 5, 2026 14:44
Add release-ready packaging validation for Obsidian assets, root marketplace metadata mirrors, and submission workflow documentation.

Refs #5

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…an-release alias

Agent-Logs-Url: https://github.com/bobthearsonist/visual-notes/sessions/263577ef-260f-4a48-8b39-804ed6e0a9f2

Co-authored-by: bobthearsonist <7150339+bobthearsonist@users.noreply.github.com>
@bobthearsonist bobthearsonist force-pushed the issue/5-marketplace-readiness branch from f947b0d to 8df29d8 Compare May 5, 2026 18:44
@bobthearsonist bobthearsonist merged commit dcb2275 into main May 5, 2026
@bobthearsonist bobthearsonist deleted the issue/5-marketplace-readiness branch May 5, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants