Thanks for contributing to Squid Mesh.

Development Setup

Requirements:

  • Elixir ~> 1.17
  • Erlang/OTP compatible with the current CI matrix
  • Postgres

Clone the repository and install dependencies:

mix deps.get

Prepare the example host app:

cd examples/minimal_host_app
mix deps.get
mix ecto.create
mix ecto.migrate

Local Verification

Run the root test suite:

mix test
mix format --check-formatted

Run the example host app test suite:

cd examples/minimal_host_app
mix test
MIX_ENV=test mix example.smoke

The example host app is part of the development harness. Changes that affect runtime behavior should keep that smoke path green.

Workflow For Changes

  1. Start from main.
  2. Create a short-lived branch for one focused slice.
  3. Keep commits small and intentional.
  4. Add or update tests with the change.
  5. Run the verification steps before opening a pull request.

Pull Requests

Pull requests should:

  • describe the net change
  • explain why the change is needed
  • stay focused on one reviewable slice
  • reference the issues they close when applicable

Documentation

Documentation changes are welcome and should keep these sources aligned:

  • README.md
  • docs/
  • example host app guides
  • module docs for public or operationally important modules

Questions And Discussion

If you are unsure about a change, open an issue or draft pull request first so the direction can be aligned before implementation gets large.