PEP Python mới nhất là gì?

Tài liệu này mô tả lịch trình phát triển và phát hành cho Python 3. 3. Lịch trình chủ yếu liên quan đến các mặt hàng có kích thước PEP

Quản lý phát hành và phi hành đoàn

  • 3. 3 người quản lý phát hành. Georg Brandl, Ned Deily (3. 3. 7+)
  • trình cài đặt Windows. Martin v. Löwis
  • trình cài đặt Mac. Ronald Oussoren/Ned Deily
  • Tài liệu. Georg Brandl

3. 3 Tuổi thọ

3. 3 sẽ nhận được các bản cập nhật sửa lỗi khoảng 4-6 tháng một lần trong khoảng 18 tháng. Sau khi phát hành 3. 4. 0 trận chung kết, trận chung kết 3. 3 bản cập nhật sửa lỗi sẽ được phát hành. Sau đó, các bản cập nhật bảo mật (chỉ nguồn) sẽ được phát hành cho đến 5 năm sau khi phát hành 3. 3 trận chung kết, sẽ là tháng 9 năm 2017

Tài liệu này mô tả sự thay đổi trong lịch phát hành Python bắt đầu từ Python 3. 9. Thay đổi này tăng tốc độ phát hành sao cho các phiên bản chính được phát hành có thể dự đoán được mười hai tháng một lần, vào tháng 10 hàng năm

Thực hiện

Mười bảy tháng để phát triển một phiên bản chính

PEP này đề xuất rằng Python 3. X. 0 sẽ được phát triển trong khoảng 17 tháng

  • Năm tháng đầu tiên trùng lặp với Python 3. (X-1). 0's beta và giai đoạn phát hành ứng cử viên và do đó không được phiên bản
  • Bảy tháng tiếp theo được dành cho các bản phát hành alpha theo phiên bản trong đó cả hai tính năng mới đều được bổ sung dần dần và bao gồm các bản sửa lỗi
  • Ba tháng tiếp theo được dành cho bốn phiên bản beta phiên bản không có tính năng mới nào có thể được thêm vào nhưng các bản sửa lỗi vẫn được đưa vào
  • Hai tháng cuối cùng được dành cho hai ứng cử viên phát hành (hoặc nhiều hơn, nếu cần) và kết thúc bằng việc phát hành bản phát hành cuối cùng của Python 3. X. 0

1 năm rưỡi hỗ trợ đầy đủ, thêm 3 năm rưỡi sửa lỗi bảo mật

Sau khi phát hành Python 3. X. 0, 3. Dòng X được duy trì trong 5 năm

  • Trong mười tám tháng đầu tiên (1 năm rưỡi), nó nhận được các bản cập nhật sửa lỗi và các bản phát hành đầy đủ (nguồn và trình cài đặt cho Windows và macOS) được thực hiện khoảng hai tháng một lần
  • Trong bốn mươi hai tháng tiếp theo (3 năm rưỡi), nó nhận được các bản cập nhật bảo mật và các bản phát hành chỉ dành cho nguồn được thực hiện trên cơ sở khi cần thiết (không có nhịp cố định)
  • Bản phát hành cuối cùng chỉ dành cho nguồn được thực hiện 5 năm sau 3. X. 0

Nhịp phát hành hàng năm

Phát triển tính năng của Python 3. (X+1). 0 bắt đầu ngay khi Python 3. X. 0 Beta 1 được phát hành. Điều này tạo ra một vùng đồng bằng mười hai tháng giữa các phiên bản Python chính

Ví dụ

  • 3. 9 bắt đầu phát triển. Thứ ba, 2019-06-04
  • 3. 9. 0 alpha1. Thứ Hai, 2019-10-14
  • 3. 9. 0 alpha2. Thứ Hai, 2019-11-18
  • 3. 9. 0 alpha3. Thứ Hai, 2019-12-16
  • 3. 9. 0 alpha4. Thứ hai, 2020-01-13
  • 3. 9. 0 alpha5. Thứ Hai, 2020-02-17
  • 3. 9. 0 alpha6. Thứ hai, 2020-03-16
  • 3. 9. 0 alpha7. Thứ hai, 2020-04-13
  • 3. 9. 0 thử nghiệm 1. Thứ hai, 2020-05-18 (Không có tính năng mới nào ngoài thời điểm này. )
  • 3. 9. 0 phiên bản thử nghiệm 2. Thứ Hai, 2020-06-08
  • 3. 9. 0 thử nghiệm 3. Thứ Hai, 2020-06-29
  • 3. 9. 0 thử nghiệm 4. Thứ Hai, 2020-07-20
  • 3. 9. 0 ứng viên 1. Thứ Hai, 2020-08-10
  • 3. 9. 0 ứng viên 2. Thứ Hai, 2020-09-14
  • 3. 9. 0 trận chung kết. Thứ hai, 2020-10-05
PEP Python mới nhất là gì?

Hình 1. Hậu quả của chu kỳ phát hành hàng năm trên lịch

Để so sánh, nếu PEP này bị từ chối và Python giữ lịch phát hành hiện tại

  • 3. 9 bắt đầu phát triển. Thứ ba, 2019-06-04
  • 3. 9. 0 alpha1. Thứ Hai, 2020-08-03 (10 tháng sau)
  • 3. 9. 0 alpha2. Thứ Hai, 2020-09-07
  • 3. 9. 0 alpha3. Thứ hai, 2020-10-05
  • 3. 9. 0 alpha4. Thứ Hai, 2020-11-02
  • 3. 9. 0 thử nghiệm 1. Thứ Hai, 2020-11-30 (6 tháng sau)
  • 3. 9. 0 phiên bản thử nghiệm 2. Thứ Hai, 2021-01-04
  • 3. 9. 0 thử nghiệm 3. Thứ hai, 2021-02-01
  • 3. 9. 0 thử nghiệm 4. Thứ hai, 2021-03-01
  • 3. 9. 0 ứng viên 1. Thứ hai, 2021-03-29
  • 3. 9. 0 ứng viên 2. Thứ Hai, 2021-04-05 (nếu cần)
  • 3. 9. 0 trận chung kết. Thứ Hai, 2021-04-19 (6 tháng sau)

Chính sách phụ thuộc

Khấu hao

Chính sách hiện tại xung quanh việc phá vỡ các thay đổi giả định ít nhất hai bản phát hành trước khi một tính năng không dùng nữa bị xóa khỏi Python hoặc hành vi __future__ được bật theo mặc định. Điều này được ghi lại trong PEP 387

PEP này đề xuất giữ chính sách này trong ít nhất hai bản phát hành trước khi thực hiện thay đổi vi phạm

Nhiệm kỳ của Hội đồng chỉ đạo

Từ ngữ hiện tại của PEP 13 nói rằng “một hội đồng mới được bầu sau mỗi lần phát hành tính năng”. PEP này đề xuất giữ chính sách này vì nó sẽ dẫn đến một lịch trình bầu cử nhất quán

Nhiệm kỳ của Người quản lý phát hành

Quy ước không có giấy tờ hiện tại dành cho một Trình quản lý phát hành duy nhất để xử lý hai bản phát hành tính năng của Python. PEP này đề xuất giữ chính sách này, cho phép kéo dài thời hạn cho nhiều bản phát hành hơn với sự chấp thuận của Hội đồng chỉ đạo và Cabal của những người quản lý bản phát hành

Cụ thể, vì PEP này được tác giả bởi Người quản lý phát hành đang hoạt động và tác dụng của nó sẽ rút ngắn thời hạn của Người quản lý phát hành, tác giả sẵn sàng quản lý việc phát hành bản phát hành tính năng thứ ba để bù đắp cho sự gián đoạn

Cơ sở lý luận và mục tiêu

Sự thay đổi này mang lại những lợi ích sau

  • làm cho bản phát hành nhỏ hơn. vì việc tăng gấp đôi nhịp không làm tăng gấp đôi tài nguyên phát triển sẵn có của chúng tôi, nên các bản phát hành liên tiếp sẽ nhỏ hơn về mặt tính năng;
  • đưa các tính năng và bản sửa lỗi đến tay người dùng sớm hơn;
  • tạo lộ trình nâng cấp dần dần cho người dùng, bằng cách giảm bề mặt thay đổi trong bất kỳ bản phát hành nào;
  • tạo lịch dự đoán cho các bản phát hành trong đó bản phát hành cuối cùng luôn diễn ra vào tháng 10 (vì vậy sau giai đoạn chạy nước rút cốt lõi hàng năm) và giai đoạn beta bắt đầu vào cuối tháng 5 (vì vậy sau giai đoạn chạy nước rút của PyCon Hoa Kỳ), điều này đặc biệt quan trọng đối với các nhà phát triển cốt lõi cần lập kế hoạch
  • giảm nhu cầu sử dụng gấp các tính năng ngay trước “Beta 1” do nguy cơ chúng “trượt trong 18 tháng”;
  • cho phép đồng bộ hóa lịch trình quản lý phát hành Python với các nhà phân phối bên ngoài như Fedora, người đã từng rất hữu ích trong việc sớm tìm ra các hồi quy không chỉ trong Python cốt lõi mà còn trong các thư viện của bên thứ ba, giúp thúc đẩy cộng đồng hỗ trợ phiên bản Python mới nhất
  • tăng giai đoạn phát hành alpha rõ ràng, cung cấp các ảnh chụp nhanh có ý nghĩa về tiến trình của các tính năng mới;
  • cắt giảm đáng kể giai đoạn phát hành “alpha 0” ngầm, dù sao cũng cung cấp khả năng sử dụng hạn chế cho sự phát triển mới (nó trùng lặp với bản beta của phiên bản hiện đang được phát triển, vẫn chưa được phát hành)

phi mục tiêu

Việc áp dụng lịch phát hành hàng năm cho phép chuyển đổi tự nhiên sang phiên bản lịch, chẳng hạn bằng cách gọi Python 3. 9 “Trăn 3. 20” kể từ khi nó được phát hành vào tháng 10 năm 20, v.v. (“Python 3. 23” sẽ là bản phát hành vào tháng 10 năm ‘23)

Mặc dù việc dễ dàng chuyển sang lập phiên bản theo lịch có thể được coi là một lợi thế của chu kỳ phát hành hàng năm, nhưng PEP này không ủng hộ hoặc chống lại sự thay đổi trong cách lập phiên bản Python. Nếu chu kỳ phát hành hàng năm được áp dụng, câu hỏi về phiên bản sẽ được giải quyết trong một PEP riêng.

phi rủi ro

Thay đổi này không rút ngắn lịch hỗ trợ hiện được ghi lại cho bản phát hành Python, cả về bản phát hành sửa lỗi và sửa lỗi bảo mật

Sự thay đổi này không đẩy nhanh tốc độ phát triển. Python sẽ không trở nên không tương thích nhanh hơn hoặc tích lũy các tính năng mới nhanh hơn. Chỉ là các tính năng sẽ được phát hành dần dần khi chúng được phát triển

Do đó, mặc dù thay đổi này giới thiệu khả năng nâng cấp nhanh hơn nhiều cho người dùng, nhưng nó không yêu cầu họ phải làm như vậy. Giả sử, nếu họ nâng cấp mỗi bản phát hành thứ hai, trải nghiệm của họ với Python sẽ tương tự như tình hình hiện tại

rủi ro

Phân phối lại Python

Điều này đòi hỏi phải thay đổi cách thức các nhà tích hợp, như bản phân phối Linux, phát hành Python trong hệ thống của họ

ma trận thử nghiệm

Điều này cuối cùng làm tăng ma trận thử nghiệm cho các nhà bảo trì ứng dụng và thư viện muốn hỗ trợ tất cả các phiên bản Python được hỗ trợ tích cực thêm một hoặc hai

PEP Python mới nhất là gì?

Hình 2. Ma trận thử nghiệm trong nhịp 18 tháng so với. 12 tháng

Giai đoạn “hỗ trợ sửa lỗi mở rộng theo quyết định của Người quản lý phát hành” của chu kỳ phát hành hiện tại không được hệ thống hóa. Nếu thực tế, PEP 101 hiện đang tuyên bố rằng sau khi phát hành Python 3. (X+1). 0 chỉ có một bản phát hành sửa lỗi cuối cùng được tạo cho Python 3. X. 0. Tuy nhiên, trên thực tế, ít nhất bốn phiên bản cuối cùng của Python 3 trùng lặp với các bản phát hành ổn định của phiên bản tiếp theo trong khoảng sáu tháng. Hình 2 bao gồm thông tin này để chứng minh rằng sự trùng lặp giữa các bản phát hành phiên bản ổn định với nhịp phát hành 12 tháng sẽ không có gì mới

Các chính sách khác có thể phụ thuộc vào nhịp phát hành

Mặc dù các chính sách phụ thuộc được xác định đã được đề cập trong phần trước, nhưng hoàn toàn có thể có một số lĩnh vực khác hoàn toàn dựa vào thời gian phát hành Python

Ý tưởng bị từ chối

Giữ nhịp phát hành 18 tháng hiện tại

Đây là điều không mong muốn đối với cả nhà phát triển cốt lõi và người dùng cuối. Từ quan điểm của nhà phát triển cốt lõi

  • nó làm cho việc lên lịch đóng góp trở nên khó khăn hơn do ngày phát hành không đều đặn hàng năm;
  • nó tạo ra một loạt các cam kết vội vàng trước đó (và thậm chí sau đó. ) Beta 1 do sự căng thẳng liên quan đến việc "bỏ lỡ một bản phát hành";
  • Trớ trêu thay, sau bản Beta 1, nó tạo ra cảm giác sai lầm là có “nhiều thời gian” trước bản phát hành tiếp theo, thời gian trôi qua rất nhanh;
  • nó khiến một số yếu tố của quy trình công việc hiếm khi được thực thi đến mức chúng không được ghi lại rõ ràng, chứ chưa nói đến tự động hóa

Quan trọng hơn, từ quan điểm của người dùng

  • nó tạo ra các bản phát hành với nhiều tính năng mới, một số không tương thích rõ ràng và một số không tương thích ngẫu nhiên, điều này khiến chi phí nâng cấp mỗi lần tương đối cao;
  • nó nằm trên các tính năng và sửa lỗi không tương thích trong hơn một năm trước khi có sẵn cho người dùng;
  • nó khiến mọi bản phát hành "điểm 0" trở nên rủi ro hơn đối với người dùng. Mặc dù chúng tôi cung cấp và đề xuất thử nghiệm với các bản alpha và beta, nhưng “điểm 0” là bản phát hành đầu tiên của một phiên bản Python cụ thể cho nhiều người dùng. Bản phát hành càng lớn về mặt tính năng thì càng có nhiều vấn đề tiềm ẩn ẩn trong “bản phát hành điểm 0”

Nhân đôi nhịp phát hành để đạt được 9 tháng giữa các phiên bản chính

Điều này ban đầu được đề xuất trong PEP 596 và bị từ chối vì quá bất thường và quá ngắn. Điều này sẽ không mang lại bất kỳ lợi ích nào của lịch phát hành thông thường nhưng nó sẽ rút ngắn tất cả các giai đoạn phát triển, đặc biệt là giai đoạn beta + RC. Điều này đã được coi là nguy hiểm

Giữ “4 bản beta trong 4 tháng và một tháng cuối cùng cho ứng cử viên phát hành”

Mặc dù điều này sẽ làm cho lịch phát hành gọn gàng hơn một chút, nhưng nó sẽ khiến các nhà phân phối bên ngoài như Fedora rất khó phát hành phiên bản Python mới nhất càng sớm càng tốt. Chúng tôi đang điều chỉnh lịch của Python tại đây với hy vọng rằng điều này sẽ cho phép Fedora tích hợp phiên bản Python mới nhất với phiên bản Fedora mới nhất vì cả hai đều đang được phát triển, giúp cả hai dự án trở nên tốt hơn

Làm chậm các bản phát hành nhưng không đóng băng quá trình phát triển tính năng với Beta 1

Điều này được mô tả trong PEP 598. Đề xuất này bao gồm các khái niệm phi tiêu chuẩn như “bản phát hành tính năng gia tăng” khiến nó khó hiểu. Những lợi thế được trình bày là không rõ ràng trong khi sự không quen thuộc của sơ đồ có nguy cơ thực sự gây nhầm lẫn cho người dùng và nhà tích hợp

Bản phát hành hỗ trợ dài hạn

Mỗi phiên bản Python đều được hỗ trợ hiệu quả lâu dài. nó được hỗ trợ trong năm năm, với mười tám tháng đầu tiên cho phép sửa lỗi và cập nhật bảo mật thường xuyên. Trong thời gian còn lại, các bản cập nhật bảo mật được chấp nhận và phát hành nhanh chóng

Không có hỗ trợ mở rộng trong tĩnh mạch của Python 2. 7 được lên kế hoạch trong tương lai

bản quyền

Tài liệu này được đặt trong phạm vi công cộng hoặc theo CC0-1. 0-Giấy phép phổ thông, tùy theo điều kiện nào dễ dãi hơn

Phiên bản Python mới nhất 2022 là gì?

Trăn 3. 10. 8 , tài liệu được phát hành vào ngày 8 tháng 10 năm 2022.

Có bao nhiêu Python PEPS?

ba loại PEP . PEP theo dõi tiêu chuẩn mô tả một tính năng hoặc cách triển khai mới cho Python.

Là Python 3. 10 ra mắt chưa?

Trăn 3. 10 được phát hành vào ngày 4 tháng 10 năm 2021 . Để biết chi tiết đầy đủ, hãy xem nhật ký thay đổi.

Là Python 3. 11 phát hành?

Trăn 3. 11 được phát hành vào Tháng 10. ngày 24, năm 2022 . Phiên bản mới nhất này giúp Python nhanh hơn và thân thiện hơn với người dùng.