diff --git a/.github/workflows/release-v3.yml b/.github/workflows/release-v3.yml new file mode 100644 index 0000000000..7c26f68f50 --- /dev/null +++ b/.github/workflows/release-v3.yml @@ -0,0 +1,85 @@ +name: Release v3 version + +on: + workflow_dispatch: + +jobs: + validate-branch: + name: Validate Branch + runs-on: ubuntu-latest + steps: + - name: Ensure running on vibe3 + if: github.ref != 'refs/heads/vibe3' + run: | + echo "::error::Release v3 workflow must be triggered from the vibe3 branch. Current branch: ${{ github.ref }}" + exit 1 + + notify-release-start: + name: Notify Slack - Release Started + needs: validate-branch + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: Send Slack notification + uses: fjogeleit/http-request-action@v1 + with: + url: ${{ secrets.SLACK_DEV_TEAM_WEBHOOK_URL }} + method: "POST" + contentType: "application/json" + data: | + { + "event": "v3_release_started", + "actor": "${{ github.actor }}", + "commit_id": "${{ github.sha }}", + "workflow": "${{ github.workflow }}", + "run_url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", + "commit_url": "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" + } + + build: + name: Build + needs: validate-branch + uses: ./.github/workflows/build-and-upload.yml + secrets: + npm_token: ${{ secrets.npm_token }} + + test: + name: Test + needs: build + uses: ./.github/workflows/test.yml + with: + has_changes: ${{ needs.build.outputs.has_changes }} + secrets: + npm_token: ${{ secrets.npm_token }} + + release: + name: Release + needs: [build, test] + if: ${{ needs.build.outputs.has_changes == 'true' }} + runs-on: ubuntu-latest + env: + NODE_AUTH_TOKEN: ${{ secrets.npm_token }} + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.VIBE_GITHUB_TOKEN }} + fetch-depth: 0 + - name: Run Setup + uses: ./.github/actions/setup + with: + npm_token: ${{ secrets.npm_token }} + - uses: ./.github/actions/git-creds + - uses: ./.github/actions/download-builds + - name: Generate new versions + run: yarn lerna version --exact --conventional-commits --message "Publish [skip ci]" -y --create-release github + env: + GH_TOKEN: ${{ secrets.VIBE_GITHUB_TOKEN }} + - run: yarn config set registry https://registry.npmjs.org/ + - name: Setup .npmrc for publish + id: setup-npmrc + run: echo "//registry.npmjs.org/:_authToken=$NODE_AUTH_TOKEN" > .npmrc + - name: Publish to npm with v3 dist-tag + run: yarn lerna publish from-package --dist-tag v3 --dry-run -y + - name: Remove .npmrc + if: steps.setup-npmrc.outcome == 'success' + run: rm .npmrc diff --git a/packages/core/src/components/Badge/Badge.tsx b/packages/core/src/components/Badge/Badge.tsx index 43eef55946..39215c34d7 100644 --- a/packages/core/src/components/Badge/Badge.tsx +++ b/packages/core/src/components/Badge/Badge.tsx @@ -7,7 +7,6 @@ import { ComponentDefaultTestId, ComponentVibeId } from "../../tests/constants"; import { type BadgeAlignments, type BadgeAnchor, type BadgeType } from "./Badge.types"; import Indicator, { type IndicatorProps } from "./Indicator/Indicator"; import Counter, { type CounterProps } from "../Counter/Counter"; - import { type IndicatorColor } from "./Indicator/Indicator.types"; import { type CounterColor } from "../Counter/Counter.types"; import styles from "./Badge.module.scss"; diff --git a/packages/core/src/components/Combobox/Combobox.tsx b/packages/core/src/components/Combobox/Combobox.tsx index 80f8e82987..f72b5bf075 100644 --- a/packages/core/src/components/Combobox/Combobox.tsx +++ b/packages/core/src/components/Combobox/Combobox.tsx @@ -8,7 +8,6 @@ import { ComponentDefaultTestId, getTestId } from "../../tests/test-ids-utils"; import Search from "../Search/Search"; import { Button } from "@vibe/button"; import { Text } from "@vibe/typography"; - import { defaultFilter } from "./ComboboxService"; import { ComboboxItems } from "./components/ComboboxItems/ComboboxItems"; import { StickyCategoryHeader } from "./components/StickyCategoryHeader/StickyCategoryHeader"; diff --git a/packages/core/src/components/Counter/Counter.tsx b/packages/core/src/components/Counter/Counter.tsx index eadf3ece51..2ae4942d95 100644 --- a/packages/core/src/components/Counter/Counter.tsx +++ b/packages/core/src/components/Counter/Counter.tsx @@ -6,7 +6,6 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react" import { CSSTransition, SwitchTransition } from "react-transition-group"; import useEventListener from "../../hooks/useEventListener"; import useAfterFirstRender from "../../hooks/useAfterFirstRender"; - import { type CounterColor, type CounterSize, type CounterType } from "./Counter.types"; import { type VibeComponentProps } from "../../types"; import styles from "./Counter.module.scss"; diff --git a/packages/core/src/components/ListItem/ListItem.tsx b/packages/core/src/components/ListItem/ListItem.tsx index 59f9b46471..c7ed410eef 100644 --- a/packages/core/src/components/ListItem/ListItem.tsx +++ b/packages/core/src/components/ListItem/ListItem.tsx @@ -12,7 +12,6 @@ import { camelCase } from "es-toolkit"; import { getStyle, NOOP, useMergeRef } from "@vibe/shared"; import { Text } from "@vibe/typography"; import { SIZES, SELECTION_KEYS } from "../../constants"; - import { type VibeComponentProps, type ElementContent } from "../../types"; import { useKeyEvent } from "../../hooks"; diff --git a/packages/core/src/components/ListItemIcon/ListItemIcon.tsx b/packages/core/src/components/ListItemIcon/ListItemIcon.tsx index 0996d3fd7d..e290f2b502 100644 --- a/packages/core/src/components/ListItemIcon/ListItemIcon.tsx +++ b/packages/core/src/components/ListItemIcon/ListItemIcon.tsx @@ -4,7 +4,6 @@ import { useMergeRef, getStyle } from "@vibe/shared"; import { Icon, type SubIcon } from "@vibe/icon"; import { type ListItemElement } from "../ListItem"; import { type VibeComponentProps } from "../../types"; - import styles from "./ListItemIcon.module.scss"; import { type ListItemIconMargin } from "./ListItemIcon.types"; diff --git a/packages/core/src/components/Menu/Menu/Menu.tsx b/packages/core/src/components/Menu/Menu/Menu.tsx index 31289adee4..483e6da0a9 100644 --- a/packages/core/src/components/Menu/Menu/Menu.tsx +++ b/packages/core/src/components/Menu/Menu/Menu.tsx @@ -13,7 +13,6 @@ import { useAdjacentSelectableMenuIndex } from "./hooks/useAdjacentSelectableMen import { useFocusWithin } from "../../../hooks/useFocusWithin"; import usePrevious from "../../../hooks/usePrevious"; import { type ElementContent, type VibeComponentProps } from "../../../types"; - import { getTestId } from "../../../tests/test-ids-utils"; import { ComponentDefaultTestId, ComponentVibeId } from "../../../tests/constants"; import { useFocusOnMount } from "./hooks/useFocusOnMount"; diff --git a/yarn.lock b/yarn.lock index 88a048e273..0dee19d1bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6673,7 +6673,7 @@ "@vibe/base@3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@vibe/base/-/base-3.0.5.tgz#d15de26ea7399251a047947bd2c5cdc3cd932b32" + resolved "https://registry.npmjs.org/@vibe/base/-/base-3.0.5.tgz#d15de26ea7399251a047947bd2c5cdc3cd932b32" integrity sha512-e0JQWygbbRj6q85XlovXAOgkxZtoTR7I9K+OMoMvFc09xnQ1evZr8G2HF6Il8ENT/23s5O8hLJ1Ef/OzdBbp2w== dependencies: "@vibe/shared" "3.0.8" @@ -6681,7 +6681,7 @@ "@vibe/button@3.0.16": version "3.0.16" - resolved "https://registry.yarnpkg.com/@vibe/button/-/button-3.0.16.tgz#6612892a8a338b603b77e2fa310df7b342ba3f45" + resolved "https://registry.npmjs.org/@vibe/button/-/button-3.0.16.tgz#6612892a8a338b603b77e2fa310df7b342ba3f45" integrity sha512-fjFb7Khv86P/tk6rO8Mdg2+fwBLen98i+E6YXC2gkWcFJAvNfjkH8kZN4m0HhmaQDBQb+ESmXZdq9vZIllS3Dw== dependencies: "@vibe/icon" "3.0.11" @@ -6692,7 +6692,7 @@ "@vibe/clickable@3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@vibe/clickable/-/clickable-3.0.3.tgz#e5c0ad7e739f350326eddfa7447acf0458b363e0" + resolved "https://registry.npmjs.org/@vibe/clickable/-/clickable-3.0.3.tgz#e5c0ad7e739f350326eddfa7447acf0458b363e0" integrity sha512-xsMt0TpUj8Wdv62kADvq//BhXlU3YVBix4WJdcyRPBp5NRPMksIbbOiMc35WIZznO/lA9IwoE1ktFOjwx28hfw== dependencies: "@vibe/shared" "3.0.8" @@ -6700,9 +6700,9 @@ es-toolkit "^1.39.10" "@vibe/core@^3.59.0": - version "3.87.0" - resolved "https://registry.yarnpkg.com/@vibe/core/-/core-3.87.0.tgz#ef2e6d2a03bdc59aa792451ea16557f980dbe5b5" - integrity sha512-3IVFH6o0/AbrpyF/hfEzwTbJ1UdubURugTUiam1ElhzXFJAE83tpEkvTSmml34jMojBifEpV3QiIVJZXc+taxA== + version "3.88.0" + resolved "https://registry.npmjs.org/@vibe/core/-/core-3.88.0.tgz#fd002415d6f9e2db2201218496b830e4e1a30b44" + integrity sha512-gvtuMPKg8RCVutyQafVcg8lCZwQ2Ne378ZBkWmxptMMyOacH8gI6bxnecxBZ8vQpk5PH/fvmJ/gsnDnoBb+PEg== dependencies: "@floating-ui/react-dom" "^2.1.2" "@popperjs/core" "2.11.6" @@ -6745,7 +6745,7 @@ "@vibe/dialog@3.0.12": version "3.0.12" - resolved "https://registry.yarnpkg.com/@vibe/dialog/-/dialog-3.0.12.tgz#f417c21fd15fdbe0c10552e2ccf768125542c1f6" + resolved "https://registry.npmjs.org/@vibe/dialog/-/dialog-3.0.12.tgz#f417c21fd15fdbe0c10552e2ccf768125542c1f6" integrity sha512-XOM7VuSRkDsdOcwtx2Xfx4WfaXeBmW9I1IwkM6nThTZzFv6QlePw9RacIUj/xYwale/IfjlzrpA0Hx5jMq68XA== dependencies: "@popperjs/core" "2.11.6" @@ -6759,7 +6759,7 @@ "@vibe/hooks@3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@vibe/hooks/-/hooks-3.0.3.tgz#048284a79c75a9aaddbd730dc5fdb49851a2ecf9" + resolved "https://registry.npmjs.org/@vibe/hooks/-/hooks-3.0.3.tgz#048284a79c75a9aaddbd730dc5fdb49851a2ecf9" integrity sha512-74iEe2qLdjm3enpstGtewFkrKxNACvPMtIAxgUiBZ9T28cYu5mjbtH+Lp2Gv/kNMMv3x/V3RWcn7uqjLjyKBbQ== dependencies: "@vibe/shared" "3.0.8" @@ -6768,7 +6768,7 @@ "@vibe/icon-button@3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@vibe/icon-button/-/icon-button-3.0.5.tgz#3bbb1db95a3c2af1737acfbcef54a38867ba8191" + resolved "https://registry.npmjs.org/@vibe/icon-button/-/icon-button-3.0.5.tgz#3bbb1db95a3c2af1737acfbcef54a38867ba8191" integrity sha512-GS31OUHgoElhRYUerqALRK8kB3czIXyHVONRhzVtKTGdoKLYaJP3bvIcqpnfzWaYjMMuKjgwp//JlUh2JHUI/g== dependencies: "@vibe/button" "3.0.16" @@ -6781,7 +6781,7 @@ "@vibe/icon@3.0.11": version "3.0.11" - resolved "https://registry.yarnpkg.com/@vibe/icon/-/icon-3.0.11.tgz#bb3159ec302a389d6f3e20edc36723d068f2efa5" + resolved "https://registry.npmjs.org/@vibe/icon/-/icon-3.0.11.tgz#bb3159ec302a389d6f3e20edc36723d068f2efa5" integrity sha512-4xdj++K+2e7Wy7mSeTS6aLK0rjZpwIuZZoFv6X/lE5PxR7JkA1IRiaHUyCSE9CS9W0TDGEAzN923YuFjU0ghsA== dependencies: "@vibe/shared" "3.0.8" @@ -6791,12 +6791,12 @@ "@vibe/icons@1.16.0", "@vibe/icons@^1.9.0": version "1.16.0" - resolved "https://registry.yarnpkg.com/@vibe/icons/-/icons-1.16.0.tgz#89f51b2308b5f4c053f6a1e9e6fad2adca2ab1d3" + resolved "https://registry.npmjs.org/@vibe/icons/-/icons-1.16.0.tgz#89f51b2308b5f4c053f6a1e9e6fad2adca2ab1d3" integrity sha512-/ljaos2zNr4NfZKLoAjOfEilWUlmvBwqh9fFN+Z1BdYW84oGZQGRdj4TJW5jyirZyJ/H6jTcutKUbJaD3Om7+w== "@vibe/layer@3.0.10": version "3.0.10" - resolved "https://registry.yarnpkg.com/@vibe/layer/-/layer-3.0.10.tgz#656e9c33c9511d621199ad12c989bc9c8370ccb0" + resolved "https://registry.npmjs.org/@vibe/layer/-/layer-3.0.10.tgz#656e9c33c9511d621199ad12c989bc9c8370ccb0" integrity sha512-UChefl8dxp4SLadYcItRMc49AS8PEakDv05KBNxzej2vybignt0sqI98+CurC6lr+0dNRlf8x58+Gae9wy5ybQ== dependencies: "@vibe/icon" "3.0.11" @@ -6807,7 +6807,7 @@ "@vibe/layout@3.0.3": version "3.0.3" - resolved "https://registry.yarnpkg.com/@vibe/layout/-/layout-3.0.3.tgz#0cb8f057844fc624696e5e1e13f244088e6ea354" + resolved "https://registry.npmjs.org/@vibe/layout/-/layout-3.0.3.tgz#0cb8f057844fc624696e5e1e13f244088e6ea354" integrity sha512-9SGVKKl4IJqsqg7Yuy9aQHtqGG/wPs/7ZCK2g3Fp8ot0/yc3EjWgBQh0uP+wOVHyRaRUPfI4CdkCsVmdGJ4YFQ== dependencies: "@vibe/clickable" "3.0.3" @@ -6817,7 +6817,7 @@ "@vibe/loader@3.0.11": version "3.0.11" - resolved "https://registry.yarnpkg.com/@vibe/loader/-/loader-3.0.11.tgz#f73390703330369cb5886bc4d42c1df120da8556" + resolved "https://registry.npmjs.org/@vibe/loader/-/loader-3.0.11.tgz#f73390703330369cb5886bc4d42c1df120da8556" integrity sha512-F1Yn9ti0yaD08VYt0pfubfyE1yRsG8GZA41TR+0erVr/XnVlf6NA8+07pU85N06rQnp89slxlMy8Yf4AevkWDQ== dependencies: "@vibe/shared" "3.0.8" @@ -6825,14 +6825,14 @@ "@vibe/shared@3.0.8": version "3.0.8" - resolved "https://registry.yarnpkg.com/@vibe/shared/-/shared-3.0.8.tgz#fddb789695ee5f62a894a1930674466b210819d2" + resolved "https://registry.npmjs.org/@vibe/shared/-/shared-3.0.8.tgz#fddb789695ee5f62a894a1930674466b210819d2" integrity sha512-qjWaNylbVKbdaDi75jFpp+LmF3y74JYdaLNWf6noiMkhq0fhcPTietVrHBxYO2b0cBvm1sQbrytX5YiBk3ii2w== dependencies: es-toolkit "^1.39.10" "@vibe/tooltip@3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@vibe/tooltip/-/tooltip-3.0.5.tgz#7e793b7086eec6951e892dfdc52a1375e787248b" + resolved "https://registry.npmjs.org/@vibe/tooltip/-/tooltip-3.0.5.tgz#7e793b7086eec6951e892dfdc52a1375e787248b" integrity sha512-+PYHdWDw/5ua1qj2RHRC0R1pmzpjd3wnUOpkq9+l7wJvqVmb66SFMhq2O7u4RxpKTvxjj41eS6jcAyHgWiaYvw== dependencies: "@vibe/dialog" "3.0.12" @@ -6844,7 +6844,7 @@ "@vibe/typography@3.0.5": version "3.0.5" - resolved "https://registry.yarnpkg.com/@vibe/typography/-/typography-3.0.5.tgz#d6cc582f24b15ea4bd5181b90f1a3f616f55292b" + resolved "https://registry.npmjs.org/@vibe/typography/-/typography-3.0.5.tgz#d6cc582f24b15ea4bd5181b90f1a3f616f55292b" integrity sha512-SRLWcFymgsdjagstUXWyUb8nYaQCKiaHi6/488MyjP5ssSXzP0/uJcQkd7c29fmZXxh5lg53xTEebPZrR7bmLA== dependencies: "@vibe/hooks" "3.0.3"