Overview
Contributors
Development Workflow

Development Workflow

  1. Open an issue here (opens in a new tab) describing your feature or fix.
  2. Create a branch using a descriptive name that references the issue like feat-123-description or fix-123-description.
  3. Add feature, fix bug, refactor, etc.
  4. Create changeset by running pnpm changeset in root of repo. Answer prompts, typically you'll be creating a minor change
  5. Stage changes including changeset file (i.e. git add -A)
  6. Commit changes. Husky git commits should trigger lint-staged to run validating your staged files
  7. Push branch and open a PR into awslabs/green-boost's main branch.
  8. Work with Green Boost team to refactor PR and then wait for PR to be merged!

Pull Requests

When creating a pull request (PR) that includes functionality that should be documented in the changelog and/or update the version of a package (most changes) be sure to create a changeset (opens in a new tab). Changesets are files that live within the .changeset folder and are created with pnpm changeset at the root of the green boost repository. You'll be asked what packages the changes were made in and what semantic version (opens in a new tab) level (patch, minor, major) to apply. After you create these files via pnpm changeset, you can edit the generated markdown (within .changeset folder) however you'd like.

When a PR is created, several continuous integration (CI) checks are run based on the ci.yml (opens in a new tab) GitHub workflow. It should be required, but please make sure these pass before merging.

Releases

Changesets (opens in a new tab) is used to create releases. A release includes a git tag (opens in a new tab) and entry in the GitHub releases page (opens in a new tab) of Green Boost. After merging changes into main, the changesets GitHub bot will automatically create a changeset-release/main branch and a PR titled, "Version Packages", for the packages that were updated into the main branch. When this PR is merged, the GitHub Workflow publish.yml (opens in a new tab) releasing changes to NPM.