1.8 KiB
Contribute
Thank you for considering contributing to Zonemaster GUI! This document provides guidelines for contributing to the project.
Project Overview
Zonemaster GUI is built with:
- Astro as the main framework
- Svelte for UI components
- TypeScript for type safety
Development Setup
- Clone the repository
- Install dependencies:
npm install - Start the development server:
npm run dev
Code Style
We use Prettier for code formatting with the following configuration:
- Single quotes
- 4 spaces for indentation
- No tabs
To format your code:
npx prettier --write .
Testing
We use Playwright for end-to-end testing. Tests are located in the e2e directory.
To run tests:
npm run e2e
GUI Modifications
Zonemaster GUI is designed to be cloned and customized for theming purposes. When making changes to the GUI, please be mindful of the following:
- Be careful when renaming CSS class names - Many themes may depend on these class names
- Avoid deleting, renaming, or moving template files without proper deprecation notices
- Consider backward compatibility when modifying component structures
- Document any breaking changes that might affect custom themes
While it's ultimately up to theme creators to handle conflicts when syncing with the main repository, we should minimize disruption where possible. For more information on theming, see the THEMING.md document.
Pull Request Process
- Fork the repository
- Create a feature branch
- Make your changes
- Ensure tests pass
- Submit a pull request
Code of Conduct
Please be respectful and considerate of others when contributing to this project.