Skip to content

Latest commit

 

History

History
101 lines (70 loc) · 2.05 KB

File metadata and controls

101 lines (70 loc) · 2.05 KB

Contributing to Klime Java SDK

Thank you for your interest in contributing to the Klime Java SDK!

Important: Repository Structure

This repository is a read-only mirror of our internal monorepo.

What This Means for Contributors

  • Pull requests are welcome and will be reviewed
  • If accepted, we'll manually port changes to our internal monorepo
  • Changes appear in this repository with the next release
  • You'll be credited as a co-author in the commit

How to Contribute

  1. Fork this repository

  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/klime-java.git
    cd klime-java
  3. Create a feature branch

    git checkout -b feature/your-feature-name
  4. Make your changes

    • Follow Java coding conventions
    • Add tests for new functionality
    • Update documentation as needed
  5. Run the tests

    mvn test
  6. Commit your changes

    git commit -m "Add: description of your change"
  7. Push to your fork

    git push origin feature/your-feature-name
  8. Open a Pull Request

Development Setup

Prerequisites

  • Java 11 or later
  • Maven 3.6+

Building

# Compile
mvn compile

# Run tests
mvn test

# Package
mvn package

# Install to local Maven repository
mvn install

Code Style

  • Follow standard Java conventions
  • Use meaningful variable and method names
  • Add Javadoc for public methods
  • Keep methods focused and small
  • Prefer immutability where possible

Testing

  • Write unit tests for all new functionality
  • Integration tests should use the built-in HTTP server (com.sun.net.httpserver)
  • Disable auto-flush in tests to avoid flakiness
  • Tests should be fast (< 100ms total)

Reporting Issues

  • Check existing issues before creating a new one
  • Include Java version and Maven version
  • Provide a minimal reproducible example
  • Include stack traces for errors

Questions?

If you have questions about contributing, feel free to open an issue with the "question" label.