Contributing

September 19, 2026 ยท View on GitHub

Thanks for helping improve Jev Java. Bug reports, focused fixes, documentation, and compatibility improvements are welcome.

Before opening an issue

  • Search existing issues and discussions first.
  • Remove API keys, authorization headers, and real customer state from examples.
  • Include the SDK version, Java version, module, provider, transport, and a small reproducible example when reporting a bug.
  • Use GitHub Security Advisories for vulnerabilities instead of a public issue.

Local development

Jev Java requires Java 17 or newer. Clone the repository and run:

./mvnw verify

The regular test suite uses local fakes and does not require provider credentials. Live examples are optional and may make billable requests. Run them only when you intend to, using TYPESAFE_API_KEY or AI_GATEWAY_API_KEY from your local environment.

Keep changes focused. Add tests for behavior changes, preserve Java 17 compatibility, and update documentation when public behavior changes. Provider wire formats and transport behavior need sanitized fixtures; never commit live credentials or real request state.

Pull requests

Explain the problem and resulting behavior, list validation commands, and call out compatibility effects for providers, transports, Java, or Spring Boot. Keep unrelated formatting and refactoring out of the change. By contributing, you agree that your contribution is licensed under the repository's MIT license.

Releases

Update all Maven versions and the changelog, add docs/releases/VERSION.md, and run ./mvnw clean verify -Prelease. Test packaging with ./scripts/package-release.sh VERSION. After main's CI checks pass, pushing an annotated vVERSION tag triggers the release workflow. It verifies the tag matches the POM, rebuilds/tests, and publishes JARs, sources, Javadoc, POMs and SHA-256 checksums to GitHub Releases. It does not publish to Maven Central. Never move or reuse a published release tag.