UpdateLogging.Full
の下での「Resolving…」ログを復元しました。 lm#240 by @hodga-Dconfig.resource=/path/to/configFile
がGigahorseと競合する問題を修正しました。 lm#241 by @tanishikingsbtとZinc 1の改善に貢献してくれた皆様に心から感謝いたします。使用、バグ報告、ドキュメントの改善、ビルドの移植、プラグインの移植、プルリクエストの提出とレビューなど、様々な形で貢献していただきました。
sbt 1.1.6は、sbt、zinc、librarymanagement、util、io、launcher-package、およびwebsiteのgit shortlog -sn --no-merges v1.1.5...v1.1.6
によると、15人の貢献者によって実現されました:Ethan Atkins、Eugene Yokota、Dale Wijnand、Aaron S. Hawley、OlegYch、Richard Summerhayes、Jannis (dadarakt)、Rikito Taniguchi (tanishiking)、Øyvind Høisæther、Daniel Westheide、Harrison Houghton、Holden Karau、Håkon Wold、Jason Zaugg、およびtekay。
~
をトリガーしない問題を修正しました。 sbt#4098 by @eatkinsRejectedExectionExeption
スタックトレースを出力しないようにしました。 sbt#4058 by @retronymsbt 1.1.4に引き続き、Ethan Atkinsはトリガー実行~
ウォッチャーの修正と改善に貢献しました。sbt 1.1.5では、ファイル変更イベントとコマンド実行間の遅延が修正されるはずです。
埋め込みターミナルウィンドウでsbtセッションを開始する新しいsbt VS Code拡張機能をリリースしました。これは、sbt#4130でRobert Walker (@WalkingOlof)によって貢献されました。
sbtドキュメントにsbtによる例を追加しました。これは、William Narmontas (@ScalaWilliam)のEssential sbtに触発され、それを基にした、Docker上でアプリを構築する手順を説明したシングルページガイドです。
sbtとZinc 1の改善に貢献してくれた皆様に心から感謝いたします。使用、バグ報告、ドキュメントの改善、ビルドの移植、プラグインの移植、プルリクエストの提出とレビューなど、様々な形で貢献していただきました。
sbt 1.1.5は、sbt、zinc、librarymanagement、util、io、launcher-package、およびwebsiteのgit shortlog -sn --no-merges v1.1.4...v1.1.5
によると、21人の貢献者によって実現されました:Eugene Yokota、Ethan Atkins、Jason Zaugg、Liu Fengyun、Antonio Cunei、Dale Wijnand、Roberto Bonvallet、Alexey Alekhin、Daniel Parks、Heikki Vesalainen、Jean-Luc Deprez、Jessica Hamilton、Kenji Yoshida (xuwei-k)、Nikita Gazarov、OlegYch、Richard Summerhayes、Robert Walker、Seth Tisue、Som Snytt、oneill、および楊博 (Yang Bo)
console
を2回実行するとJLineが壊れる問題を修正しました。 #3482/#4054 by @eed3si9nupdateSbtClassifiers
を修正しました。 #4070/#3432 by @steinybotsbt -debug
がログレベルをデバッグに変更するようにbashスクリプトを修正しました。 lp#226 by @eed3si9nsbt.io.JavaMilli
を公開しました。 io#139 by @dwijnand-Dsbt.launcher.cp.prepend
JVMフラグを追加しました。 launcher#50 by @fommilsbtは長年、macOSでのトリガー実行に問題を抱えていました。Ethan Atkinsは、彼のCloseWatchからMacOSXWatchServiceをマージすることで、この問題に対する修正に貢献しました。Ethanさん、ありがとうございます!
Greg MethvinとTakariのdirectory-watcherにも感謝します。 #3860/#4071/io#138 by @eatkins
プロファイリング中に直面する難しいことの1つは、アプリケーションの開始をプロファイリングしたい一方で、プロセスIDを特定することです。
この目的のために、sbt.launcher.standby
JVMフラグを追加しました。sbt 1.1.4以降、次のように実行できます。
$ sbt -J-Dsbt.launcher.standby=20s exit
これは、他の処理を行う前に20秒間カウントダウンします。launcher#51 by @eed3si9n
Flameグラフを使用すると(まだ使用していない場合は、JVMアプリケーションのプロファイリングの記事をご覧ください)、Jason Zauggは、sbtの起動中にビルドファイルのハッシュコードがホットパスの1つであることを特定しました。Flameグラフはメソッド名でフィルタリングするためのCtrl+F
をサポートしており、実行したところ、時間の4.5%がEval#evalCommon
メソッドで費やされていることがわかりました。
中間Array[Byte]
を作成して最後にMessageDigest
に渡す代わりに、Jasonは、より手続き的なスタイルで配列をMessageDigest#update
に渡すことを提案しました。それが機能することを確認した後、次にFlameグラフを使用してファイルタイムスタンプコードが次のボトルネックであることを特定し、NIOを使用するように変更しました。両方の変更後、Eval#evalCommon
のフットプリントは2.3%に減少しました。
これは、ビルドの読み込みがsbt 1.1.4でわずかに高速化されたことを意味します(たとえば、akka/akkaでは約0.54秒高速化されました)。#4067 by @eed3si9n
sbtとZinc 1の改善に貢献してくれた皆様に心から感謝いたします。使用、バグ報告、ドキュメントの改善、ビルドの移植、プラグインの移植、プルリクエストの提出とレビューなど、様々な形で貢献していただきました。
sbt、zinc、librarymanagement、util、io、launcher-package、およびwebsiteのgit shortlog -sn --no-merges v1.1.2...v1.1.4
によると、sbt 1.1.4は11人の貢献者によって提供されました:Eugene Yokota、Dale Wijnand、楊博 (Yang Bo)、Ethan Atkins、Sam Halliday、Aaron S. Hawley、Gabriele Petronella、Jason Steenstra-Pickens、Jason Zaugg、Julien Jean Paul Sirocchi、およびaumann。
run
実行中のScalaコンパイラの依存関係をクラスローダーが継承する問題を修正しました。zinc#505 by @eed3si9nnew
コマンドがターゲットディレクトリを残したままにする問題を修正しました。#4033 by @eed3si9nivySettings
ファイル内のmanagedChecksums
のNull処理を修正しました。lm#218 by @IanGabessbt.boot.lock
を追加しました。#3927 by @dwijnandSBT_GLOBAL_SERVER_DIR
環境変数を提供しました。#3932 by @dwijnandgetDecoder
を修正しました。zinc#502 by @jilenjava9-rt-ext-output
をホワイトリストに追加しました。lp#211 by @eatkins-error
が起動ログを抑制しない問題を修正しました。#4036 by @eed3si9nConfiguration
のhashCodeをキャッシュすることでパフォーマンスを向上させました。lm#213 by @retronym-33000L
を返します。#3991 by @dwijnandbuildinfo.BuildInfo
を削除しました。3967 by @dwijnand and @xuwei-ksbt、zinc、librarymanagement、util、io、launcher-package、およびwebsiteのgit shortlog -sn --no-merges v1.1.1...v1.1.2
によると、sbt 1.1.2は23人の貢献者によって提供されました:Dale Wijnand、Eugene Yokota、Jason Zaugg、Kenji Yoshida (xuwei-k)、Ethan Atkins、Martijn Hoekstra、Martynas Mickevičius、Dennis Hörsch、Hosam Aly、Antonio Cunei、Friedrich von Never、Hiroshi Ito、Ian Gabes、Jilen Zhang、Mathias Bogaert、Naohisa Murakami (tiqwab)、Philippus Baalman、Ryan Bair、Seth Tisue、Ståle Undheim、Takuya Miyamoto (tmiyamon)、Yasuhiro Tatsuno。ありがとうございます!
sbt console
としてバッチモードで実行中のconsole
でのタブ補完を修正しました。#3841/#3876 by @eed3si9nExtracted#append
を非推奨とし、appendWithSession
またはappendWithoutSession
を使用するようにしました。#3865 by @dwijnandautoStartServer
という新しいグローバルなBoolean
設定を追加しました。下記を参照してください。^^
で使用されるScalaのバージョンをアップグレードしました。#3923 by @dwijnandsbt 1.1.1は、autoStartServer
という新しいグローバルなBoolean
設定を追加しました。これはデフォルトでtrue
に設定されています。true
に設定されている場合、sbtシェルは自動的にsbtサーバーを起動します。それ以外の場合は、startSever
コマンドが発行されるまでサーバーを起動しません。これは、セキュリティ上の理由からサーバーをオプトアウトするために使用できます。
sbt、zinc、librarymanagement、util、io、およびwebsiteのgit shortlog -sn --no-merges v1.1.0 ..v1.1.0
によると、sbt 1.1.1は16人の貢献者によって提供されました:Kenji Yoshida (xuwei-k)、Eugene Yokota、Dale Wijnand、Antonio Cunei、Steve Waldman、Arnout Engelen、Deokhwan Kim、OlegYch、Robert Walker、Jorge Vicente Cantero (jvican)、Claudio Bley、Eric Peters、Lena Brüder、Seiya Mizuno、Seth Tisue、j-keck。ありがとうございます!
これはsbt 1.0.xシリーズの機能リリースです。
version
設定のデフォルトを0.1.0-SNAPSHOT
に変更しました。#3577 by @laughedelicrun
でClass.forName
が機能しない原因となっていたClasspathFilter
を修正しました。zinc#473 / #3736 / #3733 / #3647 / #3608 by @ravwojdylaNullPointerException
を修正しました。zinc#465 by @eed3si9nkeysWithEvents
マップの同時変更を防ぐことで、PollingWatchService
を修正しました。io#90 by @mechkg。これにより、#3687、#3695、および#3775に関連する問題が修正されました。File#lastModified()
によるミリ秒精度の損失に対する回避策を提供します。io#92/io#106 by @cuneiIO.relativize
を修正しました。io#108 by @dwijnandScalaInstance.otherJars
でのJARの順序を保持します。zinc#411 by @dwijnandThisProject
の処理を修正しました。#3609 by @dwijnandfile:///
を使用するように修正しました。#3805 by @eed3si9nproject/build.properties
に基づいてスクリプト化されたテストをフィルタリングします。下記参照。Project#withId
を追加しました。#3601 by @dwijnandreboot dev
コマンドを追加しました。これは、sbtの開発バージョンを使用する場合に便利です。#3659 by @eed3si9nreload
の前にsbtバージョンの変更をチェックする処理を追加しました。#1055/#3673 by @RomanIakovlevinsideCI
を追加しました。#3672 by @RomanIakovlevCommand
トレイトにnameOption
を追加しました。#3671 by @miklos-martinIO.chmod(..)
など、IOにPOSIXパーミッション操作を追加しました。io#76 by @eed3si9nCompletions
でdisplayOnly
などのメソッドを厳密にしました。#3763 by @xuwei-kこれにより、sbtシェルとbuild.sbt DSLの両方で統一されたスラッシュ構文が追加されます。現在の<project-id>/config:intask::key
の代わりに、<project-id>/<config-ident>/intask/key
が追加されます。ここで、<config-ident>
は、Compile
やTest
のような設定のScala識別子表記です。(古いシェルの構文は引き続き機能します)
これらの例は、シェルとbuild.sbtの両方で動作します。
Global / cancelable
ThisBuild / scalaVersion
Test / test
root / Compile / compile / scalacOptions
ProjectRef(uri("file:/xxx/helloworld/"),"root")/Compile/scalacOptions
Zero / Zero / name
inspectコマンドは、コピーアンドペーストできる出力を生成するようになりました。
> inspect compile
[info] Task: sbt.inc.Analysis
[info] Description:
[info] Compiles sources.
[info] Provided by:
[info] ProjectRef(uri("file:/xxx/helloworld/"),"root")/Compile/compile
[info] Defined at:
[info] (sbt.Defaults) Defaults.scala:326
[info] Dependencies:
[info] Compile/manipulateBytecode
[info] Compile/incCompileSetup
....
#1812/#3434/#3617/#3620 by @eed3si9n and @dwijnand
sbtサーバー機能は、MicrosoftによってVisual Studio Code向けに作成されたプロトコルであるLanguage Server Protocol 3.0(LSP)をワイヤプロトコルとして使用するように改良されました。
実行中のサーバーを検出するために、sbt 1.1.0はビルドを基準として./project/target/active.json
にポートファイルを作成します。
{"uri":"local:///Users/foo/.sbt/1.0/server/0845deda85cb41abcdef/sock"}
local:
はUNIXドメインソケットを示します。nc
を使用してサーバーにhelloと伝える方法は次のとおりです。(^M
はCtrl-V
、次にReturn
で送信できます)
$ nc -U /Users/foo/.sbt/1.0/server/0845deda85cb41abcdef/sock
Content-Length: 99^M
^M
{ "jsonrpc": "2.0", "id": 1, "method": "initialize", "params": { "initializationOptions": { } } }^M
sbtサーバーはsbtのシェルコマンドにネットワークアクセスを追加するため、ターミナルからの入力を受け入れることに加えて、サーバーはネットワークからの入力も受け入れます。compile
を呼び出す方法は次のとおりです。
Content-Length: 93^M
^M
{ "jsonrpc": "2.0", "id": 2, "method": "sbt/exec", "params": { "commandLine": "compile" } }^M
実行中のsbtセッションは、compile
をキューに入れ、コンパイラの警告とエラーがある場合は、それらと共に返されるはずです。
Content-Length: 296
Content-Type: application/vscode-jsonrpc; charset=utf-8
{"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"uri":"file:/Users/foo/work/hellotest/Hello.scala","diagnostics":[{"range":{"start":{"line":2,"character":26},"end":{"line":2,"character":27}},"severity":1,"source":"sbt","message":"object X is not a member of package foo"}]}}
sbtサーバーを念頭に置いている主なユースケースは、エディターやIDEなどのツール統合です。概念実証として、Scala (sbt)というVisual Studio Code拡張機能を作成しました。
現在、この拡張機能は次のことができます。
*.scala
ファイルが保存されると、ルートプロジェクトでcompile
を実行します。#3524 by @eed3si9nproject/build.properties
を使用したスクリプト化されたテストのフィルタリング project/build.properties
が存在するすべてのスクリプト化されたテストについて、sbt.version
プロパティの値が読み取られます。そのバイナリバージョンがsbtBinaryVersion in pluginCrossBuild
と異なる場合、テストはスキップされ、それを示すメッセージがログに記録されます。
これにより、サポートされている最小sbtバージョン(例:0.13.9および1.0.0-RC2)を追跡するスクリプト化されたテストを定義できます。#3564/#3566 by @jonas
sbt、zinc、librarymanagement、util、io、およびwebsiteのgit shortlog -sn --no-merges v1.0.4..v1.1.0
によると、sbt 1.1.0は33人の貢献者によって提供されました:Eugene Yokota、Dale Wijnand、Antonio Cunei、Kenji Yoshida (xuwei-k)、Alexey Alekhin、Simon Schäfer、Jorge Vicente Cantero (jvican)、Miklos Martin、Jeffrey Olchovy、Jonas Fonseca、Andrey Artemov、Arnout Engelen、Dominik Winter、Krzysztof Romanowski、Roman Iakovlev、Wiesław Popielarski、Age Mooij、Allan Timothy Leong、Ivan Poliakov、Jason Zaugg、Jilen Zhang、Long Jinwei、Martin Duhem、Michael Stringer、Michael Wizner、Nud Teeraworamongkol、OlegYch、PanAeon、Philippus Baalman、Pierre Dal-Pra、Rafal Wojdyla、Saniya Tech、Tom Walford、そしてアイデアを提供してくれた多くのその他の方々。ありがとうございました!