Docker CI containers run as root by default (golang:1.26-alpine), where
os.Chmod has no effect and permission restrictions don't apply. Four
tests were failing because they relied on chmod to force error paths:
- gradle: TestWriteVersionReadOnly
- cmd: TestInitConfigWriteFails, TestRunLatestTagFails
- gitutil: TestLatestTagTagsIterFails (had broken skip logic that only
fired if Chmod itself errored, which never happens as root)
Replace all four with an upfront os.Getuid() == 0 check so they are
skipped cleanly in root environments and still run (and must pass) on
non-root local development.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add internal/node package: reads/writes package.json version (single or
multi-path via node.package_json / node.package_jsons)
- Add maven.pom_paths support: update multiple pom.xml files in one release
commit; pom_paths overrides pom_path; --pom flag clears pom_paths
- Add git.bump_rules config: per-type control of which version component bumps
(breaking/feat/fix accept "patch" or "minor"); wired through version.Next()
as a new sixth parameter
- Extract injectable function vars (absPath, gitAllCommits, gitCommitsSince,
gitCommitFiles) to enable error-path testing without interfaces
- Achieve 100% per-package statement coverage across all 12 packages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>