Contributing Guidelines

June 10, 2026 · View on GitHub

Thank you for your interest in contributing to Valkey GLIDE for Ruby (valkey-rb). Whether it's a bug report, new feature, correction, or documentation, we value feedback from the community.

Please read this document before submitting issues or pull requests.

Reporting Bugs and Feature Requests

Use the GitHub issue tracker for bugs, feature requests, and questions.

Before creating a new issue:

  1. Search existing issues to avoid duplicates.
  2. Include Ruby version, OS/architecture, valkey-rb version, and Valkey/Redis server version.
  3. For connection problems, note standalone vs cluster and whether TLS is enabled.
  4. Provide a minimal reproduction script when possible.

For issues that affect the shared Rust core or other language clients, consider opening an issue in valkey-glide as well.

Contributing via Pull Requests

  1. Work against the latest main branch.
  2. Check open and recently merged PRs for duplicates.
  3. For large changes (new command families, FFI updates, API breaks), open an issue first to discuss scope.

Pull request steps

  1. Fork valkey-glide-ruby.

  2. Make focused changes; avoid unrelated formatting drive-by edits.

  3. Run local checks (see DEVELOPER.md):

    bundle exec rubocop
    bundle exec rake test:standalone    # standalone — requires Valkey on :6379
    bundle exec rake test:cluster   # if cluster-related — requires nodes :7000–:7005
    
  4. Commit with DCO sign-off and conventional commits:

    git commit -s -m "feat(ruby): add EXAMPLE command"
    

    Configure automatic signoff: git config --global format.signOff true

  5. Open a PR and respond to CI feedback (RuboCop + test matrix in .github/workflows/CI.yml).

GitHub guides: fork a repo, create a pull request.

Commit message format

<type>(<scope>): <description>
TypeUse for
featNew feature or command
fixBug fix
docsDocumentation only
testTests only
refactorCode change without behavior change
choreTooling, CI, deps

Scope: ruby or a command area (e.g. ruby-pubsub).

Developer Certificate of Origin (DCO)

All commits must include:

Signed-off-by: Your Name <your.email@example.com>

By signing off, you agree to the Developer Certificate of Origin.

Adding or Updating Commands

  1. Confirm the command exists in glide-core request_type.rs.
  2. Add or verify RequestType in lib/valkey/request_type.rb.
  3. Implement in the appropriate lib/valkey/commands/*.rb module.
  4. Add tests under test/valkey/ and lint coverage in test/lint/ when matching redis-rb behavior.
  5. Update the command implementation wiki.

See DEVELOPER.md for full details.

Updating the Native FFI Library

Changes that require a new libglide_ffi build:

  1. Build from valkey-glide/ffi at a compatible release tag.
  2. Copy libglide_ffi.so or libglide_ffi.dylib into lib/valkey/.
  3. Document the valkey-glide version in the PR description.
  4. Test on the target platform (Linux x86_64/aarch64, macOS Intel/Apple Silicon).

AI-Assisted Development

If you use Cursor, Claude Code, or similar tools, read:

  • AGENTS.md — build, test, and quality checklist
  • CLAUDE.md — workflow constraints for this repository

Code of Conduct

This project follows the Amazon Open Source Code of Conduct. See the FAQ or contact opensource-codeofconduct@amazon.com with questions.

Security

Report security vulnerabilities via valkey-glide SECURITY.md.

Licensing

Contributions are licensed under the same terms as the project. See LICENSE. You will be asked to confirm licensing in your PR.

Community

Join Valkey Slack: Join Valkey Slack.

Broader GLIDE contributing process: valkey-glide CONTRIBUTING.md.