This page provides a high-level guide for contributors to the helium codebase. It outlines core development workflows, rules for working with generated code, continuous integration (CI) pipelines including linting and security scanning, dependency management, and the project’s unique documentation system designed for both human developers and AI-assisted development. Detailed information about each sub-topic is available in child pages.
The project employs a strict branching model to safeguard stable releases while enabling active development on separate branches. Contributors should:
v1, v2, or main only for releases [.github/CONTRIBUTING.md:114-117].develop/v2 [.github/CONTRIBUTING.md:119-122].develop/vXXX branches for any new work [.github/CONTRIBUTING.md:124-125].develop/vXXX branch for review and CI validation [.github/CONTRIBUTING.md:135].Sources: .github/CONTRIBUTING.md112-138
To maintain consistency and uphold compatibility with XML standards, the project relies on automated code generation. Contributors must follow these rules:
_gen.go is generated from source rules or spec files and will be overwritten [.github/CONTRIBUTING.md:141-143].stringer (for enums) to regenerate files and ensures no uncommitted changes exist post-generation [.github/workflows/ci.yml:38-41].Common generators include:
| Generator Tool | Purpose | Source or Rule File |
|---|---|---|
stringer | Generates enum String() methods | Go source enum declarations |
xslt3gen | Generates XSLT 3.0 instruction code | XSLT spec metadata and rules |
qt3gen | Generates XPath 3.1 query test runners | W3C QT3 XML test suite files |
Sources: .github/CONTRIBUTING.md140-150 .github/workflows/ci.yml38-42
The helium codebase leverages GitHub Actions for a comprehensive suite of automated workflows ensuring code quality, security, and maintainability. A detailed breakdown of the workflows is available in the child page CI/CD Workflows.
ci.yml)Triggered on every push and pull request, this workflow performs:
~/go/pkg/mod for faster builds [.github/workflows/ci.yml:14-24].go.mod, downloads dependencies, and verifies module tidiness [.github/workflows/ci.yml:25-46].stringer to regenerate parser_state_gen.go and checks for discrepancies [.github/workflows/ci.yml:38-41].lint.yml workflow runs golangci-lint and go vet to enforce code style and catch common issues.codeql.yml workflow runs GitHub CodeQL for automated static analysis and vulnerability detection.fuzz-pr.yml and fuzz.yml manage fuzzing schedules for various components.autodoc.yml is responsible for generating wiki documentation.release.yml handles releases using goreleaser.stale.yml helps manage stale issues and pull requests.Sources: .github/workflows/ci.yml1-64
The project hosts a specialized documentation knowledge base in .claude/docs supporting both human developers and AI agents. This system:
This setup enables a powerful feedback loop linking natural language development requests with concrete code entities.
For detailed usage and contribution guidelines around this system, see the child page Agent and Developer Documentation System.
Sources: .github/CONTRIBUTING.md1-160 .github/workflows/ci.yml38-41 .claude/docs/README.md1-15
Key contributor expectations derived from the main contributing doc:
Sources: .github/CONTRIBUTING.md1-160
| Topic | Key Files / Tools | Notes |
|---|---|---|
| Branching & PR workflow | .github/CONTRIBUTING.md | Use develop/vXXX branches; PRs target dev |
| Generated Code | _gen.go files | Never manually edit; use generation tools |
| CI Pipeline | .github/workflows/ci.yml | Runs tests, generation, build, and validation |
| Security Analysis | .github/workflows/codeql.yml | Scheduled CodeQL static scans |
| Linting | .github/workflows/lint.yml | golangci-lint and go vet |
| Dependency Updates | .github/dependabot.yml | Daily dependency and workflow update PRs |
| Agent Documentation System | .claude/docs/ | Stable index for AI/human developer docs |
Sources: .github/CONTRIBUTING.md1-160 .github/workflows/ci.yml1-64 .claude/docs/README.md1-15
For detailed technical descriptions of workflows and the documentation system, please visit the following child pages:
.claude/docs knowledge base architecture, maintenance rules, token optimization strategies, and AI integration points.This completes the essential overview needed for contributors and developers engaging with the helium codebase infrastructure.
Refresh this wiki
This wiki was recently refreshed. Please wait 1 day to refresh again.