發表文章

目前顯示的是有「Git flow」標籤的文章

如何自動化 release 的流程?

圖片
這篇文章會介紹如何使用 semantic-release 這個工具,自動化 Node.js (or JavaScript) 專案的版本號,以及 changelog 的 release 流程。 什麼是 semantic-release? 為什麼要用 semantic-release? 如何使用 semantic-release? 什麼是 semantic-release? semantic-release 可以自動完成下列這些事: 當 code 被 push 或 merge PR 回 production branch (ex: master) 的時候 CI build 被觸發, semantic-release 會收集此次更新的所有 commit messages(需遵循 AngularJS Git Commit Message Conventions 的格式) 自動根據 semver 的規則來更新 package.json 的 version,並建立 Git tag 自動 publish 新版本的 package 到 npm registry (非必要) 自動在 GitHub releases 的頁面上,產生相對應的 changelog 所以簡單來講, semantic-release 指的就是遵循 semver 的 release 流程。 semver 的介紹和好處可以在網路上找到很多文章,這裡就不贅述了,它的概念主要就是將版本號分成: Major . Minor . Patch 例如 React 的 0.11.2、Vue.js 的 2.0.10 等,這三個數字各自代表: Major 當你的 API 不兼容前一版本時(又稱 Breaking Change),major + 1,例如:1.x.x -> 2.0.0。 Minor 當你增加新 feature 的時候,並且不影響前一版本的 API,minor + 1,例如:x.6.x -> x.7.0。 Patch 當你修復 bug 的時候,並且不影響前一版本的 API,patch + 1,例如:x.x.9 -> x.x.10。 如果專案有在執行 git-flow 的話,minor 配合的就是 feature 的 re...

Trello workflow

圖片
團隊開發的網頁遊戲 《末日少女》 已經上市快兩個月了,成績比當初想像中還好,相較於 Gu Morning ,這次《末日少女》的開發學到很多寶貴的經驗,稍微鬆口氣之餘,也有許多需要檢討改善的地方,而《末日少女》Mobile 版其實也已經開發好一陣子了,最近這個專案 只剩下我一個人 交到我手上負責,趁這個機會導入一些新的開發方式,也 PO 上來分享心得。 這篇文章會講什麼? HtpChat - 開發團隊的 Log 整合中心。 Trello - 團隊的專案管理小白板。 Git flow - 最佳程式開發流程。 Jenkins - CI(持續整合)建構工具。 HipChat HipChat 是一款跨平台團隊溝通工具,為了節省開會浪費的時間,通常會使用 Lync 或 Skype 這類通訊軟體,而 HipChat 除了該有的聊天功能,歷史查詢,附件上傳,@mentions 通知之外,最棒的是它可以整合許多服務,例如 GitHub , Heroku , JIRA 等,將所有開發上分散的訊息統一管理,方便團隊隨時瞭解狀況,而接下來這篇文章會講到如何整合 Trello , GitHub 和 Jenkins 。 Trello 不同於一般市面上複雜的專案管理軟體, Trello 是一個簡單易用的 Scrum board,之前 Development Tools 這篇文章有稍微介紹,而我目前就是使用它來管理新專案,試用兩個月下來,感覺還不錯。 Trello 主要由 Board,List 和 Card 組成,如上圖所示,目前我將開發板分成五個 List: Backlog - 所有企劃開出來的功能會集中在這個 Backlog List,並按照預計完成日期排序。 To Do - Backlog 中的功能如果已經準備好企劃文件和美術檔案,那卡片就會移到 To Do 待命。 Doing - 正在實作中的功能會從 To Do 移至 Doing,建議每個人只留一張卡片在這。 Done (vX.X.X) - 下一版要完成的功能,在 Doing 完成的卡片會移到 Done,待產品發佈後會從 Done 改為 Live。 Live (vX.X.X) - 已經上線的功能 List,可以隨時使用封存,讓開發板保持乾淨...