2010-03-12 37 views
4

我們都知道 - 這是列出每個新版本我們最喜愛的軟件帶來的變化的閱讀。每當它作爲一個文件捆綁(Changes.txt,CHANGES,WhatsNew.txt等),或者出現在安裝程序中,這通常是我們在安裝/更新之前閱讀的第一件事。自動生成「此版本中有哪些新內容」閱讀

在當前項目中,我們有一個Changelog.txt文件,每當發生顯着更改時手動更新該文件。但是,這通常會導致「我忘記更新更新日誌」。所以我正在尋找一種方法來實現這一點。

我想到一個腳本,它從我們的提交消息(使用約定)中提取更改並生成文件。例如提交信息像

更新JSON-巧舌如簧到0.7.6

[變化]

- 修復崩潰的Windows

- 具有非常大的UID修正了Facebook聯繫人問題。

會產生以下Changes.txt

在Windows版本1.9.18(2010年3月10日)

  • 修復崩潰
  • 與Facebook聯繫人修復問題具有非常大的UID。

有沒有人知道一個更好的解決方案/工具,或者我會寫我自己的?

謝謝!

+0

我不知道一個工具是否已經存在,我只是想通過服務器端svn鉤子腳本更新提交時的changelog.txt(參見http://svnbook.red-bean.com/en/)。 1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks)。但是如果你要編寫你自己的腳本(我希望它是幾行bash代碼或其他東西),如果你將它作爲自我回答發佈在這裏,我會很高興... – orithena 2010-03-12 12:52:29

回答

3

您可以根據錯誤跟蹤系統中的描述自動生成此版本中標記爲固定的錯誤。如果您從功能請求中區分錯誤,那麼您也可以將其標記出來。

我使用MantisBT處理錯誤,並且會自動爲您創建開箱即用的更改日誌。

+0

Mat's評論是有道理的:我的建議對我的工作原因是提交消息包含對問題跟蹤器問題的引用,通常使用完整的問題名稱。 – 2010-03-12 12:51:32

+0

@Mat我也使用螳螂,我怎樣才能自動生成更新日誌? – Max 2010-03-15 09:57:36

1

有沒有更好的方法來確保涵蓋我所知道的一切。也就是說,假設你可以讓每個人編寫有意義的提交消息。

例如,Mercurial和Subversion特別適合後處理提交日誌:mercurial,因爲它可以使用template mechanism和subversion輕鬆配置它顯示日誌的方式,因爲它可以將日誌轉儲爲.xml,然後相對容易地處理以生成更改日誌的初稿。

3

我認爲更新日誌應該僅捕獲版本中的主要更改/缺陷修復。將所有內容放入更改日誌中根本沒有意義。它使更改日誌不可讀並最終變得無用。

從更改列表註釋中生成changelog還可能會將應用程序的實現細節泄漏給最終用戶。

通常在一份新聞稿中,有兩種類型的發展的發展,帶來了用戶價值的方面:

  1. 新功能
  2. 缺陷修復有很大的影響。

我相信上面的內容應該足夠用於更新日誌。 「代碼重構」等變化可能會使開發商受益,但對最終用戶沒有任何意義,因此不應該出現在變更日誌中。

對於新功能,我們通常可以通過設計文檔來跟蹤它,最終將轉到新功能列表。

對於缺陷修復,我相信你必須使用某種缺陷跟蹤系統。用某個標籤標記這些重要的缺陷。您可以查詢自上次發佈後關閉的這些缺陷。

希望這會有所幫助。

0

如果你不想讓你的客戶看到的在更新日誌領域的列表中的所有已修復(可能不是),你可以定義一個名爲領域的問題包括您的問題跟蹤選擇的工具和自動生成僅包含這些字段的文檔。

這通常包括客戶報告的問題,也許是重要的新功能。