Sakura: リリヌス運甚手順 たたき台

Created on 30 Jun 2018  Â·  35Comments  Â·  Source: sakura-editor/sakura

むンストヌラヌたでは自動で䜜成できるのが確認できたので、リリヌスの段取りずいうか手順を空想しおみたした。

以䞋、運甚むメヌゞ曞きたすができるかどうかは党く怜蚌できおいたせん。

リリヌス察象のコミットを決定する
 ・Issues等で察象コミットずリリヌス時のバヌゞョン番号決定。
  察象コミット決めればバヌゞョン番号は自ずず決定

察象のコミットに察しおreleaseを䜜成する。
 ・出来たらUIでトリガヌを匕きたい。Tag付をGitHub䞊でできる
 ・もしかしたら、appveyorの画面等でビルド番号等を指定しお、releaseを䜜成するず同時にtag付け実斜
 ・Tag名は、「2.a.b.nnn」でnnnはビルド番号か「2.a.b.0」固定ずするか。自動であれば前者
 ・自動releaseしたら、いったんPre-releaseにしお、動䜜確認したらPreを取るずか。

関連Webの修正
 ・https://sakura-editor.github.io/
  こっちは自動曎新する
 ・https://osdn.net/projects/sakura-editor/
  こっちはフォヌラムにお知らせを掲茉皋床
 ・その他぀ぶやく

これ出来たらコミッタヌ倖の人でもできる手順曞たで仕䞊げられたらいいなず思っおおりたす。

Release management

Most helpful comment

(7) (6) でアップロヌドされたバむナリが AppVeyor のものず同䞀であるかどうか、アップロヌド者以倖の人のほうでも怜蚌 (正匏公開内容物のダブルチェック)

怜蚌䜜業を容易にするために以䞋のようにしおはいかがでしょうか?

  • appveyor で自動的に成果物に察しお自動的にsha256 を蚈算しお成果物に含める。
  • GitHub Releases の sha256 ず AppVeyor の sha256 が同じかを比范する。

(8) Web 曎新は远っお手動察応

Web サむトの曎新も PR を䜜るこずになるので、
(3) の埌で PR を䜜ればいいず思いたす。
実際にマヌゞするのは (8) のタむミングです。

All 35 comments

ちなみにですがGitHubはうちの䌚瀟でもこの間たでアク犁Proxy でフィルタでしお、
いたでも䌁業系はアク犁にしおるずきろもあるかず思うのでリリヌスバむナリを、
OSDNにコピヌ眮く䟡倀はあるのかなずもっおたす。
その堎合のOSDNのリリヌスアップロヌドは手動でもいいかなず。
窓の杜ずかでダりンロヌドできるようになっおもいいかなずおもうのですが、
公匏以倖を嫌う人もいるかなず。

アク犁

OSDN, 窓の杜, Vector, 必芁であればどこかしらにコピヌ眮くのはアリだず思いたす。
メンテナンスめんどくさいず思うので、GitHub Releases を䞭継するプロキシCGIをどこかに配眮するずかでも良いかなず思ったりもしおたす。

自分は以䞋のような感じで考えおいたす。いく぀か手動察応が挟たるので自動化できるのが理想ですが、最初から党郚理想の仕組みを䜜り䞊げるこずは考えおないです。コスパの問題ずしお。

  • (1) 任意のタむミングで master 最新のものをリリヌス可ずみなしお良いか皆の決を採る
  • (2) リリヌスバヌゞョン番号を考えお決める
  • (3) 決たったリリヌスバヌゞョン番号を摘芁するコミットを䜜っお積む (PR を䜜る)
  • (4) (3) の PR を粟査し、問題なければマヌゞ
  • (5) (4) のマヌゞコミットに察しおタグを打぀
  • (6) (5) でタグを打たれたコミットに玐づく AppVeyor バむナリを GitHub Releases にアップロヌド (正匏公開完了)
  • (7) (6) でアップロヌドされたバむナリが AppVeyor のものず同䞀であるかどうか、アップロヌド者以倖の人のほうでも怜蚌 (正匏公開内容物のダブルチェック)
  • (8) Web 曎新は远っお手動察応

ちょっず雑な曞き方になっおしたっおたすが、段取りに特に迷いは無いです。
ご意芋あればください。all

(7) (6) でアップロヌドされたバむナリが AppVeyor のものず同䞀であるかどうか、アップロヌド者以倖の人のほうでも怜蚌 (正匏公開内容物のダブルチェック)

怜蚌䜜業を容易にするために以䞋のようにしおはいかがでしょうか?

  • appveyor で自動的に成果物に察しお自動的にsha256 を蚈算しお成果物に含める。
  • GitHub Releases の sha256 ず AppVeyor の sha256 が同じかを比范する。

(8) Web 曎新は远っお手動察応

Web サむトの曎新も PR を䜜るこずになるので、
(3) の埌で PR を䜜ればいいず思いたす。
実際にマヌゞするのは (8) のタむミングです。

参考情報

窓の杜

https://forest.watch.impress.co.jp/info/sakusya/sakusya1.html

窓の杜では原則ずしお䜜者様からの登録のお申し出による゜フトラむブラリぞの収録ではなく、
毎月の収録候補゜フトを窓の杜が遞ばせおいただき、窓の杜から䜜者様ぞ収録蚱諟を
お願いするずいうかたちをずらせおいただいおおりたす。

ずありたす。

怜蚌䜜業を容易にするために以䞋のようにしおはいかがでしょうか?

appveyor で自動的に成果物に察しお自動的にsha256 を蚈算しお成果物に含める。

ZIP自䜓のハッシュを蚘録する仕組みは欲しいず思っおいたしたが、
たぶん今のやり方に組み蟌むずするず、ZIP内容物のファむルそれぞれのハッシュずいう感じですかね。

GitHub Releases の sha256 ず AppVeyor の sha256 が同じかを比范する。

これのハッシュ倀同䞀性のチェックは人間がやるずいう想定ですか
自分のほうでは今のずころアむデアは無いですがその同䞀性のチェックすらも自動化できる発想があればご提案いただきたいです。

参考情報2

https://ja.osdn.net/projects/sourceforge/news/25778

GitHub アカりントを利甚しお OSDN アカりントにログむンできるようになりたした。

@kobake さん

メンテナンスめんどくさいず思うので、GitHub Releases を䞭継するプロキシCGIをどこかに配眮するずか

幎に回か回かず思うので、手順が明確であれば、CGIを䜜成/メンテする工数考えるず、手動でも十分かなっお思っおたすが決めの問題かず思いたす。

あず、珟圚、バヌゞョンは、桁になっおたすが、releaseのtagは぀でもいいかもですね。
「2.a.b.0」→「2.a.b」

前に、話がありたしたが、tagに反応しお AppVeyorがreleaseの動きをするこずはできるずのこずで。
https://budougumi0617.github.io/2017/10/13/publish-nupkg-by-appveyor/

https://ja.osdn.net/projects/sourceforge/news/25778
GitHub アカりントを利甚しお OSDN アカりントにログむンできるようになりたした。

そうそう、GitHub ログむンできるようになったんですよね。
先月の OSDN ぞの移行提案があった時点ではただこの機胜なかったんですけど。ここ最近の機胜ですね。
MS による GitHub 買収ニュヌスぞの呌応かもしれたせん

幎に回か回かず思うので、手順が明確であれば、CGIを䜜成/メンテする工数考えるず、手動でも十分かなっお思っおたすが決めの問題かず思いたす。

たぁそうですね。個人的には決めすら無くおも良いず思っおたす。その時点で必芁な方がいればコピヌを眮けば良いし、その時点で必芁な方がいなければ無くおも良いですし。実はコアメンバヌがやる必芁すら実はなくお、必芁ず思った第䞉者に勝手にやっおもらうくらいでも良いず思っおたす。

あず、珟圚、バヌゞョンは、桁になっおたすが、releaseのtagは぀でもいいかもですね。
「2.a.b.0」→「2.a.b」

ですね。末尟数字は「人間が決めるずころではない」意識でだいたい合っおるず思いたす。
タグ名は「人間が決める範囲の数字」にしたしょう。個人的には頭に「v」を付けたいず思っおたす。
「v2.a.b」みたいな感じ。

@m-tmatma さん
窓の杜ですが私の゜フトも茉せおもらっおたすが、たぶん線集郚ず調敎でのっけおもらえるかずおもっおいたす。
私の゜フトより著名だずおもうのでサクラ゚ディタ
䞀床のっかるずあずのメンテは線集郚偎でやっおくれるのでこちらは胜動的に動く必芁なくなりたす。
たぶん今たではだれにアポずっおいいか䞍明だから話がないだけのような気も(笑)
Vectorは胜動的に動けばいくらでも行けたすが、窓の杜やVectorはやっぱり第䞉者的になっおしたうので、せっかく倖郚ならOSDNの方がいいのかなず。

GitHubのアカりントでログむンできるずいうこずは、AppVeyorずも連携できるのかなぁ。
GitHubで個人じゃなくおチヌムのアカりント䞀぀䜜っおバッチ運甚にあおおもいいのかもですね。

@kobake さん

個人的には決めすら無くおも良いず思っおたす。

そう決めた通り動く必芁はないのですが、珟メンバヌがどうやっおたかの蚘録ずいうか手順がないず誰も䜕もどうしたらいいかわからないので、手順があったほうが埌匕き継ぐ人が動きやすいかなず。

リリヌスバむナリは、最䜎、
・むンストヌラヌ
・本䜓exeのzip
はリリヌス察象ずしたいず思いたす手動が無く䜙力があれば、むンストヌラヌず同等のzipず、バむナリだけのzip

決めすら無くおも良い

ちょっず蚀葉足らずでしたが、ここは「倖郚コピヌ」に぀いおの蚀及です。
たぁここも䜕かしらサブ手順䜜っおおきたしょうか。

リリヌスバむナリは、最䜎、
・むンストヌラヌ
・本䜓exeのzip
はリリヌス察象ずしたいず思いたす手動が無く䜙力があれば、むンストヌラヌず同等のzipず、バむナリだけのzip

今の AppVeyor の成果物みたいに、実行バむナリもむンストヌラも党郚入っおるZIPでも良いかなヌずも思っおいたすが、どうでしょう。昔ずは違っお今ならネットワヌク環境は皆十分に高速だず思いたすし。そうでもないずころが割ずあるようでしたら僕の認識䞍足なので考えを改めたす・・・

ここは「倖郚コピヌ」に぀いおの蚀及です。

はい、認識あっおたす。党然サヌドパヌティヌは勝手に転茉しおもらっおもいいかず思うのですけど、いわゆる公匏ず呌ばれおるずころにアップロヌドするのは、サブ手順はあっおいいのかなず。

ちなみに、窓の杜は毎月、来月も乗っけおいいか確認のメヌルが来たす。

今の AppVeyor の成果物みたいに、実行バむナリもむンストヌラも党郚入っおるZIPでも良いかなヌずも思っおいたすが、どうでしょう。

線の倪さよりは、ピンポむントでダりンロヌドしたいニヌズはあるかなず。

ちなみに、窓の杜は毎月、来月も乗っけおいいか確認のメヌルが来たす。

ぞヌ。

ZIP自䜓のハッシュを蚘録する仕組みは欲しいず思っおいたしたが、
たぶん今のやり方に組み蟌むずするず、ZIP内容物のファむルそれぞれのハッシュずいう感じですかね。

ずりあえず sha256 の蚈算結果を成果物の ZIP に含める察応を行いたした。

190

線の倪さよりは、ピンポむントでダりンロヌドしたいニヌズはあるかなず。

そうですね。実行ファむルだけ䜿いたい人はいるかもしれないですね。
appveyor で warning 関連のテキストず実行ファむル (蚀語ファむルも?) ず
ハッシュをZIP 圧瞮したものを appveyor にあげる察応したしょうか?

自分のほうでは今のずころアむデアは無いですがその同䞀性のチェックすらも自動化できる発想があればご提案いただきたいです。

appveyor から GitHub Release にあげられるのであれば
その逆 (GitHub Release から appveyor の実行環境ぞのコピヌ)は
できそうに思いたす。テストはめんどくさそうですが。

ただそんなに頻繁にリリヌスしないのであれば、
すぐに察応しなくおもいいように思いたす。

sakura.exe以倖のハッシュは、個人的には䞍芁ですsakura.exe単独ダりンロヌドはしたすが、他のモゞュヌルを単独でダりンロヌドする堎面はあたりなさそうなので。
が取捚遞別するほうが手間であればワむルドカヌド(党郚)にhash䜜っおもいいかもですね。

ただそんなに頻繁にリリヌスしないのであれば、
すぐに察応しなくおもいいように思いたす。

ですね、将来䜙裕があったらずいうか気が向いたらくらいで察応で良いず思いたす。

sakura.exe以倖のハッシュは、個人的には䞍芁です

個人的には .exe, .dll, .msi 等は最䜎限ハッシュあったほうが良いかなず思っおマス。実行コヌド埋め蟌み可胜なファむルに倉なもの混入しおいるずマズいので。

前に、話がありたしたが、tagに反応しお AppVeyorがreleaseの動きをするこずはできるずのこずで。
https://budougumi0617.github.io/2017/10/13/publish-nupkg-by-appveyor/

tag を push したタむミングで appveyor のビルドが走るこずは実際に確認したした。
https://github.com/sakura-editor/sakura/pull/199#issuecomment-401538423

ヒストリヌっお、コミットログでいいんでしょうか
盎近のコミットログ芋るず、フォルダ構造の倉曎等、内郚仕様・構造の倉曎もおおくお、
゚ンドナヌザ目線の情報ではないなぁず思い぀぀。
https://github.com/sakura-editor/sakura/wiki/NextRelease

コミットログから倖郚仕様にかかわるずころだけ抜粋するか、目玉機胜だけリリヌス甚Issueで協議しお、
詳现はコミットログ芋おね的な案内にするか。
段取り的には、 @kobake さんの手順の

(1) 任意のタむミングで master 最新のものをリリヌス可ずみなしお良いか皆の決を採る
(2) リリヌスバヌゞョン番号を考えお決める

この蟺り甚のIssueで内容決めるっお感じでしょうか。
曎新察象っお、
ヘルプず゜ヌスもありっすかね
https://sakura-editor.github.io/help/HLP_HISTORY.html

https://github.com/sakura-editor/sakura/blob/master/unofficialrelease.txt
https://github.com/sakura-editor/sakura/blob/master/request.txt

コミットログをそのたたリリヌスノヌトに曞くわけじゃないので、そこは人間的なヒストリヌになるず思っおください。コミットログを䞀般ナヌザに芋せる぀もりは無いです。芋たい人は芋おきおくれおも良いですが。

ヘルプも察象内で良いかず。

unofficialrelease.txt ず request.txt はあず粟査したほうが良いかもしれたせんが、今は自分は芋おないです。

この蟺り甚のIssueで内容決めるっお感じでしょうか。

そですね、リリヌス間近のあたりでそれ甚のIssue䜜っお合意圢成進めおくのが良いかず。

unofficialrelease.txt ず request.txt はあず粟査したほうが良いかもしれたせんが、今は自分は芋おないです。

そうか、これは、むンストヌラヌに含たれるものじゃないからある意味塩挬けでもいいのかもしれたせんね。

この蟺り甚のIssueで内容決めるっお感じでしょうか。

そですね、リリヌス間近のあたりでそれ甚のIssue䜜っお合意圢成進めおくのが良いかず。

むメヌゞあいたした。

ひょっこり通りすがりの人ですが、AppVeyorに぀いお答えられそうな事ずかを曞いおみたす。
個人的に調べたばっかりで、蚘憶が残っおいるので今のうちに

運甚方法に぀いお

  • (1) 任意のタむミングで master 最新のものをリリヌス可ずみなしお良いか皆の決を採る

これは、pre-releaseブランチでも䜜ればどうでしょうか。
AppVeyorでDeployするずきに、masterブランチずpre-releaseブランチに曎新があった堎合のみDeployが動䜜するように蚭定できたす。ビルドはその他のブランチでも垞に動きたす。ちなみにビルドもブランチを限定しお動かすこずが出来たす

運甚むメヌゞは、pre-releaseブランチでTag付きコミットをするず、自動でEXEがビルドされ、どこかにDeployされたす。各自でそのEXEの動䜜確認埌、合意が埗られたら代衚者がmasterブランチぞマヌゞしTagを付ける感じです。

GitHub Releasesでpre-releaseずmasterの成果物が混圚しお玛らわしい、ずいう堎合は、ブランチによっおDeploy先を切り替えおもよいかもしれたせん。 appveyor.yml で provider: の蚘述を耇数蚘茉が可胜です

以䞋は、成果物「TEST.zip本䜓exeのZIP」ず「TEST.exeむンストヌラ」をmasterブランチでTag付きコミットがあった堎合はGitHub Releasesぞ、pre-releaseブランチでTag付きコミットがあった堎合はBintrayぞデプロむする最小限の蚘茉䟋です。
実際はこれにapi_keyずsecureの蚘茉が必芁ですし、これ自䜓の動䜜確認はしおたせん

artifacts:
  - path: TEST.exe
  - path: TEST.zip

deploy:
  - provider: GitHub
    on:
      branch: master
      appveyor_repo_tag: true       # deploy on tag push only

  - provider: Bintray
    on:
      branch: pre-release
      appveyor_repo_tag: true       # deploy on tag push only

リリヌスバむナリは、最䜎、
・むンストヌラヌ
・本䜓exeのzip
はリリヌス察象ずしたいず思いたす

この通り、成果物のartifactは、耇数指定可胜です

成果物のチェックサムに぀いお

(7) (6) でアップロヌドされたバむナリが AppVeyor のものず同䞀であるかどうか、アップロヌド者以倖の人のほうでも怜蚌 (正匏公開内容物のダブルチェック)

これは、少々厄介ですが、やろうず思えば出来るず思いたす。やったこずないけど
既にZIP内にsha256のテキストが入っおいる前提だず、以䞋のような流れでしょうか。

  • appveyor.yml の after_deploy: で、デプロむ埌の凊理ずしお以䞋を動かしたす。
  • GitHub Releasesのペヌゞからスクレむピングしお、デプロむされたZIPファむルをダりンロヌド How to download file したす。
  • アクセスするアドレスは、 https://github.com/sakura-editor/sakura/releases/latest にアクセスしたす。
  • AppVeyorからのスクレむピングは、seleniumを䜿えばできたす。 Selenium testing このペヌゞのやり方じゃなくおもPythonずかRubyが動かせるのでSeleniumを pip install selenium や gem install selenium-webdriver な感じでむンストヌルしお普通に実行しおもいけそうな気がしたす。

ちょっず心配なのは、デプロむでGitHub ReleasesにUPした盎埌に、ZIPファむルをダりンロヌドできるかどうか・・・でしょうか。

・・・が、そもそもこれっお必芁でしょうかAppVeyorの手元に成果物もあるし・・・

個人的には、 公匏配垃サむトにsha256のコヌドを晒すべきだ ず思いたす。sha256の公開元が保蚌されなければ、ナヌザずしおはチェックする意味がありたせん。
「改竄したEXE」ず「改竄埌EXEを元に算出したsha256」が同梱されたZIPファむルを配垃されたら、意味がないからです。
なので、sha256公開ペヌゞを䜜っおおき、 after_deploy: のタむミングでAppVeyorからリポゞトリに自動曎新コミットさせるほうが珟実的だず思いたす。 Pushing to remote Git repository from a build 
※これ以倖にも、Github Pagesを䜿うなど、やり方はいく぀かあるず思いたす。

AppVeyorからgithubぞのデプロむやコミットに぀いお

github偎で、 Personal access tokens のペヌゞで、public_repoの暩限を䞎えおトヌクンを発行し、AppVeyor偎に登録するこずず、このトヌクンを Account → Encrypt data tool で暗号化し、それをapi_keyのsecureで指定しおあげなければなりたせん。
たた、コミットたでする堎合は、もっずいろいろ指定しおあげなければなりたせん。やったこずないので説明は避けたすが、䞊蚘リンク先に英語で蚘茉がありたす

たた、githubの巊䞊の怜玢ボックスで、「appveyor.yml git config global」あたりをキヌワヌドに怜玢するず、実際にコミットたでさせおるymlが匕っかかるので、いろいろ参考になりたすよ。

長文倱瀌したした汗

@jakenjarvis さん、通りすがりありがずうございたす。
ただリリヌスれロなのでいろいろず有識者のご意芋聞きたいずころです。
いただいた情報このIssueで肉付けしたいずおもいたす。
げんざい、リリヌス呚りに力を避ける人が少ないので、もしよろしければ今埌ずも盞談ににっおいただければ幞いです。

あずtagの実隓の話は #121 にもございたす。

あう。121で詳しく話が出おたすね汗ここを先に芋るべきでした。
有識者ずいうほど、私も明るいわけではないのですが、䜕かお手䌝いできるこずがあればず思いたす。

で・・・せっかくなので、手元で倉曎しお詊しおいるずころなのですが、䞀぀䞍具合の原因を発芋したので、別のissueで報告したすね。

別のissueで報告したすね。

ありがずうございたす。助かりたす。

いったんWiki偎ぞリリヌス手順展開されたので本Issue閉じたす。

Was this page helpful?
0 / 5 - 0 ratings