Skip to content

Commit c263b73

Browse files
committed
docs: add contributing guidelines and project roadmap
1 parent 137eebe commit c263b73

File tree

2 files changed

+267
-64
lines changed

2 files changed

+267
-64
lines changed

CONTRIBUTING.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# Contributing to Rustycord
2+
3+
Thank you for your interest in contributing to Rustycord! This document provides guidelines and instructions for contributing to this project.
4+
5+
## Table of Contents
6+
7+
- [Code of Conduct](#code-of-conduct)
8+
- [Getting Started](#getting-started)
9+
- [How to Contribute](#how-to-contribute)
10+
- [Reporting Bugs](#reporting-bugs)
11+
- [Suggesting Enhancements](#suggesting-enhancements)
12+
- [Pull Requests](#pull-requests)
13+
- [Development Setup](#development-setup)
14+
- [Coding Guidelines](#coding-guidelines)
15+
- [Commit Message Guidelines](#commit-message-guidelines)
16+
- [Testing](#testing)
17+
- [Documentation](#documentation)
18+
19+
## Code of Conduct
20+
21+
This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
22+
23+
## Getting Started
24+
25+
1. Fork the repository on GitHub
26+
2. Clone your fork locally
27+
```bash
28+
git clone https://github.com/YOUR-USERNAME/rustcord.git
29+
cd rustcord
30+
```
31+
3. Add the original repository as an upstream remote
32+
```bash
33+
git remote add upstream https://github.com/iamdhakrey/rustcord.git
34+
```
35+
4. Create a new branch for your feature or bugfix
36+
```bash
37+
git checkout -b feature/your-feature-name
38+
```
39+
40+
## How to Contribute
41+
42+
### Reporting Bugs
43+
44+
Before submitting a bug report, please check that it hasn't already been reported. If you find a bug that hasn't been reported, create an issue on the repository with the following information:
45+
46+
- A clear, descriptive title
47+
- Steps to reproduce the issue
48+
- Expected behavior
49+
- Actual behavior
50+
- Screenshots or code snippets if applicable
51+
- Environment information (OS, Rust version, etc.)
52+
53+
### Suggesting Enhancements
54+
55+
Enhancement suggestions are tracked as GitHub issues. Create an issue with:
56+
57+
- A clear, descriptive title
58+
- Detailed explanation of the proposed feature
59+
- Any possible implementation details or ideas
60+
- Relevant examples of how the feature would be used
61+
62+
### Pull Requests
63+
64+
1. Update your fork to the latest upstream version
65+
```bash
66+
git fetch upstream
67+
git merge upstream/main
68+
```
69+
2. Create a new branch for your changes
70+
3. Make your changes following the coding guidelines
71+
4. Add or update tests as needed
72+
5. Update documentation as needed
73+
6. Commit your changes with clear commit messages
74+
7. Push your branch to your fork
75+
8. Submit a pull request to the main repository
76+
77+
For pull requests, please:
78+
79+
- Include a clear description of the changes
80+
- Link any related issues
81+
- Update relevant documentation
82+
- Ensure all tests pass
83+
- Follow the coding style guidelines
84+
85+
## Development Setup
86+
87+
1. Ensure you have Rust and Cargo installed (minimum version 1.60)
88+
2. Install required dependencies
89+
```bash
90+
cargo build
91+
```
92+
3. Set up pre-commit hooks (optional)
93+
```bash
94+
cargo install cargo-husky
95+
cargo husky install
96+
```
97+
98+
## Coding Guidelines
99+
100+
- Follow the [Rust API Guidelines](https://rust-lang.github.io/api-guidelines/)
101+
- Use `rustfmt` for code formatting (run `cargo fmt` before committing)
102+
- Run `cargo clippy` to catch common mistakes and improve code quality
103+
- Write clear comments for public API functions
104+
- Maintain backward compatibility where possible
105+
106+
## Commit Message Guidelines
107+
108+
- Use the present tense ("Add feature" not "Added feature")
109+
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
110+
- Limit the first line to 72 characters or less
111+
- Reference issues and pull requests liberally after the first line
112+
- Consider starting the commit message with an applicable prefix:
113+
- `feat:` for new features
114+
- `fix:` for bug fixes
115+
- `docs:` for documentation changes
116+
- `style:` for formatting changes
117+
- `refactor:` for code refactoring
118+
- `test:` for adding or modifying tests
119+
- `chore:` for changes to the build process or auxiliary tools
120+
121+
## Testing
122+
123+
- Write tests for all new features and bug fixes
124+
- Ensure all existing tests pass before submitting a pull request
125+
- Run tests with `cargo test`
126+
- For performance-critical code, include benchmarks
127+
128+
## Documentation
129+
130+
- Document all public API functions, types, and modules
131+
- Update the README.md with any necessary changes
132+
- Update example code to reflect changes
133+
- Consider adding examples for new features
134+
135+
Thank you for contributing to Rustycord!

PROGRESS.md

Lines changed: 132 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -35,43 +35,82 @@ rustycord is a Discord bot library for Rust, designed to be a competitor to sere
3535
- [x] Message sending endpoints
3636
- [x] Error handling and logging
3737

38-
### 🔄 In Progress
38+
### � High Priority (v0.1.x - Essential Core Features)
3939

40-
#### Enhanced Features
41-
- [ ] Command framework with prefix support
42-
- [ ] Slash command support
43-
- [ ] Message reactions handling
44-
- [ ] Guild and channel management
45-
- [ ] Voice channel support
46-
- [ ] File attachment handling
40+
#### Core Client Features
41+
- [ ] **Rate limit handling** - Critical for preventing 429 errors
42+
- [ ] **Connection reconnection and resuming** - Essential for stability
43+
- [ ] **Message editing and deletion** - Basic messaging completeness
44+
- [ ] **Message reply functionality** - Modern messaging requirement
45+
- [ ] **Error handling improvements** - Better developer experience
46+
47+
#### Basic Rich Content
48+
- [ ] **Enhanced embed management** - Core rich messaging
49+
- [ ] **File attachment handling** - Essential messaging feature
50+
- [ ] **Message reactions handling** - User interaction basics
51+
52+
### 🔄 Medium Priority (v0.2.x - Extended Functionality)
53+
54+
#### Command System
55+
- [ ] **Command framework with prefix support** - Bot command foundation
56+
- [ ] **Slash command support** - Modern Discord bot standard
57+
- [ ] **Command permissions and restrictions** - Security and control
58+
59+
#### Server Management Basics
60+
- [ ] **Guild and channel management** - Server administration basics
61+
- [ ] **Role management and permissions** - Access control
62+
- [ ] **Member management** (kick, ban, timeout) - Moderation basics
4763

4864
#### Developer Experience
4965
- [x] Comprehensive logging system (trace, debug, info, warn, error levels)
5066
- [x] Logging guide and documentation
5167
- [x] Enhanced debugging capabilities
52-
- [ ] Comprehensive documentation
53-
- [ ] More example projects
54-
- [ ] Integration tests
55-
- [ ] Performance optimization
56-
- [ ] Error handling improvements
57-
58-
### 📋 Planned Features
59-
60-
#### Core Features
61-
- [ ] Interaction handling (buttons, select menus)
62-
- [ ] Modal dialog support
63-
- [ ] Webhook management
64-
- [ ] Rate limiting handling
65-
- [ ] Cache system implementation
66-
- [ ] Database integration helpers
67-
68-
#### Advanced Features
69-
- [ ] Auto-moderation tools
70-
- [ ] Custom emoji handling
71-
- [ ] Thread support
72-
- [ ] Stage channel support
73-
- [ ] Application commands
74-
- [ ] Message components
68+
- [ ] **Comprehensive documentation** - User adoption critical
69+
- [ ] **More example projects** - Learning resources
70+
- [ ] **Integration tests** - Quality assurance
71+
72+
### 📋 Lower Priority (v0.3.x+ - Advanced Features)
73+
74+
#### Advanced Messaging
75+
- [ ] **Message threading support** - Advanced conversations
76+
- [ ] **Bulk message deletion** - Moderation efficiency
77+
- [ ] **Message history retrieval** - Data access
78+
- [ ] **Webhook management** - External integrations
79+
80+
#### Interaction System
81+
- [ ] **Message components** (buttons, select menus) - Rich interactions
82+
- [ ] **Modal dialog support** - Complex user input
83+
- [ ] **Context menus** - Enhanced UX
84+
85+
#### Voice Features
86+
- [ ] **Voice channel support** - Audio communication
87+
- [ ] **Voice connection management** - Real-time audio
88+
- [ ] **Audio streaming and playback** - Media functionality
89+
90+
#### Advanced Server Management
91+
- [ ] **Thread support** - Organized conversations
92+
- [ ] **Forum channels** - Community discussions
93+
- [ ] **Stage channel support** - Live events
94+
- [ ] **Auto-moderation tools** - Automated server management
95+
96+
### 🔮 Future Priority (v1.0+ - Ecosystem Features)
97+
98+
#### Performance & Scalability
99+
- [ ] **Cache system implementation** - Performance optimization
100+
- [ ] **Shard management for large bots** - Scalability
101+
- [ ] **Connection pooling** - Resource efficiency
102+
- [ ] **Memory optimization** - Performance tuning
103+
104+
#### Advanced Integrations
105+
- [ ] **OAuth2 support** - Authentication flexibility
106+
- [ ] **Database integration helpers** - Data persistence
107+
- [ ] **External service integrations** - Ecosystem connectivity
108+
109+
#### Developer Ecosystem
110+
- [ ] **Plugin/extension system** - Extensibility framework
111+
- [ ] **Middleware support** - Request/response pipeline
112+
- [ ] **Custom serialization/deserialization** - Advanced customization
113+
- [ ] **Metrics and monitoring** - Production insights
75114

76115
#### Library Features
77116
- [ ] Plugin system
@@ -202,51 +241,80 @@ impl MessageHandler for CustomHandler {
202241
- [ ] Best practices guide
203242

204243
## Community and Ecosystem
205-
- [ ] Crates.io publication
206-
- [ ] GitHub repository setup
244+
- [x] Crates.io publication
245+
- [x] GitHub repository setup
207246
- [ ] Discord server for support
208-
- [ ] Contributor guidelines
209-
- [ ] Code of conduct
247+
- [x] Contributor guidelines
248+
- [x] Code of conduct
210249

211250
## Version Roadmap
212251

213-
### v0.1.0 (Current)
252+
### v0.1.0 (Current - Foundation Complete ✅)
214253
- Basic bot functionality
215-
- Message handling system
254+
- Message handling system
216255
- HTTP client implementation
217256
- WebSocket gateway connection
218-
219-
### v0.2.0 (Next)
220-
- Command framework
221-
- Slash command support
222-
- Enhanced error handling
223-
- Basic documentation
224-
225-
### v0.3.0 (Future)
226-
- Interaction handling
227-
- Cache system
228-
- Performance optimizations
229-
- Comprehensive testing
230-
231-
### v1.0.0 (Stable)
232-
- Full feature parity with serenity-rs
233-
- Production-ready stability
234-
- Complete documentation
235-
- Strong ecosystem support
257+
- Event dispatching system
258+
- Logging infrastructure
259+
260+
### v0.1.x (High Priority - Core Stability)
261+
- **Rate limit handling** (Critical)
262+
- **Connection reconnection/resuming** (Critical)
263+
- **Message editing/deletion** (Essential)
264+
- **Message replies** (Essential)
265+
- **Enhanced embeds** (Essential)
266+
- **File attachments** (Essential)
267+
- **Reactions handling** (Essential)
268+
269+
### v0.2.x (Medium Priority - Bot Framework)
270+
- **Command framework** with prefix support
271+
- **Slash commands** support
272+
- **Basic server management** (guilds, channels, roles)
273+
- **Member management** (kick, ban, timeout)
274+
- **Comprehensive documentation**
275+
- **Integration testing**
276+
277+
### v0.3.x (Lower Priority - Advanced Features)
278+
- **Message threading** and advanced messaging
279+
- **Interaction components** (buttons, select menus)
280+
- **Modal dialogs** and context menus
281+
- **Voice channel** basic support
282+
- **Webhook management**
283+
- **Auto-moderation tools**
284+
285+
### v1.0.0 (Future - Production Ready)
286+
- **Full Discord API coverage**
287+
- **Production-grade performance** and caching
288+
- **Comprehensive voice support**
289+
- **Plugin/middleware system**
290+
- **Complete ecosystem** with strong community support
236291

237292
## Contributing
238-
This project is open for contributions! Key areas where help is needed:
239-
- [ ] Feature implementation
240-
- [ ] Documentation writing
241-
- [ ] Testing and bug fixes
242-
- [ ] Performance optimization
243-
- [ ] Example projects
293+
This project is open for contributions! Key areas where help is needed (prioritized):
294+
295+
### 🚨 **Immediate Priority** (v0.1.x)
296+
- [ ] **Rate limiting implementation** - Prevent API abuse
297+
- [ ] **Connection stability** - Reconnection/resuming logic
298+
- [ ] **Message operations** - Edit, delete, reply functionality
299+
- [ ] **Rich content** - Enhanced embeds and file attachments
300+
- [ ] **Testing infrastructure** - Unit and integration tests
301+
302+
### 🔄 **Next Priority** (v0.2.x)
303+
- [ ] **Command framework** - Prefix and slash command systems
304+
- [ ] **Server management** - Guild, channel, role operations
305+
- [ ] **Documentation** - Comprehensive guides and API docs
306+
- [ ] **Example projects** - Learning resources and demos
307+
308+
### 📋 **Future Priority** (v0.3.x+)
309+
- [ ] **Advanced interactions** - Components, modals, voice
310+
- [ ] **Performance optimization** - Caching and scalability
311+
- [ ] **Ecosystem features** - Plugins, middleware, monitoring
244312

245313
## License
246-
This project will be licensed under MIT or Apache-2.0 (to be determined).
314+
This project will be licensed under MIT
247315

248316
---
249317

250-
**Last Updated:** July 17, 2025
318+
**Last Updated:** July 21, 2025
251319
**Current Version:** 0.1.0-dev
252-
**Next Milestone:** Message Handler System Complete ✅
320+
**Next Milestone:** Core Stability Features (Rate Limiting & Connection Management) 🚨

0 commit comments

Comments
 (0)