Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactoring for monorepo #746

Closed

Conversation

easylogic
Copy link
Contributor

@easylogic easylogic commented Feb 1, 2024

What this PR does / why we need it?

  • Change yorkie-js-sdk to monorepo structure.
  • Change the monorepo structure to use only pnpm.

Any background context you want to provide?

  • install
git clone https://github.com/yorkie-team/yorkie-js-sdk
cd yorkie-js-sdk
pnpm install
pnpm xxxx dev   # dev server open in `examples` directory
  • workspace

The workspace is divided into two types: examples and packages.

examples/                     <-- web test page 
- nextjs-scheduler
- profile-stack
- react-tldraw
- react-todomvc
- simultaneous-cursors
- vanilla-codemirror6
- vanilla-quill
- vuejs-kanban
packages
- create-yorkie-app
- devtools
- sdk                                  <-- yorkie-js-sdk package
  • The directory structure and command system change as you use monorepo.
# old path 

src/yorkie.ts 
# new path 
packages/sdk/src/yorkie.ts 
  • new command line
# old 
npm run build 
npm run build:proto 

# new 
pnpm sdk build
pnpm sdk build:proto 
  • support examples project cli
pnpm react-tldraw dev
Command Table
packages
  • pnpm sdk build
    • depends on api-extractor
    • depends on prune
  • pnpm sdk build:proto
  • pnpm sdk build:docs
  • pnpm sdk build:ghpages
    • It depends on docs directory as build:docs results
  • pnpm sdk api-report
  • pnpm sdk run prune
    • It must check typescript version validation
  • pnpm sdk predoc
  • pnpm sdk dev
  • pnpm sdk test
  • pnpm sdk test:ci
  • pnpm sdk test:yorkie.dev
  • pnpm sdk test:watch
  • pnpm sdk lint
  • pnpm sdk tsc <- only type check
  • pnpm sdk prepare
  • pnpm sdk benchmark
  • pnpm sdk publish:prepare
  • pnpm sdk profile:bundle
examples
  • pnpm nextjs-scheduler dev
  • pnpm profile-stack dev
  • pnpm react-tldraw dev
  • pnpm react-todomvc dev
  • pnpm simultaneous-cursors dev
  • pnpm vanilla-codemirror6 dev
  • pnpm vanilla-quill dev
  • pnpm vuejs-kanban dev

Specs

  • update typescript version -> v5.3.3
  • update vitest version -> 1.2.2
  • update vite version -> 5.0.12
  • change api documentation
    • using typedoc-plugin-markdown to make markdown format
    • 스크린샷 2024-02-06 오후 4 25 25

What are the relevant tickets?

Fixes #725

Checklist

  • Added relevant tests or not required
  • Didn't break anything

@hackerwins
Copy link
Member

It would be better to start working in another PR.

@hackerwins hackerwins closed this Mar 19, 2024
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.

Transition to Monorepo using Turborepo, PNPM, Changesets, and Vite
2 participants