Skip to content

Contrib and Codebase Guide#

General Setup and Information#

To get setup run

# Install black
python3 -m venv ~/.jacenv/
source ~/.jacenv/bin/activate
pip3 install pre-commit
pre-commit install

To understand our linting and mypy type checking have a look at our pre-commit actions. You can set up your enviornment accordingly. For help interpreting this if you need it, call upon our friend Mr. ChatGPT or one of his colleagues.

Our pre-commit process

This is how we run checks on demand.

pre-commit run --all-files

This is how we run our tests.

pytest -n 30 jac
pytest jac-cloud
pytest jac-byllm
pytest jac-streamlit
jac test jac/examples/littleX/littleX.test.jac

Run docs site locally#

This is how we run the docs.

pip install -e docs
python docs/scripts/mkdocs_serve.py

Build VSCode Extention#

cd jac/support/vscode_ext/jac
npm install
npm install -g @vscode/vsce
vsce package
code --install-extension jaclang-*.vsix # aslo works with cursor, etc
cd -

Release Flow (for the empowered)#

  • Version bump jac, jac-cloud, byllm
  • Remember to version bump requirement of jaclang in jac-cloud and byllm
  • Update release notes (unreleased becomes released)
  • Push to main
  • Go to GitHub, run Release jaclang to PYPI action manually
  • After success
  • Run Release jac-cloud to PYPI action manually
  • Run Release jac-byllm to PYPI action manually
  • Run RElease jac-mtllm to PYPI action manually, for deprecated library
  • If All success, W for you!!