Contributing to LemonUp
First off, thank you for considering contributing to LemonUp! It's people like you that make the World of Warcraft community great.
Local Development
LemonUp is built with Bun and Ink. To get started with development, you'll need Bun installed on your machine.
Setup
Clone the repository:
bashgit clone https://github.com/archcorsair/lemonup.git cd lemonupInstall dependencies:
bashbun installRun in development mode:
bashbun dev -- --devThis will launch the TUI with the
--devflag enabled, providing extra logging and faster update check intervals.
Project Structure
src/core/: Handles addon logic, database management, and API clients.src/tui/: The user interface built with React and Ink.src/cli/: Logic for the non-interactive CLI mode.
Coding Standards
- TypeScript: We use strict TypeScript. Avoid
anyat all costs. - Type Safety: Run
bun run typecheckto ensure there are no type errors. - Components: UI components in
src/tui/should be functional and follow React best practices. - Logging: Use the internal
loggerfor meaningful events. Avoidconsole.log. - Testing: Run
bun run testto ensure everything is working correctly before submitting a PR.
Pull Request Process
- Check Issues: See if there's already an issue for what you want to work on. If not, open one!
- Branch: Create a feature branch from
main. - Commits: Use conventional commits.
- Docs: If you're adding a feature, update the documentation in the
lemonup.orgrepository as well. - PR: Submit your PR to the
mainbranch. Provide a clear description of your changes.
Development Tools
We use Biome for formatting and linting.
- Formatter/Linter: Run
bun run lint:fixto automatically fix formatting and linting issues. - VS Code Extension: We recommend installing the Biome VS Code extension for real-time feedback.
Need Help?
If you have questions or need guidance, feel free to open a discussion on GitHub or reach out to the maintainers.
