Development
Contributing Guide
How to contribute to the IINA Plugin Bookmarks project
Contributing Guide
Thank you for your interest in contributing to IINA Plugin Bookmarks! This guide will help you get started.
Getting Started
Prerequisites
- Node.js (v22 or higher)
- pnpm (v10 or higher)
- Git
- IINA media player (for testing)
- TypeScript knowledge (recommended)
Development Setup
Fork and Clone
git clone https://github.com/YOUR_USERNAME/iina-plugin-bookmarks.git
cd iina-plugin-bookmarksInstall Dependencies
pnpm installBuild and Test
make build
make testDevelopment Workflow
Build Commands
make build # TypeScript compile + Parcel UI build
make test # Run test suite with Vitest
make dev # Start dev servers for sidebar/overlay/window
make release # Full production pipelineCommit Guidelines
We follow Conventional Commits:
feat: add bookmark export functionality
fix: resolve metadata detection for edge cases
docs: update installation instructions
test: add unit tests for bookmark managerThe project uses Husky v9 pre-commit hooks with lint-staged to enforce code quality. Your commits will automatically be linted and formatted before being accepted.
Code Standards
- Use strict TypeScript settings
- Add JSDoc comments for public APIs
- Follow ESLint 9 flat config and Prettier 3.x configurations
- Maintain 80%+ test coverage
Testing
Write comprehensive tests using Vitest:
describe('BookmarkManager', () => {
it('should create a new bookmark', async () => {
await manager.addBookmark('Test Movie', 120);
expect(manager.getBookmarks()).toHaveLength(1);
});
});Pull Request Process
- Create feature branch from
main - Make changes with tests
- Update documentation if needed
- Submit PR with clear description
- Address review feedback
For major changes, please open an issue for discussion first.
Community Guidelines
- Be respectful and inclusive
- Provide constructive feedback
- Help others learn and grow
- Follow our Code of Conduct
Thank you for contributing!