Contribute to EZ

EZ is open source and welcomes contributions of all kinds. Whether you're fixing a typo or implementing a new stdlib module, every contribution helps.

Ways to Contribute

Report Bugs

Found something broken? Open an issue with reproduction steps.

Request Features

Have an idea? Propose new functionality or improvements.

Write Examples

Help others learn by contributing real-world code examples.

Improve Stdlib

Add functions to @math, @strings, @arrays, @maps, and more.

Fix Bugs

Pick up an open issue and submit a pull request.

Improve Docs

Clarify explanations, fix typos, or add missing documentation.

Creating Issues

Good issues help maintainers understand and fix problems quickly. Follow these guidelines when creating an issue.

Issue Title Format

All issue titles must use one of these prefixes:

Prefix When to Use
Bug:Something is broken or produces incorrect results
Feature:New functionality or enhancement
Documentation:Docs improvements or additions
Tests:Unit tests or test infrastructure
Cleanup:Removing dead code or organizing

Bug Reports

Include these sections in every bug report:

  • Description — 1-3 sentences describing the bug
  • Severity — High, Medium, or Low with justification
  • Reproduction — Minimal EZ code that reproduces the bug
  • Expected Behavior — What should happen
  • Actual Behavior — What actually happens

Feature Requests

Include these sections in feature requests:

  • Description — What the feature does and why it's useful
  • Tasks — Actionable items with checkboxes
  • Proposed Syntax — Example EZ code showing usage
  • Expected Behavior — How it should work

Pull Requests

Ready to contribute code? Here's how to submit a pull request.

1

Fork & Clone

Fork the repository and clone it locally.

2

Create a Branch

Create a branch with a descriptive name: fix/parser-struct-literal or feature/sets-module

3

Make Changes

Write your code. Follow existing patterns and style.

4

Test

Run existing tests and add new ones for your changes.

5

Submit PR

Push your branch and open a pull request with a clear description of changes.

Contributing Examples

Good examples help people learn EZ faster. When writing examples:

  • Keep it focused — One concept per example
  • Make it runnable — Examples should work as-is when copied
  • Add comments — Explain non-obvious parts
  • Show real use cases — Practical > contrived
  • Test edge cases — Show how to handle errors or unusual inputs

Contributing to Stdlib

The standard library is where EZ gets its "batteries included" feel. Here's how to contribute:

Guidelines

  • Check for duplicates — Make sure the function doesn't already exist
  • Follow naming conventions — snake_case for functions, SCREAMING_SNAKE_CASE for constants, PascalCase for types
  • Write tests — Every stdlib function needs test coverage
  • Document it — Add to the docs with examples
  • Keep it simple — EZ values simplicity over cleverness

Proposing New Modules

Have an idea for an entirely new stdlib module? You can propose one. Open a feature issue with:

  • Module name — What would it be called? (e.g., @sets, @json, @fs)
  • Purpose — What problem does it solve?
  • Proposed API — List the functions, constants, and types it would include
  • Example usage — Show how it would be used in EZ code

Not every proposal will be accepted — EZ intentionally keeps a limited scope — but good ideas that fit the language's goals are welcome.

Ready to Contribute?

Check out open issues or start a discussion.