We’re excited that you’re interested in contributing to @glandjs/http! This package serves as the HTTP layer for the Gland ecosystem, enabling integration with various adapters like Express, Fastify, and more. It's designed to be modular, extensible, and protocol-flexible.
Please read this guide thoroughly before contributing to ensure consistency and maintainability across the project.
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(HTTP) repository.
- Clone your fork locally:
git clone https://github.com/your-username/http.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.
-
📄 You must use the PR Template provided in the repo. PRs without the template will be asked to update.
- Build the project:
pnpm run build
- Run tests:
pnpm test
- Build:
pnpm run build - Test:
pnpm test
To maintain consistency across the codebase, please follow these rules:
- All code must be written in TypeScript.
- Follow event-driven principles aligned with the
@glandjs/core. - Keep modules and adapters isolated and extensible.
- Add/maintain unit tests using Mocha and Chai.
- Add or update relevant JSDoc comments or markdown documentation.
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 help make @glandjs/http stronger and more adaptable. Whether you're fixing bugs, improving docs, or building new adapter
If you have any questions, feel free to reach out by opening an issue or joining our community discussions.