2008-10-22 39 views
7

Tôi hiện đang làm việc về tự động hóa/cải thiện quá trình phát hành để đóng gói toàn bộ sản phẩm của cửa hàng của tôi. Hiện tại sản phẩm là sự kết hợp của:Thực tiễn tốt nhất cho thông tin phiên bản?

  • Java server-side codebase
  • cấu hình và hồ sơ
  • XML
  • Shell và hàng loạt các kịch bản cho các quản trị viên
  • tĩnh phân phát các trang HTML
  • và một số công cụ khác , nhưng đa số là

Tất cả hoặc hầu hết trong số đó có thông tin phiên bản khác nhau chứa trong đó, chúng tôi ed cho các mục đích khác nhau. Một phần của quá trình đóng gói phát hành liên quan đến việc thực hiện rất nhiều tìm kiếm, grep'ing và sed'ing (trong kịch bản) để cập nhật thông tin. Loại keo này đóng gói sản phẩm dường như đã được trộn với nhau theo cách hữu cơ, đúng lúc và khá khủng khiếp để duy trì. Ví dụ, một số phương thức Java tạo các đối tượng Date cho thời gian phát hành, các đối số được cập nhật bởi một thay thế văn bản, mà không cần xác nhận trình biên dịch ... chỉ cần, urgh.

Tôi đang cố gắng tránh đưa ra các ví dụ về phần mềm thực tế được sử dụng (ví dụ: CVS, SVN, kiến, v.v.) vì tôi muốn tránh "sử dụng tính năng của xyz để làm điều này" và tập trung nhiều hơn vào thực tiễn chung. Tôi muốn đổ lỗi cho thiết kế kém chất lượng cho vấn đề này, nhưng nếu tôi phải bắt đầu lại, vẫn sử dụng các công nghệ khác nhau, tôi không chắc chắn cách tốt nhất để xử lý vấn đề này, ngoài việc đặt ra các quy ước.

Câu hỏi của tôi là, có bất kỳ thực tiễn hay gợi ý hay nhất nào để duy trì và cập nhật thông tin phiên bản trên các công nghệ, loại tệp, nền tảng và hệ thống kiểm soát phiên bản khác nhau không?

Trả lời

2

Thật vậy, để hoàn thành câu trả lời Craig Angus, các quy tắc của ngón tay cái ở đây nên được đến không bao gồm bất kỳ thông tin meta nào trong các tệp phân phối bình thường của bạn, nhưng để báo cáo siêu dữ liệu đó (số phiên bản, ngày phát hành, v.v.) vào một tệp đặc biệt - có trong bản phát hành -.

Điều đó sẽ giúp ích khi bạn sử dụng một công cụ VCS (Hệ thống kiểm soát phiên bản) từ sự phát triển đến sự tương đồng với tiền sản xuất.
Điều đó có nghĩa là bất cứ khi nào bạn tải không gian làm việc (hoặc để phát triển hoặc để thử nghiệm hoặc chuẩn bị bản phát hành vào sản xuất), đó là công cụ phiên bản cung cấp cho bạn tất cả chi tiết.

Khi bạn chuẩn bị phân phối (tập hợp các tệp được đóng gói), bạn nên yêu cầu công cụ VCS về mọi thông tin meta bạn muốn giữ lại và ghi chúng vào một tệp đặc biệt được đưa vào tập hợp tệp đã nêu.

Đó giao hàng phải được đóng gói trong một thư mục bên ngoài (bên ngoài bất kỳ không gian làm việc) và:

  • sao chép vào một thư mục chia sẻ (hoặc một kho maven) nếu nó là một tổ chức phi chính thức phát hành (nhưng chỉ là một bao bì nhanh chóng để giúp nhóm tiếp theo, những người đang chờ đợi giao hàng của bạn). Bằng cách đó bạn có thể kiếm được 10 hoặc 20 lần mỗi ngày, nó không quan trọng: chúng dễ dàng dùng một lần.

  • nhập vào VCS để phân phối chính thức và dễ triển khai vì tất cả những gì bạn cần là hỏi công cụ phiên bản cho đúng phiên bản phân phối phù hợp và bạn có thể bắt đầu triển khai .

Lưu ý: Tôi vừa mô tả quy trình quản lý bản phát hành được sử dụng cho nhiều dự án phụ thuộc lẫn nhau. Đối với một dự án đơn lẻ nhỏ, bạn có thể bỏ qua việc nhập khẩu trong công cụ VCS và lưu trữ việc phân phối của bạn ở nơi khác.

3

Tạo một tập tin thuộc tính có chứa các số phiên bản và có tất cả các thành phần khác nhau tham khảo các thuộc tính tập tin

  • file Java có thể tham khảo các tài sản thông qua
  • XML có thể sử dụng bao gồm?
  • HTML có thể sử dụng một hoạt Javascript để viết số phiên bản từ các thuộc tính trong HTML
  • script
  • Shell có thể đọc trong file
0

Ngoài những thứ của Craig Angus, bao gồm phiên bản công cụ được sử dụng.

Các vấn đề liên quan