Thanks for your interest in contributing! This guide covers the workflow and conventions. For build details and architecture, see DEVELOPER.md; for the deep webview/architecture walkthrough, see extension/docs/DEVELOPER-GUIDE.md.
git clone https://github.com/ls1intum/artemis-extension.git
cd artemis-extension/extension
npm installThen open the repository in VS Code and press F5 to launch the Extension Development Host with watch mode. Test your changes in the new window.
- Branch off
dev:git checkout -b feature/your-feature-name. - Make changes in
extension/src/(extension host, React webview, or shared contracts; see DEVELOPER.md). - Run it with
F5and verify in the Extension Development Host. - Verify quality before committing:
npm run check-types # type-check npm run lint # ESLint npm run test:all # unit + React tests
- Open a Pull Request against
devwith a clear description.
All commands run from the extension/ directory.
- TypeScript: use strict-mode features, define proper types (avoid
any), and add JSDoc for public APIs. - Styling: use CSS Modules scoped to components and VS Code theme tokens (CSS variables); test in both light and dark themes.
- Naming: meaningful, consistent with the surrounding code.
- Match the existing style - it is enforced by ESLint.
Use Conventional Commits:
feat: add WebSocket reconnection logicfix: resolve authentication token refresh issuedocs: update installation instructionsrefactor: simplify view routing logic
npm run test:unit- extension host tests (vscode-test).npm run test:react- React component tests (vitest).npm run test:all- both.
Add tests for new behavior and fixes. Do not skip or disable failing tests.
Keep the docs in sync with your change:
- User-facing change (feature, command, setting, behavior) → update README.md (this is also the store listing).
- Build, scripts, architecture, or workflow change → update DEVELOPER.md.
extension/README.md and extension/CHANGELOG.md are generated from the repo-root copies at package time - never edit them by hand.
- Use your real name and an authentic profile.
- Be respectful and inclusive.
- Follow GitHub's Acceptable Use Policies and the Open Source Guides.
By contributing, you agree that your contributions will be licensed under the MIT License.