-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Clement edited this page Aug 13, 2025
·
3 revisions
Welcome to the Tree Forge Wiki!
This documentation will help contributors, maintainers, and users understand how the project works, how to set it up locally, and how to contribute effectively.
- Overview
- Architecture
- Getting Started
- Development Workflow
- Branching Strategy
- Testing
- Release Process
- CI/CD Pipelines
- Publishing to npm
- Contributing
- License
Tree Forge is a modular, high-performance system for generating and managing structured data in hierarchical formats. It provides a robust API, developer tooling, and automated release pipelines.
Core features:
- Modular node-based architecture
- Automated release workflows
- CI/CD integration with GitHub Actions
- npm package publishing
- Semantic versioning and prerelease tagging
tree-forge/
├── src/ # Core source code
├── tests/ # Unit and integration tests
├── package.json # Project metadata and scripts
├── .github/workflows/ # CI/CD workflows
└── docs/ # Additional documentation
Key Technologies:
- Node.js (v20+)
- TypeScript
- npm for package management
- GitHub Actions for CI/CD
- Jest or Vitest for testing
- Node.js >= 20
- npm >= 9
- Git
git clone https://github.com/your-org/tree-forge.git
cd tree-forge
npm ci
npm run build
npm test
- Create a new branch from
staging
for your feature or bug fix:
git checkout -b feature/my-feature staging
- Make your changes and commit:
git commit -m "feat: add my new feature"
- Push your branch and open a Pull Request into
staging
.
We use GitHub Flow with dedicated staging and main branches:
-
main
→ Production-ready code only. -
staging
→ Pre-release integration branch. -
feature/*
→ Individual features or fixes. -
hotfix/*
→ Urgent production fixes.
We run automated tests before merging to staging
or main
.
npm run test
- Unit tests
- Integration tests
- E2E tests (where applicable)
- Triggered by push to
staging
- Bumps version with
rc
preid - Publishes to npm with
next
tag - Creates GitHub prerelease
- Triggered by push to
main
- Creates and pushes version tag
- Publishes stable package to npm
- Generates GitHub release notes
We use GitHub Actions workflows:
- build.yml → Lint, build, and test.
-
prerelease.yml → RC builds from
staging
. -
release.yml → Stable builds from
main
.
npm publish --tag next
npm publish --access public
export NODE_AUTH_TOKEN=<npm_token>
- Fork the repository
- Create a feature branch from
staging
- Make your changes
- Submit a PUll Request with a clear description We follow Conventional Commits for commit messages.
This project is licensed under the MIT License.
See the LICENSE file for details.