Current section
Files
Jump to
Current section
Files
CONTRIBUTING.md
# Contributing to Nebulex
Thanks for your interest in contributing.
This guide defines the expected contribution workflow for the `nebulex` core
repository.
## Scope
This repository contains Nebulex core. Adapter projects (for example
`nebulex_local`, `nebulex_distributed`) are maintained in sibling repositories
and have their own contribution rules.
## Before You Start
1. Read `README.md`.
2. Read the latest section of `CHANGELOG.md`.
3. Read `usage-rules/workflow.md` (source of coding/review conventions used in
this repo).
## Issues
Use the issue tracker for bug reports and feature discussions:
- https://github.com/elixir-nebulex/nebulex/issues
When opening a bug report, include:
- Elixir and OTP versions
- Nebulex version/branch
- Minimal reproduction steps
- Expected vs actual behavior
## Feature Requests
Feature proposals are welcome.
For non-trivial features, open an issue first before implementing code so
scope and design can be aligned early.
When proposing a feature, include:
- Problem statement.
- Real-world use case.
- Proposed API/behavior.
- Alternatives considered.
## Pull Requests
Open pull requests at:
- https://github.com/elixir-nebulex/nebulex/pulls
### PR Expectations
1. Keep changes focused and avoid unrelated commits.
2. Add or update tests with code changes.
3. Update documentation when behavior changes.
4. Do not update CHANGELOG.md directly; include release-note context in the PR
description for maintainers.
5. Reference related issues (for example, `Closes #123`).
### Validation
Run targeted checks during development and run the full CI command before
requesting review:
```bash
# quick targeted check
mix test path/to/changed_test.exs
# full validation
mix test.ci
```
## Commit Message Convention
Commit messages must follow
[Conventional Commits](https://www.conventionalcommits.org/):
```text
type(scope): short summary
```
Examples:
- `feat(cache): add runtime option validation for ttl`
- `fix(decorators): handle nested context pop safely`
- `docs(workflow): add contribution and review checklist`
## Documentation Conventions
For `@doc`, `@moduledoc`, and `@typedoc`, keep the first paragraph short and
summary-oriented. Add examples when possible, ideally doctest-friendly.
## License
By submitting a contribution, you agree that your work is licensed under the
project's MIT license.