Skip to content

Commit f0faedc

Browse files
authored
chore(release): bump to v1.0.0 for React 19 compatibility (#182)
* chore(release): bump to v1.0.0 for React 19 compatibility This release marks the stable 1.0.0 major version for the React 19 line. All packages have been bumped to 1.0.0. Key updates include: - Finalizing Tailwind CSS v4 migration. - Comprehensive accessibility improvements. - Updated documentation to reflect the new major release and branch strategy. - Add `@halvaradop/ui-utils` - Add `@halvaradop/ui-slot` - Clean up `@halvaradop/ui-core` * docs(changelogs): document bumped version * docs(changelog): add `v1.0.0` version * docs(standards): update `CONTRIBUTING.md` for `v1.0.0` stable releas * docs(standards): update `ARCHITECTURE.md` file for `v1.0.0` * docs(standards): document `[SYNC]` preffix * docs(contributing): document `[SYNC]` preffix * docs(changelogs): add missing text * chore(ui-radio): remove `@halvaradop/ui-radio` package in v1.0.0 * docs(readme): update `README.md` files * build(deps): update `peerDependencies`
1 parent acd46b8 commit f0faedc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+511
-409
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: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,32 @@ Per-package version history is maintained inside each package’s own `CHANGELOG
1212

1313
---
1414

15+
## [1.0.0] - 2025-06-09
16+
17+
> **Stable release for React 19**
18+
>
19+
> Version **1.0.0** is published as the first stable release of the library, now fully compatible and optimized for **React 19**.
20+
>
21+
> **This version is a direct promotion of the latest pre-release (`1.0.0-next.n`)** after successfully passing stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `next` phase.
22+
>
23+
> **Recommended update for all users**
24+
>
25+
> It is strongly recommended to update to this stable version to take advantage of the latest features, performance improvements, and security optimizations. Users who still depend on React 18 can continue using the `legacy/react-18` support branch, available on npm under the `legacy` tag.
26+
>
27+
> ### Main changes in version 1.0.0
28+
>
29+
> - **Full compatibility with React 19:** All components have been reviewed, validated, and optimized to ensure correct and efficient operation with React 19.
30+
> - **Complete migration to Tailwind CSS v4:** Finalizes the migration started in the pre-release, adopting the new capabilities, performance improvements, and configuration changes of Tailwind CSS v4.
31+
> - **Accessibility (a11y) improvements:** The components now includes WAI-ARIA attributes and adjustments for a more inclusive and standards-compliant accessibility experience.
32+
33+
- **Removal of the Radio package:** The `@halvaradop/ui-radio` package has been removed in this release. If your project depends on radio components, please migrate to an alternative or continue using a previous version.
34+
> ### Important notes
35+
>
36+
> - This version **does not introduce additional changes** compared to the pre-release `1.0.0-next.1`, except for its promotion to stable after passing all validation and regression tests.
37+
> - From this version onward, maintenance and new features will focus on compatibility with React 19 and Tailwind CSS v4.
38+
39+
---
40+
1541
## [next pre-publish] - 2025-06-08
1642

1743
- Published pre-release (`next`) versions for all major monorepo packages ([#170](https://github.com/halvaradop/ui/pull/170)):

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@beta
1+
# @halvaradop/ui
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: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
---
1111

12+
## [1.0.0] - 2025-06-09
13+
14+
> **Stable release for React 19**
15+
>
16+
> Version **1.0.0** is published as the first stable release of the library, now fully compatible and optimized for **React 19**.
17+
>
18+
> **This version is a direct promotion of the latest pre-release (`1.0.0-next.n`)** after successfully passing stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `next` phase.
19+
>
20+
> **Recommended update for all users**
21+
>
22+
> It is strongly recommended to update to this stable version to take advantage of the latest features, performance improvements, and security optimizations. Users who still depend on React 18 can continue using the `legacy/react-18` support branch, available on npm under the `legacy` tag.
23+
>
24+
> ### Main changes in version 1.0.0
25+
>
26+
> - **Full compatibility with React 19:** All components have been reviewed, validated, and optimized to ensure correct and efficient operation with React 19.
27+
> - **Complete migration to Tailwind CSS v4:** Finalizes the migration started in the pre-release, adopting the new capabilities, performance improvements, and configuration changes of Tailwind CSS v4.
28+
> - **Accessibility (a11y) improvements:** The components now includes WAI-ARIA attributes and adjustments for a more inclusive and standards-compliant accessibility experience.
29+
30+
- **Removal of the Radio package:** The `@halvaradop/ui-radio` package has been removed in this release. If your project depends on radio components, please migrate to an alternative or continue using a previous version.
31+
> ### Important notes
32+
>
33+
> - This version **does not introduce additional changes** compared to the pre-release `1.0.0-next.1`, except for its promotion to stable after passing all validation and regression tests.
34+
> - From this version onward, maintenance and new features will focus on compatibility with React 19 and Tailwind CSS v4.
35+
36+
---
37+
1238
## [1.0.0-next.1] - 2025-06-08 (Version @next for React 19)
1339

1440
> **Pre-release for React 19:** This `next` version is published for testing and validation with **React 19** as the base. It allows evaluation in real-world environments before being promoted to a stable release. The previous `rc` version was based on React 18.

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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@halvaradop/ui-button",
3-
"version": "0.4.0-beta.1",
3+
"version": "1.0.0",
44
"description": "A customizable button component for @halvaradop/ui library with Tailwind CSS styling.",
55
"type": "module",
66
"scripts": {

packages/ui-checkbox/CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
---
1111

12+
## [1.0.0] - 2025-06-09
13+
14+
> **Stable release for React 19**
15+
>
16+
> Version **1.0.0** is published as the first stable release of the library, now fully compatible and optimized for **React 19**.
17+
>
18+
> **This version is a direct promotion of the latest pre-release (`1.0.0-next.n`)** after successfully passing stability and regression tests in real-world environments. It includes all changes, improvements, and fixes introduced during the `next` phase.
19+
>
20+
> **Recommended update for all users**
21+
>
22+
> It is strongly recommended to update to this stable version to take advantage of the latest features, performance improvements, and security optimizations. Users who still depend on React 18 can continue using the `legacy/react-18` support branch, available on npm under the `legacy` tag.
23+
>
24+
> ### Main changes in version 1.0.0
25+
>
26+
> - **Full compatibility with React 19:** All components have been reviewed, validated, and optimized to ensure correct and efficient operation with React 19.
27+
> - **Complete migration to Tailwind CSS v4:** Finalizes the migration started in the pre-release, adopting the new capabilities, performance improvements, and configuration changes of Tailwind CSS v4.
28+
> - **Accessibility (a11y) improvements:** The components now includes WAI-ARIA attributes and adjustments for a more inclusive and standards-compliant accessibility experience.
29+
30+
- **Removal of the Radio package:** The `@halvaradop/ui-radio` package has been removed in this release. If your project depends on radio components, please migrate to an alternative or continue using a previous version.
31+
> ### Important notes
32+
>
33+
> - This version **does not introduce additional changes** compared to the pre-release `1.0.0-next.1`, except for its promotion to stable after passing all validation and regression tests.
34+
> - From this version onward, maintenance and new features will focus on compatibility with React 19 and Tailwind CSS v4.
35+
36+
---
37+
1238
## [1.0.0-next.1] - 2025-06-08 (Version @next for React 19)
1339

1440
> **Pre-release for React 19:** This `next` version is published for testing and validation with **React 19** as the base. It allows evaluation in real-world environments before being promoted to a stable release. The previous `rc` version was based on React 18.

packages/ui-checkbox/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-checkbox
1313
yarn add @halvaradop/ui-checkbox
1414
pnpm add @halvaradop/ui-checkbox
1515
```
1616

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

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

2525
## Usage

packages/ui-checkbox/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@halvaradop/ui-checkbox",
3-
"version": "0.2.0-beta.1",
3+
"version": "1.0.0",
44
"private": false,
55
"description": "A customizable Checkbox component for @halvaradop/ui library with Tailwind CSS styling.",
66
"type": "module",

0 commit comments

Comments
 (0)