# Contributing to Deka DOM Elements Thank you for your interest in contributing to Deka DOM Elements (dd or DDE)! This document provides guidelines and instructions for contributing to the project. ## Table of Contents - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Development Workflow](#development-workflow) - [Commit Guidelines](#commit-guidelines) - [Pull Request Process](#pull-request-process) - [Issue Guidelines](#issue-guidelines) - [Coding Standards](#coding-standards) - [Testing](#testing) - [Documentation](#documentation) ## Code of Conduct Please be respectful and inclusive in your interactions with other contributors. We aim to foster a welcoming community where everyone feels comfortable participating. ## Getting Started 1. **Fork the repository**: - Click the "Fork" button on the GitHub repository 2. **Clone your fork**: ```bash git clone https://github.com/YOUR-USERNAME/deka-dom-el.git cd deka-dom-el ``` 3. **Set up the development environment**: ```bash npm ci ``` 4. **Add the upstream repository**: ```bash git remote add upstream https://github.com/jaandrle/deka-dom-el.git ``` ## Development Workflow 1. **Create a new branch**: ```bash git checkout -b your-feature-branch ``` Use descriptive branch names that reflect the changes you're making. 2. **Make your changes**: - Write clean, modular code - Follow the project's coding standards (see [Coding Standards](#coding-standards)) - Include relevant tests for your changes 3. ~**Run tests**:~ ```bash #npm test ``` 4. **Build the project**: ```bash npm run build #or bs/build.js ``` 5. **Preview documentation changes** (if applicable): ```bash npm run docs #or bs/docs.js ``` …see [BS folder](./bs/README.md) for more info. ## Categorizing [![git3moji](https://img.shields.io/badge/git3moji%E2%80%93v1-%E2%9A%A1%EF%B8%8F%F0%9F%90%9B%F0%9F%93%BA%F0%9F%91%AE%F0%9F%94%A4-fffad8.svg?style=flat-square)](https://robinpokorny.github.io/git3moji/) We use [git3moji](https://git3moji.netlify.app/) for commit messages, issue titles, pull request titles and in other areas. To make categorizing quick and consistent. ## Commit Guidelines We use [git3moji](https://git3moji.netlify.app/) for commit messages. This helps keep the commit history clear and consistent. ``` :emoji: Short summary of the change ``` …for example: ``` :bug: Fix signal update not triggering on nested properties :zap: Improve event delegation performance :abc: Add documentation for custom elements ``` ## Pull Request Process 1. **Push your changes**: ```bash git push origin your-feature-branch ``` 2. **Open a Pull Request**: - Go to the repository on GitHub - Click "New Pull Request" - Select your branch - Provide a clear description of your changes 3. **PR Guidelines**: - Use a clear, descriptive title with the appropriate git3moji - Reference any related issues - Explain what the changes do and why they are needed - List any dependencies that are required for the change - Include screenshots or examples if applicable 4. **Code Review**: - Address any feedback from reviewers - Make necessary changes and push to your branch - The PR will be updated automatically 5. **Merge**: - Once approved, a maintainer will merge your PR - The main branch is protected, so you cannot push directly to it ## Issue Guidelines When creating an issue, please use the appropriate template and include as much information as possible: ### Bug Reports - Use the `:bug:` emoji in the title - Clearly describe the issue - Include steps to reproduce - Mention your environment (browser, OS, etc.) - Add screenshots if applicable ### Feature Requests - Use the `:zap:` emoji in the title - Describe the feature clearly - Explain why it would be valuable - Include examples or mockups if possible ### Documentation Improvements - Use the `:abc:` emoji in the title - Identify what documentation needs improvement - Suggest specific changes or additions ## Coding Standards - Follow the existing code style in the project - Use meaningful variable and function names - Keep functions small and focused - Add comments for complex logic - Use TypeScript types appropriately ## Documentation - Update the documentation when you add or modify features - Document both API usage and underlying concepts - Use clear, concise language - Include examples where appropriate --- Thank you for contributing to Deka DOM Elements! Your efforts help make the project better for everyone.