Trong nhóm của chúng tôi, chúng tôi chủ yếu làm công cụ tìm kiếm kiến trúc và tích hợp nội dung công việc và hầu hết các cơ sở mã là trong Python. Tất cả các công cụ xây dựng và phụ thuộc mô-đun Python của chúng tôi đều nằm trong kiểm soát nguồn để chúng có thể được kiểm tra và môi trường được nạp để sử dụng bất kể os/platform, kinda tương tự như cách sử dụng virtualenv.Phiên bản Python (2.4, 2.5, 2.6, 3.0) nào bạn chuẩn hóa cho các nỗ lực phát triển sản xuất (và tại sao)?
Trong nhiều năm, chúng tôi đã duy trì cơ sở mã tương thích với Python 2.3 vì một trong các sản phẩm thương mại mà chúng tôi sử dụng tùy thuộc vào Python 2.3. Trong những năm qua điều này đã gây ra nhiều vấn đề hơn khi các công cụ và thư viện mới hơn cần các phiên bản Python mới hơn kể từ khi 2.3 ra mắt vào năm 2004.
Gần đây chúng tôi đã tách môi trường xây dựng của mình khỏi các phụ thuộc vào môi trường của sản phẩm thương mại và có thể sử dụng bất kỳ phiên bản nào của Python (hoặc Java) mà chúng tôi muốn. Nó được khoảng một tháng hoặc lâu hơn kể từ khi chúng tôi chuẩn hóa trên Python 2.6 là phiên bản mới nhất của Python tương thích ngược với các phiên bản trước.
Python 3.0 không phải là một tùy chọn (bây giờ) vì chúng tôi phải di chuyển quá nhiều cơ sở mã của chúng tôi để làm cho công cụ tích hợp và xây dựng của chúng tôi hoạt động bình thường trở lại.
Chúng tôi thích nhiều tính năng mới của Python 2.6, đặc biệt là các mô-đun được cải tiến và những thứ như trang trí lớp, nhưng nhiều mô-đun chúng tôi phụ thuộc vào nguyên nhân trình thông dịch Python 2.6 để kích hoạt nhiều cảnh báo khấu hao khác nhau. Một công cụ khác mà chúng tôi quan tâm để quản lý các nút đám mây EC2, Supervisor thậm chí không hoạt động chính xác với Python 2.6.
Bây giờ tôi tự hỏi liệu chúng ta có nên chuẩn hóa trên Python 2.5 ngay bây giờ thay vì sử dụng Python 2.6 trong phát triển các công cụ môi trường sản xuất hay không. Hầu hết các công cụ chúng tôi muốn/cần có vẻ hoạt động chính xác với Python 2.5. Chúng tôi đang cố gắng sắp xếp điều này ngay bây giờ trước khi có nhiều phụ thuộc vào các tính năng hoặc mô-đun Python 2.6.
Rất cám ơn!
-Michael
OK, cảm ơn các bạn, tất cả các phản hồi từ trước đến giờ đều rất thông tin. :) Tôi vẫn chưa quyết định xem có nên chuẩn hóa trên 2.5 (quản trị viên của chúng tôi sẽ thích rằng do gói sẵn có trong trình quản lý gói) nhưng nhận xét cho đến giờ cho tôi ít do dự hơn khi chỉ cần gắn nó với Python 2.6 và đơn giản chặn cảnh báo nơi thích hợp. – Xavian
Chỉ cần cập nhật, chúng tôi đã được chuẩn hóa trên Python 2.6 trong khoảng một năm nay và nó đã được vận hành trơn tru. :) – Xavian