npm 是 Node.js 生態系最主要的套件管理工具,GitHub 旗下的 npm 團隊這次更新了「分階段發布(staged publishing)」功能:以前這個機制只能用在已經存在的套件上,發布新版本前先暫存、再由維護者確認推上線;這次更新讓開發者第一次發布全新套件時,也可以透過自動化流程完成,不必像過去一樣得先手動 npm publish 一次。
實際做法是透過 npm stage publish 指令,搭配本機登入或是權限較小的存取權杖(包括只能暫存、不能直接發布的 stage-only token)來建立套件,支援公開的 scoped 或 unscoped 套件、以及私有的 scoped 套件。新套件的第一個版本會先進入暫存佇列,要等有權限的維護者執行推送(promote)之後,才會真正出現在 npm 登記庫、變成可以安裝的版本。
這個改動對維護自動化發布流程(CI/CD)的開源專案特別有意義:以前「建立新套件」這一步卡在一定要手動操作,等於自動化流程做不完整;現在這道門檻被打開了,團隊可以把從建立套件、設定權限、到之後啟用可信任發布(trusted publishing)整套流程都寫進自動化腳本裡,減少人工介入,也降低中間出錯或憑證外洩的機會。
這則新聞比較偏向開源套件維護與自動化部署的實務細節,對剛開始寫程式的孩子來說不是立刻會用到的功能,但可以當作一個例子:讓孩子知道,寫完程式只是一半,怎麼把自己的程式包裝成別人能安裝使用的「套件」、以及怎麼確保發布過程安全可靠,也是軟體工程裡重要卻常被忽略的一環。
開源開發工具平台功能