Contributing to UrbanVerse#

Thank you for your interest in contributing to UrbanVerse! We welcome contributions from the community. This guide will help you get started.

Ways to Contribute#

There are many ways to contribute to UrbanVerse:

  • Code contributions: Bug fixes, new features, performance improvements

  • Documentation: Improving existing docs, adding examples, fixing typos

  • Testing: Writing tests, reporting bugs, testing new features

  • Community support: Answering questions, helping other users

  • Feedback: Feature requests, design suggestions, usability improvements

Getting Started#

  1. Fork the repository on GitHub

  2. Clone your fork locally:

    git clone https://Anonymous.com/AnonymousForDoubleBlindReview/UrbanVerse.git
    cd UrbanVerse
    
  3. Create a branch for your changes:

    git checkout -b feature/your-feature-name
    
  4. Set up the development environment (see installation documentation)

  5. Make your changes following our coding standards (see Coding Standards)

  6. Test your changes to ensure they work correctly

  7. Commit your changes with clear, descriptive commit messages

  8. Push to your fork and create a pull request

Development Workflow#

Before starting work:

  • Check existing issues and pull requests to avoid duplicate work

  • For major features, consider opening an issue first to discuss the approach

  • Ensure you can build and test the codebase locally

Making changes:

  • Follow the coding standards (see Coding Standards)

  • Write or update tests for new functionality

  • Update documentation as needed

  • Keep commits focused and atomic

Commit messages:

  • Use clear, descriptive commit messages

  • Reference issue numbers when applicable (e.g., “Fix #123: …”)

  • Follow conventional commit format when possible

Example commit messages:

  • feat: Add support for custom reward functions

  • fix: Resolve memory leak in scene loading

  • docs: Update API reference for teleoperation

  • test: Add unit tests for EnvCfg validation

Pull Request Process#

  1. Create a pull request from your fork to the main repository

  2. Fill out the PR template:

    • Describe what changes you made and why

    • Reference related issues

    • Include test results

    • Add screenshots or examples if applicable

  3. Ensure all checks pass:

    • Code formatting (Black)

    • Linting (ruff)

    • Unit tests

    • Documentation builds

  4. Respond to review feedback:

    • Address comments and suggestions

    • Make requested changes

    • Keep the discussion constructive

  5. Wait for approval from maintainers before merging

Code Review Guidelines#

For contributors:

  • Be open to feedback and suggestions

  • Respond to review comments promptly

  • Keep PRs focused and reasonably sized

  • Update your PR based on feedback

For reviewers:

  • Be constructive and respectful

  • Focus on code quality and correctness

  • Explain the reasoning behind suggestions

  • Approve when changes meet standards

Documentation Contributions#

Documentation improvements are highly valued! Areas where help is needed:

  • Tutorials: Step-by-step guides for common tasks

  • Examples: Code examples demonstrating API usage

  • API documentation: Improving function and class docstrings

  • Fixing errors: Typos, broken links, outdated information

When contributing documentation:

  • Follow the existing documentation style

  • Use clear, concise language

  • Include code examples where helpful

  • Test that code examples work correctly

Testing Contributions#

Help improve UrbanVerse’s test coverage:

  • Unit tests: Test individual functions and classes

  • Integration tests: Test component interactions

  • Example tests: Ensure code examples in docs work

  • Performance tests: Identify performance regressions

Reporting Issues#

If you find a bug or have a feature request, see Bug Reports for guidelines on reporting issues effectively.

Questions?#

If you have questions about contributing:

  • Check existing documentation

  • Search existing issues and discussions

  • Reach out via Communication Channels channels

Thank you for contributing to UrbanVerse! 🎉