We’re excited that you’re interested in contributing to Gland! As a fully event-driven framework, Gland is designed to be lightweight, modular, and flexible. Your contributions can help shape its future and make it even better for developers worldwide.
Before contributing, please read this guide thoroughly. It ensures we maintain consistency across the framework while fostering an open, collaborative environment.
Gland is committed to fostering an inclusive and respectful community. All contributors are expected to adhere to our Code of Conduct, which promotes a harassment-free experience for everyone. Please read the Code of Conduct before participating.
Violations will not be tolerated. Report issues to bitsgenix@gmail.com.
Do not create GitHub issues for general questions. Instead:
- Use Stack Overflow with the
glandtag - Join our Discord Community for real-time discussions (coming soon)
- Check our Documentation (coming soon)
- Node.js: Ensure you have Node.js installed (version 18 or higher).
- Git: Familiarity with Git and GitHub workflows is required.
- TypeScript: Gland is built with TypeScript, so a basic understanding is helpful.
- Fork the Gland repository.
- Clone your fork locally:
git clone https://github.com/your-username/gland.git cd gland - Install dependencies:
npm install
If you encounter a bug or have a question, please follow these steps:
- Search Existing Issues: Check if the issue has already been reported.
- Create a New Issue: If it hasn’t, open a new issue with the following details:
- A clear title and description.
- Steps to reproduce the issue.
- Expected vs. actual behavior.
- Relevant code snippets or screenshots (if applicable).
- Your environment (Node.js version, OS, etc.).
Note: For general questions, please use Stack Overflow with the tag gland.
Want real-time discussion? Join our Discord community (coming soon!).
- Open an Issue: Describe the feature and its benefits.
- Discuss: We’ll review the proposal and provide feedback.
- Implement: If approved, you can submit a pull request (see below).
- Fork the Repository: Create a fork of the Gland repository.
- Create a Branch:
git checkout -b my-feature-branch
- Make Your Changes: Follow the Coding Guidelines.
- Test Your Changes: Ensure all tests pass and add new tests if needed. (Mocha&Chai preferred)
- Commit Your Changes: Use a descriptive commit message (see Commit Message Format).
- Push Your Branch:
git push origin my-feature-branch
- Open a PR: Submit a pull request to the
mainbranch of the Gland repository.
PR Guidelines:
- Provide a clear description of the changes.
- Reference related issues (e.g.,
Fixes #123). - Ensure your code follows the project’s style and conventions.
- Build the project:
npm run build
- Run tests:
npm test
- Build:
npm run build - Test:
npm test
To maintain consistency across the codebase, please follow these rules:
- TypeScript: Use TypeScript for all new code.
- Event-Driven Design: Ensure all features align with Gland’s event-driven architecture.
- Modularity: Keep code modular and reusable.
- Testing: Write unit tests for new features and bug fixes.
- Documentation: Add comments and update documentation as needed.
We follow a structured commit message format to maintain a clean project history. Each commit message should include:
- Type: The type of change (e.g.,
feat,fix,docs). - Scope: The affected module or package (e.g.,
core,channel). - Subject: A concise description of the change.
Example:
feat(core): add support for event-scoped middleware
- feat: A new feature.
- fix: A bug fix.
- docs: Documentation changes.
- style: Code formatting or style changes.
- refactor: Code refactoring (no functional changes).
- test: Adding or updating tests.
- chore: Maintenance tasks (e.g., dependency updates).
Your contributions make Gland better for everyone. Whether you’re fixing a bug, adding a feature, or improving documentation, we appreciate your effort and dedication.
If you have any questions, feel free to reach out by opening an issue or joining our community discussions.