Skip to content

Latest commit

 

History

History
40 lines (33 loc) · 1.8 KB

File metadata and controls

40 lines (33 loc) · 1.8 KB

Contributing to Pulumi ESC

Development setup

Prerequisites

Build and test

make build        # Build the esc binary
make test         # Run tests (-short, parallel)
make test_cover   # Run full tests with race detection and coverage
make lint         # Run all linters
make format       # Format all Go files
make verify       # Format + lint + test (pre-commit check)

Submitting changes

  1. Create a branch from main.
  2. Make your changes. Keep PRs focused — one concern per PR.
  3. Run make verify and fix any failures.
  4. Add a changelog entry to CHANGELOG_PENDING.md if the change is user-facing.
  5. Open a PR. Fill in all sections of the PR template.
  6. Include evidence of test execution in the PR body.

Test conventions

  • Tests use testdata/ directories for snapshot files and fixtures.
  • If your change alters output, update snapshot files with PULUMI_ACCEPT=true make test and carefully review the diff.
  • Use go test -run TestName ./path/to/package/ to run a single test.

Performing a release

We use goreleaser for automating releases. To cut a new release, create a commit that:

  • Copy the entries in CHANGELOG_PENDING into CHANGELOG. CHANGELOG_PENDING is used to generate the release notes. After releasing, the following commit can clear the changes from pending.
  • Bumps the version in the .version file, which is used to stamp the version into the binary.
  • Tag the commit with a version tag in the format vX.X.X, to trigger the release automation.