バージョン

badge

Ergコンパイラはセマンティックバージョニングに従ってバージョン番号を付ける。 ただし、バージョン0の間は通常と異なるルールが適用される(セマンティックバージョニングよりも細かいルールに従う)。 ここで注意すべき点として、Ergには2種類の互換性がある。言語仕様の互換性を示す 仕様互換性 と、コンパイラ等の(公開)APIの互換性を示す 内部互換性 である。

  • バージョン0の間は、マイナーリリースで仕様・内部互換性が壊れる可能性がある。これは通常のセマンティックバージョニングと同じである。
  • バージョン0の間は、パッチリリースで仕様互換性が壊れることはないが、内部互換性の保証はない。
  • 新機能は主にマイナーリリースで追加されるが、些細な言語機能である場合、またはコンパイラの機能の場合はパッチリリースでも追加されうる。

リリースサイクル

  • パッチリリースは1~2週間に一度程度行われる。ただし重篤なバグが発見された場合、前倒しされる可能性もある。
  • マイナーリリースはパッチリリース10数回程度、すなわち3~6ヶ月に一度行われる。
  • メジャーリリースの間隔は不定である。バージョン1リリースの予定は現在のところ定まっていない。

nightly, betaリリース

Ergでは不定期にnightlyリリースとbetaリリースを行う。nightlyリリースは新しいパッチリリースの先行公開版であり、betaリリースは新しいマイナー/メジャーリリースの先行公開版である。 nightlyバージョン及びbetaバージョンはcrates.io上で公開される。betaバージョンの場合はGitHub releasesでも公開される。

nightlyバージョンの形式は0.x.y-nightly.zである。同一のパッチリリースに対して複数のnightlyリリースが存在することがあり、その場合は新しくなるにつれてzが増加する。betaバージョンも同様である。

nightlyリリースはほぼ隔日で行われる(コンパイラ本体に対する変更のない日は行われない)が、betaリリースは不定期である。ただし、betaリリースは一度公開されると、ほぼ隔日で新しいbetaリリースが公開される。