Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Code of Conduct

This project adopts the [Contributor Covenant, version 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) as its Code of Conduct.

By participating in this project, in any of its issues, pull requests, discussions, Discord channels, or other community spaces, you agree to abide by its terms.

## Reporting

Report instances of abusive, harassing, or otherwise unacceptable behavior to the project maintainers at **support@layerlens.ai** with the subject line "Code of Conduct report." All reports are reviewed and investigated promptly and fairly. The privacy and safety of the reporter is a priority.

For the full text, see [contributor-covenant.org/version/2/1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).

For translations, see the [official translations index](https://www.contributor-covenant.org/translations/).
80 changes: 80 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Contributing to stratix-python

Thanks for your interest in contributing. The fastest path to a merged PR is to open an issue first so we can align on direction before code.

## Before you start

- Browse [open issues](https://github.com/LayerLens/stratix-python/issues), especially anything tagged `good first issue`.
- For non-trivial changes, [open an issue](https://github.com/LayerLens/stratix-python/issues/new) describing the problem and your proposed approach. We'll respond within a few business days.
- For questions and design discussion, join us in [Discord](https://discord.gg/layerlens).

## Repo layout

- `src/layerlens/` is the SDK source (clients, resources, CLI).
- `tests/` is the test suite (unit, integration, sample E2E).
- `samples/` holds runnable code samples organized by topic: `core`, `cicd`, `cli`, `mcp`, `integrations`, `industry`, `modalities`, `claude-code`, `cowork`, `copilotkit`, `openclaw`, `data`.
- `docs/` is the source for the [GitBook docs site](https://layerlens.gitbook.io/stratix-python-sdk).
- `scripts/` holds developer scripts (`bootstrap`, `test`, `lint`, `format`, `test_coverage`).
- `pyproject.toml` is the Python project config and tool settings.
- `requirements.lock` and `requirements-dev.lock` are the pinned dependencies.
- `.husky/` holds Git hooks that run on commit (lint-staged formats and lints staged Python files).

## Local setup

The project uses [Rye](https://rye.astral.sh/) to manage Python and dependencies. The bootstrap script sets everything up:

```bash
git clone https://github.com/LayerLens/stratix-python.git
cd stratix-python
./scripts/bootstrap
source .venv/bin/activate
```

If you would rather use plain pip, ensure the Python version in `.python-version` is active, then:

```bash
python -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.lock
pip install -e .
```

## Dev loop

```bash
./scripts/test # run the test suite
./scripts/lint # run the linter
./scripts/format # format and auto-fix
```

A pre-commit hook runs `./scripts/format` and `./scripts/lint` against staged Python files automatically.

## Required CI checks

Every PR runs these workflows. They must pass before review:

- [`run-tests.yaml`](https://github.com/LayerLens/stratix-python/actions/workflows/run-tests.yaml) is the full test suite.
- [`check-format.yaml`](https://github.com/LayerLens/stratix-python/actions/workflows/check-format.yaml) checks formatting.
- [`check-lint.yaml`](https://github.com/LayerLens/stratix-python/actions/workflows/check-lint.yaml) runs the linter.

Run them locally before pushing.

## Pull request guidelines

- One logical change per PR. Smaller PRs merge faster.
- Reference the issue your PR addresses in the description.
- Include a runnable sample under `samples/` when adding a new SDK capability.
- Update `docs/` when changing public API surface.
- Add or update tests under `tests/` when changing behavior.
- Make sure all CI checks are green before requesting review.

## Code of conduct

This project follows the [Code of Conduct](./CODE_OF_CONDUCT.md). By participating, you agree to abide by it.

## Reporting security issues

Do not file a public issue for security vulnerabilities. See [SECURITY.md](./SECURITY.md) for the private disclosure process.

## License

By contributing, you agree your contribution is licensed under the [Apache License 2.0](./LICENSE).
Loading
Loading