Ways to Contribute
Report Bugs
Found an issue? Report it on GitHub Issues
Suggest Features
Have an idea? Open a feature request
Improve Docs
Help make documentation clearer and more comprehensive
Submit Code
Fix bugs or implement new features
Getting Started
Prerequisites
VK-IO requires Node.js 12.20.0 or higher
- Node.js 12.20.0 or higher installed
- npm, yarn, or pnpm package manager
- Git installed and configured
- A GitHub account
Development Setup
Fork the repository
Navigate to negezor/vk-io and click the Fork button
Project Structure
VK-IO is organized as a monorepo with multiple packages:packages/ has its own:
src/- TypeScript source codetest/- Test fileslib/- Compiled output (generated)package.json- Package configuration
Development Workflow
Making Changes
Create a branch
feature/for new featuresfix/for bug fixesdocs/for documentation changes
Code Style
VK-IO uses Biome for linting and formatting:All code must pass linting checks before being merged. The CI will automatically verify this.
Writing Tests
Tests are written using Node.js built-in test runner:test/ directory of the relevant package with a .test.ts extension.
Submitting Changes
Commit Guidelines
Write clear, descriptive commit messages:Creating a Pull Request
Open a pull request
Go to the VK-IO repository and click New Pull Request
Fill in the details
Provide:
- Clear title describing the change
- Description explaining what and why
- Related issues if applicable (e.g., “Fixes #123”)
- Breaking changes if any
Pull Request Checklist
Before submitting, ensure your PR:
- ✅ Passes all tests (
npm test) - ✅ Passes linting (
npm run check) - ✅ Includes tests for new features
- ✅ Updates documentation if needed
- ✅ Has a clear description
Continuous Integration
VK-IO uses GitHub Actions for CI/CD. Every pull request is automatically tested against multiple Node.js versions:- Node.js 18.x
- Node.js 20.x
- Node.js 22.x
- Install dependencies
- Build all packages
- Run all tests
Reporting Issues
When reporting issues, please use the appropriate issue template:Bug Reports
Bug Reports
Include:
- What you did - Steps to reproduce
- What you expected - Expected behavior
- What happened - Actual behavior
- Environment - vk-io version, Node.js version, OS
Feature Requests
Feature Requests
Include:
- Use case - What problem does this solve?
- Proposed solution - How should it work?
- Alternatives - Other approaches you considered
Package-specific Issues
Package-specific Issues
When reporting issues for specific packages, use the appropriate label:
package: vk-io- Core librarypackage: authorization- @vk-io/authorizationpackage: session- @vk-io/sessionpackage: scenes- @vk-io/scenespackage: streaming- @vk-io/streaming
Community Guidelines
Be Respectful
Treat everyone with respect and kindness
Be Constructive
Provide helpful feedback and suggestions
Be Patient
Maintainers are volunteers with limited time
Be Collaborative
Work together to improve the project
Getting Help
Need help contributing?GitHub Discussions
Ask questions and discuss ideas
GitHub Issues
Search existing issues or create a new one
Additional Resources
VK API Documentation
Official VK API reference
VK API Schema
Auto-generated API schema
Community Modules
Explore ecosystem packages
Examples
Learn from example code