# QLU UI Library
Welcome to the project! This document provides an overview of the workflow and how to use the Changeset feature to manage versioning, changelogs, and releases.

## Workflow Overview
### Semantic Versioning
Changesets in this project follow semantic versioning conventions. The version number format is major.minor.patch, where:

- Patch: Backwards-compatible bugfix
- Minor: Backwards-compatible feature
- Major: Any change that isn't backwards compatible

### GitHub Action
A GitHub Action has been set up to run every time a commit is made to the main branch(when the PR will be merged). If the commit includes a "changeset," it will open or update a release pull request (PR) summarizing changes not yet in the latest release. The PR includes the following changes:

1. Removal of all "changeset" markdown files
2. Package version bump based on changesets
3. Changelog entries for each "changeset"
4. The next package version is automatically determined by analyzing all "changeset" entries. If there are multiple minor changes, only one minor release is bumped. The same logic applies to a mix of version types; the most significant version is bumped.

### Creating a Changeset
You should include the changeset in your PR if the changes in your PR are to be published. To create a "changeset," run the following command:

`npx changeset`

Follow the prompts to choose the type of version change (patch, minor, or major) and provide a description of the change. The description will appear in the changelog upon release. A new markdown file will be created in the .changeset folder.

## Example Workflow
1. Developer makes changes and runs npx changeset to create a "changeset" describing the change in the branch you're working on.
2. Developer pushed the branch to origin and creates a PR for the main branch.
3. Developers adds a required reviewer of their PR.
3. When PR is merged, GitHub Action runs, opens or updates a release PR.
4. Release PR includes version bump, changelog entries, and removal of "changeset" files.
5. On merging the release PR to trigger automatic package publishing to NPM.

## Conclusion
With this workflow, manual calculation of package versions is a thing of the past. Enjoy the streamlined process of managing releases and versioning in your project!





