Files
DynamoDNS/CONTRIBUTING.md
alphaeusmote 1a2892a82a Set up the project with initial files and improve development experience
Add .gitignore, .env.example, CONTRIBUTING.md, LICENSE, a preview image, and roadmap to the project.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9111ef36-26c8-4085-84ca-a35dc1fec1b5
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7083d608-d6d3-4a6a-9a27-6286c5109627/910f6160-6716-488e-83e6-61256595c269.jpg
2025-05-24 02:18:30 +00:00

108 lines
3.8 KiB
Markdown

# Contributing to DynamoDNS
Thank you for your interest in contributing to DynamoDNS! This document provides guidelines and instructions for contributing to this project.
## Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct. Please read it to understand what behavior will and will not be tolerated.
## How Can I Contribute?
### Reporting Bugs
This section guides you through submitting a bug report. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
- Use the issue tracker to report bugs
- Before creating a new issue, check if the problem has already been reported
- When you create a new issue, include as many details as possible by filling out the provided template
### Suggesting Enhancements
This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality.
- Use the issue tracker with the enhancement label
- Provide a clear and detailed explanation of the feature you want
- Explain why this enhancement would be useful to most DynamoDNS users
### Your First Code Contribution
Unsure where to begin contributing? Look for issues labeled:
- `good first issue` - issues which are good for newcomers
- `help wanted` - issues which need extra attention
- `documentation` - improvements or additions to documentation
### Pull Requests
- Fill in the required template
- Follow the coding style and standards
- Include appropriate test cases
- Update documentation for any new features
- End all files with a newline
- Place requires/imports in the following order:
- Built-in Node Modules (e.g., 'path')
- External Modules (e.g., 'express')
- Internal Modules (e.g., './utils')
## Development Setup
To set up your development environment:
1. Fork the repository
2. Clone your fork locally
3. Install dependencies: `npm install`
4. Create a `.env` file with development settings
5. Run `npm run dev` to start the development server
See the [Development Guide](docs/development-guide.md) for more detailed instructions.
## Coding Guidelines
### JavaScript/TypeScript Style Guide
- We use TypeScript for type safety
- Follow the ESLint configuration included in the project
- Use Prettier for code formatting
- Write descriptive variable and function names
- Comment your code where necessary, especially complex logic
### Git Commit Messages
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests liberally after the first line
- Consider starting the commit message with an applicable emoji:
-`:sparkles:` when adding a new feature
- 🐛 `:bug:` when fixing a bug
- 📚 `:books:` when adding or updating documentation
- ♻️ `:recycle:` when refactoring code
- 🧪 `:test_tube:` when adding tests
- 🎨 `:art:` when improving the format/structure of the code
### Testing Guidelines
- Write tests for all new features and bug fixes
- Aim for high test coverage
- Test edge cases and error conditions
- Run the full test suite before submitting a pull request
## Pull Request Process
1. Ensure all tests pass
2. Update the documentation with details of changes
3. The pull request will be merged once it receives approval from maintainers
## Release Process
DynamoDNS follows semantic versioning. The release process is:
1. New features in master branch are bundled for a future release
2. Release candidates undergo additional testing
3. Final releases are tagged and published
## Questions?
If you have any questions, feel free to create an issue with the "question" label or contact the maintainers directly.
Thank you for contributing to DynamoDNS!