Contributing & Issue Reporting
Relevant source files
The following files were used as context for generating this wiki page:
SeaStreamer is an open-source real-time stream processing toolkit maintained by the SeaQL organization. The project encourages community participation through code contributions, bug reports, and feature requests to help build the future of Rust's streaming ecosystem.
The project follows a dual-licensing model (MIT and Apache 2.0). Any contribution submitted for inclusion in the project is intentionally dual-licensed under these terms unless explicitly stated otherwise.
Sources: README_MORE.md:1-12, README.md:374-385
Issue Reporting Process
The project provides structured templates for reporting issues to ensure developers have sufficient context to address them. There are two primary categories for reporting: Bug Reports and Feature Requests.
Bug Reporting
When reporting a bug, contributors are required to provide specific technical details to facilitate reproduction. The required information includes:
- Description: A clear and concise description of the bug.
- Reproduction: Steps to reproduce the behavior, including code snippets or sample data if possible.
- Expected Behavior: A description of what was expected to happen.
- Environment: OS version and Rust version (
rustc --version). - Additional Context: Any other relevant logs or screenshots.
Sources: .github/ISSUE_TEMPLATE/bug-report.md:1-24
Feature Requests
For proposing new functionality, contributors should outline the logic and necessity of the change:
- Problem Statement: Describe the problem being solved or the use case.
- Proposed Solution: A description of the desired feature.
- Alternatives: Any alternative solutions or features considered.
Sources: .github/ISSUE_TEMPLATE/feature-request.md:1-15
Contribution Workflow
The following diagram illustrates the typical lifecycle of a contribution or issue within the SeaStreamer repository.
The diagram shows how different types of user interactions flow through specific templates and licensing requirements before reaching maintainer review.
Sources: .github/ISSUE_TEMPLATE/bug-report.md, .github/ISSUE_TEMPLATE/feature-request.md, README_MORE.md:8-12
Contribution Standards
Licensing
Contributions must adhere to the project's dual-license structure. This ensures the toolkit remains accessible and compatible with various Rust ecosystem requirements.
Sources: README_MORE.md:1-12
Versioning and Changes
SeaStreamer adheres to Semantic Versioning. All notable changes are documented in the CHANGELOG.md file, categorized by the sub-crate they affect (e.g., sea-streamer-types, sea-streamer-redis, sea-streamer-file). Contributors should expect their changes to be tracked via pull requests and referenced in the changelog.
| Category | Description |
|---|---|
| Upgrades | Migration of dependencies (e.g., clap, rdkafka, redis). |
| Enhancements | New features or API improvements (e.g., impl Future instead of async-trait). |
| House keeping | Maintenance tasks like fixing clippy warnings. |
| Breaking changes | Modifications that change existing API behavior. |
Sources: CHANGELOG.md:1-10, CHANGELOG.md:30-45, CHANGELOG.md:83-100
Project Support
The project is run by SeaQL.org, an independent open-source organization. Beyond code contributions, users can support the project by:
- Starring the repository.
- Sharing the libraries with the community.
- Providing financial support via GitHub Sponsors to sustain the organization.
Sources: README_MORE.md:14-19, README.md:387-392
Summary
Contributing to SeaStreamer involves adhering to a dual-licensing model and using structured templates for reporting bugs and features. By providing detailed environment data and reproduction steps, contributors help maintain the high-performance, micro-service-oriented goals of the toolkit. All changes are tracked through a rigorous versioning process across the project's modular sub-crates.