Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 2.68 KB

File metadata and controls

70 lines (50 loc) · 2.68 KB

Contributing to viewzoo

Using Claude Code

This project uses (but does not require) Claude Code for help with development, testing, and maintenance. The CLAUDE.md file provides project context for Claude Code sessions.

If you haven't used Claude Code yet, these resources are super helpful:

Branching and Versioning

Trino uses only major version numbers for its releases, and breaking changes can be introduced with any new version. To support this, viewzoo uses a separate branch for each Trino version:

  • Each version branch is compatible with that one specific Trino version
  • New version branches are created from the previous version branch
  • Changes to version branches are not merged back to main
  • The main branch is not actively used; version branches are primary

GitHub Workflow

This workflow allows you to easily create your own copy of viewzoo, try out some changes, and then share your changes back to be merged, with feedback from other contributors.

  1. Create a fork of robfromboulder/viewzoo
  2. Create a feature branch from the latest version branch
  3. Build and test your local changes
  4. Add or update integration tests
  5. Commit changes to your feature branch
  6. Open a pull request targeting the latest version branch
  7. Participate in code review
  8. Celebrate your accomplishment

Coding Conventions

Our code style is whatever IntelliJ IDEA does by default, with the exception of allowing lines up to 130 characters. If you don't use IDEA, that's ok, but your code may get reformatted later.

All source files should use this copyright statement:

© 2024-2026 Rob Dickinson (robfromboulder)

Applying Security Updates

Scan for newer library versions:

mvn versions:display-dependency-updates

Scan for known vulnerabilities:

trivy filesystem .

Running Integration Tests

These tests start Postgresql and Trino in local containers, exercise views using both filesystem and JDBC storage, and then shut down all containers (removing all volumes created during the test).

Important

Integration tests require docker-compose and network access to download Postgresql and Trino containers.

Important

Integration tests should exercise all features related to views, and there should be no differences in functional behavior between filesystem and JDBC configurations.

Tip

Integration tests use port 7721 (for Trino) to avoid conflict with local services.

Run integration test profile:

mvn test -Pintegration