# Contributing to Create Dynamic App

Thank you for your interest in contributing to Create Dynamic App! This document provides guidelines for contributing to the project.

## Commit Message Format

We use semantic-release for automated version management and changelog generation. Please follow these commit message conventions:

### Commit Message Structure

```
<type>(<scope>): <description>

[optional body]

[optional footer(s)]
```

### Types

- `feat`: A new feature
- `fix`: A bug fix
- `docs`: Documentation only changes
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- `refactor`: A code change that neither fixes a bug nor adds a feature
- `perf`: A code change that improves performance
- `test`: Adding missing tests or correcting existing tests
- `chore`: Changes to the build process or auxiliary tools and libraries such as documentation generation

### Examples

```
feat(react): add support for new blockchain network
fix(next): resolve issue with environment variables
docs: update installation instructions
chore(deps): update dependencies
```

## Development Workflow

1. Create a new feature branch from main:

   ```bash
   git checkout -b feature/your-feature-name
   ```

2. Make your changes

3. Run tests: `bun test`

4. Run linting: `bun run lint`

5. Commit your changes following the commit message format

6. Push your branch and create a pull request

7. Once your PR is approved and merged to main, semantic-release will automatically:
   - Analyze your commit messages
   - Determine the version bump
   - Generate a changelog
   - Create a GitHub release
   - Publish to npm

## Release Process

We follow a continuous delivery approach:

1. All changes are made in feature branches
2. Changes are merged to main through pull requests
3. Each merge to main automatically triggers a release if there are relevant changes
4. The release process is fully automated and includes:
   - Version bumping based on commit messages
   - Changelog generation
   - GitHub release creation
   - NPM package publishing

### Version Bumping Rules

- `feat` commits trigger a minor version bump
- `fix` commits trigger a patch version bump
- Breaking changes (indicated by `!` in the commit message) trigger a major version bump
- Other commit types don't trigger a version bump

## Questions?

If you have any questions about contributing, please open an issue or reach out to the maintainers.
