Size: a a a

Scala User Group

2020 August 07

АК

Анатолий Котов... in Scala User Group
привет, подскажите плз в какую сторону копать, есть ошибка при сборке проекта:
> clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:39
> annette-imc-server/clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:41
> compile
[info] Updating {file:/home/tk/src/annette-imc/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 1 Scala source to /home/tk/src/annette-imc/target/scala-2.10/classes...
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/model/Templates.scala: illegal start of simple expression: Token(RPAREN,),2106,))
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/retrieve/TemplateDataRetrieverA.scala: expected start of definition, but was Token(VAL,val,3940,val)
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/retrieve/TemplateDataRetrieverD.scala: expected start of definition, but was Token(VAL,val,2960,val)
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]   * com.google.guava:guava:18.0 -> 19.0
[warn]   * commons-io:commons-io:1.4 -> 2.5
[warn] Run 'evicted' to see detailed eviction warnings
protoc-jar: protoc version: 330, detected platform: linux/amd64
protoc-jar: executing: [/tmp/protocjar5268831914973323668/bin/protoc.exe, --plugin=protoc-gen-scala=/tmp/protocbridge3097107080076086814, --scala_out=grpc:/home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main, -I/home/tk/src/annette-imc/annette-imc/src/main/protobuf, -I/home/tk/src/annette-imc/annette-imc/target/protobuf_external, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/imcuser.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/ap.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/scheduler.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/chat.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/notification.proto]
[error] /home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala:6: BuildInfo is already defined as case class BuildInfo
[error] case object BuildInfo {
[error]             ^
[error] one error found
[error] (annette-imc/compile:compileIncremental) Compilation failed
[error] Total time: 2 s, completed 7 авг. 2020 г., 14:50:44

по
BuildInfo is already defined as case class BuildInfo
так и не понял, в доку по sbt пытался осилить но чёт сложна(
источник

GP

Grigory Pomadchin in Scala User Group
Анатолий Котов
привет, подскажите плз в какую сторону копать, есть ошибка при сборке проекта:
> clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:39
> annette-imc-server/clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:41
> compile
[info] Updating {file:/home/tk/src/annette-imc/}root...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[info] Compiling 1 Scala source to /home/tk/src/annette-imc/target/scala-2.10/classes...
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/model/Templates.scala: illegal start of simple expression: Token(RPAREN,),2106,))
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/retrieve/TemplateDataRetrieverA.scala: expected start of definition, but was Token(VAL,val,3940,val)
[warn] Scalariform parser error for /home/tk/src/annette-imc/annette-imc/src/main/scala/annette/imc/report/retrieve/TemplateDataRetrieverD.scala: expected start of definition, but was Token(VAL,val,2960,val)
[warn] There may be incompatibilities among your library dependencies.
[warn] Here are some of the libraries that were evicted:
[warn]   * com.google.guava:guava:18.0 -> 19.0
[warn]   * commons-io:commons-io:1.4 -> 2.5
[warn] Run 'evicted' to see detailed eviction warnings
protoc-jar: protoc version: 330, detected platform: linux/amd64
protoc-jar: executing: [/tmp/protocjar5268831914973323668/bin/protoc.exe, --plugin=protoc-gen-scala=/tmp/protocbridge3097107080076086814, --scala_out=grpc:/home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main, -I/home/tk/src/annette-imc/annette-imc/src/main/protobuf, -I/home/tk/src/annette-imc/annette-imc/target/protobuf_external, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/imcuser.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/ap.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/scheduler.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/chat.proto, /home/tk/src/annette-imc/annette-imc/src/main/protobuf/notification.proto]
[error] /home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala:6: BuildInfo is already defined as case class BuildInfo
[error] case object BuildInfo {
[error]             ^
[error] one error found
[error] (annette-imc/compile:compileIncremental) Compilation failed
[error] Total time: 2 s, completed 7 авг. 2020 г., 14:50:44

по
BuildInfo is already defined as case class BuildInfo
так и не понял, в доку по sbt пытался осилить но чёт сложна(
У тебя видимо сбт плагином генерируется билд инфо и ты руками сам добавил такой файл в проект
источник

АК

Анатолий Котов... in Scala User Group
Grigory Pomadchin
У тебя видимо сбт плагином генерируется билд инфо и ты руками сам добавил такой файл в проект
да, билд инфо генерится, вот вывод этого файла: /home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala
package annette.imc

import scala.Predef._

/** This object was generated by sbt-buildinfo. */
case object BuildInfo {
 /** The value is "annette-imc". */
 val name: String = "annette-imc"
 /** The value is "3.1.20". */
 val version: String = "3.1.20"
 /** The value is "2.12.4". */
 val scalaVersion: String = "2.12.4"
 /** The value is "0.13.15". */
 val sbtVersion: String = "0.13.15"
 /** The value is 30. */
 val buildInfoBuildNumber: scala.Int = 30
 /** The value is "2020-08-07 12:13:19.884". */
 val builtAtString: String = "2020-08-07 12:13:19.884"
 /** The value is 1596802399884L. */
 val builtAtMillis: scala.Long = 1596802399884L
 override val toString: String = {
   "name: %s, version: %s, scalaVersion: %s, sbtVersion: %s, buildInfoBuildNumber: %s, builtAtString: %s, builtAtMillis: %s" format (
     name, version, scalaVersion, sbtVersion, buildInfoBuildNumber, builtAtString, builtAtMillis
   )
 }
}

но сам BuildInfo больше не повторяется:
$ grep -Rn BuildInfo .
./annette-imc/src/main/scala/annette/imc/ImcModule.scala:9:import annette.core.{ BuildInfo, CoreModule }
./annette-imc/src/main/scala/annette/imc/ImcModule.scala:67:  override def buildInfo = BuildInfo.toString
./build.sbt:45:  .enablePlugins(BuildInfoPlugin)
./build.sbt:55:  .enablePlugins(BuildInfoPlugin)
./build.sbt:61:    buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion, buildInfoBuildNumber),
./build.sbt:62:    buildInfoOptions += BuildInfoOption.BuildTime,
источник

N

Nick in Scala User Group
Всем привет. Что на scala лучше использовать для unit тестирования, может из опты или хорошая статейка есть с описанием +- той или иной либы?
источник

λ

λoλzod in Scala User Group
Анатолий Котов
да, билд инфо генерится, вот вывод этого файла: /home/tk/src/annette-imc/annette-imc/target/scala-2.12/src_managed/main/sbt-buildinfo/BuildInfo.scala
package annette.imc

import scala.Predef._

/** This object was generated by sbt-buildinfo. */
case object BuildInfo {
 /** The value is "annette-imc". */
 val name: String = "annette-imc"
 /** The value is "3.1.20". */
 val version: String = "3.1.20"
 /** The value is "2.12.4". */
 val scalaVersion: String = "2.12.4"
 /** The value is "0.13.15". */
 val sbtVersion: String = "0.13.15"
 /** The value is 30. */
 val buildInfoBuildNumber: scala.Int = 30
 /** The value is "2020-08-07 12:13:19.884". */
 val builtAtString: String = "2020-08-07 12:13:19.884"
 /** The value is 1596802399884L. */
 val builtAtMillis: scala.Long = 1596802399884L
 override val toString: String = {
   "name: %s, version: %s, scalaVersion: %s, sbtVersion: %s, buildInfoBuildNumber: %s, builtAtString: %s, builtAtMillis: %s" format (
     name, version, scalaVersion, sbtVersion, buildInfoBuildNumber, builtAtString, builtAtMillis
   )
 }
}

но сам BuildInfo больше не повторяется:
$ grep -Rn BuildInfo .
./annette-imc/src/main/scala/annette/imc/ImcModule.scala:9:import annette.core.{ BuildInfo, CoreModule }
./annette-imc/src/main/scala/annette/imc/ImcModule.scala:67:  override def buildInfo = BuildInfo.toString
./build.sbt:45:  .enablePlugins(BuildInfoPlugin)
./build.sbt:55:  .enablePlugins(BuildInfoPlugin)
./build.sbt:61:    buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion, buildInfoBuildNumber),
./build.sbt:62:    buildInfoOptions += BuildInfoOption.BuildTime,
clean наверное надо если вдруг не
источник

AD

Apache DOG™ in Scala User Group
Nick
Всем привет. Что на scala лучше использовать для unit тестирования, может из опты или хорошая статейка есть с описанием +- той или иной либы?
scalatest стандарт, zio test для приложунек на zio, scala-check хорош генераторами, да в основном все либы подсовывают свои приблуды для тестирования.
источник

λ

λoλdog in Scala User Group
А как же поделка Олафа ?
источник

AD

Apache DOG™ in Scala User Group
λoλdog
А как же поделка Олафа ?
Ну выложи, но я о ней в первый раз слышу
источник

λ

λoλdog in Scala User Group
источник

AD

Apache DOG™ in Scala User Group
Фича #2 не киллер, такое за 2-3 часа можно навелосипедить на шейплсах
источник

AD

Apache DOG™ in Scala User Group
Все остальное есть в скалатесте и в идее
источник

AD

Apache DOG™ in Scala User Group
Ещё бы скалатесту алгебру асершнов вместо магических макросов и вообще зашибись
источник

N

Nick in Scala User Group
Apache DOG™
scalatest стандарт, zio test для приложунек на zio, scala-check хорош генераторами, да в основном все либы подсовывают свои приблуды для тестирования.
Спасибо
источник

AD

Apache DOG™ in Scala User Group
Хотя если тестить акка экторов это отдельное дело чтобы не наловится флаков которые бегут долго. Например, там нужно по хорошему ставить дискретное время для всех таймаутных вещей
источник

АК

Анатолий Котов... in Scala User Group
λoλzod
clean наверное надо если вдруг не
да, я его делаю
> clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:39
> annette-imc-server/clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:41

перед ним rm -rf ./target ./annette-frontend-imc/target ./annette-imc/target ./project/target ./project/project/target ./annette-imc-server/target
не помогает
источник

AD

Apache DOG™ in Scala User Group
Анатолий Котов
да, я его делаю
> clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:39
> annette-imc-server/clean
[success] Total time: 0 s, completed 7 авг. 2020 г., 14:50:41

перед ним rm -rf ./target ./annette-frontend-imc/target ./annette-imc/target ./project/target ./project/project/target ./annette-imc-server/target
не помогает
ты уверен что это не кривое переопределение стандартного класса?
источник

АК

Анатолий Котов... in Scala User Group
Apache DOG™
ты уверен что это не кривое переопределение стандартного класса?
нет, я не являюсь scala разработчиком :З
источник

AD

Apache DOG™ in Scala User Group
.enablePlugins(BuildInfoPlugin) вот эта лабуда может тащить какой-то свой BuildInfo
источник

λ

λoλzod in Scala User Group
Нет эта лабуда создаёт этот класс
источник

AD

Apache DOG™ in Scala User Group
λoλzod
Нет эта лабуда создаёт этот класс
ну мы же видим, по логами что вон одно сгенерировало свой кейс обджект, а второе-свой кейскласс с одинаковыми именами
источник