Skip to content

Latest commit

 

History

History
129 lines (84 loc) · 3.79 KB

CONTRIBUTING.md

File metadata and controls

129 lines (84 loc) · 3.79 KB

Contributing to Angular Versions Action

🙏 We would ❤️ for you to contribute to AngularVersionsAction and help make it even better than it is today!

Package versions

Angular Components

These packages' versions are synced:

Package name Package identifier First stable version
Angular CDK @angular/cdk 6.0.0
Angular Google Maps @angular/google-maps 9.0.0
Angular Material @angular/material 6.0.0
Angular YouTube Player @angular/youtube-player 9.0.0

The strategy for these packages is to resolve the latest minor version that was available when the specified minor Angular version was first released. For example, when Angular 8.2 was released, Angular Components were only at version 8.1, so consumers asking for Angular version 8.2.x will get Angular CDK version 8.1.x.

Developing

Install the dependencies

yarn

Build the typescript and package it for distribution

yarn build

Run the tests ✔️

yarn test

Make sure you include the latest distribution built in your PR commits

yarn build && git add .

Releasing a new version (for core contributors only)

Always release from main

git fetch origin && git switch -C main origin/main

Generate the changelog, commit and tag of the release.

yarn release

Push the generated commit into origin/main

git push origin main

Push the generated version tag into origin/main.

git push --follow-tags origin main

This Github action follows the recommended release workflow

Releasing minor and patch versions

NOTE: This operation may need multiple attempts. Always verify that the sha of the latest major version tag matches the latest commit in the main branch

Match the major version release tag with the newly create release tag.

git tag -fa v3 -m "update v3 tag to v3.x.y"

Push the updated major version to force the release into the Github Marketplace

git push origin v1 --force

Releasing a major version

Go to create a new release in Github a follow the instructions there.

Use the major version format for the release. For example if the current major version tag is v3 the new release version must be v4.

Coding Rules

To ensure consistency throughout the source code, keep these rules in mind as you are working:

  • All features or bug fixes must be tested by one or more specs (unit-tests).
  • All public API methods must be documented.

Commit Message Guidelines

We have very precise rules over how our git commit messages can be formatted. This leads to more readable messages that are easy to follow when looking through the project history. But also, we use the git commit messages to generate the angular-versions-action changelog.

Commit Message Format

Each commit message consists of a header, a body and a footer. The header has a special format that includes a type, a scope and a subject:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

The header is mandatory and the scope of the header is optional.

Any line of the commit message cannot be longer 100 characters! This allows the message to be easier to read on GitHub as well as in various git tools.

The footer should contain a closing reference to an issue if any.