tree: f47067a7d01c4f5652759c07c4a9b2782045bc9a
  1. adhoc_run_tests/
  2. code-coverage/
  3. create-release/
  4. design-docs/
  5. docker/
  6. flaky-tests/
  7. generate-website/
  8. git-jira-release-audit/
  9. hbase_docker/
  10. integration-test/
  11. jenkins-scripts/
  12. release-vm/
  13. blanks-eol-ignore.txt
  14. blanks-tabs-ignore.txt
  15. checkcompatibility.py
  16. checkstyle_report.py
  17. eclipse.importorder
  18. gather_machine_environment.sh
  19. gen_redirect_html.py
  20. gh_hide_old_comments.sh
  21. hadoop3-backwards-compatibility-check.Jenkinsfile
  22. HBase Code Template.xml
  23. hbase-personality.sh
  24. hbase-vote.sh
  25. hbase_docker.sh
  26. hbase_eclipse_formatter.xml
  27. hbase_nightly_yetus.sh
  28. hbasetests.sh
  29. HOW_TO_YETUS_LOCAL.md
  30. jenkins_precommit_github_yetus.sh
  31. jenkinsEnv.sh
  32. Jenkinsfile
  33. Jenkinsfile_GitHub
  34. license-header
  35. make_patch.sh
  36. make_rc.sh
  37. README.md
  38. rebase_all_git_branches.sh
  39. smart-apply-patch.sh
  40. spotbugs-exclude.xml
  41. test-util.sh
  42. yetus_console_to_md.py
  43. zombie-detector.sh
dev-support/README.md

dev-support

Developer and maintainer tooling for the HBase project. This directory contains CI configuration, release automation, code analysis, and various utility scripts.

CI

PR-level CI runs via GitHub Actions (see ../.github/workflows/). Nightly builds, branch validation, and precommit checks still use Jenkins configurations in this directory:

  • Jenkinsfile, Jenkinsfile_GitHub -- Pipeline definitions
  • hbase_nightly_yetus.sh, jenkins_precommit_github_yetus.sh -- Yetus-based precommit and nightly check scripts
  • hbase-personality.sh -- Yetus personality plugin that customizes checks for HBase
  • jenkinsEnv.sh, jenkins-scripts/ -- Shared Jenkins environment setup
  • HOW_TO_YETUS_LOCAL.md -- Guide for running Yetus checks locally

Release Automation

  • create-release/ -- Docker-based release candidate builder (tags, builds, signs, publishes). Entry point is do-release-docker.sh.
  • make_rc.sh -- Older release candidate script (superseded by create-release/)
  • hbase-vote.sh -- Generates release vote email content
  • git-jira-release-audit/ -- Audits git history against JIRA fixVersion fields to find discrepancies between what was committed and what JIRA says shipped

Code Quality and Analysis

  • checkcompatibility.py -- Checks API/ABI compatibility between versions
  • checkstyle_report.py -- Generates checkstyle reports
  • spotbugs-exclude.xml -- SpotBugs exclusion rules
  • code-coverage/ -- Scripts for generating code coverage reports
  • flaky-tests/ -- Flaky test detection, reporting, and dashboards
  • license-header -- Apache License header template

Docker and Test Environments

  • docker/ -- Dockerfile for CI build environment
  • hbase_docker/, hbase_docker.sh -- Docker-based local test cluster
  • adhoc_run_tests/ -- Scripts for running test suites outside CI
  • integration-test/ -- Integration test support

Utility Scripts

  • smart-apply-patch.sh, make_patch.sh -- Patch creation and application
  • rebase_all_git_branches.sh -- Rebases all local tracking branches
  • zombie-detector.sh -- Detects leaked processes from test runs
  • gather_machine_environment.sh -- Captures build machine info for debugging
  • gh_hide_old_comments.sh -- Hides outdated bot comments on GitHub PRs

IDE Configuration

  • hbase_eclipse_formatter.xml -- Eclipse code formatter settings
  • eclipse.importorder -- Eclipse import ordering
  • HBase Code Template.xml -- IntelliJ code template

Design Documents

design-docs/ collects design documents and proposals for major features. These capture the rationale behind complex subsystems and are useful for understanding why the code is structured the way it is.