300c705033
Renames the plugin from headlamp-rook-ceph-plugin to headlamp-rook-plugin across all files: package.json, package-lock.json, artifacthub-pkg.yml, release workflow, README, CHANGELOG, CLAUDE.md, CONTRIBUTING, SECURITY, and src/index.tsx. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
35 lines
1.0 KiB
Markdown
35 lines
1.0 KiB
Markdown
# Contributing
|
|
|
|
Contributions are welcome! Please open an issue before submitting large PRs.
|
|
|
|
## Development Setup
|
|
|
|
```bash
|
|
git clone https://github.com/cpfarhood/headlamp-rook-plugin.git
|
|
cd headlamp-rook-plugin
|
|
npm install
|
|
npm start # hot-reload dev server
|
|
```
|
|
|
|
## Before Submitting
|
|
|
|
```bash
|
|
npm run tsc # must exit 0
|
|
npm run lint # must exit 0
|
|
npm test # all tests must pass
|
|
npm run build # must succeed
|
|
```
|
|
|
|
## Coding Conventions
|
|
|
|
- Functional React components only — no class components
|
|
- TypeScript strict mode: no `any`, use `unknown` + type guards at API boundaries
|
|
- All imports from `@kinvolk/headlamp-plugin/lib` and `@kinvolk/headlamp-plugin/lib/CommonComponents`
|
|
- No additional UI libraries (no direct MUI imports, no Ant Design, etc.)
|
|
- Context provider (`RookCephDataProvider`) wraps each route component in `index.tsx`
|
|
- Tests: vitest + @testing-library/react, mock with `vi.mock('@kinvolk/headlamp-plugin/lib', ...)`
|
|
|
|
## License
|
|
|
|
By contributing, you agree your contributions will be licensed under Apache-2.0.
|