Contributing to Prometheus

June 15, 2026 ยท View on GitHub

Thanks for contributing to Prometheus.

Requirements

  • Keep pull requests focused and small where possible.
  • Follow the existing project style and structure.
  • Ensure your changes do not break existing tests and behavior.
  • Add or update tests when changing behavior.
  • Document user-visible changes clearly.

Running Tests

Tests run inside a Docker container with lua5.1 and Luau:

./scripts/run-tests.sh           # Run all tests (default: 10 iterations)
./scripts/run-tests.sh -b        # Build image (needed first time or after Dockerfile changes)
./scripts/run-tests.sh -n 5      # Run with 5 iterations
./scripts/run-tests.sh -c config.lua  # Use a custom config
./scripts/run-tests.sh -v        # Verbose output

Test File Metadata

Test files can include metadata comments at the top of the file:

AnnotationEffect
-- @skipSkip this test entirely
-- @luau-onlyOnly run with Luau
-- @runtime lua51 luajitOnly run with specified runtimes
-- @skip-preset WeakSkip a specific preset for this test

Reporting Bugs

When opening a bug report, include:

  • Clear bug description
  • Expected behavior
  • Steps to reproduce
  • A minimal reproducible example shared via the Prometheus Playground: https://prometheus-lua.github.io/Prometheus/
  • Config used (preset/custom config)
  • Produced output and relevant errors/logs
  • Environment details (OS, Lua/LuaJIT version)

Bug reports without a reproducible minimal example may be closed until reproducible information is provided.

Contributing New Steps / Features

If a new step or feature might break existing scripts:

  • It must be clearly documented as potentially breaking.
  • It must not be added to any default pipeline.
  • It should only be available through custom configuration.

When proposing such a change, include migration guidance and examples for users.