Meteor 1.4のアナウンス
3月のMeteor 1.3のリリースから4か月も経っていませんが、Meteor 1.4がリリースされました。公式ブログの記事を紹介します。
概要
Meteor 1.4ではNodeとMongoDBのメジャーアップデートとより柔軟なパッケージリリースの仕組みが入りました。Meteor 1.4の狙いは長期間の安定性と、JavaScript全体のエコシステムへの継続的な追従と、コミュニティとのより密な連携です。
主な変更点は、NodeをLTS版の4.4.7に上げたこと、MongoDBを最新の3.2.6に上げたことです。MongoDBのこのバージョンはパフォーマンスの高いWiredTigerストレージエンジンが入っています。また、Meteorのコアパッケージの固定方法を柔軟にしました。これにより、BlazeなどのコアパッケージのコミュニティメンテナがMeteor本体のリリーススケジュールとは関係なくアップデートをリリースすることができるようになります。
アップデートはmeteor update
を実行するだけです。初めてインストールする方は、Meteor install pageを参照してください。既存プロジェクトをアップデートする場合は、Migrating to 1.4も参照してください。
Node 4
Nodeのバージョンは0.10.46から4.4.7に上がりました。Node 4シリーズはLTSと呼ばれ、Node.js Foundationが2018年4月までメンテナンスすることを約束しているものです。これにともないMeteorのツールに手を加え、今後のNodeのバージョンアップも簡単に行えるようにしました。また、npmのエコシステムが十分になった時点でNode 6にアップデートする予定です。おそらく、Node 6がLTSとなる2016年10月頃になるでしょう。
Node 4対応に関連して重要な変更は、Meteorのバイナリパッケージの扱いが変わったことです。以前のMeteorではパッケージは特定のNodeバージョンにハードコードされたnpmのバイナリパッケージが含まれていました。今回、Node 4に合わせて新しいバイナリフォーマットを用することはせず、バイナリビルドの作業をパッケージ作者からパッケージ利用者に移すことにしました。その結果、Meteor 1.4での開発では、バイナリパッケージを使う場合にコンパイラツールチェーンをインストールしなければならなくなりました。逆に、パッケージ開発の際はその必要がなくなりました。詳しくは、1.4 migration guideを参照してください。
Mongo 3.2
MongoDBのバージョンは2.6.7から3.2.6に上がり、関連ドライバのバージョンも上がりました。新しく作成したアプリの開発用のデータベースはデフォルトでWiredTigerストレージエンジンを使います。しかし、古いMMAPv1エンジンで動くデータベースに接続することもできます。Mongo.setConnectionOptions(options)
を呼び出すことでMongoドライバのオプション、例えばSSLの証明書の設定、を渡すことができます。
このアップデートについてはMeteorコミュニティメンバの@fabsがほとんど開発してくれました。
コアパッケージバージョンの緩和
Meteor 1.4では、開発者は新しいMeteorのリリースを待つことなく、アップデートされたコアパッケージを使うことができるようになります。1.4より前は、Meteorのリリースはアプリにインストールされるコアパッケージを厳密に固定していました。例えば、Meteor 1.3.2.4ではBlazeの2.1.7を使うように固定されていました。よって、Meteorの新しいリリースを待たない限り、新しいBlazeを試すことはできませんでした。Meteor 1.4はこの制限を緩和し、Meteorリリースで指定されたコアパッケージのバージョンより新しいものであればインストールできるようになりました。
これにより、コアパッケージはMeteorのリリーススケジュールと切り離してコミュニティがリリースすることができます。さらに、Meteorパッケージを徐々にnpmに移行することがやりやすくなります。なぜなら、パッケージ作者が更新した際にいつでも利用者は新しいパッケージにアップデートできるからです。これはnpmのエコシステムのやり方で、Meteorもそれを採用することになりました。
今後の予定について
既にMeteor 1.4.1への計画を立て始めています。パフォーマンス改善、例えば、パッケージ展開やリビルドの高速化に取り組んでいます。さらに、Meteor 1.4.1はNode 4の更新によりパフォーマンス改善がなされるでしょう。
今年は、プラットフォームの多くの部分でコミュニティコントリビュータと一緒に活動してきています。コアパッケージバージョンの緩和により、とうとうMeteorの世界中のコミュニティがblazeやlivedataなどのコアパッケージをちゃんと更新できるようになりました。この機能にはわくわくしており、今後も積極的にコミュニティに係わっていくことを期待してください。
Meteor 1.5に向けては、新しいGraphQLベースのデータスタックApolloの開発が進捗しています。これまで、重要機能の開発に集中し、MeteorでもMeteor以外のエコシステムでも使えるような技術を作ってきました。次は、既存のMeteorアプリとの密な連携に注力します。Meteor 1.5のその他の目標は、Apolloを用いたSQLサポートです。
おわりに
以前から言われてましたが、また新なたステップに向かうリリースがされました。NodeとMongoDBのアップデートはエコシステムとの連携を考えると必須ですね。逆に言うとそれ以外は特に目新しくなく、初めてMeteorを触る人には何ら違いはないかもしれません。