chore(release): MIT license + CONTRIBUTING/SECURITY/CODE_OF_CONDUCT + README badges (S12)
This commit is contained in:
parent
0c42cebf90
commit
42f320bed1
6 changed files with 210 additions and 0 deletions
66
CONTRIBUTING.md
Normal file
66
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Contributing to portfolio-optimiser-claude
|
||||
|
||||
Thank you for your interest in contributing! This document provides guidelines and instructions
|
||||
for contributing.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|
||||
|
||||
## How to Contribute
|
||||
|
||||
### Reporting Issues
|
||||
|
||||
- Check existing issues before creating a new one
|
||||
- Provide clear reproduction steps
|
||||
- Include relevant environment details (OS, Python version)
|
||||
|
||||
### Submitting Changes
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
|
||||
3. Make your changes following the conventions below
|
||||
4. Run the test, lint, and type checks (see Development Setup) and ensure they pass
|
||||
5. Commit your changes using [Conventional Commits](https://www.conventionalcommits.org/)
|
||||
(`type(scope): description`)
|
||||
6. Push to your branch and open a Pull Request
|
||||
|
||||
### Pull Request Guidelines
|
||||
|
||||
- Follow the existing code style (`ruff` enforced)
|
||||
- Type hints everywhere; `mypy`-clean where possible
|
||||
- Include tests for new functionality — this project uses **load-bearing tests**: a test that
|
||||
covers a seam must fail when that seam is detached, not merely pass while wired
|
||||
- The **deterministic validator is mandatory and blocking** — never make it an optional plugin
|
||||
- Keep PRs focused on a single change
|
||||
- Update documentation as needed
|
||||
|
||||
## Development Setup
|
||||
|
||||
Requires Python ≥ 3.10 and [`uv`](https://docs.astral.sh/uv/).
|
||||
|
||||
```bash
|
||||
# Clone your fork
|
||||
git clone https://git.fromaitochitta.com/open/portfolio-optimiser-claude.git
|
||||
cd portfolio-optimiser-claude
|
||||
|
||||
# Install dependencies
|
||||
uv sync
|
||||
|
||||
# Run tests (offline, no API key required)
|
||||
uv run pytest
|
||||
|
||||
# Lint and format
|
||||
uv run ruff check .
|
||||
uv run ruff format --check .
|
||||
|
||||
# Type-check (strict)
|
||||
uv run mypy src
|
||||
```
|
||||
|
||||
Tests run offline without an API key; live runs use the Claude API — keep `ANTHROPIC_API_KEY` in
|
||||
your environment, never commit it.
|
||||
|
||||
## Questions?
|
||||
|
||||
Feel free to open an issue for any questions about contributing.
|
||||
Loading…
Add table
Add a link
Reference in a new issue