Skip to content

Commit 95803ef

Browse files
authored
chore(release): bump to legacy version for Reac 18 (#183)
* docs(standards): update `CHANGELOG.md` file * docs(standards): update `README.md` files * docs(standards): document `@legacy` version * docs(standards): update `ARCHITECTURE.md` file * docs(standards): update `CONTRIBUTING.md` file * docs(readme): update `README.md` in the root * chore(release): bump to legacy version for React 18
1 parent 6679a46 commit 95803ef

40 files changed

+502
-251
lines changed

ARCHITECTURE.md

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -69,25 +69,54 @@ Key packages:
6969

7070
## Branching & Versioning Strategy
7171

72-
| Branch | React Version | Tailwind Version | Status |
73-
| ------ | ------------- | ---------------- | ------ |
74-
| master | React 18 | Tailwind v3 | Stable |
75-
| beta | React 19 | Tailwind v4 | Beta |
72+
| Branch | React Version | Tailwind Version | Status |
73+
| --------------- | ------------- | ---------------- | ------ |
74+
| master | React 19 | Tailwind v4 | Stable |
75+
| legacy/react-18 | React 18 | Tailwind v4 | Legacy |
7676

77-
- `master`: Current stable (React 18)
78-
- `beta`: Pre-release (React 19, Tailwind v4)
79-
- After the next major release, `main` will track React 19, and React 18 will move to `react-18` for legacy maintenance.
77+
- `master`: This is the **primary development branch** for the library. It is currently optimized for **React 19** and leverages **Tailwind CSS v4**. All new features, major improvements, and active development efforts are focused here.
78+
- `legacy/react-18`: This branch serves as a **legacy support line** for **React 18**. It will receive critical bug fixes and security updates but is not intended for new feature development.
79+
80+
### Strategy for Branch Transition
81+
82+
This diagram illustrates the process of transitioning the primary development line:
8083

8184
```mermaid
8285
sequenceDiagram
83-
participant Master
84-
participant Beta
85-
Master->>Beta: Create sync branch
86-
Beta->>Beta: Resolve React 19 conflicts
87-
Beta->>Beta: Update dependencies
88-
Beta->>Beta: Verify functionality
86+
participant OldMaster as master (React 18)
87+
participant Beta as beta (React 19 Development)
88+
participant NewMaster as master (React 19)
89+
participant LegacyBranch as legacy/react-18
90+
91+
OldMaster->>LegacyBranch: Renamed to legacy/react-18
92+
Beta->>NewMaster: Renamed to master (now main development branch)
93+
94+
Note over NewMaster, LegacyBranch: After transition:
95+
NewMaster->>NewMaster: Active development for React 19
96+
LegacyBranch->>LegacyBranch: Support and critical fixes for React 18
8997
```
9098

99+
### Current Synchronization Strategy
100+
101+
While `master` (React 19) is the primary branch, if critical fixes or foundational changes are applied to `legacy/react-18` that also benefit `master`, synchronization will occur.
102+
103+
```mermaid
104+
sequenceDiagram
105+
participant Master(React 19)
106+
participant Legacy/react-18(React 18)
107+
108+
Legacy/react-18->>Master(React 19): If critical fixes occur, synchronize
109+
Master(React 19)->>Master(React 19): Integrate synchronized changes
110+
```
111+
112+
## Historical Commit Prefixes ([SYNC])
113+
114+
During the parallel development phase—when the beta branch (now `master`) was being prepared for React 19 while the `master` branch (now `legacy/react-18`) remained active for React 18—we used a specific commit prefix:
115+
116+
- [SYNC]: Commits prefixed with [SYNC] indicate changes that were synchronized from the `master` branch (React 18) into the beta branch (React 19). This ensured that critical bug fixes, security updates, or foundational changes from the stable React 18 line were consistently integrated into the upcoming React 19 version.
117+
118+
Although the presence of these [SYNC] prefixes can add some noise to the commit history of the current `master` branch, we have chosen to preserve them rather than remove them. This decision was made to maintain the integrity of the repository tree and avoid breaking the commit history between the previous branches (`master` and beta). Removing these prefixes would have resulted in greater issues with traceability and understanding the complete repository history in the future.
119+
91120
## Internal Utilities
92121

93122
- `@halvaradop/ui-core`: Shared logic (e.g., `merge`, SlotProps, HTML typing).

CHANGELOG.md

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,49 @@ Per-package version history is maintained inside each package’s own `CHANGELOG
1010

1111
## [Unreleased]
1212

13+
---
14+
15+
## [legacy] - 2025-06-09
16+
17+
> **Release: React 18 Support**
18+
>
19+
> Version **0.y.z** marks the official release of our component library with full **React 18** compatibility. This version is a **direct promotion of the latest pre-release (`0.y.z-rc.n`)** and has passed all stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `rc` phase.
20+
>
21+
> While this release contains substantial updates (such as the complete migration to Tailwind CSS v4 and accessibility enhancements) similar to those in the main (`latest`) version, its purpose is to provide a dedicated support line for projects that still rely on React 18. Active development has moved to the `master` branch, which targets React 19.
22+
>
23+
> **Recommended update for React 18 users!**
24+
>
25+
> We strongly recommend updating to this version if your project still depends on React 18 to benefit from the latest fixes and optimizations. You can install it using the `legacy` tag on npm:
26+
>
27+
> ```bash
28+
> npm install @halvaradop/ui@legacy
29+
> ```
30+
>
31+
> We encourage users to plan their migration to React 19 to take advantage of the latest features and optimizations available in the `master` branch.
32+
33+
---
34+
1335
## [rc pre-release] - 2025-06-07
1436
1537
- Pre-release (`rc`) versions published for all major monorepo packages [#170](https://github.com/halvaradop/ui/pull/170):
1638
17-
- @halvaradop/ui-button
18-
- @halvaradop/ui-checkbox
19-
- @halvaradop/ui-core
20-
- @halvaradop/ui-dialog
21-
- @halvaradop/ui-form
22-
- @halvaradop/ui-input
23-
- @halvaradop/ui-label
24-
- @halvaradop/ui-radio-group
25-
- @halvaradop/ui-radio
26-
- @halvaradop/ui-select
27-
- @halvaradop/ui-slot
28-
- @halvaradop/ui-submit
29-
- @halvaradop/ui-template
30-
- @halvaradop/ui-utils
39+
- `@halvaradop/ui-button`
40+
- `@halvaradop/ui-checkbox`
41+
- `@halvaradop/ui-core`
42+
- `@halvaradop/ui-dialog`
43+
- `@halvaradop/ui-form`
44+
- `@halvaradop/ui-input`
45+
- `@halvaradop/ui-label`
46+
- `@halvaradop/ui-radio-group`
47+
- `@halvaradop/ui-radio`
48+
- `@halvaradop/ui-select`
49+
- `@halvaradop/ui-slot`
50+
- `@halvaradop/ui-submit`
51+
- `@halvaradop/ui-template`
52+
- `@halvaradop/ui-utils`
3153
3254
Each package incremented its pre-release version (`rc.0`, `rc.1`, etc.) as appropriate. These versions are available on npm under the `rc` tag for testing and validation prior to the stable release.
3355
34-
---
35-
36-
---
37-
3856
## Added
3957
4058
- **Theming system with CSS variables**
@@ -72,16 +90,12 @@ Per-package version history is maintained inside each package’s own `CHANGELOG
7290
After being removed in React 19 migration, `forwardRef` was re-added to restore compatibility with React 18’s `useRef`.
7391
→ [PR #78](https://github.com/halvaradop/ui/pull/78)
7492
75-
---
76-
7793
## Deprecated
7894
7995
- **`@halvaradop/ui-radio` package**
8096
The Radio component was deprecated and merged into `@halvaradop/ui-radio-group` to avoid duplication and Tailwind scanning issues.
8197
→ [PR #153](https://github.com/halvaradop/ui/pull/153), [Issue #144](https://github.com/halvaradop/ui/issues/144)
8298
83-
---
84-
8599
## Removed
86100
87101
- **Legacy configuration files**

CONTRIBUTING.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,9 @@ pnpm clean # Clean the project
6060

6161
## 🌿 Branching Strategy
6262

63-
- `master`: Current stable branch (React 18, will become legacy)
64-
- `beta`: React 19 development branch (will become new `main`)
65-
66-
Use `[SYNC]` prefix to indicate synchronization PRs between branches.
63+
- **`master`**: The main development branch. Represents the latest stable release (currently React 19).
64+
- **`legacy/react-18`**: Maintains support for React 18. Only accepts critical fixes, bug patches, and minimal changes required for legacy compatibility.
65+
- Use the `[SYNC]` prefix in pull request titles to clearly indicate synchronization PRs that merge changes between branches (e.g., from `master` to `legacy/react-18`).
6766

6867
---
6968

@@ -144,18 +143,19 @@ chore: upgrade dependencies
144143
145144
## 🚀 Pull Request Process
146145
147-
1. Use a descriptive title and body
148-
2. Reference any related issues or PRs
149-
3. Add screenshots for UI changes
150-
4. Ensure all tests and builds pass
151-
5. Label PRs appropriately:
152-
- `breaking`
153-
- `accessibility`
154-
- `[SYNC]`
155-
6. Get approval from a code owner
146+
1. Use a descriptive title and body that follow
147+
2. Reference any related issues or PRs in the body.
148+
3. Add screenshots or GIFs for UI changes to facilitate review.
149+
4. Ensure all tests pass (`pnpm test`)
150+
5. Confirm all builds pass (`pnpm build`).
151+
6. Label PRs appropriately (e.g., `breaking`, `accessibility`).
152+
7. Get approval from a code owner.
156153
157154
Only maintainers listed in the [CODEOWNERS](https://github.com/halvaradop/ui/blob/master/.github/CODEOWNERS) file can approve PRs related to their assigned areas.
158155
156+
> Note on [SYNC] commits:
157+
> Historically, during the transition phase, some commits in the master branch (formerly beta) might be prefixed with [SYNC]. These indicate changes synchronized from the legacy/react-18 branch. As a contributor, you should not use this prefix for new commits; it was specific to a past internal synchronization workflow.
158+
159159
---
160160
161161
## 🔖 Release Process
@@ -184,10 +184,10 @@ Each package follows [Semantic Versioning](https://semver.org/) independently:
184184
185185
Responsibilities:
186186
187-
- Review and merge PRs only in assigned scope (see `CODEOWNERS`)
188-
- Maintain consistency across versions and branches
189-
- Ensure all packages follow naming and changelog conventions
190-
- Coordinate `[SYNC]` PRs between `master`, `beta`, and `react-18`
187+
- Reviewing and merging PRs only within their assigned scope (see `CODEOWNERS`).
188+
- Maintaining consistency across different versions and branches.
189+
- Ensuring all packages adhere to naming and changelog conventions.
190+
- Coordinating any necessary synchronizations between `master` and `legacy/react-18` (though the [SYNC] commit prefix is no longer in active use for new contributions, historical context remains).
191191
192192
---
193193

README.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
# @halvaradop/ui
1+
# @halvaradop/ui@legacy
22

33
A modern, accessible, and customizable React UI component library, organized as a monorepo and styled with TailwindCSS v4. This library provides pre-styled, reusable components to help you build user interfaces faster and more consistently.
44

55
## Version Compatibility
66

77
Supports both `React 18` and `React 19`. Use the table below to select the correct library version for your React version:
88

9-
| React version | Library version |
10-
| ------------- | ---------------------- |
11-
| React 18 | Latest stable (^x.y.z) |
12-
| React 19 | Beta (^x.y.z-beta.n) |
9+
| React version | Library version | NPM tag |
10+
| ------------- | -------------------------- | -------- |
11+
| React 19 | `^1.y.z` (latest stable) | `latest` |
12+
| React 18 | `^0.y.z-legacy.n` (legacy) | `legacy` |
13+
14+
> **Note:**
15+
>
16+
> - For React 19, install the default package version (`@halvaradop/ui-button`).
17+
> - For React 18, use the `@legacy` tag (`@halvaradop/ui-button@legacy`) to ensure compatibility.
1318
1419
## Installation
1520

@@ -23,12 +28,12 @@ yarn add @halvaradop/ui-button
2328
pnpm add @halvaradop/ui-button
2429
```
2530

26-
### For React 19 (Beta)
31+
### For React 19 (Legacy)
2732

2833
```bash
29-
npm install @halvaradop/ui-button@beta
30-
yarn add @halvaradop/ui-button@beta
31-
pnpm add @halvaradop/ui-button@beta
34+
npm install @halvaradop/ui-button@legacy
35+
yarn add @halvaradop/ui-button@legacy
36+
pnpm add @halvaradop/ui-button@legacy
3237
```
3338

3439
## Usage

packages/ui-button/CHANGELOG.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
---
11+
12+
## [0.7.0] - 2025-06-09 (Version @legacy for React 18)
13+
14+
> **Release: React 18 Support**
15+
>
16+
> Version **0.y.z** marks the official release of our component library with full **React 18** compatibility. This version is a **direct promotion of the latest pre-release (`0.y.z-rc.n`)** and has passed all stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `rc` phase.
17+
>
18+
> While this release contains substantial updates (such as the complete migration to Tailwind CSS v4 and accessibility enhancements) similar to those in the main (`latest`) version, its purpose is to provide a dedicated support line for projects that still rely on React 18. Active development has moved to the `master` branch, which targets React 19.
19+
>
20+
> **Recommended update for React 18 users!**
21+
>
22+
> We strongly recommend updating to this version if your project still depends on React 18 to benefit from the latest fixes and optimizations. You can install it using the `legacy` tag on npm:
23+
>
24+
> ```bash
25+
> npm install @halvaradop/ui@legacy
26+
> ```
27+
>
28+
> We encourage users to plan their migration to React 19 to take advantage of the latest features and optimizations available in the `master` branch.
29+
30+
---
31+
32+
## [0.6.0-rc.1] - 2025-06-07
33+
1034
### Changed
1135
1236
- Migrated from Tailwind CSS v3 to v4. Removed deprecated CSS variables and added new auto-generated variables using the `@theme` directive. These changes improve consistency and reduce manual configuration. This change affected the Button component.
@@ -17,14 +41,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1741
1842
### Notes
1943
20-
- Tailwind CSS v4 changes impacted most components. The Button component now uses native variants instead of custom `addVariant()` definitions.
21-
22-
---
23-
24-
## [0.6.0-rc.1] - 2025-06-07
25-
26-
### Notes
27-
2844
- This is a **release candidate** published under the `rc` tag to validate changes in preparation for the upcoming `1.0.0` major release.
2945
See [#170](https://github.com/halvaradop/ui/pull/170)
3046
- Versioning and publishing were automated using the `release.bash` script.

packages/ui-button/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,22 @@
44

55
## Installation
66

7-
There are two versions available: one for React 18 (stable) and one for React 19 (beta).
7+
There are two versions available: one for React 19 (stable) and one for React 18 (legacy).
88

9-
### React 18 (Stable)
9+
### React 19 (Stable)
1010

1111
```bash
1212
npm install @halvaradop/ui-button
1313
yarn add @halvaradop/ui-button
1414
pnpm add @halvaradop/ui-button
1515
```
1616

17-
### React 19 (Beta)
17+
### React 18 (Legacy)
1818

1919
```bash
20-
npm install @halvaradop/ui-button@beta
21-
yarn add @halvaradop/ui-button@beta
22-
pnpm add @halvaradop/ui-button@beta
20+
npm install @halvaradop/ui-button@legacy
21+
yarn add @halvaradop/ui-button@legacy
22+
pnpm add @halvaradop/ui-button@legacy
2323
```
2424

2525
## Usage

packages/ui-button/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@halvaradop/ui-button",
3-
"version": "0.6.0",
3+
"version": "0.7.0",
44
"description": "A customizable button component for @halvaradop/ui library with Tailwind CSS styling.",
55
"type": "module",
66
"scripts": {
@@ -20,6 +20,7 @@
2020
"url": "git+https://github.com/halvaradop/ui.git"
2121
},
2222
"publishConfig": {
23+
"tag": "legacy",
2324
"access": "public",
2425
"registry": "https://registry.npmjs.org/@halvaradop/ui-button"
2526
},

packages/ui-checkbox/CHANGELOG.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
---
11+
12+
## [0.5.0] - 2025-06-09 - (Version @legacy for React 18)
13+
14+
> **Release: React 18 Support**
15+
>
16+
> Version **0.y.z** marks the official release of our component library with full **React 18** compatibility. This version is a **direct promotion of the latest pre-release (`0.y.z-rc.n`)** and has passed all stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `rc` phase.
17+
>
18+
> While this release contains substantial updates (such as the complete migration to Tailwind CSS v4 and accessibility enhancements) similar to those in the main (`latest`) version, its purpose is to provide a dedicated support line for projects that still rely on React 18. Active development has moved to the `master` branch, which targets React 19.
19+
>
20+
> **Recommended update for React 18 users!**
21+
>
22+
> We strongly recommend updating to this version if your project still depends on React 18 to benefit from the latest fixes and optimizations. You can install it using the `legacy` tag on npm:
23+
>
24+
> ```bash
25+
> npm install @halvaradop/ui@legacy
26+
> ```
27+
>
28+
> We encourage users to plan their migration to React 19 to take advantage of the latest features and optimizations available in the `master` branch.
29+
30+
---
31+
32+
## [0.4.0-rc.1] - 2025-06-07
33+
1034
### Changed
1135
1236
- Migrated from Tailwind CSS v3 to v4. Deprecated older CSS variables and introduced new ones using the `@theme` directive. This affects the configuration and structure of the Checkbox component.
@@ -22,14 +46,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2246
2347
### Notes
2448
25-
- The migration to Tailwind CSS v4 affects all components that relied on older variant definitions or hardcoded variable names.
26-
27-
---
28-
29-
## [0.4.0-rc.1] - 2025-06-07
30-
31-
### Notes
32-
3349
- This is a **release candidate** published under the `rc` tag to validate changes in preparation for the upcoming `1.0.0` major release.
3450
See [#170](https://github.com/halvaradop/ui/pull/170)
3551
- Versioning and publishing were automated using the `release.bash` script.

0 commit comments

Comments
 (0)