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
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Initial open-source release under Apache-2.0 license
- **Core SDK**
- `enable()` / `disable()` bootstrap functions for SDK initialization
- `@botanu_use_case` decorator with UUIDv7 run_id generation
- `@botanu_workflow` decorator with UUIDv7 run_id generation
- `@botanu_outcome` decorator for sub-function outcome tracking
- `emit_outcome()` helper for recording business outcomes
- `set_business_context()` for cost attribution dimensions
Expand Down
21 changes: 19 additions & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# Botanu Code of Conduct
# Code of Conduct

In the interest of fostering an open and welcoming environment, we as contributors and maintainers agree to abide by the Code of Conduct available at https://lfprojects.org/policies/code-of-conduct/
All participants in the Botanu project — including contributors, maintainers,
and community members — are expected to treat each other with respect and
professionalism.

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

The Code of Conduct applies to all project spaces, including GitHub repositories,
issue trackers, discussion forums, and events.

## Reporting

If you experience or witness unacceptable behaviour, please report it by
contacting the project maintainers listed in [MAINTAINERS.md](./MAINTAINERS.md).

All reports will be reviewed and investigated promptly and fairly. Maintainers
are obligated to respect the privacy and security of the reporter.
55 changes: 42 additions & 13 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,28 @@
# Contributing to Botanu SDK

Thank you for your interest in contributing to Botanu SDK! This document provides guidelines and instructions for contributing.
We welcome contributions of all kinds — bug fixes, new features, documentation
improvements, and more. This guide explains how to get started.

## Developer Certificate of Origin (DCO)

This project requires all commits to be signed off in accordance with the [Developer Certificate of Origin (DCO)](https://developercertificate.org/). This certifies that you have the right to submit your contribution under the project's open source license.
This project requires all commits to be signed off in accordance with the
[Developer Certificate of Origin (DCO)](https://developercertificate.org/).
The DCO certifies that you have the right to submit your contribution under the
project's open-source license.

To sign off your commits, add the `-s` flag to your git commit command:
To sign off your commits, add the `-s` flag:

```bash
git commit -s -m "Your commit message"
```

This will add a `Signed-off-by` line to your commit message:
This adds a `Signed-off-by` line to your commit message:

```
Signed-off-by: Your Name <your.email@example.com>
```

If you've already made commits without signing off, you can amend them:
If you have already made commits without signing off, you can amend them:

```bash
# Amend the last commit
Expand All @@ -43,12 +47,17 @@ git rebase --signoff HEAD~N # where N is the number of commits
pip install -e ".[dev]"
```

3. Run tests:
3. Install pre-commit hooks:
```bash
pre-commit install
```

4. Run tests:
```bash
pytest tests/
```

4. Run linting and type checks:
5. Run linting and type checks:
```bash
ruff check src/ tests/
ruff format src/ tests/
Expand All @@ -57,11 +66,26 @@ git rebase --signoff HEAD~N # where N is the number of commits

## Pull Request Process

1. Fork the repository and create a feature branch
1. Fork the repository and create a feature branch from `main`
2. Make your changes with appropriate tests
3. Ensure all tests pass and linting is clean
4. Sign off all commits with DCO
5. Submit a pull request with a clear description
5. Submit a pull request with a clear description of the change

Pull requests require approval from at least one [maintainer](./MAINTAINERS.md)
before merging.

## Finding Work

- Look for issues labelled
[`good first issue`](https://github.com/botanu-ai/botanu-sdk-python/labels/good%20first%20issue)
if you are new to the project
- Issues labelled
[`help wanted`](https://github.com/botanu-ai/botanu-sdk-python/labels/help%20wanted)
are ready for community contributions
- Join the discussion on
[GitHub Discussions](https://github.com/botanu-ai/botanu-sdk-python/discussions)
to ask questions or propose ideas

## Code Style

Expand All @@ -72,16 +96,21 @@ git rebase --signoff HEAD~N # where N is the number of commits

## Reporting Issues

Please use GitHub Issues to report bugs or request features. Include:
Please use [GitHub Issues](https://github.com/botanu-ai/botanu-sdk-python/issues)
to report bugs or request features. Include:

- A clear description of the issue
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Expected versus actual behaviour
- Python version and OS

## Code of Conduct

This project follows the [LF Projects Code of Conduct](https://lfprojects.org/policies/code-of-conduct/).
This project follows the
[LF Projects Code of Conduct](https://lfprojects.org/policies/code-of-conduct/).
See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).

## License

By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
By contributing, you agree that your contributions will be licensed under the
[Apache License 2.0](./LICENSE).
54 changes: 43 additions & 11 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,71 @@
# Governance

This project follows the governance model of the [LF AI & Data Foundation](https://lfaidata.foundation/).
This document describes the governance model for the Botanu SDK project.

## Roles

### Users

Anyone who uses the SDK. Users are encouraged to participate by filing issues,
asking questions on [GitHub Discussions](https://github.com/botanu-ai/botanu-sdk-python/discussions),
and providing feedback.

### Contributors

Anyone who contributes to the project — opening issues, submitting pull requests,
improving documentation, or participating in discussions. All contributions
require [DCO sign-off](./CONTRIBUTING.md#developer-certificate-of-origin-dco).

### Maintainers

Maintainers are responsible for:

- Reviewing and merging pull requests
- Triaging issues
- Releasing new versions
- Ensuring project quality and direction

Current maintainers are listed in [MAINTAINERS.md](./MAINTAINERS.md).

### Contributors
## Becoming a Maintainer

Anyone can contribute by:
- Opening issues
- Submitting pull requests
- Participating in discussions
- Improving documentation
Maintainers are contributors who have demonstrated:

See [CONTRIBUTING.md](./CONTRIBUTING.md) for contribution guidelines.
- Sustained, high-quality contributions over time
- Deep understanding of the codebase and project goals
- Commitment to the community and the Code of Conduct

New maintainers are nominated by existing maintainers and approved by consensus.

## Decision Making

- Technical decisions are made through pull request reviews
- Day-to-day technical decisions are made through pull request reviews
- Significant changes require approval from at least one maintainer
- Disputes are resolved by maintainer consensus
- Architectural or breaking changes should be discussed in a GitHub issue or
discussion before implementation
- Disputes are resolved by maintainer consensus; if consensus cannot be reached,
the lead maintainer has final say

## Scope

### In Scope

- The Botanu Python SDK (`botanu` PyPI package)
- Documentation in the `docs/` directory
- CI/CD workflows and release automation
- Integration guides for OpenTelemetry Collector

### Out of Scope

- The Botanu Collector (separate repository)
- The Botanu Cost Engine (separate repository)
- The Botanu UI (separate repository)
- Vendor-specific backend integrations

## Code of Conduct

All participants must follow the [Code of Conduct](./CODE_OF_CONDUCT.md).

## License

This project is licensed under Apache-2.0. See [LICENSE](./LICENSE).
This project is licensed under [Apache-2.0](./LICENSE).
Loading
Loading