ELPA/package.el
Để ngăn chặn cập nhật qua package.el, thêm phụ thuộc đặc biệt (emacs "24.1")
vào danh sách Package-Requires
. Xem Library Headers trong tay Emacs Lisp, trong mô tả của Package-Requires:
tiêu đề:
[...] Mã gói tự động định nghĩa một gói có tên là ‘emacs’ với số phiên bản của Emacs đang chạy. Điều này có thể được sử dụng để yêu cầu một phiên bản tối thiểu của Emacs cho một gói.
Gói.el được phân phối độc lập cho Emacs 23 trở xuống không cung cấp gói đặc biệt này. Vì vậy, bất kỳ nỗ lực nào để cài đặt gói của bạn trên Emacs 23 sẽ không thành công với một thông báo phàn nàn về "emacs" không có sẵn để cài đặt, để lại phiên bản tương thích cũ tại chỗ.
Tuy nhiên, khi sử dụng này, hãy chuẩn bị để xử lý khiếu nại của người sử dụng Emacs 24. Nhiều người dùng dường như không xóa họ cũ package.el
khi nâng cấp lên Emacs 24. Do đó, cũ package.el
đè mới được xây dựng trong một, leading to spurious errors on installation.
ELGet
Tôi không biết Elget. Có thể yêu cầu tác giả của nó giúp đỡ về vấn đề này.
Git submodules, Tarballs và di sản khác phương pháp
Tôi không nghĩ rằng bạn có thể thực sự ngăn chặn cập nhật, nếu người dùng cài đặt gói của bạn một cách di sản (ví dụ submodules Git, bao bì phân phối, v.v.) Bạn chỉ có thể khiếu nại sau gói của bạn đã được cập nhật, được cho là đã quá muộn, vì mã không tương thích hiện đã có ở đó.
Bạn có thể chọn thêm kiểm tra phiên bản rõ ràng, với chi tiết error
. Mặc dù vậy, tôi cho rằng điều này không cần thiết. Nếu bạn thực sự đi cho Emacs 24, bạn sẽ sử dụng các chức năng không tương thích, vì vậy gói của bạn sẽ không tải thành công, cho dù bạn có ngăn chặn nó một cách rõ ràng hay không. Vì vậy, tiết kiệm cho mình mã thừa :)
TL; DR (+ kinh nghiệm cá nhân)
Trước hết, xin đừng đổi tên gói của bạn. Rất ít người dùng có thể theo dõi tin tức trên từng gói đã cài đặt. Vì vậy, nhiều người dùng sẽ không ngay lập tức nhận ra rằng gói đã được đổi tên và tiếp tục sử dụng phiên bản lỗi thời mà không cần thông báo hoặc cảnh báo.Có hiệu quả, bạn sẽ loại phạt Emacs 24 người sử dụng gói của bạn.
Thêm phụ thuộc đặc biệt để ngăn cập nhật tình cờ qua gói.el. Thêm tài liệu nổi bật, gói của bạn yêu cầu Emacs 24, như trong phần đầu tiên của Github Readme. Sau đó, để cho vấn đề còn lại. Bất cứ điều gì khác có khả năng rắc rối hơn là nó có giá trị.
Trong kinh nghiệm cá nhân của mình, người dùng Emacs không ngu ngốc (ít nhất, phần lớn không phải là). Họ đọc tài liệu. Họ hiểu tài liệu.
Người dùng của Emacs 23 biết rằng Emac của họ đã lỗi thời. Nhiều người trong số họ mong đợi sự không tương thích và vỡ. Nếu gói đột nhiên phá vỡ cho họ, họ sẽ tìm kiếm lời khuyên trên Github, nhận ra rằng gói không có sẵn cho Emacs 23 nữa, và quay trở lại bản phát hành cuối cùng, hoặc (hy vọng) nâng cấp Emacs của họ.
Đối với ELPA, bạn có thể làm cho gói của bạn phụ thuộc vào 'emacs-24', mặc dù tôi không chắc liệu điều đó có mang lại trải nghiệm người dùng mong muốn hay không. – legoscia