Skip to content
Open
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
54 changes: 54 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: Bug Report
about: Report a bug to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---

## Bug Description

<!-- A clear and concise description of the bug -->

## Steps to Reproduce

1.
2.
3.

## Expected Behavior

<!-- What you expected to happen -->

## Actual Behavior

<!-- What actually happened -->

## Environment

- **OS**: [e.g., Ubuntu 22.04, macOS 14]
- **Rust version**: [e.g., 1.75.0]
- **Chattermax version**: [e.g., 0.1.0]
- **XMPP client**: [e.g., Gajim 1.8.0]

## Configuration

<!-- Relevant parts of your chattermax.toml (remove sensitive data) -->

```toml
[server]
domain = "example.com"
```

## Logs

<!-- Relevant log output (remove sensitive data) -->

```
Chattermax listening on 0.0.0.0:5222
...
```

## Additional Context

<!-- Any other context about the problem -->
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Feature Request
about: Suggest an idea for Chattermax
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Problem Statement

<!-- Describe the problem or limitation you're facing -->

## Proposed Solution

<!-- Describe your proposed solution -->

## Alternatives Considered

<!-- Describe any alternative solutions you've considered -->

## Use Case

<!-- How would this feature be used? Who would benefit? -->

## XEP Reference

<!-- If this relates to an XMPP extension, link the XEP -->

- XEP-XXXX: [Title](https://xmpp.org/extensions/xep-xxxx.html)

## Implementation Ideas

<!-- Optional: Any ideas on how this could be implemented -->

## Additional Context

<!-- Any other context, mockups, or examples -->
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Summary

<!-- What changed and why? -->

## Test plan

<!-- How did you verify this works? -->

- [ ] `cargo test` passes
- [ ] Manual testing (describe below if applicable)

## Related issues

<!-- Closes #123 -->
43 changes: 43 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior:

- The use of sexualized language or imagery and unwelcome sexual attention
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information without explicit permission
- Other conduct which could reasonably be considered inappropriate

## Enforcement Responsibilities

Project maintainers are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers at me@terratauri.com. All complaints will be reviewed and investigated promptly and fairly.

All project maintainers are obligated to respect the privacy and security of the reporter of any incident.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.0.
79 changes: 79 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Contributing to Chattermax

## Before You Start

1. Check [open issues](https://github.com/terraboops/chattermax/issues) for existing work
2. For significant changes, open an issue to discuss your approach first
3. Read the [Code of Conduct](CODE_OF_CONDUCT.md)

## Development Setup

```bash
git clone https://github.com/terraboops/chattermax.git
cd chattermax
cargo build
cargo test
```

Start a dev server:

```bash
cargo run -- --init-db
cargo run -- --add-user test:test
cargo run
```

## Making Changes

### Branch naming

```
feature/xep-0199-ping
fix/roster-subscription-handling
docs/deployment-guide
```

### Commit messages

Use conventional commits:

```
feat(muc): add room configuration support
fix(auth): handle empty password in SASL PLAIN
docs: update deployment guide
```

### Before submitting

```bash
cargo fmt
cargo clippy
cargo test
```

## Pull Requests

1. Push your branch
2. Open a PR against `main`
3. Link related issues with `Closes #123`
4. Wait for review

## Code Style

- Run `cargo fmt` and `cargo clippy`
- Use `Result<T, E>` for fallible operations
- Avoid `.unwrap()` except in tests
- Document public APIs with `///`

## Testing

```bash
cargo test # all tests
cargo test -p chattermax-core # specific crate
cargo test test_jid_parsing # specific test
cargo test -- --nocapture # with output
```

## Questions?

Open a [discussion](https://github.com/terraboops/chattermax/discussions).
Loading
Loading