Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nomissbowling/c75f7d3cd585ede0bf6cf59ec7d3be12 to your computer and use it in GitHub Desktop.
Save nomissbowling/c75f7d3cd585ede0bf6cf59ec7d3be12 to your computer and use it in GitHub Desktop.

Revisions

  1. @omasanori omasanori revised this gist Dec 14, 2013. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile1.rst
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@ msgpack-rustとは

    msgpack-rust_\ \ MessagePack_\ のRustによる実装の一つで、私が書いたものです。まだ実装していない機能が多いです。はい、がんばります。

    これの大部分は夏頃に書いたコードなのですが、\ `3ヶ月半ほど言語の変更に追随しなかった結果、500行以上書き換えることになりました`_\ 。pre-1.0の言語らしいエピソードと言えます。
    これの大部分は夏頃に書いたコードなのですが、3ヶ月半ほど言語の変更に追随しなかった結果、 `500行以上書き換えることになりました`_\ 。pre-1.0の言語らしいエピソードと言えます。

    rustpkg
    -------
    @@ -35,6 +35,6 @@ Rust CI
    .. _MessagePack: http://msgpack.org/
    .. _msgpack-rust: https://github.com/omasanori/msgpack-rust
    .. _rustpkg: http://static.rust-lang.org/doc/master/tutorial-rustpkg.html
    .. _`4ヶ月ほど言語の変更に追随しなかった結果、500行以上書き換えることになりました`: https://github.com/omasanori/msgpack-rust/compare/df80989ea9ec99ea1b1e5d8c9142aaacffcd57c5...b06c58d013d01065da89a7c21f38ae20bf2fcadd
    .. _`500行以上書き換えることになりました`: https://github.com/omasanori/msgpack-rust/compare/df80989ea9ec99ea1b1e5d8c9142aaacffcd57c5...b06c58d013d01065da89a7c21f38ae20bf2fcadd
    .. _`msgpack-rustの.travis.yml`: https://github.com/omasanori/msgpack-rust/blob/master/.travis.yml
    .. _`Rust CI`: http://hiho.io/rust-ci/
  2. @omasanori omasanori created this gist Dec 14, 2013.
    40 changes: 40 additions & 0 deletions gistfile1.rst
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,40 @@
    msgpack-rustをrustpkg化してTravis CIで継続的インテグレーションする話
    ====================================================================

    表題の通りです。

    msgpack-rustとは
    ----------------

    msgpack-rust_\ \ MessagePack_\ のRustによる実装の一つで、私が書いたものです。まだ実装していない機能が多いです。はい、がんばります。

    これの大部分は夏頃に書いたコードなのですが、\ `3ヶ月半ほど言語の変更に追随しなかった結果、500行以上書き換えることになりました`_\ 。pre-1.0の言語らしいエピソードと言えます。

    rustpkg
    -------

    Rustには独自のビルドシステム兼パッケージシステムがあります。それが\ rustpkg_\ です。こちらの対応はほとんどできていたのですが、どう解決して良いかわからない問題が一つあったのでMLに投稿したところ、2分で答えが返ってきました。よくある質問だったようです。申し訳ないことをした……。

    Travis CI
    ---------

    さて、めでたくmsgpack-rustは最新のRustでrustpkgを使ってビルドできるようになりましたが、しばらくの間は言語仕様に破壊的な変更が加わるでしょう。また、msgpack-rustも(やる気を補充したので)大きな変更が加わることになります。こんなとき便利なのが継続的インテグレーションです。

    Travis CIは今のところRustを公式にはサポートしていません。なので、\ `msgpack-rustの.travis.yml`_\ に書かれている通り、Travis CIでRustのプロジェクトをビルドする際にはPPAからRustのナイトリービルドを入手します。ただし、このPPAはRustチーム自体が管理しているものではありません。PPAの信頼性は保証されていない点に留意しましょう。

    Rust CI
    -------

    こうしてmsgpack-rustはTravis CIの恩恵を受けることができるようになりました。しかし、この時点ではmsgpack-rustの変更をきっかけにビルドが始まることはあっても、Rustの変更をきっかけにビルドが始まることはありません。そこで、\ `Rust CI`_\ に登録しましょう。これでPPAのRustパッケージが更新される度にリビルドが始まります。

    おわりに
    --------

    やっぱり継続的インテグレーションは素敵ですね。

    .. _MessagePack: http://msgpack.org/
    .. _msgpack-rust: https://github.com/omasanori/msgpack-rust
    .. _rustpkg: http://static.rust-lang.org/doc/master/tutorial-rustpkg.html
    .. _`4ヶ月ほど言語の変更に追随しなかった結果、500行以上書き換えることになりました`: https://github.com/omasanori/msgpack-rust/compare/df80989ea9ec99ea1b1e5d8c9142aaacffcd57c5...b06c58d013d01065da89a7c21f38ae20bf2fcadd
    .. _`msgpack-rustの.travis.yml`: https://github.com/omasanori/msgpack-rust/blob/master/.travis.yml
    .. _`Rust CI`: http://hiho.io/rust-ci/