Làm thế nào để xác định phiên bản gói cần yêu cầu trong gói của bạn?


9

Bây giờ tôi có một vài gói, và trong phần PackageRequires tôi muốn đặt tất cả các gói tôi yêu cầu trong đó, đặt nó có vẻ như nó yêu cầu tên và phiên bản. Bạn xác định số phiên bản ở đâu? Ví dụ: tôi có (cl-lib "0,5"), nhưng cách tốt nhất để xác định phiên bản tối thiểu tôi có thể sử dụng là gì? Tôi có thể xem phiên bản hiện tại, nhưng cách tốt nhất để xác định giá trị tối thiểu cần thiết là gì? Ngoài ra, một số gói yêu cầu không có phiên bản được chỉ định trong tệp của họ. Trong những trường hợp đó, những gì được khuyến khích?

Câu trả lời:


7

Sử dụng phiên bản mà bạn đã viết gói. Đó là đường cơ sở an toàn nhất bạn có thể nhận được, trừ khi bạn kiểm tra rõ ràng mọi chức năng bạn sử dụng. Từ đó trở đi, bạn chỉ có thể hy vọng rằng những người duy trì gói đó không bao giờ âm thầm phá vỡ tính tương thích ngược

Đối với các gói thậm chí không có bất kỳ số phiên bản nào, tôi hoàn toàn không sử dụng chúng. Nếu người bảo trì thậm chí không bận tâm đến việc tạo phiên bản phù hợp, làm thế nào bạn có thể tin tưởng họ với bất cứ điều gì khác?


1

Đề nghị của tôi:

  • Bắt đầu với các hàm, biến, macro, v.v. mà mã của bạn thực sự sử dụng. Nếu nó sử dụng thứ gì đó được giới thiệu trong một phiên bản Emacs nhất định hoặc của thư viện nguồn của hàm, thì hãy bắt đầu với phiên bản tối thiểu đó.

  • Phiên bản của chức năng mà bạn sử dụng có thể không tương ứng với phiên bản gốc của chức năng, khi nó được giới thiệu lần đầu tiên. Có lẽ nhiều tranh luận đã được thêm vào. Kiểm tra xem điều đó có quan trọng đối với việc sử dụng cụ thể của bạn không. Nếu không thì bạn có thể bỏ qua điều này. Nếu có, thì hãy tìm phiên bản nguồn cũ nhất hỗ trợ những gì mã của bạn mong đợi.

  • Kiểm tra. Nhận một bản sao của bất kỳ phiên bản nào của thư viện mà bạn cho rằng bạn hỗ trợ ở mức tối thiểu và thử nó.

  • Đôi khi những thay đổi nhỏ đã được thực hiện đối với một chức năng và mã của bạn về cơ bản không cần một phiên bản mới hơn. Nhưng nó có thể cần phải được điều chỉnh, để hỗ trợ nhiều hơn một phiên bản (nếu đó là những gì bạn muốn). Bạn có thể cần kiểm tra xem hàm có tồn tại ( fboundp) hay có chuỗi chữ ký / cuộc gọi đúng không. Đối với trường hợp sau, subr-aritycó thể trợ giúp với các phần tử dựng sẵn, nhưng bạn có thể cần sử dụng condition-casecác hàm Lisp (gọi với số lượng đối số được mở rộng và xử lý lỗi sai số đối số bằng cách gọi với ít đối số hơn).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.