WeaselReleaseManual

Chen Gong edited this page May 3, 2018 · 2 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 "doc(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 即開始推送更新。

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.