Contributing to ASTx
ASTx lives in packages/astx within the ArxLang monorepo. Changes should keep the shared node model language-agnostic and should not embed Arx parser rules or IRx lowering behavior.
Setup
git clone https://github.com/arxlang/arx.git
cd arx
mamba env create --file conda/dev.yaml
conda activate arx
poetry installChange guidelines
- Reuse existing node families and naming conventions.
- Add source locations and parent relationships consistently.
- Keep runtime type checking and strict static typing green.
- Update
__str__, structured representation, and visualization behavior when node shape changes. - Add focused tests under
packages/astx/tests. - Coordinate IRx and frontend changes when a new node is intended for immediate lowering or source-language use.
- Do not imply that adding an ASTx node automatically adds backend support.
Checks
makim astx.unittests
makim astx.typecheck
makim astx.lint
makim astx.buildRun makim all.ci when a change also touches Arx, IRx, or another package.
Pull request titles use Conventional Commits because releases are generated by semantic-release and squash merge.