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 install

Change 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.build

Run 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.

Back to top