cách chính xác để cập nhật một plugin thông qua tortoir svn vào kho lưu trữ là gì?


18

Tôi cảm thấy xấu hổ khi nói rằng tôi hơi không biết gì về quy trình được sử dụng để cập nhật một plugin thông qua tortoir svn mặc dù plugin của tôi đã ở trên kho lưu trữ trong nhiều năm và đã có hơn 300.000 lượt tải xuống!

Có rất nhiều câu hỏi về svn ở đây nhưng chúng chỉ làm tôi bối rối thêm: -z

bằng cách nào đó tôi đã quản lý cho đến nay nhưng tôi cần biết quy trình thích hợp để cập nhật plugin của mình lên phiên bản mới liên quan đến việc cam kết trung kế và tạo thư mục thẻ.

Đây là những gì tôi đã làm cho đến nay.

  1. mã các cập nhật plugin trên địa phương của tôi cho đến khi tôi hài lòng với nó
  2. sao chép tất cả các tệp trong thư mục plugin cục bộ của tôi vào / trunk / (tệp plugin và readme có số phiên bản cập nhật)
  3. cam kết thư mục trung kế
  4. bấm chuột phải vào thư mục trung kế và chọn tạo nhánh / thẻ và đặt nó để sao chép vào thư mục trong / tags / với tên là số phiên bản

Điều đó có đúng và theo đúng thứ tự không? Nếu không, cách chính xác là gì?

Ngoài ra, về số phiên bản ...

vì một số lý do, tôi đã chuyển từ phiên bản 2.8.1 sang 2.81.2 trên bản cập nhật cuối cùng của mình, điều này có nghĩa là nó sẽ không hiển thị dưới dạng bản cập nhật có sẵn trong bảng điều khiển của những người có phiên bản 2.81.2 nếu tôi thay đổi số phiên bản tiếp theo thành 2.9?

Làm thế nào để wordpress xác định phiên bản mới nhất và nếu người dùng nên cập nhật phiên bản của họ? Nó có làm một phiên bản_compare không? chỉ hoạt động với định dạng phiên bản php thích hợp phải không? ví dụ. 2.9.2 được coi là phiên bản thấp hơn 2.81.2? (bởi vì, theo tôi hiểu, version_compare bắt đầu ở bên trái và so sánh cao hơn / thấp hơn cho mỗi chữ số nên 9 sẽ được coi là ít hơn 81)

câu hỏi khác,

nếu tôi phát hiện ra một lỗi ngớ ngẩn trong mã không thực sự ảnh hưởng đến hoạt động của plugin, có thể là lỗi chính tả hoặc hình ảnh bổ sung. Tôi chỉnh sửa gì và cam kết thực hiện bất kỳ tải xuống mới nào của plugin có chứa thay đổi?

Tôi có phải chỉnh sửa thân cây VÀ thư mục thẻ và cam kết cả hai không?


2
không có lý do gì để xấu hổ, tôi cũng đã gặp vấn đề khoảng một tháng trước và bạn thực sự đã đi xa hơn tôi :) @EAMann mô tả toàn bộ quy trình thực sự tốt, bao gồm ảnh chụp màn hình, trên chủ đề này: wordpress.stackexchange.com/questions/ 16951 /

Câu trả lời:


29

Tôi cảm thấy xấu hổ khi nói rằng tôi hơi không biết gì về quy trình được sử dụng để cập nhật một plugin thông qua tortoir svn mặc dù plugin của tôi đã ở trên kho lưu trữ trong nhiều năm và đã có hơn 300.000 lượt tải xuống!

Đừng như vậy. SVN có thể gây khó khăn cho nhiều người ... vì vậy hãy từng bước thực hiện mọi thứ ...

Đây là những gì tôi đã làm cho đến nay.

  1. mã các cập nhật plugin trên địa phương của tôi cho đến khi tôi hài lòng với nó
  2. sao chép tất cả các tệp trong thư mục plugin cục bộ của tôi vào / trunk / (tệp plugin và readme có số phiên bản cập nhật)
  3. cam kết thư mục trung kế
  4. bấm chuột phải vào thư mục trung kế và chọn tạo nhánh / thẻ và đặt nó để sao chép vào thư mục trong / tags / với tên là số phiên bản

Điều đó có đúng và theo đúng thứ tự không? Nếu không, cách chính xác là gì?

Hầu hết ...

Các bước bạn nên tuân theo:

  1. Mã các plugin cập nhật cục bộ cho đến khi bạn hài lòng với nó
  2. Tăng thẻ "ổn định" trong readme.txttệp của bạn để khớp với số phiên bản mới
  3. Sao chép cập nhật cục bộ của bạn vào /trunkthư mục của thư mục plugin cục bộ
  4. Cam kết toàn bộ plugin để lưu các thay đổi vào /trunkkho lưu trữ
  5. Nhấp chuột phải /trunkvà tạo một thẻ mới, sao chép vào /tags/X.X.Xnơi xxx là cùng một phiên bản trong thẻ "ổn định" của readme.txt(bước 2)
  6. Cam kết toàn bộ plugin để lưu thẻ

vì một số lý do, tôi đã chuyển từ phiên bản 2.8.1 sang 2.81.2 trên bản cập nhật cuối cùng của mình, điều này có nghĩa là nó sẽ không hiển thị dưới dạng bản cập nhật có sẵn trong bảng điều khiển của những người có phiên bản 2.81.2 nếu tôi thay đổi số phiên bản tiếp theo thành 2.9?

Chơi lô tô. Nếu bạn đã cam kết phiên bản 2.81.2 dưới dạng bản cập nhật và mọi người thực sự đã tải xuống bản cập nhật đó, họ sẽ không thấy 2.9 khi bạn phát hành bản cập nhật.

Làm thế nào để wordpress xác định phiên bản mới nhất và nếu người dùng nên cập nhật phiên bản của họ? Nó có làm một phiên bản_compare không? chỉ hoạt động với định dạng phiên bản php thích hợp phải không? ví dụ. 2.9.2 được coi là phiên bản thấp hơn 2.81.2? (bởi vì, theo tôi hiểu, version_compare bắt đầu ở bên trái và so sánh cao hơn / thấp hơn cho mỗi chữ số nên 9 sẽ được coi là ít hơn 81)

Chính xác. So sánh phiên bản PHP tiêu chuẩn sẽ thấy phiên bản 2.81.2 là phiên bản mới hơn 2.9 vì 81> 9.

Tôi khuyên bạn nên phát hành phiên bản 3.0 tiếp theo, sau đó hãy thật cẩn thận khi phiên bản trong tương lai để ngăn loại lỗi đánh máy này.

nếu tôi phát hiện ra một lỗi ngớ ngẩn trong mã không thực sự ảnh hưởng đến hoạt động của plugin, có thể là lỗi chính tả hoặc hình ảnh bổ sung. Tôi chỉnh sửa gì và cam kết thực hiện bất kỳ tải xuống mới nào của plugin có chứa thay đổi?

Tôi có phải chỉnh sửa thân cây VÀ thư mục thẻ và cam kết cả hai không?

Nếu bạn cần thực hiện một thay đổi nhỏ, hãy coi đó là một bản phát hành bảo trì . Tôi thường theo loại lược đồ phiên bản này:

2      .      1       .       3       .       5
major         minor           maint           build

Xây dựng số Tôi chỉ từng sử dụng nội bộ hoặc cho các bản phát hành beta ... hầu như bạn sẽ không bao giờ thấy số bản dựng từ tôi trừ khi tôi gửi email cho bạn một cách thủ công (đó là cách tôi có thể phân phối các phiên bản tiền phát hành không phá vỡ các bản cập nhật WordPress) .

Nếu tôi nhận thấy một lỗi trong phiên bản trực tiếp, tôi sẽ tạo một bản vá nhanh và phát hành phiên bản bảo trì. Giả sử tôi đã phát hành phiên bản 2.2 của một plugin và ai đó thông báo tôi đã quên gọi jQuery ở chế độ noConflict (). Tôi sẽ thực hiện một bản vá nhanh và phát hành ngay 2.2.1.

Sự gia tăng trong phiên bản sẽ buộc WordPress nhận ra bản cập nhật và cung cấp bản sửa lỗi cho bất kỳ ai đã cài đặt phiên bản 2.2.

Để phát hành phiên bản bảo trì, bạn cần thực hiện theo các bước chính xác giống như khi bạn phát hành phiên bản đầy đủ của hệ thống. Vì vậy, thực hiện thay đổi, tăng phiên bản trong readme.txt, cam kết /trunk, thẻ, v.v.

Nhưng một khi bạn đã gắn thẻ một cái gì đó, bạn không bao giờ thay đổi nó một lần nữa. Hãy nghĩ về /tagsthư mục của bạn như đóng băng trong thời gian. Mỗi phiên bản trong thư mục đó là một ảnh chụp nhanh về plugin của bạn tại một thời điểm cụ thể. Bạn không bao giờ nên thay đổi bất kỳ tập tin trong /tagsthư mục trực tiếp.

Nếu bạn thấy mình nghĩ rằng đó có thể là một ý tưởng tốt, hãy tự đập vào sau đầu và phát hành phiên bản bảo trì thay thế :-)

Như Piet đã đề cập, tôi đã viết một bộ hướng dẫn từng bước tốt trước đó ... nhưng trang web dường như đã mất ảnh chụp màn hình của tôi. Đây là một phiên bản khác của hướng dẫn từng bước tương tự với ảnh chụp màn hình từ Rùa được lưu trữ trên trang web của riêng tôi: http://eamann.com/tech/how-to-publish-a-wordpress-plugin-subversion/


2
Câu trả lời chính xác. Một chỉnh sửa nhỏ: Khi bạn nói không bao giờ thay đổi một cái gì đó được gắn thẻ, điều đó gần như đúng. Giả sử bạn tạo một lỗi đánh máy trong chính readme của bạn, không cần phải thực hiện một bản phát hành bảo trì chỉ để sửa nó. Hôm nay, trò chuyện trong # wordpress-meta với một trong những nhà phát triển chính, người đã đề cập rằng chỉ cần chỉnh sửa phiên bản được gắn thẻ của bạn, miễn là đó chỉ là tệp readme.txt . Không có ai khác. Nói chung, vâng, tránh xa việc chỉnh sửa các tệp được gắn thẻ của bạn.
Andy Mercer

Câu trả lời chính xác. Điều duy nhất tôi muốn nói thêm là khi nói đến số phiên bản plugin, bạn nên sử dụng Phiên bản ngữ nghĩa mặc dù bạn không phải làm vậy, giúp người dùng dễ dàng biết liệu plugin của bạn có khả năng phá vỡ trang web của mình hay không thay đổi phiên bản CHÍNH. Bất cứ hệ thống nào bạn chọn để phiên bản plugin của bạn đều được cung cấp và nhớ cập nhật thay đổi readme.
Aron
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.