我々は我々で我々を取材し、我々自身の手で我々を発信出来る事を知るんだ! FLOSS UG Report 顛末記

これまでの あらすじ

オッス!! おれ、覆面仮面大魔王くん! マジ正直 ぶっちゃけ今日おれ ノリでこのカレンダーに登録した! だからYO これはYO 去年やったことなの マジ掃除機 ぶっちゃけ卍 よろしくな!! この記事は、今年やったこと Advent Calendar 2017 15日目へのエントリーです。

序文

これは、実在するドキュメンタリー映像プロジェクトの顛末にまつわる、SF伝奇小説です。某地方に伝わる封印された動画レポートの風習、それは如何にして作られそして伝えられたのか… 今年やったこと…つまりは、今年やるべきこととして、ここにこの記事を記し、これを目にする皆さんにこの事を伝えていきたいとおもいます。 続きを読む

身近なカーネル体験記2 実在する地方カーネル集団

この記事は前回の3日目に引き続き Kernel/VM Advent Calendar 2017 10日目へのエントリーです。 前回はカーネルのランレベルについて書きました。 今回は趣向を変え、とある、実在する地方ITコミュニティの現状についてお伝えしたいとおもいます。
東道後温泉

東道後温泉

忘れられた大地 四国を舞台に、果てしなきKernelテクノロジーへと向き合い続けている実在のカーネルコミュニティとは? ポンジュースも鯛めしも美味しい由緒ある湯治場。今、松山市では何が起きようとしているのでしょうか? ※ カーネル(Kernel)というのは、ざっくりと説明するとアプリケーションと機械の間で情報を橋渡しする仕組みのことです。 続きを読む

セマンティックシュトラーセ

この記事はWordPress Advent Calendar 2017 5日目へのエントリーです。 みなさんの作られたプラグインやテーマはどのようにバージョン番号を付けられていますか? 今回はソフトウェアのバージョン番号についてのお話です。バージョン番号の意味を知ることで、お手持ちのソースコードの価値を高めてみましょう。 ※:バージョン番号と言うのはソフトウェアの特定の段階を区切って現す固有の識別番号のことですたぶん。
最新バージョンのリリースアナウス

最新バージョンのリリースアナウス

WordPressとバージョン

例えばWordPressだと、0.70から現在の4.9.1まで順を追ってこの数字が更新されてきました。 大体の雰囲気で説明すると4.9.1のうち、 4:メジャー番号 9:マイナー番号 1:メンテナンス番号 という分類になっています。 メンテナンス番号は、バグフィックス等が行われると更新されます。マイナー番号は何かしら機能追加や変更があった場合に更新される予定が組まれています。メジャー番号はマイナー番号が9を越えたら更新されます。適当な感じで説明しているので違うかもしれません! とりあえず上記のような感じで、バージョン番号を辿れば、そのソフトウェアの特定の段階を知ることが出来ます。出来るはずです。出来ますよね? あなたのソフトウェアなら出来ますよね。 (※1)
プラグインのバージョン情報

プラグインのバージョン情報

時を遡ること、2017年、春…

うっかり胃腸炎の病から立ち直ったおれは、念願のWooCommerce魔改造への道を歩み始めていた… 中略(※2) 紆余曲折を経てWooCommerceの魔改造を果たしたおれは、多大な犠牲と引き換えに、いくつかの大きな知見を得た。 その1つが、セマンティック・バージョニングだったのだ!!
Why Use Semantic Versioning?

Why Use Semantic Versioning?

セマンティック街道

それではセマンティック・バージョニングを始めましょう。 以下はセマンティックバージョニングの3原則です。
  1. APIの変更に互換性のない場合はメジャーバージョンを、
  2. 後方互換性があり機能性を追加した場合はマイナーバージョンを、
  3. 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。
出典:セマンティック バージョニング 2.0.0 弊社の現状である、バージョニングハンマーと比較してみましょう
  1. 突然の閃きでメジャーバージョンを、
  2. まあこんなもんだろ…という感じでマイナーバージョンを、
  3. 何かコードを変更した場合はとりあえずパッチバージョンを上げます。
おわかりでしょうか? ぼくはよくわかりません。これの何が問題かというと、ソフトウェアの区切りとしての識別子が、統一性のある意味を持っていないと言うことです。 ソフトウェアの区切りに、統一された意味を持たせるということは、ソフトウェアのバージョンが更新されることで、その価値の積み重なりが視覚的に分かるようになるということですね。ホントかなあ? 知らんけど。
GETだぜ!

GETだぜ!

実践編

ということでソフトウェアの価値観を可視化して現金をGETだぜ! でもそうは言っても、実際にどのタイミングでバージョン番号を変更していけばいいのでしょう? そうです、Gitを使いましょう! でもGitじゃなくてもいいです。なんでもいいんです。すみませんでした。GitにはGit-Flowという作法(ブランチモデル)があります。これをセマンティックバージョニングのタイミングと併せて使用してみましょう。 参考文献:Git-Flow 参考文献:見えないチカラ: A successful Git branching model を翻訳しました
git-flow

git-flow

以下、詳細は伏す。

なぜなら、AdventCarendarを読んで結果だけを見て理解した気になっているだけではだめだからだッ!! ここに挙げたキーワードをもとに自分自身の目で確かめて経験を積んでいくことが大切だからだ!! 忙しいから途中で書くのを諦めたとかそういうことよりも大切なことが世の中にはあるし… おまえは仕事も終わっていないのにAdventCalendarの締め切りは守っているんですねえと言われてもウヘヘって応えざるをえない場面も想定されるんですよ! ですので、もしまだお近くに適当なバージョン管理をされている方がいらっしゃいましたら、ぜひこの機会にセマンティックバージョニング等を取り入れて、お手持ちのソースコードにしっかりとした裏付けのある価値を積み重ねていきましょう! と、忘年会、新年会などでお声がけください。 キミのそのプラグインのあのバージョンは良かったよー、最高だよー! との声援を頂けるようになることをお祈り申し上げまして、わたくしの方からは以上とさせて頂きます。
openSUSE Leap 42.3

openSUSE Leap 42.3

※1:ちなみに、openSUSEというとてもカッコいいOSの現在のバージョンは42.3ですが、次のバージョンは15が予定されていて、以前のバージョンは13.2です。カッコいいぜ!! ※2:魔改造について興味のある方は下記資料をご覧ください。 https://speakerdeck.com/mrexcluded/ben-dang-niatuta-ecpuraguin-woocommerce-womo-gai-zao-sitahua ※2-2:WooCommerce開発者チームもまた、様々な紆余曲折を経てセマンティックバージョニングを取り入れる事になった。そのいきさつについては以下に示す開発者ブログのエントリーに詳しい。でもぼくはスーパーイングリッシュなので実はこのエントリーではなかったかもしれない。大体の感じでご了承頂きたい。 Important update regarding the upcoming WooCommerce release; 2.7 will be 3.0.0 – Develop WooCommerce ※※:この記事はWordPress Advent Calendar 2017 5日目へのエントリーです。

身近なカーネル体験記1 謎のランレベルの巻

こんにちは。すっかりアドヴェントカレンダーの季節になりました。 この記事はKernel/VM Advent Calendar 2017 3日目のエントリーです。 ※ カーネル(Kernel)というのは、ざっくりと説明するとアプリケーションと機械の間で情報を橋渡しする仕組みのことです。このエントリーは、カーネル初心者である中年男性の身に起こった実際の出来事を書き記した実録のドキュメンタリーです。 続きを読む