Skip to content

Latest commit

 

History

History
106 lines (63 loc) · 3.42 KB

File metadata and controls

106 lines (63 loc) · 3.42 KB

Development workflow

1. Install Tools

Task

Common development processes are run using the Task task runner tool.

Follow the installation instructions here:
https://taskfile.dev/installation/

Node.js

npm is used for dependency management.

Follow the installation instructions here:
https://nodejs.dev/en/download

Node.js 20.x is used for development of this project. nvm is recommended to easily switch between Node.js versions.

Extras

Some optional tools used by this project:

2. Coding

Now you're ready to work some TypeScript magic!

Make sure to write or update tests for your work when appropriate.

3. Format code

Format the code to follow the standard style for the project:

npm run format

4. Run tests

Run the tests to ensure that the code works as expected:

task check

5. Build

It is necessary to compile the code before it can be used by GitHub Actions. Remember to run this command before committing any code changes:

task build

6. Commit

Everything is now ready to make your contribution to the project, so commit it to the repository and submit a pull request.

Thanks!

Dependency license metadata

Metadata about the license types of all dependencies is cached in the repository. To update this cache, run the following command from the repository root folder:

task general:cache-dep-licenses

The necessary Licensed tool can be installed by following these instructions.

Unfortunately, Licensed does not have support for being used on the Windows operating system.

An updated cache is also generated whenever the cache is found to be outdated by the by the "Check Go Dependencies" CI workflow and made available for download via the dep-licenses-cache workflow artifact.

Enable verbose logging for a pipeline

Additional log events with the prefix ::debug:: can be enabled by setting the secret ACTIONS_STEP_DEBUG to true.

See step-debug-logs for reference.

Release workflow

To release a new version, run:

task release VERSION=X.Y.Z

This will:

  1. Promote the Unreleased section of CHANGELOG.md to vX.Y.Z.
  2. Commit, tag (vX.Y.Z), and force-update the major version tag (vX).
  3. Push the commit and both tags to origin.
  4. Create a draft GitHub release for vX.Y.Z, pre-filled with the corresponding CHANGELOG.md section as release notes.

Before running, make sure to:

  • Update the action refs in README.md examples if incrementing major (e.g., uses: go-task/setup-task@v1 -> uses: go-task/setup-task@v2).
  • Run task check and task build to ensure dist/ is up to date.
  • Follow the SemVer specification.
  • Have the gh CLI installed and authenticated.

After the task completes, review the draft release on GitHub, edit the notes if needed, and publish it.