diff --git a/.scalafmt.conf b/.scalafmt.conf index 7aed76f0..467961cf 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.4" +version = "3.7.11" runner.dialect = scala213 maxColumn = 120 align.preset = more diff --git a/assembly-deploy.sh b/assembly-deploy.sh index 922c938c..e9f30ec7 100644 --- a/assembly-deploy.sh +++ b/assembly-deploy.sh @@ -10,4 +10,4 @@ scp ~/Projects/zim/modules/zim-server/target/scala-2.13/zim-server-assembly-$ver # FIXME stop start ssh root@your_ip "lsof -i:8989 | awk 'NR==2{print $2}' | xargs kill -9;" -ssh root@your_ip "cd /home/zim; nohup java -jar -Xms512M zim-server-assembly-$version.jar > zim.log 2>&1 &" +ssh root@your_ip "cd /home/zim; nohup java -jar -Xms1024M zim-server-assembly-$version.jar > zim.log 2>&1 &" diff --git a/build.sbt b/build.sbt index 5296800b..b1c17866 100644 --- a/build.sbt +++ b/build.sbt @@ -1,8 +1,8 @@ +import scala.io.AnsiColor._ + import de.heikoseeberger.sbtheader.HeaderPlugin Global / onLoad := { - val GREEN = "\u001b[32m" - val RESET = "\u001b[0m" println(s"""$GREEN |$GREEN ____ |$GREEN ,--, ,' , `. @@ -23,11 +23,8 @@ Global / onLoad := { } ThisBuild / resolvers ++= Seq( - Resolver.mavenLocal, - Resolver.sonatypeRepo("public"), - Resolver.sonatypeRepo("snapshots"), "New snapshots" at "https://s01.oss.sonatype.org/content/repositories/snapshots/" -) +) ++ Resolver.sonatypeOssRepos("snapshots") // sbt-assembly, not support build docker image by sbt task, so we use sbt-native-packager //lazy val assemblySettings = Seq( diff --git a/docker-image-upload.sh b/docker-image-upload.sh index f62743f4..19eaac7f 100644 --- a/docker-image-upload.sh +++ b/docker-image-upload.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash -# It can only be executed after `docker-deploy.sh` -image=`docker images | grep liguobin/zim | awk '{print $1}'` -tag=`docker images | grep liguobin/zim | awk '{print $2}'` +tag=$1 -docker push $image:$tag \ No newline at end of file +sbt docker:publishLocal + +docker push liguobin/zim:$tag \ No newline at end of file diff --git a/modules/zim-cache-redis4zio/src/main/scala/org/bitlap/zim/cache/redis4zio/ZioRedisServiceLive.scala b/modules/zim-cache-redis4zio/src/main/scala/org/bitlap/zim/cache/redis4zio/ZioRedisServiceLive.scala index 0fa5849f..9644179e 100644 --- a/modules/zim-cache-redis4zio/src/main/scala/org/bitlap/zim/cache/redis4zio/ZioRedisServiceLive.scala +++ b/modules/zim-cache-redis4zio/src/main/scala/org/bitlap/zim/cache/redis4zio/ZioRedisServiceLive.scala @@ -23,8 +23,9 @@ import io.circe.parser.decode import io.circe.syntax.EncoderOps import zio._ -import zio.redis.{Redis, RedisError, RedisExecutor} -import zio.schema.codec.ProtobufCodec +import zio.redis._ +import zio.schema.Schema +import zio.schema.codec.{BinaryCodec, ProtobufCodec} /** @author * 梦境迷离 @@ -39,9 +40,11 @@ object ZioRedisServiceLive { lazy val live: ZLayer[Any, RedisError.IOError, ZRedis] = ZLayer.make[ZRedis]( ZioRedisConfiguration.redisConf, RedisExecutor.layer, - ZLayer.succeed(ProtobufCodec), redisServiceLive, - Redis.layer + Redis.layer, + ZLayer.succeed[CodecSupplier](new CodecSupplier { + override def get[A: Schema]: BinaryCodec[A] = ProtobufCodec.protobufCodec + }) ) } @@ -50,14 +53,13 @@ final case class ZioRedisServiceLive(private val rs: Redis) extends RedisService override def getSets(k: String): Task[List[String]] = rs.sMembers(k) .returning[String] - .orDie .map(_.toList) override def removeSetValue(k: String, m: String): Task[Long] = - rs.sRem(k, m).orDie + rs.sRem(k, m) override def setSet(k: String, m: String): Task[Long] = - rs.sAdd(k, m).orDie + rs.sAdd(k, m) override def set[T](k: String, v: T, expireTime: JavaDuration = java.time.Duration.ofMinutes(30))(implicit encoder: Encoder[T] diff --git a/modules/zim-infra/src/main/scala/org/bitlap/zim/infrastructure/repository/package.scala b/modules/zim-infra/src/main/scala/org/bitlap/zim/infrastructure/repository/package.scala index 2d68061c..4f3f1b25 100644 --- a/modules/zim-infra/src/main/scala/org/bitlap/zim/infrastructure/repository/package.scala +++ b/modules/zim-infra/src/main/scala/org/bitlap/zim/infrastructure/repository/package.scala @@ -75,7 +75,7 @@ package object repository { implicit class executeSQLOperation[T](sql: SQL[T, HasExtractor]) { def toSQLOperation(implicit databaseName: String): stream.Stream[Throwable, T] = - ZStream.fromIterable(NamedDB(Symbol(databaseName)).localTx(implicit session => sql.list().apply())) + ZStream.fromIterable(NamedDB(Symbol(databaseName)).localTx(implicit session => sql.list.apply())) } /** scalikejdbc流转换 @@ -129,7 +129,7 @@ package object repository { // ==============================测试SQL======================================== private[repository] def queryFindReceiveById(id: Long): SQL[Receive, HasExtractor] = - sql"SELECT ${r.result.*} FROM ${Receive as r} WHERE id = $id".list().map(rs => Receive(rs)) + sql"SELECT ${r.result.*} FROM ${Receive as r} WHERE id = $id".list.map(rs => Receive(rs)) // ==============================用户 SQL实现======================================== /** 更新用户头像 @@ -139,7 +139,7 @@ package object repository { * @return */ private[repository] def _updateAvatar(avatar: String, uid: Int): SQLUpdate = - sql"update ${User.table} set avatar=$avatar where id=$uid;".update() + sql"update ${User.table} set avatar=$avatar where id=$uid;".update /** 更新签名 * @@ -148,7 +148,7 @@ package object repository { * @return */ private[repository] def _updateSign(sign: String, uid: Int): SQLUpdate = - sql"update ${User.table} set sign = $sign where id = $uid;".update() + sql"update ${User.table} set sign = $sign where id = $uid;".update /** 更新用户信息 * @@ -157,8 +157,7 @@ package object repository { * @return */ private[repository] def _updateUserInfo(id: Int, user: User): SQLUpdate = - sql"update ${User.table} set username= ${user.username}, sex = ${user.sex}, sign = ${user.sign}, password = ${user.password} where id = ${id}; " - .update() + sql"update ${User.table} set username= ${user.username}, sex = ${user.sex}, sign = ${user.sign}, password = ${user.password} where id = ${id}; ".update /** 更新用户状态 * @@ -167,7 +166,7 @@ package object repository { * @return */ private[repository] def _updateUserStatus(status: String, uid: Int): SQLUpdate = - sql"update ${User.table} set status = $status where id = $uid;".update() + sql"update ${User.table} set status = $status where id = $uid;".update /** 激活用户账号 * @@ -175,7 +174,7 @@ package object repository { * @return */ private[repository] def _activeUser(activeCode: String): SQLUpdate = - sql"update ${User.table} set status = 'hide' where active = $activeCode;".update() + sql"update ${User.table} set status = 'hide' where active = $activeCode;".update /** 根据群组ID查询群里用户的信息 * @@ -186,7 +185,7 @@ package object repository { private[repository] def _findUserByGroupId(gid: Int): StreamReadySQL[User] = sql"select ${u.result.*} from ${User as u} where id in(select ${gm.uid} from ${GroupMember as gm} where gid = $gid);" .map(User(_)) - .list() + .list .iterator() /** 根据好友列表ID查询用户信息列表 @@ -197,7 +196,7 @@ package object repository { private[repository] def _findUsersByFriendGroupIds(fgid: Int): StreamReadySQL[User] = sql"select ${u.result.*} from ${User as u} where id in (select ${af.uid} from ${AddFriend as af} where fgid = $fgid);" .map(User(_)) - .list() + .list .iterator() /** 保存用户信息 @@ -227,7 +226,7 @@ package object repository { * @return */ private[repository] def _deleteGroup(id: Int): SQLUpdate = - sql"delete from ${GroupList.table} where id = $id;".executeUpdate() + sql"delete from ${GroupList.table} where id = $id;".executeUpdate /** 根据群名模糊统计 * @@ -243,7 +242,7 @@ package object repository { groupName.map(gn => sqls.like(g.column("group_name"), s"%$gn%")) ) ) - }.toList().map(rs => rs.int(1)).iterator() + }.toList.map(rs => rs.int(1)).iterator() /** 根据群名模糊查询群 * @@ -260,7 +259,7 @@ package object repository { groupName.map(gn => sqls.like(g.column("group_name"), s"%$gn%")) ) ) - }.toList().map(rs => GroupList(rs)).iterator() + }.toList.map(rs => GroupList(rs)).iterator() /** 根据群id查询群信息 * @@ -270,7 +269,7 @@ package object repository { private[repository] def _findGroupById(gid: Int): StreamReadySQL[GroupList] = sql"select ${g.result.*} from ${GroupList as g} where id = $gid;" .map(rs => GroupList(rs)) - .list() + .list .iterator() /** 根据用户id查询用户所在的群组列表,不管是自己创建的还是别人创建的 @@ -283,7 +282,7 @@ package object repository { ): StreamReadySQL[GroupList] = sql"select ${g.result.*} from ${GroupList as g} where id in(select distinct ${gm.gid} from ${GroupMember as gm} where uid = $uid);" .map(rs => GroupList(rs)) - .list() + .list .iterator() // ==============================聊天消息 SQL实现======================================== @@ -294,8 +293,7 @@ package object repository { * @return */ private[repository] def _saveMessage(receive: Receive): SQLUpdate = - sql"insert into ${Receive.table}(toid,mid,fromid,content,type,timestamp,status) values(${receive.toid},${receive.mid},${receive.fromid},${receive.content},${receive.`type`},${receive.timestamp},${receive.status});" - .update() + sql"insert into ${Receive.table}(toid,mid,fromid,content,type,timestamp,status) values(${receive.toid},${receive.mid},${receive.fromid},${receive.content},${receive.`type`},${receive.timestamp},${receive.status});".update /** 查询消息 * @@ -311,7 +309,7 @@ package object repository { ): StreamReadySQL[Receive] = sql"select ${r.result.*} from ${Receive as r} where toid = $uid and status = $status;" .map(rs => Receive(rs)) - .list() + .list .iterator() /** 查询消息 @@ -355,7 +353,7 @@ package object repository { ) ) .orderBy(r.timestamp) - }.toList().map(rs => Receive(rs)).iterator() + }.toList.map(rs => Receive(rs)).iterator() /** 统计查询消息 * @@ -398,7 +396,7 @@ package object repository { ) ) .orderBy(r.timestamp) - }.toList().map(rs => rs.int(1)).iterator() + }.toList.map(rs => rs.int(1)).iterator() /** 置为已读 * @@ -408,8 +406,7 @@ package object repository { * @return */ private[repository] def _readMessage(mine: Int, to: Int, typ: String): SQLUpdate = - sql"update ${Receive.table} set status = 1 where status = 0 and mid = $mine and toid = $to and type = $typ;" - .update() + sql"update ${Receive.table} set status = 1 where status = 0 and mid = $mine and toid = $to and type = $typ;".update // ==============================好友分组 SQL实现======================================== @@ -420,8 +417,7 @@ package object repository { * @return */ private[repository] def _createFriendGroup(friendGroup: FriendGroup): SQLUpdate = - sql"insert into ${FriendGroup.table}(group_name,uid) values(${friendGroup.groupName},${friendGroup.uid});" - .update() + sql"insert into ${FriendGroup.table}(group_name,uid) values(${friendGroup.groupName},${friendGroup.uid});".update /** 根据ID查询该用户的好友分组的列表 * @@ -432,7 +428,7 @@ package object repository { private[repository] def _findFriendGroupsById(uid: Int): StreamReadySQL[FriendGroup] = sql"select ${fg.result.*} from ${FriendGroup as fg} where uid = $uid;" .map(rs => FriendGroup(rs)) - .list() + .list .iterator() // ==============================好友分组中人的操作 SQL实现======================================== @@ -444,8 +440,7 @@ package object repository { * @return */ private[repository] def _removeFriend(friendId: Int, uId: Int) = - sql"delete from ${AddFriend.table} where fgid in (select id from ${FriendGroup.table} where uid in ($friendId, $uId)) and uid in($friendId, $uId);" - .executeUpdate() + sql"delete from ${AddFriend.table} where fgid in (select id from ${FriendGroup.table} where uid in ($friendId, $uId)) and uid in($friendId, $uId);".executeUpdate /** 移动好友分组 * @@ -454,8 +449,7 @@ package object repository { * @return */ private[repository] def _changeGroup(groupId: Int, originRecordId: Int) = - sql"update ${AddFriend.table} set fgid = $groupId where id = $originRecordId;" - .executeUpdate() + sql"update ${AddFriend.table} set fgid = $groupId where id = $originRecordId;".executeUpdate /** 查询我的好友的分组 * @@ -468,8 +462,7 @@ package object repository { uId: Int, mId: Int ): StreamReadySQL[Int] = - sql"select id from ${AddFriend.table} where fgid in (select id from ${FriendGroup.table} where uid = $mId) and uid = $uId" - .list() + sql"select id from ${AddFriend.table} where fgid in (select id from ${FriendGroup.table} where uid = $mId) and uid = $uId".list .map(rs => rs.int(1)) .iterator() @@ -480,8 +473,7 @@ package object repository { * @return */ private[repository] def _addFriend(from: AddFriend, to: AddFriend): SQLUpdate = - sql"insert into ${AddFriend.table}(fgid,uid) values(${from.fgid},${to.uid}),(${to.fgid}, ${from.uid});" - .update() + sql"insert into ${AddFriend.table}(fgid,uid) values(${from.fgid},${to.uid}),(${to.fgid}, ${from.uid});".update // ==============================群组成员 SQL实现============================================== @@ -492,7 +484,7 @@ package object repository { * @return */ private[repository] def _leaveOutGroup(groupMember: GroupMember): SQLUpdate = - sql"delete from ${GroupMember.table} where gid = ${groupMember.gid} and uid = ${groupMember.uid};".update() + sql"delete from ${GroupMember.table} where gid = ${groupMember.gid} and uid = ${groupMember.uid};".update /** 查询用户编号 * @@ -500,8 +492,7 @@ package object repository { * @return */ private[repository] def _findGroupMembers(gid: Int): StreamReadySQL[Int] = - sql" select uid from ${GroupMember.table} where gid = $gid;" - .list() + sql" select uid from ${GroupMember.table} where gid = $gid;".list .map(rs => rs.int(1)) .iterator() @@ -512,8 +503,7 @@ package object repository { * @return */ private[repository] def _addGroupMember(groupMember: GroupMember): SQLUpdate = - sql"insert into ${GroupMember.table}(gid,uid) values(${groupMember.gid},${groupMember.uid});" - .update() + sql"insert into ${GroupMember.table}(gid,uid) values(${groupMember.gid},${groupMember.uid});".update // ==============================申请消息 SQL实现============================================== /** 查询添加好友、群组信息 @@ -530,7 +520,7 @@ package object repository { .eq(am.toUid, uid) .orderBy(am.time) .desc - }.map(rs => AddMessage(rs)).list().iterator() + }.map(rs => AddMessage(rs)).list.iterator() /** 更新好友、群组信息请求 * @@ -541,7 +531,7 @@ package object repository { * @return */ private[repository] def _updateAgree(id: Int, agree: Int): SQLUpdate = - sql"update ${AddMessage.table} set agree = $agree where id = $id".update() + sql"update ${AddMessage.table} set agree = $agree where id = $id".update /** 添加好友、群组信息请求 ON DUPLICATE KEY UPDATE 首先这个语法的目的是为了解决重复性,当数据库中存在某个记录时,执行这条语句会更新它,而不存在这条记录时,会插入它。 * @@ -550,6 +540,5 @@ package object repository { * @return */ private[repository] def _saveAddMessage(addMessage: AddMessage): SQLUpdate = - sql"insert into ${AddMessage.table}(from_uid,to_uid,group_id,remark,agree,type,time) values(${addMessage.fromUid},${addMessage.toUid},${addMessage.groupId},${addMessage.remark},${addMessage.agree},${addMessage.`type`},${addMessage.time}) ON DUPLICATE KEY UPDATE remark=${addMessage.remark},time=${addMessage.time},agree=${addMessage.agree};" - .update() + sql"insert into ${AddMessage.table}(from_uid,to_uid,group_id,remark,agree,type,time) values(${addMessage.fromUid},${addMessage.toUid},${addMessage.groupId},${addMessage.remark},${addMessage.agree},${addMessage.`type`},${addMessage.time}) ON DUPLICATE KEY UPDATE remark=${addMessage.remark},time=${addMessage.time},agree=${addMessage.agree};".update } diff --git a/modules/zim-server/src/test/scala/org/bitlap/zim/server/BaseData.scala b/modules/zim-server/src/test/scala/org/bitlap/zim/server/BaseData.scala index 570ddece..2bea7d86 100644 --- a/modules/zim-server/src/test/scala/org/bitlap/zim/server/BaseData.scala +++ b/modules/zim-server/src/test/scala/org/bitlap/zim/server/BaseData.scala @@ -105,14 +105,14 @@ trait BaseData extends AnyFlatSpec with Matchers with BeforeAndAfter with Common // sqlBefore.statement.split(";").toList.foreach(stmt.addBatch) // stmt.executeBatch() NamedDB(Symbol(h2ConfigurationProperties.databaseName)).autoCommit { implicit session => - sqlBefore.execute().apply() + sqlBefore.execute.apply() } } after { NamedDB(Symbol(h2ConfigurationProperties.databaseName)).autoCommit { implicit session => - sqlAfter.execute().apply() + sqlAfter.execute.apply() } } } diff --git a/modules/zim-server/src/test/scala/org/bitlap/zim/server/ZIOBaseSuit.scala b/modules/zim-server/src/test/scala/org/bitlap/zim/server/ZIOBaseSuit.scala index ba5f283f..6d4964df 100644 --- a/modules/zim-server/src/test/scala/org/bitlap/zim/server/ZIOBaseSuit.scala +++ b/modules/zim-server/src/test/scala/org/bitlap/zim/server/ZIOBaseSuit.scala @@ -31,12 +31,12 @@ trait ZIOBaseSuit extends ZIOSpecDefault { lazy val before: Boolean = NamedDB(Symbol(h2ConfigurationProperties.databaseName)).autoCommit { implicit session => - sqlBefore.execute().apply() + sqlBefore.execute.apply() } lazy val after: Boolean = NamedDB(Symbol(h2ConfigurationProperties.databaseName)).autoCommit { implicit session => - sqlAfter.execute().apply() + sqlAfter.execute.apply() } val h2ConfigurationProperties: MysqlConfigurationProperties = MysqlConfigurationProperties() diff --git a/modules/zim-server/src/test/scala/org/bitlap/zim/server/util/SchemaSpec.scala b/modules/zim-server/src/test/scala/org/bitlap/zim/server/util/SchemaSpec.scala index a53d6041..e3dd87f1 100644 --- a/modules/zim-server/src/test/scala/org/bitlap/zim/server/util/SchemaSpec.scala +++ b/modules/zim-server/src/test/scala/org/bitlap/zim/server/util/SchemaSpec.scala @@ -31,11 +31,10 @@ import zio.schema.codec.ProtobufCodec class SchemaSpec extends AnyFlatSpec with Matchers with ApiJsonCodec { "Schema" should "ok" in { - // FIXME 直接使用存Redis会有错误 209 变成 3104751 zio-schema-protobuf val userSecurityInfo = UserSecurityInfo(209, "dreamylost@qq.com", "jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI=", "顶顶顶顶") - val chunkByte = ProtobufCodec.encode(UserSecurityInfo.userSecuritySchema)(userSecurityInfo) - val str = ProtobufCodec.decode(UserSecurityInfo.userSecuritySchema)(chunkByte) + val chunkByte = ProtobufCodec.protobufCodec[UserSecurityInfo].encode(userSecurityInfo) + val str = ProtobufCodec.protobufCodec[UserSecurityInfo].decode(chunkByte) val id = str.map(_.id) id.getOrElse(0) shouldBe userSecurityInfo.id } diff --git a/native-packager-deploy.sh b/native-packager-deploy.sh index d28da369..14259d74 100644 --- a/native-packager-deploy.sh +++ b/native-packager-deploy.sh @@ -11,6 +11,6 @@ pre_version=$2 scp ~/Projects/zim/modules/zim-server/target/universal/zim-server-$version.zip root@your_ip:/home/zim/zim-server-$version.zip # FIXME stop start ssh root@your_ip "lsof -i:8989 | awk 'NR==2{print $2}' | xargs kill -9;" -ssh root@your_ip "cd /home/zim; unzip -o zim-server-$version.zip; nohup ./zim-server-$version/bin/zim-server -Xms512M > zim.log 2>&1 &" +ssh root@your_ip "cd /home/zim; unzip -o zim-server-$version.zip; nohup ./zim-server-$version/bin/zim-server -Xms1024M > zim.log 2>&1 &" # FIXME: Static files are in the service's current directory, and each deployment will use a new directory. ssh root@your_ip "cp -r /home/zim/zim-server-$pre_version/bin/static/ /home/zim/zim-server-$version/bin/" \ No newline at end of file diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 1db44a3d..ebc6caae 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -10,26 +10,26 @@ object Dependencies { object Version { val zio = "2.0.15" val `zio-logging` = "2.1.13" - val tapir = "1.4.0" - val `akka-http` = "10.2.10" - val akka = "2.6.20" + val tapir = "1.6.3" + val `akka-http` = "10.5.0" + val akka = "2.8.0" val circe = "0.14.3" - val scalikejdbc = "3.5.0" - val logback = "1.4.8" + val scalikejdbc = "4.0.0" + val logback = "1.4.6" val config = "1.4.2" val `zio-interop-reactiveStreams` = "2.0.2" - val mysql = "8.0.33" + val mysql = "8.0.32" val `simple-java-mail` = "7.5.0" - val h2 = "2.1.214" - val scalaTest = "3.2.16" + val h2 = "2.2.220" + val scalaTest = "3.2.15" val `zio-actors` = "0.1.0" - val refined = "0.11.0" - val `zio-schema` = "0.3.1" - val `sttp-apispec` = "0.3.2" - val redis4cats = "1.4.3" + val refined = "0.10.3" + val `zio-schema` = "0.4.13" + val `sttp-apispec` = "0.6.0" + val redis4cats = "1.4.1" val `zio-interop-cats` = "23.0.03" - val `log4cats-slf4j` = "2.6.0" - val `zio-redis` = "0.1.0" + val `log4cats-slf4j` = "2.5.0" + val `zio-redis` = "0.2.0" val `zio-crypto` = "0.0.0+102-23de4b47-SNAPSHOT" // Experimental } diff --git a/project/Information.scala b/project/Information.scala index 40110e43..d4cde2f1 100644 --- a/project/Information.scala +++ b/project/Information.scala @@ -1,8 +1,6 @@ import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport.headerCreateAll -import sbt.{url, Def, Developer, ScmInfo} -import sbt.Compile +import sbt.* import sbt.Keys._ -import sbt.URL /** @author * 梦境迷离 @@ -21,7 +19,7 @@ object Information { licenses += ("Apache-2.0", new URL("https://www.apache.org/licenses/LICENSE-2.0.txt")), developers := List( Developer( - "dreamylost", + "jxnu-liguobin", "梦境迷离", "dreamylost@outlook.com", url("https://github.com/jxnu-liguobin") diff --git a/project/plugins.sbt b/project/plugins.sbt index 3a913c71..13265760 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,7 +1,7 @@ addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "1.0.2") -addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.9.3") +addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.8") //addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.1.1") -addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.9") -addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.10.0") +addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16") +addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.9.0") diff --git a/version.sbt b/version.sbt index b3ce6e3c..5f944c1b 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -ThisBuild / version := "0.6.3" +ThisBuild / version := "0.6.4"