-
Notifications
You must be signed in to change notification settings - Fork 1
Development Workflow
Christopher Robison edited this page Dec 12, 2025
·
1 revision
Guide for developers working on LARC itself or building applications with LARC.
- Node.js >= 18.0.0
- Git
# Clone the repository
git clone https://github.com/larcjs/larc.git
cd larc
# Install all dependencies (npm workspaces)
npm installlarc/
├── packages/ → Published packages (npm workspaces)
│ ├── core/ → @larcjs/core
│ ├── components/ → @larcjs/ui
│ ├── core-lite/ → @larcjs/core-lite (9KB)
│ ├── core-routing/ → @larcjs/core-routing
│ ├── core-debug/ → @larcjs/core-debug
│ ├── core-types/ → TypeScript types
│ ├── components-types/ → TypeScript types
│ ├── apps/ → Demo applications
│ ├── examples/ → Code examples
│ └── devtools/ → Chrome DevTools extension
├── cli/ → create-larc-app
├── react-adapter/ → React integration
├── registry/ → Component registry
├── vscode-extension/ → VS Code extension
├── docs/ → Documentation & guides
└── playground/ → Interactive component explorer
# Work on core
cd packages/core
npm install
npm run build
npm test
# Work on components
cd packages/ui
npm install
npm run build
npm test# Work on core-lite
cd packages/core-lite
npm run build:minify
# Work on types
cd packages/core-types
# Edit type definitions...Run commands across all workspaces:
# Build all packages
npm run build
# Test all packages
npm run test
# Run specific workspace
npm run build --workspace @larcjs/core
npm run test --workspace @larcjs/ui
npm run dev --workspace @larcjs/site# Test everything
npm test
# Test specific packages
npm run test:core
npm run test:components
# Test with coverage
cd packages/core
npm run test:coverageTests use Playwright for cross-browser testing:
# Run in all browsers
npx playwright test
# Run in specific browser
npx playwright test --project=chromium
npx playwright test --project=firefox
npx playwright test --project=webkitnpm run buildcd packages/core-lite
npm run build:minify# Build and serve docs
npm run dev --workspace @larcjs/site
# Or manually
cd site
npm run build
npm run serve# Serve examples locally
cd packages/examples
python3 -m http.server 8888
# Visit http://localhost:8888Packages are published to npm from the monorepo:
# Publish a specific package
cd packages/core-lite
npm publish
# Publish core or components
cd packages/core
npm publish- All tests passing
- Version bumped in package.json
- CHANGELOG.md updated
- No critical npm audit issues
- Build succeeds
npm run lintThe project uses consistent formatting. Format before committing.
# Check TypeScript types
npm run typecheck# Create feature branch
git checkout -b feature/my-feature
# Make changes
# ...
# Commit with clear message
git add .
git commit -m "feat: add new feature"
# Push and create PR
git push origin feature/my-featureFollow conventional commits:
-
feat:- New feature -
fix:- Bug fix -
docs:- Documentation -
refactor:- Code refactoring -
test:- Tests -
chore:- Maintenance
Repository & Code:
- All tests passing (261+ core tests)
- No critical npm audit issues
- Latest versions published to npm
- GitHub Actions workflows all green
Documentation:
- README.md up to date
- API documentation complete
- CHANGELOG.md updated
- All links verified working
Examples & Demos:
- Playground working
- All examples tested
- Mobile responsiveness verified
Final Testing:
- Test on Chrome, Firefox, Safari, Edge
- Test on mobile (iOS Safari, Chrome Android)
- Clone fresh repo and follow Quick Start
- Install from npm and verify it works
Performance Check:
- Playground loads in <3 seconds
- No console errors on any page
- No 404s in network tab
- All services up (GitHub, npm, CDN)
- Team members available
- Notifications enabled for issues
- FAQ answers ready
<pan-bus debug="true"></pan-bus><pan-inspector></pan-inspector>document.dispatchEvent(new CustomEvent('pan:sys.stats', {
bubbles: true,
composed: true
}));- Fork the repository
- Clone your fork
-
Install dependencies:
npm install - Create feature branch
- Make changes and add tests
-
Test:
npm test - Submit pull request
- PRs require at least one approval
- CI must pass
- Tests must cover new code
- Documentation must be updated
- API-Reference - Full API documentation
- Troubleshooting - Common issues
- GitHub Issues - Report bugs
- GitHub Discussions - Ask questions
| Script | Description |
|---|---|
npm run build |
Build all workspace packages |
npm run test |
Run tests across all packages |
npm run dev |
Start development mode |
npm run lint |
Lint all packages |
npm run serve |
Serve examples on port 8000 |
npm run build:core |
Build only @larcjs/core |
npm run build:components |
Build only @larcjs/ui |
npm run test:core |
Test only @larcjs/core |
npm run dev:site |
Run documentation site |