e0a5f57793
Vendor the rebranded BoosAPI Desktop client (Tauri + Vue) into metapi as a monorepo subdirectory under desktop/. Source only — node_modules, dist, Cargo target and the upstream .git history are excluded. desktop/ keeps its own independent Cargo workspace (desktop/src-tauri with crates/*); it is not part of the backend boosapi crate, so a `cargo check` at the metapi root still compiles only the backend. Build the desktop app from desktop/src-tauri per desktop/README.md. Note: app icons are still placeholder assets pending the final BoosAPI logo. The updater signing keys live outside the repo and are not included.
2.7 KiB
2.7 KiB
Contributing to markstream-vue
Thanks for helping improve the project! This guide keeps contributions fast and consistent.
Quick start
- Fork and clone the repo.
- Install deps with
pnpm install(repo usespnpm@10.x). - Run the playground while you work:
pnpm dev(orpnpm playfor the alias). - Make changes under
src/(library),packages/(parser), orplayground/(demo).
Checks to run
pnpm lint— ESLint (Vue + TS).pnpm typecheck— vue-tsc.pnpm test— Vitest suite; usepnpm test:updateto refresh snapshots.pnpm build— library + CSS build (ensures workers/CSS are emitted).
Pull requests
- Follow Conventional Commits (
feat:,fix:,chore:, etc.). - Add/extend tests for parser changes or rendering behaviors when possible.
- Include screenshots/GIFs for UI-visible changes (playground/demo).
- Note any prop/API changes in the PR description; update README or docs if needed.
- Be kind and follow the Code of Conduct.
Issues
- Use the provided issue templates for bugs/feature requests.
- For rendering bugs, the interactive test page helps generate a shareable repro: https://markstream-vue.simonhe.me/test
Code style
- Vue 3 + TypeScript-first, 2-space indent, LF endings (see
.editorconfig). - Components in
src/componentsuse PascalCase directories/files; utils are camel/kebab as existing.
Releases & tags (monorepo)
This repository publishes multiple packages (markstream-vue, markstream-vue2, markstream-react, stream-markdown-parser). To keep tags unambiguous, we use namespaced tags:
markstream-vue@<version>markstream-vue2@<version>markstream-react@<version>stream-markdown-parser@<version>
Avoid creating bare v<version> tags (they mix different package versions in a monorepo).
Stable vs Nightly
- Stable: tags are semver-based (
<pkg>@<version>) and should match npm releases. - Nightly: tags are commit snapshots (
<pkg>@nightly-YYYYMMDD-<sha>) and are published as GitHub Pre-releases.
Nightly tags can be dependency-driven: when stream-markdown-parser changes, nightly tags are also created for markstream-vue, markstream-vue2, and markstream-react so consumers can test the whole stack against the latest parser.
Common commands
- Tag current version of a package:
pnpm tag:vue3/pnpm tag:vue2/pnpm tag:react/pnpm tag:parser - Tag + push to remote:
pnpm tag:vue3:push/pnpm tag:vue2:push/pnpm tag:react:push/pnpm tag:parser:push - Backfill namespaced tags from existing legacy
v*tags (dry run):pnpm tag:backfill:dry - Apply backfill locally:
pnpm tag:backfill(add-- --pushto also push tags)