Skip to content

WeaselReleaseManual

佛振 edited this page Jan 28, 2019 · 11 revisions

weasel 發佈手冊

  1. Trello 或筆記本上闢一葉紙,記下主要更新內容,方便粘貼到更新日誌。 例如 https://trello.com/c/WieadeZt

  2. 對比上次發佈(git tag),檢查 weasel.yaml 是否需要更新版本號。

  3. 代碼交齊後,用工具根據慣例格式生成變更記錄。 以 clog-cli 爲例,爲新版本 0.11.0 生成變更記錄,做法是

    # cargo install clog-cli
    cd weasel
    clog --from-latest-tag \
        --changelog CHANGELOG.md \
        --repository https://github.com/rime/weasel \
        --setversion 0.11.0
  4. 把手寫的「主要更新」列在變更記錄文件中本次發佈的標題下,格式(包括空行)須與自動生成的段落相同:

    <a name="0.11.0"></a>
    ## 0.11.0 (2018-04-07)
    
    
    #### 主要更新
    
    * 新增 [Rime 配置管理器](https://github.com/rime/plum),通過「輸入法設定/獲取更多輸入方案」調用
    * 在輸入法語言欄顯示狀態切換按鈕(TSF 模式)
    * 修復多個前端兼容性問題
    * 新增配色主題「現代藍」`metroblue`、「幽能」`psionics`
    
    #### Features
  5. 提交對變更記錄的修改

    git commit --all --message "docs(CHANGELOG.md): release 0.11.0"
  6. 用腳本更新輸入法程序的版本號,並提交修改過的文件

    update/bump-version.sh # print usage
    update/bump-version.sh 0.10.0 0.11.0
    
    git commit --all --message "chore(release): 0.11.0 :tada:"
  7. 以上提交在 master 完成。如果在另一個分支發佈,如 legacy,則將以上修改合併到分支。

  8. push 所有修改到 GitHub。檢驗 CI build:下載安裝程序,測試全新安裝以及從上一個推送版本升級。

  9. 確認該版本可發佈後,在 master 或要做發佈的分支上打標籤。(可推遲到發佈完成)推送標籤到 GitHub。

    git tag --annotate 0.11.0 --message "chore(release): 0.11.0 :tada:"
    git push --tags
  10. 將(release tag 或最終 push 觸發的) CI build 生成的安裝包上傳到 bintray。 在 https://bintray.com/rime/weasel/release 新建版本 (New version),命名爲版本號 0.11.0,描述:小狼毫 0.11.0。 爲新建的版本上傳文件 weasel-0.11.0.0-installer.exe

  11. 生成顯示在推送更新介面的變更記錄。只包含 CHANGELOG.md 的最新版本章節,格式爲樸素的 HTML 網頁。

    # npm install --global marked
    update/write-release-notes.sh

    留存生成的 release-notes.html 文件備用。

  12. 使用 Hexo 在官方網站 <rime.im> 發佈更新。

    git clone https://github.com/rime/home.git rime-home
    cd rime-home/blog
    npm install
    
    npm install --global hexo-cli
    
    # TODO(keyholder): edit files

    需要修改的內容包括:

  13. 修改完成後,在本地調試網站。

    # check your changes with local HTTP server
    hexo server

    方法爲:將以上修改過的網葉地址中的域名部份替換爲 Hexo 提示的本地服務器地址,在瀏覽器中預覽各個網葉,檢查文字內容和鏈接地址。

  14. 確認內容無誤,用 Hexo 發佈網站。

    # first time releaser, setup without deployment
    hexo deploy --setup
    
    # publish website at rime.github.io
    hexo deploy --generate

    發佈完成後,可以在 https://github.com/rime/rime.github.io/commits/master 複查提交到 GitHub Pages 的修訂。

  15. 如果本次發佈不是針對小狼毫 0.9 的升級版本(見第 6 步),發佈至此完成。 否則需要在驗證新版本工作正常後,將其推送到位於 <rimeime.github.io> 的舊更新頻道。

    首先需要取得 rimeime.github.io 的寫權限。

    git clone https://github.com/rimeime/rimeime.github.io
    cd rimeime.github.io
  16. 編輯 weasel-update/appcast.xml 以及 weasel-update/pioneer/appcast.xml: 從第 5 步的 weasel/update/appcast.xml 複製 <item> 標籤的內容,視情況修改 channel > title 文字中的升級終點版本號。

    當前版本同時在新、舊兩個更新頻道發佈,因此不必修改 <rimeime.github.io> 的更新日誌。 因爲根據 appcast.xml<sparkle:releaseNotesLink> 的定義,推送更新提示一律從新官網 <rime.github.io> 加載。

  17. 最後提交修改,發出 pull-request。修改併入 master 即開始推送更新。

Clone this wiki locally