# reporting-dimensions

A TypeScript library that implements clustering and views for reports.

# Connect locally with report

- build locally
- replace version in the report's package.json with e.g.
  "@leanix/reporting-dimensions": "~/dev/reporting-dimensions"

see slack: https://leanix.slack.com/archives/C98RHJZPU/p1694418724394299

# Release Process

This package uses **automated publishing** - merging to `main` automatically publishes to npm when the version changes.

## How It Works

1. **Version Detection**: On every push to `main`, CI compares `package.json` version with npm registry
2. **Auto-Publish**: If version is new → publishes to npm automatically
3. **Skip if Same**: If version already exists → skips publishing (no errors)

## Releasing a New Version

### Option 1: Pre-push Hook (Recommended)

When you push, a **pre-push hook** prompts you:

```
🚀 Release Check
Will these changes need a release?
[y] Yes - bump version now
[n] No - skip release
[l] Later - ask me next push
```

Choose `y` and select version type (patch/minor/major). The hook automatically:

- Bumps the version in `package.json`
- Commits the change
- Proceeds with the push

### Option 2: Manual Version Bump

1. Update version in `package.json` following [Semantic Versioning](https://semver.org/)
2. Commit the change
3. Push/merge to `main`

## Skipping Release Checks

For branches that don't need releases (e.g., documentation-only):

- Choose `n` at the pre-push prompt, or
- Create a `.no-release` file (git-ignored)

## Verification

After merging, check the [trigger-release workflow](../../actions/workflows/trigger-release.yml):

- **~60s run** = successful publish
- **~30s run** = version skipped (already published)
