Release Channels
React dựa vào cộng đồng mã nguồn mở phát triển mạnh để gửi báo cáo lỗi, tạo pull requests và submit RFCs. Để khuyến khích phản hồi, đôi khi chúng tôi chia sẻ các bản dựng đặc biệt của React bao gồm các tính năng chưa được phát hành.
Tài liệu này sẽ phù hợp nhất với các nhà phát triển làm việc trên framework, thư viện hoặc công cụ dành cho nhà phát triển. Các nhà phát triển sử dụng React chủ yếu để xây dựng các ứng dụng hướng đến người dùng không cần phải lo lắng về các kênh phát hành trước của chúng tôi.
Mỗi kênh phát hành của React được thiết kế cho một trường hợp sử dụng riêng biệt:
- Latest dành cho các bản phát hành React ổn định. Đó là những gì bạn nhận được khi cài đặt React từ npm. Đây là kênh bạn đã sử dụng hôm nay. Sử dụng các bản phát hành ổn định cho tất cả các ứng dụng React giao diện người dùng.
- Next theo dõi nhánh chính của kho mã nguồn React. Hãy coi đây là những ứng cử viên phát hành cho bản phát hành minor semver tiếp theo. Sử dụng điều này để kiểm tra tích hợp giữa React và các dự án của bên thứ ba.
- Experimental bao gồm các API thử nghiệm và các tính năng không có trong các bản phát hành ổn định. Chúng cũng theo dõi nhánh chính, nhưng với các cờ tính năng bổ sung được bật. Sử dụng điều này để thử các tính năng sắp tới trước khi chúng được phát hành.
Tất cả các bản phát hành đều được xuất bản lên npm, nhưng chỉ Latest sử dụng semantic versioning. Bản phát hành trước (những bản trong kênh Next và kênh Experimental) có các phiên bản được tạo từ hàm băm của nội dung và ngày commit, ví dụ: 0.0.0-68053d940-20210623
cho Next và 0.0.0-experimental-68053d940-20210623
cho Experimental.
Kênh phát hành chính thức duy nhất được hỗ trợ cho các ứng dụng hướng đến người dùng là Latest. Các bản phát hành Next và Experimental chỉ được cung cấp cho mục đích thử nghiệm và chúng tôi không đảm bảo rằng hành vi sẽ không thay đổi giữa các bản phát hành. Chúng không tuân theo giao thức semver mà chúng tôi sử dụng cho các bản phát hành từ Latest.
Bằng cách phát hành các bản cơ sở trước lên cùng một registry mà chúng tôi sử dụng cho các bản phát hành ổn định, chúng tôi có thể tận dụng nhiều công cụ hỗ trợ quy trình làm việc npm, như unpkg và CodeSandbox.
Latest Channel
Latest là kênh được sử dụng cho các bản phát hành React ổn định. Nó tương ứng với thẻ latest
trên npm. Đây là kênh được đề xuất cho tất cả các ứng dụng React được chuyển đến người dùng thực.
Nếu bạn không chắc mình nên sử dụng kênh nào thì đó là kênh Latest. Nếu bạn là nhà phát triển React, đây là kênh bạn đang sử dụng.
Bạn có thể mong đợi các bản cập nhật lên Latest sẽ cực kỳ ổn định. Các phiên bản tuân theo sơ đồ semantic versioning. Tìm hiểu thêm về cam kết của chúng tôi đối với sự ổn định và gia tăng di chuyển trong versioning policy của chúng tôi.
Next Channel
Kênh Next là kênh phát hành trước theo dõi nhánh chính của kho lưu trữ React. Chúng tôi sử dụng các điều kiện tiên quyết trong kênh Next làm ứng cử viên phát hành cho kênh Latest. Bạn có thể coi Next như một tập hợp của Latest được cập nhật thường xuyên hơn.
Mức độ thay đổi giữa bản phát hành Next gần đây nhất và bản phát hành Latest gần đây nhất gần giống như bạn sẽ thấy giữa hai bản phát hành minor semver. Tuy nhiên, kênh Next không tuân theo semantic versioning. Bạn nên mong đợi những thay đổi đột ngột giữa các bản phát hành kế tiếp trong kênh Next.
Không sử dụng các bản phát hành trước trong các ứng dụng giao diện người dùng.
Các bản phát hành trong Next được xuất bản với thẻ next
trên npm. Các phiên bản được tạo từ một hàm băm của nội dung của bản dựng và ngày commit, ví dụ: 0.0.0-68053d940-20210623
.
Sử dụng Next Channel cho Integration Testing
Kênh Next được thiết kế để hỗ trợ kiểm tra tích hợp giữa React và các dự án khác.
Tất cả các thay đổi đối với React đều trải qua quá trình thử nghiệm nội bộ rộng rãi trước khi chúng được phát hành ra công khai. Tuy nhiên, có vô số môi trường và cấu hình được sử dụng trong toàn bộ hệ sinh thái React và chúng tôi không thể kiểm tra từng môi trường và cấu hình.
Nếu bạn là tác giả của React framework, library, công cụ dành cho nhà phát triển của bên thứ ba hoặc dự án kiểu cơ sở hạ tầng tương tự, bạn có thể giúp chúng tôi giữ React ổn định cho người dùng của bạn và toàn bộ cộng đồng React bằng cách chạy định kỳ bộ thử nghiệm của bạn so với những thay đổi. Nếu bạn quan tâm, hãy làm theo các bước sau:
- Thiết lập một cron job bằng cách sử dụng nền tảng continuous integration ưa thích của bạn. Cron job được hỗ trợ bởi cả CircleCI và Travis CI.
-
Trong cron job, hãy cập nhật React packages của bạn lên bản phát hành React gần đây nhất trong kênh Next, sử dụng thẻ
next
trên npm. Sử dụng cli npm:npm update react@next react-dom@next
Hoặc yarn:
yarn upgrade react@next react-dom@next
- Chạy bộ thử nghiệm của bạn với các package đã cập nhật.
- Nếu mọi thứ đều pass, thật tuyệt! Bạn có thể mong đợi rằng dự án của mình sẽ hoạt động với bản phát hành minor React tiếp theo.
- Nếu có sự cố bất ngờ, vui lòng cho chúng tôi biết bằng cách tạo một issue.
Một dự án sử dụng quy trình làm việc này là Next.js. (Không có ý định chơi chữ! Nghiêm túc đấy!) Bạn có thể tham khảo CircleCI configuration của họ làm ví dụ.
Experimental Channel
Giống như Next, kênh Experimental là kênh phát hành trước để theo dõi nhánh chính của kho lưu trữ React. Không giống như Next, các bản phát hành Experimental bao gồm các tính năng và API bổ sung chưa sẵn sàng để phát hành rộng rãi hơn.
Thông thường, bản cập nhật cho Next đi kèm với bản cập nhật tương ứng cho Experimental. Chúng dựa trên cùng một bản sửa đổi nguồn, nhưng được xây dựng bằng cách sử dụng một bộ cờ tính năng khác nhau.
Các bản phát hành Experimental có thể khác đáng kể so với các bản phát hành Next và Latest. Không sử dụng các bản phát hành Experimental trong các ứng dụng dành cho người dùng. Bạn sẽ có những thay đổi thường xuyên giữa các bản phát hành trong kênh Experimental.
Các bản phát hành trong Experimental được xuất bản với thẻ experimental
vào npm. Các phiên bản được tạo từ một hàm băm của nội dung của bản dựng và ngày commit, ví dụ: 0.0.0-experimental-68053d940-20210623
.
Điều gì sẽ dẫn đến một bản phát hành thử nghiệm?
Các tính năng thử nghiệm là những tính năng chưa sẵn sàng ra mắt công chúng và có thể thay đổi đáng kể trước khi chúng được hoàn thiện. Một số thử nghiệm có thể không bao giờ được hoàn thiện - lý do chúng tôi có các thử nghiệm là để kiểm tra khả năng tồn tại của những thay đổi được đề xuất.
Ví dụ, nếu kênh Experimental đã tồn tại khi chúng tôi công bố Hooks, chúng tôi sẽ phát hành Hooks đến kênh Experimental vài tuần trước khi chúng có sẵn trong Latest.
Bạn có thể thấy việc chạy integration tests dựa trên Experimental có giá trị. Đây là tùy thuộc vào bạn. Tuy nhiên, hãy lưu ý rằng Experimental thậm chí còn kém ổn định hơn Next. Chúng tôi không đảm bảo bất kỳ sự ổn định nào giữa các bản phát hành Experimental.
Làm cách nào để tôi có thể tìm hiểu thêm về các tính năng thử nghiệm?
Các tính năng thử nghiệm có thể được viết tài liệu hoặc không. Thông thường, các thử nghiệm không được viết tài liệu cho đến khi chúng gần được đưa đến Next hay Lasest.
Nếu một tính năng không được viết tài liệu, chúng có thể bởi một RFC.
Chúng tôi sẽ đăng lên React blog khi chúng tôi đã sẵn sàng thông báo các thử nghiệm mới, nhưng không có nghĩa chúng tôi sẽ công khai mọi thử nghiệm.
Bạn luôn có thể tham khảo lịch sử của kho lưu trữ GitHub công khai của chúng tôi để biết danh sách toàn diện về các thay đổi.