2023年10月時点のplayframeworkの今後の予定

すごく重要な予定が色々と決まりつつあるので、独断で勝手に?雑に?選んで紹介しておきます。 単なる翻訳というよりは、自分の感想や主観みたいなものが入ってます。

詳細な原文を知りたい人は、以下のあたりを読んでください

  • https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/General.md
  • https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/releases/release29/migration29/Migration29.md
  • https://github.com/playframework/playframework/blob/80da98b0352e1d3e7e1ba034ec9c5e4c15e1cb3e/documentation/manual/releases/release29/Highlights29.md

  • もうすぐplay 2.9がリリースされる

    • 問題なければ、おそらくもう今月(2023年10月?)
    • Scala 2.12のサポート削除
    • JDK 8のサポート削除。JDK 11以降が必須
    • Scala 3サポート追加
    • play 2.8でも、多少工夫すればJDK 17で動かないこともなかった?が、実質play 2.9以降でJDK 17公式サポート
      • JDK 21も実質公式サポート?(今のところ17でOKで21ではダメ、という種類の大きな問題はおそらく見つかってない?)
    • akkaやakka-httpは(少なくともデフォルトでは)OSSの古いライセンスのものに依存したまま
      • どうせ、やりたい人多くないと思うが、頑張って追加で工夫すれば、最新のOSSではなくなったakkaやakka-httpに依存させることも不可能ではない可能性はあるが、どうせpekko移行することを考えると、あまり推奨はされないはず?
    • akkaの騒動の影響でNetty backendデフォルトにするか?みたいな議論があったが、その方針は採用されなかった(後述するようにpekkoになるので今後も採用されないっぽい)
    • akka-httpはOSSのライセンスでScala 3でpublishされてないので、play 2.9かつScala 3かつakka-http backendだと、Scala 2.13用のakka-http依存になって若干面倒というか複雑というか注意が必要かも
      • それを頑張るためにplayのsbt pluginが色々やってくれる
      • それを頑張るために、Scala 2.13と3の、どちらのakkaやakka-httpを参照しても問題ないように、互換が壊れるakka内部のunapplyの呼び出しをplayから避ける、みたいな面倒な工夫がされていた
  • 全てのakka依存をpekkoに変えたplay 3.0も、わりとすぐ?2.9と実質同時に?(今のところ2023年10月予定!?)リリース予定
    • akkaをpekkoに変えた以外は、play 2.9と3.0はあまり差分がないかも?(自分はあまり完全に詳細把握出来てないが、おそらく)
  • play 2.8系はこれ書いてる時点で2024年の5月で(はやくも)EOL予定!?!?!?
    • 依存ライブラリがEOLなので〜、などの事情
    • play開発者のリソースがそんなに多くないのと、play 2.8から2.9の間がかなり空いてしまった影響などもありそう
  • play 2.9や3.0のEOLもある程度方針決まってきているみたいだけど、詳細は変わるかもしれないし、ここには一旦書かないので、詳細は公式を見ましょう
  • そのさらに次に出るのが、play 2.10なのかplay 3.1なのか、またそれらが同時なのか、詳細は厳密には未定な気はするが、そこではJDK 11も打ち切って17以降が必須になる可能性