2024-11-18
/ scala
æ¬çš¿ã§ã¯ãHedgehog for Scala ãšããããããã£ãŒã»ããŒã¹ã»ãã¹ãã»ãã¬ãŒã ã¯ãŒã¯ãç°¡åã«ç޹ä»ããããHedgehog for Scala ã¯ãJacob Stanley ãããš Nikos Baxevanis ããå
±èã® Haskell Hedgehog ãšããã©ã€ãã©ãªãåºã« 2018幎ãã Charles O’Farrell ãããå®è£
ãããã®ã§ãæè¿ã§ã¯ Kevin Lee ãããäž»ã«ã¡ã³ããã³ã¹ãè¡ã£ãŠããã
2024-09-28
/ sbt
æ¬çš¿ã¯ sbt 2.x éçºã«é¢ããèšäºã§ãsbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãBazel äºæãª sbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãé
¢é¶ãããŒã4 ãããŒã5 ãªã©ã®ç¶ç·šã ãåã¯åäººã®æéã䜿ã£ãŠ Scala Center ã EngFlow ã® Billy ãããªã©ã®ãã©ã³ãã£ã¢ã®äººãšååã㊠sbt 2.x ã®äœæ¥ãããŠããŠããã®ãããªèšäºã¯ãã«ãªã¯ã³ã¡ã³ãã®æ¡åŒµçã§ãå°æ¥ sbt ã«å®è£
ããããããããªãæ©èœãå
±æã§ããããããšæã£ãŠããã
sbt query
sbt 2.0 ideas ã§åºããã¢ã€ãã£ã¢ãšã㊠sbt query ãšãããã®ããã:
sbt query åç
§ãã¯ãšãªã¯ãµããããžã§ã¯ãããµããåããã®ã«äœ¿ãããšãã§ããã
sbt-projectmatrix ãããã©ã«ãã§äœ¿ãããããã«ãªããšããµããããžã§ã¯ãã®æ°ã¯å¢å ããããšã«ãªããå€§èŠæš¡ãªã³ãŒãããŒã¹ã§äœæ¥ããŠãäººã¯æ¢ã«å€§éã®ãµããããžã§ã¯ããåãæ±ã£ãŠãããããããªãã
sbt 2.0 ã§ã®ã¿ã¹ã¯éçŽã«ããããµããããžã§ã¯ãã®ãµããåãæ©æ§ãããã§ææ¡ããã:
sbt .../test
sbt abc.../test
sbt ...@scalaBinaryVersion= 3/test
ã¹ã©ãã·ã¥æ§æã«ãããçµ±åããããšããã¢ã€ãã£ã¢ã¯the GitHub discussion ã«ãã㊠Adrien Piquerez ãããææ¡ãããã®ã ã
ã¯ãšãªæ§æã¯äœãè¡ãã?
print
ã³ãã³ããšçµã¿åãããäŸã :
sbt: root> print .../name
foo / name
foo
bar / name
bar
baz / name
baz
name
root
ãã®ãšã ...
ã¯ãå
šãµããããžã§ã¯ããæå³ããsbt 1.x ã«ããã print name
ãšå矩ã ãæ¬¡ã«ãååã b
ããå§ãŸããµããããžã§ã¯ãã ãã衚瀺ããŠã¿ã:
2024-09-08
/ sbt
æ¬çš¿ã¯ sbt 2.x éçºã«é¢ããèšäºã§ãsudori part3 ãsbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãBazel äºæãª sbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãé
¢é¶ãããŒã4 ãªã©ã®ç¶ç·šã ãåã¯åäººã®æéã䜿ã£ãŠ Scala Center ã EngFlow ã® Billy ãããªã©ã®ãã©ã³ãã£ã¢ã®äººãšååã㊠sbt 2.x ã®äœæ¥ãããŠããŠããã®ãããªèšäºã¯ãã«ãªã¯ã³ã¡ã³ãã®æ¡åŒµçã§ãå°æ¥ sbt ã«å®è£
ããããããããªãæ©èœãå
±æã§ããããããšæã£ãŠããã
å°å
¥
ä»é±ã¯ã³ããã«ããå·ã®æµèŸºã®çºã§é
ãå€äŒã¿ãåã£ãŠå°å
ã®ã¹ã±ããŒã¹ãããããã§ãã¯ããããå°ãå·ãããªæµ·ã«å
¥ã£ãããããã¹ã¿ãŒã»ããŒã«ãé£ã¹æ¯ã¹ããããŠãããã¹ã±ããŒããããæµ·éã³ã®åéã« sbt ã«ããããã¹ãã®ãªã¢ãŒãã»ãã£ãã·ã¥ã®äœæ¥ãããããé¢é£ããå®éšããããããŠãããéçºçšã®èŠæžãšããŠãããã«çµæãå ±åãããã
é
¢é¶ãããŒã4 ã§ã¯ compile
ã¿ã¹ã¯ã®ãªã¢ãŒãã»ãã£ã·ã¥ãèŠããcompile
ããã£ãã·ã¥ã§ããã°åœ¹ç«ã€ã®ã¯ééãç¡ãããCI (ç¶ç¶ççµ±å) ã·ã¹ãã ã®å€ãã®æéã¯ã³ãŒãã®ã³ã³ãã€ã«ã§ã¯ãªããã¹ãã«å²ãããããšãå€ãã®ã§ã¯ãªãã ããããBazel ã¯æ°æ¡éãã«é«é㪠CI ã®æ§èœãå©ãåºãããšããããããã®äžã€ã®çç±ãšããŠããã©ã«ãã§ã® test
ã³ãã³ãããªã¢ãŒãã»ãã£ãã·ã¥åãããŠãããšããããšãæãããããèšãæãããšãBazel ã䜿ã£ãå Žåããã CI ãã·ã³äžã§ãã¹ããäžåºŠå®è¡ããããšãã€ã³ããããå€ãããŸã§ã¯ãã®ãã¹ãçµæã¯ãã£ãã·ã¥ããç¶ããã
sbt äžçŽè
ã®èªè
ã®çããã¯ãsbt ã«ã¯æ¢ã«ããŒã«ã«ã§å·®åãã¹ããè¡ã testQuick
ããããããªãããšãæ°ã¥ããããããªããtestQuick
ã®é£ç¹ã¯ããã£ãã·ã¥ã®ç¡å¹åã«ã¿ã€ã ã¹ã¿ã³ããçšããããããã«ãçã«éå¯é (non-hermetic) ã§ããã®ãããã·ã³éã§åçŸæ§ãç¡ãããšã ãæ¬çš¿ã§ã¯ããã·ã³éã§å®å
šã«å
±æã§ãã sbt 2.x ã®ãã¹ãã»ãã£ãã·ã¥ãèå¯ããã察å¿ãããã«ãªã¯ã¯ sbt/sbt#7644 ã ã
2024-08-18
/ sbt
æ¬çš¿ã¯ sbt 2.x éçºã«é¢ããèšäºã§ãsudori part3 ãsbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãBazel äºæãª sbt 2.x ãªã¢ãŒããã£ãã·ã¥ ãªã©ã®ç¶ç·šã ãåã¯åäººã®æéã䜿ã£ãŠ Scala Center ãšåŒ·åã㊠sbt 2.x ã®äœæ¥ãããŠããŠããã®ãããªèšäºã¯ãã«ãªã¯ã³ã¡ã³ãã®æ¡åŒµçã§ãå°æ¥ sbt ã«å®è£
ããããããããªãæ©èœãå
±æã§ããããããšæã£ãŠããã
2024幎8æçŸåšã§ã®ç¶æ³
2024幎4æã®æ®µéããäžå¿ Bazel äºæã®ãªã¢ãŒããã£ãã·ã¥æ©èœãå
¥ã£ãŠããããã®å®è£
ã¯ãã£ãã·ã¥ãããå¯äœçšãšããŠãã¡ã€ã«ã»ã¢ãŠããããããµããŒããããèšãæãããšããŸã£ãããªãã·ã³ã§ãã«ããè¡ã£ããšããŠãããªã¢ãŒãã»ãã£ãã·ã¥ã最ã£ãŠããã°ãã³ã³ãã€ã©ãå®è¡ãã代ããã« JAR ãããŠã³ããŒãã§ãããšããç®æ®µã ã
ããããå®éã«å·®åã³ã³ãã€ã«ãè¡ãã«ã¯ãã£ã¬ã¯ããªã«ä»»æã®æ°ã®ãã¡ã€ã«ãäœãããšããµããŒãããå¿
èŠããããé 匵ãã°ä»ã®æ¹æ³ãããã®ã ããä»ã®ãšãããã£ã¬ã¯ããªããµããŒãããã®ãçŸå®çãªæ¬¡ã®ã¹ãããã ãšæãã
ãã¡ã€ã«ã»ãã£ã¬ã¯ããªåé¡
ãã¡ã€ã«ã»ãã£ã¬ã¯ããªã®ãã£ãã·ã¥å㯠sbt 2.x ãªã¢ãŒããã£ãã·ã¥ ã§åæããæ§ã
ãªãã£ãã·ã¥é¢é£ã®åé¡ã«åœããããšã«ãªã:
ãã¡ã€ã«ã»ãã£ã¬ã¯ããªã¯çžå¯Ÿãã¹åããã£ã¬ã¯ããªã«é¢ããäžæãªèšŒæããã¡ã€ã«ã»ã·ã¹ãã å
ã®å®éã®ãã£ã¬ã¯ããªãªã©è²ã
ãªãã®ãæãå¯èœæ§ããã
å®éã®ãã¡ã€ã«ã»ãã£ã¬ã¯ããªã¯ä»»æã®æ°ã®ãã¡ã€ã«ãå«ã
æããããã£ã¬ã¯ããªããã£ãã·ã¥ããã®ã«å€§éã®ãããã¯ãŒã¯åŒã³åºãã¯ããããªã
ã¢ãŠããããã®å®£èš
sbt/sbt#7621 ã«ãããŠãDef.declaraOutputDirectory
ãšããæ°ããã¢ãŠãããããå°å
¥ãã:
Def . declareOutputDirectory( dir)
ããã¯ã¿ã¹ã¯å
ã§åŒã³åºãããšãã§ãã£ã¬ã¯ããªã®ã¢ãŠããããã宣èšãããããã¯ãã¿ã¹ã¯ã®è¿ãå€ã®åãšã¯ç°ãªãããšã«æ³šæãäŸãã°ãcompile
ã¿ã¹ã¯ã¯ Analysis
ãè¿ãããæšªã§ *.class
ãã¡ã€ã«ãçæããŠãäºåã«åãæ±ºãããããã£ã¬ã¯ããªã䜿ã£ãŠä»ã®ã¿ã¹ã¯ã¯ãã®å
容ã䜿ããšããããšãè¡ãããŠããã宣èšããããšã§ãã®æµããããå°ãæç€ºçã«ãªããå
·äœäŸã ãšãã®ããã«ãªã:
import sjsonnew.BasicJsonProtocol.given
lazy val someKey = taskKey[ Int ]( "" )
someKey : = ( Def . cachedTask {
val conv = fileConverter. value
val dir = target. value / "foo"
IO . write( dir / "bar.txt" , "1" )
val vf = conv. toVirtualFile( dir. toPath())
Def . declareOutputDirectory( vf)
1
}). value
NativeLink ãã£ãã·ã¥ã®èšå®
[NativeLink][nativelink] ã¯æ¯èŒçæ°ãããªã¢ãŒãå®è¡ããã¯ãšã³ãã§ãRust ã§å®è£
ãããŠãããé«éã§ããããšã«ãã ãã£ãŠããããªãŒãã³ãœãŒã¹ã ããNativeLink Cloud ãšãããµãŒãã¹ãè¡ã£ãŠããŠãç¡æã§ã詊ãã§ãããšåéã® Adam Singer ãããèšã£ãŠããã
2024-07-20
/ scala
@ifdef
㯠Scala ã³ã³ãã€ã©ã»ãã©ã°ã€ã³ã§ãScala èšèªã«ãããæ¡ä»¶ä»ãã³ã³ãã€ã«ãå®è£
ãããifdef 0.3.0 ã§ã¯ Scala.JS ãš Scala Native ã®ãµããŒãã远å ããã
Scala Version
JVM
JS (1.x)
Native (0.5.x)
3.x
â
â
â
2.13.x
â
â
â
2.12.x
â
â
â
2024-06-24
/ scala
äœã§ Scala 3 ããããªã«æšãã®ããšèãããããšãããã®ã§ããªã¹ã圢åŒã§æžãåºããŠã¿ããé ã¯ç¹ã«ç¡ããããã¯åã Scala 3 ãã©ãæžããŠããããšããå°æ¥ã©ãæžãããã®ãã¿ãããªå人çãªå¥œã¿ã«åºã¥ããŠããã®ã§ãããã¯æ³šæããŠã»ããã
2024-04-05
/ sbt
æ¬çš¿ã¯ sbt 2.x ãªã¢ãŒããã£ãã·ã¥é¢é£ã®ç¬¬3éšã ãããæ°å¹Žèªåã®æéã䜿ã£ãŠ sbt 2.x ã®éçºãè¡ã£ãŠããŠãæè¿ã¯ Scala Center ã«ãæäŒã£ãŠããã£ãŠããããããã®èšäºã¯ãã«ãªã¯ã³ã¡ã³ãã®æ¡åŒµçã§å°æ¥ sbt ã«å®è£
ããããããããªãæ©èœãå
±æã§ããããããšæã£ãŠããã
çŽ1幎å sbt 2.x ã«ãããèªåãã£ãã·ã¥ã»ã¿ã¹ã¯ã®èšèšã®ææ¡ã RFC-1: sbt cache ideas ã§è¡ãããsbt 2.x ãªã¢ãŒããã£ãã·ã¥ã ã§ã¯å®è£
ã®è§£èª¬ãè¡ã£ã:
someKey : = Def . cachedTask {
val output = StringVirtualFile1 ( "a.txt" , "foo" )
Def . declareOutput( output)
name. value + version. value + "!"
}
ãªã¢ãŒããã£ãã·ã¥ã¯ããã·ã³éã§ãã«ãã®çµæãå
±æããããšã§åçãªæ§èœã®æ¹åãå¯èœãšããã2020幎ã«ãå㯠sbt 1.x ã®ã³ã³ãã€ã«ãã£ãã·ã¥ ãå®è£
ãããããã compile
ã¿ã¹ã¯ã«éãããŠããããææãªæ§èœåäžãããããšãäœäŸãå ±åãããŠãããæè¿ã ãšãLeveraging sbt remote caching on a big modular monolith (2024) ã«ãããŠãTeads 瀟㮠Sébastien Boulet ããã以äžã®ããã«æžããŠãã:
å®å
šãã£ãã·ã¥ã»ãããã®å Žå㯠sbt ãã«ã㯠3å30ç§ããããå
šãŠã®ã¿ã¹ã¯ããã£ãã·ã¥åãããŠããããã§ã¯ç¡ãã®ã§ãã¯ãæ°åããã£ãŠããŸãã(äžç¥) äžæ¹ãScala Steward ããã«ãªã¯ãéã£ãŠã©ã€ãã©ãªãæŽæ°ãããªã©ããŠå®å
šãã£ãã·ã¥ã»ãã¹ããã£ãå Žåã¯å
šãŠããªãã«ãããããã¹ããå®è¡ãããããã㯠45åãããããã®ãããå®å
šãã£ãã·ã¥åããããã«ã㯠92% å¹çåãããŠãããšèšããã
å®éã«ããšã³ãžãã¢ãçµéšããã®ã¯ãã®äž¡æ¥µç«¯ã®éã®ã©ããã«äœçœ®ããŠãå°å
¥ãã倿Žã«å¿ããŠèãããã«ãæéã®å€åãããã
sbt 2.x ã®ãã£ãã·ã¥ã«æ»ããšããããŸã§ã®æ compile
ã¿ã¹ã¯ãäŸã«æ±çšçãªæ©æ§ãäœãããã®åºç€ãå
¥ãæ¿ããããšã«éäžããŠããã®ã§ããªã¢ãŒãã»ãã£ãã·ã¥ãšèšãã©ãŸã ã忣ãã®éšåã«ã¯æãåºããŠããªãã£ããæ¬çš¿ã§ã¯ãããèŠãŠããã
2023-12-21
ãã㯠Scala Advent Calendar 2023 ã® 23æ¥ç®ã®èšäºã§ãã21æ¥ç®ã¯ããã£ã¡ããã®path äŸååã£ãŠäœ? 調ã¹ãŠã¿ãŸãã! ã§ããã
ã¯ããã«
ãªã¢ãŒããã£ãã·ã¥ã¯ããã«ãã®çµæãå
±æããããšã§åçãªæ§èœã®æ¹åãå¯èœãšãããMokhov 2018 ã§ã¯ã¯ã©ãŠãã»ãã«ãã»ã·ã¹ãã (cloud build system) ãšãåŒã°ããŠãããããã¯ãåã Blaze (çŸåšã¯ Bazel ãšããŠãªãŒãã³ãœãŒã¹åãããŠãã) ã®ããšãèããŠä»¥æ¥é¢å¿ãæã¡ç¶ããŠããæ©èœã ã2020幎ã«ãå㯠sbt 1.x ã®ã³ã³ãã€ã«ãã£ãã·ã¥ ãå®è£
ãããreibitto ããã®å ±åã«ãããšã以åã¯å
šãŠãã³ã³ãã€ã«ããã®ã« 7åããã£ãŠãããã15ç§ ã§çµããããã«ãªã£ããããããä»ã«ã 2x ~ 5x éããªã£ããšããå ±åãä»ã®äººãè¡ã£ãŠããããããã¯æåŸ
ã®æãŠãå
容ã§ããããšã«ééããªãããçŸè¡ã®æ©èœã¯å°ãäžåšçšã§ compile
ã¿ã¹ã¯ã«ãã䜿ããªããšããéçãããã2023幎ã®3æã«ãRFC-1: sbt cache ideas ãšããŠçŸç¶ã®èª²é¡ãšå¯Ÿçã®èšèšã®ã¢ãŠãã©ã€ã³ãæžãåºããŠã¿ãã以äžã«èª²é¡ããŸãšãã:
åé¡1: sbt 1.x 㯠compile
ã®ãªã¢ãŒããã£ãã·ã¥ãããã³ãã®ä»ããã€ãã®ã¿ã¹ã¯ã«å¯ŸããŠãã£ã¹ã¯ãã£ãã·ã¥ãå®è£
ããããã«ã¹ã¿ã ã¿ã¹ã¯ãåå ã§ãããœãªã¥ãŒã·ã§ã³ãæãŸããã
åé¡2: sbt 1.x ã¯ãã£ã¹ã¯ãã£ãã·ã¥ãšãªã¢ãŒããã£ãã·ã¥ã§å¥ã®æ©æ§ãæã€ãããã«ããŠãŒã¶ãããŒã«ã«ããªã¢ãŒãã®ãã£ãã·ã¥ããåãæ¿ããããçµ±äžããæ©æ§ãæãŸããã
åé¡3: sbt 1.x 㯠Ivy resolver ããã£ãã·ã¥ã®æœè±¡åã«çšãããããããªãŒãã³ãªãªã¢ãŒããã£ãã·ã¥ã»ããã¯ãšã³ããæãŸãã
12æäžã¯é©åœã«èªåã§ãããžã§ã¯ããéžãã§ æ¯æ¥å°ãã§ãããããäœæ¥ããŠããããããã°ã«æ°è¡ãã€èšé²ããã #decemberadventure ãšããããã·ã¥ã¿ã°ãã€ããŠæçš¿ãããšããç¬ãã¢ãã³ãã Mastodon çéã®äžéšã§æµè¡ã£ãŠãŠãåã® december adventure 2023 ãšããŠãsbt 2.x ã®ãªã¢ãŒããã£ãã·ã¥ã«ææŠããŠã¿ãããšæã£ããå®è£
ã®ææ¡ã¯ GitHub #7464 ã§ãæ¬çš¿ã§ã¯ãææ¡ãã倿Žç¹ã®è§£èª¬ãè¡ããæ³šæ : sbt ã®å
éšæ§é ã«é¢ããäºåç¥èã¯ãããŸãå¿
èŠãšããªããããã«ãªã¯ã³ã¡ã³ãã®æ¡åŒµçã®ãããªãã®ãªã®ã§äžçŽã¬ãã«ã®èªè
ãæ³å®ããŠãããããšããã«ãªã¯æ®µéãªã®ã§æžããŠããå
ãã詳现ã¯ã©ãã©ãå€ãã£ãŠãããããããªãã
2023-07-15
/ bazel / scala
Scalafix ã«ã€ããŠ
ã³ãŒãããŒã¹ã倧ååããã«ã€ããèªåãªãã¡ã¯ã¿ãªã³ã°ãè¡ãããšãã§ããèšèªããŒã«ããããšäŸ¿å©ã ã幞ããªããšã«ã2016幎㫠Scala Center ã Scalafix ãäœã£ãŠããããå
¬éæã®ããã°èšäº ã®äžã§ Ãlafur Geirsson ããã¯:
Scalafix ã¯ãç°¡åãããããªããå調ã«ç¹°ãè¿ãããã³ãŒã倿ãåãæã€ããšã§ãããªããæèãåãã䟡å€ã®ããããšã«éäžããããšãã§ããŸãã倧ãŸãã«èª¬æãããšãScalafix ã¯ãœãŒã¹ãèªãã§ãéæšå¥šæ©èœã®äœ¿çšãæ°ãã代æ¿ãžãšå€æããå
ã®ãœãŒã¹ã«æžã蟌ã¿ãŸãã
ãšè§£èª¬ããŠããŠãScala 3 ãã€ã°ã¬ãŒã·ã§ã³ãåæ©ã«ãªã£ãŠããããšããããããã
çŸåšã¯ãScalafix 㯠Brice Jaglin ãããã«ãã£ãŠã¡ã³ããããŠããŠãScala 3 ãã€ã°ã¬ãŒã·ã§ã³ä»¥å€ã§ãäžè¬ã®ãªã³ãã£ã³ã°ããªãã¡ã¯ã¿ãªã³ã°ã®ããŒã«ãšããŠäœ¿ãããŠãããäŸãã°åç°ãã (xuwei-k) ãªããã¯æ°çŸã® Scalafix ãæžãããããããã®äžéšã¯ xuwei-k/scalafix-rules ã«ãå
¬éãããŠããã
Scalafix ç¬ç¹ã®ç¹åŸŽãšããŠãsyntactic (æ§æç) ãš semantic (æå³è«ç) ãšãã2çš®é¡ã®ã«ãŒã«ãããã
syntactic rule ã¯ãã³ã³ãã€ã«ããããšãªããœãŒã¹ã³ãŒãã«å¯ŸããŠçŽæ¥å®è¡ããããšãã§ãããã·ã³ãã«ã ããã³ãŒãè§£æã®åã«ã¯å¶éãããã
semantic rule ã¯ãã·ã³ãã«ãåãçšããŠããé«åºŠãªã³ãŒãè§£æãè¡ãããšãã§ããããå
¥åãœãŒã¹ã SemanticDB ã³ã³ãã€ã©ã»ãã©ã°ã€ã³ãšå
±ã«ã³ã³ãã€ã«ãããã®ãäºåã«çšæããå¿
èŠãããã
syntactic rule 㯠Scalafix CLI ããããã°è¯ãã®ã§ãBazel ãšã®çµ±åã¯ç¹ã«å¿
èŠç¡ããäžæ¹ã§ãsemantic rule 㯠semanticdb ãªã©ãæž¡ããŠåããããå°ãäœæ¥ãå¿
èŠãšãªãã
Bazel çµ±åã®å
è¡ç ç©¶
Bazel + Scalafix
æé ã®æŠèŠ
2023-04-17
/ scalamatsuri
ä»é±æ«ãvirtual/Tokyo ãã€ããªããã® ScalaMatsuri ãéå¬ãããããŸãã¯ãç»å£è
ã®çãããã¹ãã³ãµãŒå瀟ãåå è
ã®çããã«ã瀌ããŸãã
åã®ãã€ããªãããšããããšã§ãè³ããªãç¹ãå€ã
ãã£ããã©ããæåããã«ã³ãã¡ã¬ã³ã¹ã ã£ãã®ã§ã¯ãšæããåã¯ã16åã® ScalaMatsuri ã¹ã¿ããã®äžå¡ãããããã¡ã€ã³ã®ã»ãã·ã§ã³ãšé£ã³ã³ã³ã§ã®ç»å£è
ãšããŠåå ãããŠããã£ãã
2023-02-20
/ bazel / scala
äžè¬è«ãšã㊠Bazel ã¯ãã¢ãããŒãžã§ã³ãã³ã°ãšãã£ãŠã(JUnit ã Pandas ãªã©) ã©ã®ã©ã€ãã©ãªã§ãã¢ããªãå
ã®å
šãŠã®ã¿ãŒã²ãããåäžã®ããŒãžã§ã³ã䜿ããšãã圢æ
ã奜ãã
ã¢ãããŒãžã§ãã³ã°ã¯ãã¢ããªãå
ã§çºçãããããŒãžã§ã³è¡çªãåçã«æžãããããããã³ãŒãåå©çšæ§ãæ¹åããããšãã广ãããã
ããããå®éã«éçšããŠã¿ããšå
šç€Ÿãäºäººäžèç¶æ
ã«ãªããšããæ¬ ç¹ãåºãŠããã
äŸãã°ãµãŒãã¹ AãBãCãD ã®å
šãŠã Big Framework 1.1 ã䜿ã£ãŠãããšããã°ã¬ (regression) ããããããããªãã®ã§å
šãŠãåæã« Big Framework 1.2 ã«ç§»æ€ããã®ã¯äººçè² è·ãé«ãã£ããããã
ãããªãããªã§æ°å¹Žãçµã¡ãBig Framework 2.0 ããªãªãŒã¹ãããŠããã£ã±ããããæ¡çšã¯ãªã¹ããŒãªã®ã§ã¯ãšããããšã«ãªãã
Scala ãšã³ã·ã¹ãã ã§ã¯ãsbt ãçšããŠã©ã€ãã©ãªäœè
ãã©ã€ãã©ãªãè€æ°ã® Scala æšæºã©ã€ãã©ãªããã®ä»ã®ãã¬ãŒã ã¯ãŒã¯ã«å¯ŸããŠãã«ããããšããã®ã¯æ®éã«è¡ãããŠããã
ããã¯ã¯ãã¹ãã«ã ãšåŒã°ããŠããã(x86 ãã aarch64 ãªã© CPU ã¢ãŒããã¯ãã£ããŸããã ã³ã³ãã€ã«ãã¯ãã¹ã³ã³ãã€ã« ãšèšã£ããããããããšã¯å¥ãªããšã«æ³šæ)
ãã®ã¯ãã¹ãã«ããšããæŠå¿µã¯ãåãã©ã³ãå
ã§äžé·æã«æž¡ã£ãŠè²ã
ãªè»žã®ãã€ã°ã¬ãŒã·ã§ã³ãå¯èœãšããããšãããBazel ã«ãããŠãæçšãªãã®ãããªãããšæã£ãŠããã
äŸãã°çŸè¡ã®ã¢ããªãã Scala 2.12 ã ãšããŠãåŸã
ã«ãã€ã°ã¬ãŒã·ã§ã³ãè¡ã£ãŠã»ãšãã©ã®ã¿ãŒã²ããã Scala 2.12 ãš Scala 2.13 ã®äž¡æ¹ã§ãã«ãå¯èœãªç¶æ
ãžæã£ãŠããã
ããã¯ãäžéšã®ããŒã ãå
šç€Ÿã«å
è¡ããŠæ°ããŒãžã§ã³ã詊ãã€ã€ãã³ãŒãããŒã¹ãšããŠã¯æ®éã«é²ãã§ããããšãã§ããã
local_repository ããã¯
å
é±ã@ianoc ããã« Bazel ã§ã¯ãã¹ãã«ããå¯èœãšããæ©æ§ãæããŠããã£ãã
åãã¡ããã£ãã®ã¯ Python ã®å€éšã©ã€ãã©ãªã®åãæ¿ãã ããæ¬çš¿ã§ã¯ Scala ã®ã¯ãã¹ãã«ããå®è£
ããã
(æãåºããšå»å¹ŽãLong Cao ãããããŒã«å
¥ãè¡åã§åŸ
ã£ãŠããéã«ãã®èª¬æã詊ã¿ãŠãããæ°ãããããåœæã¯ãã®ãã¯ããã¯ãéåžžã«åŒ·åãªãã®ã ãšåãã€ãã€ãçè§£ã§ããªãã£ãã)
ãŸãåºæ¬ãå
ã«èšããšãã«ãŒãã® WORKSPACE
å
ã§ãµããã£ã¬ã¯ããªãåç
§ãã local_repository
ã宣èšããŠãå
¥ãåã¯ãŒã¯ã¹ããŒã¹ãäœãã
å®è¡æã« --override_repository
ãªãã·ã§ã³ã䜿ã£ãŠããããå¥ã®ã¯ãŒã¯ã¹ããŒã¹ãžãšãªãŒããŒã©ã€ãããã
ãã®ããŒã«ã«ã»ãªããžããªã¯å®æ°ããã¯ãããã¡ã€ã«ãå«ãã¿ãŒã²ãããªã©ãå
¬éããããšãã§ããããã䜿ãããšã§äœã§ããªãŒããŒã©ã€ãã§ããã¯ãã ã
2022-12-22
2022-11-20
å㯠Twitter瀟㮠Build/Bazel Migration ããŒã ã§ã¹ã¿ããã»ãšã³ãžãã¢ãšããŠå€åããŠãããä¿¡ããããªããã㪠2幎ã®åŸã2022幎11æ17æ¥ããã£ãŠéè·ãã (äŒæ¥è²·ååŸã®ã¬ã€ãªãã§ãä»»æã§ããããŸãé¢ä¿ç¡ãããåã¯ä»»æéè·åžæã®ãªãã¡ãŒãåã£ã)ãTwitter瀟ã¯ãåç£ç¢ç£šã倿§æ§ããã㊠Flock ãæ§æããå
šãŠã®äººã«å¯ŸããŠæº¢ãåºãåªãããšããããªãç¹å¥ãªæåãæã£ãè·å Žã ã£ãããããéè¿ã§çµéšããŠããã®äžå¡ãšãªãæ©äŒãåŸãããšã«æè¬ããŠããã(Flock ã¯ãé³¥ã®çŸ€ããã®æã§ã瀟å
ã§ã® Twitter瀟ã®éç§°)
以äžã¯éå»2幎ã®ç°¡åãªæ¯ãè¿ãã ãå°æ¬çš¿ã§ã®æ
å ±ã¯ãæ¢ã«å
¬éãããŠããããŒã¯ãããŒã¿ã«åºã¥ããŠãããè²·ååŸããã¡ã®ããŒã ã ãã§ã 10å以äžã®ã¡ã³ããŒã Twitter瀟ãæããã®ã§ãåšç±ã»å
å«ã LinkedIn ãããã¡ã€ã«ãžã®ãªã³ã¯ãæ¬çš¿åæã«è²Œã£ãã
2021-12-31
/ sbt
sbtãBazelããã®ä»å€ãã®ãã«ãããŒã«ã«ãããŠãããã¹ãããšããçšèªã倿§ãªã¬ãã«ã«ãŸãããããšãå€ãããã
ãããææ§ç¡ãå®çŸ©ããŠããããšã¯ç¹ã«äºåãäºåŸåŠçã䞊ååŠçãªã©ãèãããšãã«åœ¹ã«ç«ã€ã®ã§ã¯ãªãããšæãã
å
ã«æžããŠããŸããšããã¹ãã«ã¯ä»¥äžã® 4ã€ã®ã¬ãã«ããã:
ãã¹ãã»ã³ãã³ã
ãã¹ãã»ã¢ãžã¥ãŒã«
ãã¹ãã»ã¯ã©ã¹
ãã¹ãã»ã¡ãœãããŸãã¯ãã¹ãåŒ
ã³ãã³ãã©ã€ã³ã»ã€ã³ã¿ãŒãã§ã€ã¹ãšããŠã®ãã¹ã
æäžäœã®ã¬ãã«ã¯ãã«ãã»ããŒã«ããŠãŒã¶ã« test
ã³ãã³ããšãšããŠæäŸãããã®ã ã
ãŠãŒã¶ã sbt ã·ã§ã«ã« test
ãšæã¡èŸŒãããã¿ãŒããã«ãã sbt --client test
ãšæã¡èŸŒããšãsbt ã®ã³ãã³ãã»ãšã³ãžã³ã¯ãtestããéçŽãªã¹ãã«åæããããµããããžã§ã¯ãå
ã§ã®ã¿ã¹ã¯å®è¡ãžãšæã¡äžããã
äŸãã° root
ãµããããžã§ã¯ãã core
ãš util
ãšãããµããããžã§ã¯ããéçŽããå Žåãtest
㯠root/Test/test
ãcore/Test/test
ãutil/Test/test
ã®äžŠåå®è¡ã ãšè§£éãããã
åã¯ãã®æ¯ãèããã³ãã³ãã»ãããŒããã£ã¹ããšåŒãã§ããã
Bazel ã§ã¯ãã®ãããŒããã£ã¹ãã¯ããæç€ºçã«ãŠãŒã¶ã«ãã£ãŠè¡ãããã
äŸãã°ããŠãŒã¶ã bazel testl example/...
ãšæã¡èŸŒããšãBazel 㯠example1/
ãã£ã¬ã¯ããªä»¥äžã®å
šãŠã®ãã¹ãã»ã¿ãŒã²ãããååž°çã«ã¯ãšãªããŠãçºèŠããããã¹ãã»ã¿ãŒã²ããã䞊åçã«ãã¹ãããã
ã¢ãžã¥ãŒã«ãšããŠã®ãã¹ã
å
±éããŠããã®ã¯ãã³ãã³ããšããŠã®ãã¹ããããã¹ãã¢ãžã¥ãŒã«ãéçŽããŠããããã䞊åå®è¡ããããšã ã
sbt ã¯å
žåçã«ãã¹ãã»ã¢ãžã¥ãŒã«ããµããããžã§ã¯ããš Test
ã³ã³ãã£ã°ã¬ãŒã·ã§ã³ã®ãã¢ãšããŠè¡šãã
Bazel ã¯ãã¹ãã»ã¢ãžã¥ãŒã«ã scala_test(...)
ã®ãããªäœããã®ã¿ãŒã²ãããšããŠè¡šãã
Bazel 㯠rules_scala 㮠scala_test_suite(...)
ã®ãããªååä»ãã®ãã¹ãéçŽãæäŸããã
Bazel ã«é¢ããŠå°ãè£è¶³ããŠãããšããã¹ãã»ã¢ãžã¥ãŒã«ã®åŠçã¯éåžžã«åªç§ã ãšããããšã ã
ããã©ã«ãã§ãã¹ãã®çµæã¯ãã£ãã·ã¥ããããã£ãã·ã³ã°ã¯ãªã¢ãŒãã»ãã£ãã·ã¥ãžãšèšå®ããããšãã§ãã
å®è¡ç°å¢ããªã¢ãŒãã»ãã·ã³ãžãšèšå®ããããšãã§ããã
ãã®ãããã©ãããããäžããç°å¢ãæŽããã°äœçŸãã®ãžã§ããèµ·åããããšãã§ããã
ãŸããã¿ãŒã²ããã¯åŸæ¥ã®ãã«ãããŒã«ããã现ããäœãããçè«äž .scala
ãã¡ã€ã«ããšã«
scala_test(...)
ã¿ãŒã²ããã宣èšããŠ(å¥ã®ãã·ã³ã§)䞊åå®è¡ããããšãã§ããã
ã¯ã©ã¹ãšããŠã®ãã¹ã
JUnitãMUnitãScalaTestãSpecs2ãHedgehogãVerify ãªã©ã® JVM ãã¹ããã¬ãŒã ã¯ãŒã¯ã¯é¢é£ãããã¹ãã»ã¡ãœãããã¯ã©ã¹ããªããžã§ã¯ããçšããŠã°ã«ãŒãåããã
Scala ã§ã¯ããããã®ãã¹ãã»ã¯ã©ã¹ã FunSuite
ã®ããã«ãsuiteããšåä»ããããããšãããããJUnit ã«ããã Suite
ã¯
è€æ°ã®ãã¹ãã»ã¯ã©ã¹ãéçŽããç¹æ®ãªãã¹ãã»ã¯ã©ã¹ãæãã
2021-09-17
/ scala
Ãlaf ããã® olafurpg/setup-scala ã䜿ã£ãŠãããžã§ã¯ãã JDK 17 ã§ãã¹ãããç°¡åãªè§£èª¬ãããŠã¿ããSetting up GitHub Actions with sbt ã§ããã¥ã¡ã³ãåãããŠãã以äžã®èšå®ãã¹ã¿ãŒãå°ç¹ãšããã
name : CI
on :
pull_request :
push :
jobs :
test :
strategy :
fail-fast : false
matrix :
include :
- os : ubuntu-latest
java : 11
jobtype : 1
- os : ubuntu-latest
java : 11
jobtype : 2
- os : ubuntu-latest
java : 11
jobtype : 3
runs-on : ${{ matrix.os }}
steps :
- name : Checkout
uses : actions/checkout@v1
- name : Setup
uses : olafurpg/setup-scala@v13
with :
java-version : "adopt@1.${{ matrix.java }}"
- name : Build and test
run : |
case ${{ matrix.jobtype }} in
1)
sbt -v "mimaReportBinaryIssues; scalafmtCheckAll; +test;"
;;
2)
sbt -v "scripted actions/*"
;;
3)
sbt -v "dependency-management/*"
;;
*)
echo unknown jobtype
exit 1
esac
shell : bash
äŸãã°ãjobtype
ã 3 ã®å Žå㯠JDK 8 ã䜿ããããšããŠãjobtype
ã 1 ãš 2 ã®å Žå㯠JDK 17 ã§ãã¹ãããããšãããsbt-ci-release 㯠JDK ãæã£ãŠããã®ã« jabba ã䜿ã£ãŠãããããããæžããŠããæç¹ã§ã¯å瀟㮠openjdk 17.0 ãã£ã¹ããã jabba ã«ãŸã äžãã£ãŠããªããããããEclipse Adoptium æ§å AdoptOpenJDK ãããã€ããªãåºãã®ã§ã«ã¹ã¿ã JDK ã¢ãŒããå©çšããŠåŒ·åŒã«äœ¿ãããšãå¯èœã :
2021-09-06
/ scala
ã¯ããã«
ãã¯ã ã¯æ¥œãããã€åŒ·åãªããŒã«ã ãã䜿ãããã¯å®³ãããã責任ãæã£ãŠé©åºŠã«ãã¯ããæ¥œããã§ã»ããã
ãã¯ããšã¯äœã ããã? ãããã説æã¯ãã¯ãã¯ã³ãŒããå
¥åãšããŠåãåããã³ãŒããåºåããããã°ã©ã ã ãšããããããèªäœã¯æ£ããããmap {...}
ã®ãããªé«é颿°ãååæž¡ããã©ã¡ãŒã¿ã®ããã«äžèŠã³ãŒãã®ãããã¯ãæž¡ããŠåã£ãŠããæ©èœã«èŠªããã§ãã Scala ããã°ã©ãã«ã¯ãã³ãŒããå
¥åãšããŠåãåããã®æå³ãäžèŠåããã¥ãããããããªãã
以äžã¯ãåã Scala 3 ã«ãç§»æ€ãã Expecty ãšãã assersion ãã¯ãã®çšäŸã :
scala> import com.eed3si9n.expecty.Expecty.assert
import com.eed3si9n.expecty.Expecty.assert
scala> assert( person. say( word1, word2) == "pong pong" )
java. lang. AssertionError : assertion failed
assert( person. say( word1, word2) == "pong pong" )
| | | | |
| | ping pong false
| ping pong
Person ( Fred , 42 )
at com. eed3si9n. expecty. Expecty$ExpectyListener . expressionRecorded( Expecty . scala: 35 )
at com. eed3si9n. expecty. RecorderRuntime . recordExpression( RecorderRuntime . scala: 39 )
... 36 elided
äŸãã° assert(...)
ã§ååæž¡ãã®åŒæ°ã䜿ã£ããšãããããã®å€ãåŸãã¿ã€ãã³ã°ã¯å¶åŸ¡ã§ããã false
ããåŸãããšãã§ããªããäžæ¹ãã¯ãã§ã¯ãperson.say(word1, word2) == "pong pong"
ãšãããœãŒã¹ã³ãŒãã®åœ¢ãã®ãã®ãåãåããå
šãŠã®åŒã®è©äŸ¡å€ãå«ãã ãšã©ãŒã¡ãã»ãŒãžãèªåçæãããšããããšãã§ãããé 匵ã£ãŠæžãããšæãã° Predef.assert(...)
ã䜿ã£ãŠãæã§ãã®ãããªãšã©ãŒã¡ãã»ãŒãžãæžãããšãã§ããããéåžžã«éå±ãªäœæ¥ãšãªãããã¯ãã®å
šè²ã¯ããã ãã§ã¯ç¡ãã
ãããããã¡ãªèãæ¹ãšããŠã³ã³ãã€ã©ã¯ãœãŒã¹ã³ãŒãããã·ã³ã³ãŒããžãšç¿»èš³ãããã®ã ãšãã®ãããã確ãã«ããããåŽé¢ãããããã³ã³ãã€ã©ã¯ä»ã«ãå€ãã®äºãè¡ã£ãŠãããåæ€æ» (type checking) ã¯ãã®ãã¡ã®äžã€ã ããã€ãã³ãŒã (ã JS) ãæåŸã«çæããä»ã«ãScala ã³ã³ãã€ã©ã¯ã©ã€ããŠã§ã€ããªèšŒæã·ã¹ãã ãšããŠæ¯ãèããã¿ã€ããåŒæ°ã®ååãããªã©æ§ã
ãªãšã©ãŒãäºåã«ãã£ãããããJava ã®ä»®æ³æ©æ¢°ã¯ãScala ã®åã·ã¹ãã ãäœãè¡ã£ãŠããããã»ãšãã©ç¥ããªãããã®æ
å ±ã®ãã¹ã¯ãäœãæªãããšãã®ããã«åæ¶å»ãšãåŒã°ãããããã®åãšã©ã³ã¿ã€ã ãšããäºå
æ§ã«ãã£ãŠ Scala ã JVMãJSãNative äžã«ã²ã¹ãã»ããã°ã©ãã³ã°èšèªãšããŠååšããããšãã§ããã
2021-08-21
/ sbt
å®éšç sbt ãšããŠãé
¢é¶ (sudori) ãšããå°ããªãããžã§ã¯ããäœã£ãŠãããåœé¢ã®äºå®ã¯ãã¯ãåšãã Scala 3 ã«ç§»æ€ããããšã ãsbt ã®ãã¯ããåè§£ããŠãåå°ããäœãçŽããšãã課é¡ã ããã㯠Scala 2 ãš 3 ã§ãäžçŽè
åãã®ãããã¯ã§ãåèªèº«ã詊è¡é¯èª€ããªãããã£ãŠããã®ã§ãèŠãæžãã®ãããªãã®ã ãšæã£ãŠã»ããã
åè:
Convert
äœã«ãäŸåããŠããªãåºç€ãšãªã Convert ãšãããã®ãç¹å®ã§ããã
abstract class Convert {
def apply[ T: c.WeakTypeTag ]( c: blackbox.Context )( nme: String , in: c.Tree ) : Converted [ c. type ]
....
}
Tree
ãåãåã£ãŠ Converted
ãšããæœè±¡ããŒã¿åãè¿ãéšå颿°ã®è±ªè¯çã¿ãããªãã®ã«èŠãããConverted
ã¯ã以äžã®ããã«åãã©ã¡ãŒã¿ãšã㊠[C <: blackbox.Context with Singleton]
ãåã:
final case class Success [ C <: blackbox.Context with Singleton ](
tree: C # Tree ,
finalTransform: C # Tree => C# Tree
) extends Converted [ C ] {
def isSuccess = true
def transform( f: C # Tree => C# Tree ) : Converted [ C ] = Success ( f( tree), finalTransform)
}
ãã®ããã«çŽæ¥ Tree
ãã€ãŸãæœè±¡æ§ææš (AST) ãæ±ãå€ã Scala 2 ãã¯ãã®å®è£
ã®å
žåçãªäŸã ããScala 3 ã§ã¯ãã£ãšç¶ºéºã«é«åºŠãªã¬ãã«ã§ã¡ã¿ããã°ã©ãã³ã° ãè¡ã仿ããšã㊠inline
ãªã©ãããã®ã§ãããããå§ããã®ãéåžžã¯æšå¥šãããã
ãã ãããã®å Žåã¯æ¢åã®ãã¯ããç§»æ€ããŠããã®ã§ã¯ã©ãŒããªãã¬ã¯ã·ã§ã³ (quote reflection) ã«ã²ãšã£é£ã³ããããã㯠Scala 2 ãã¯ãã«äŒŒãŠããæãã ã
2021-08-01
/ sbt
å®éšç sbt ãšããŠãé
¢é¶ (sudori) ãšããå°ããªãããžã§ã¯ããäœã£ãŠãããåœé¢ã®äºå®ã¯ãã¯ãåšãã Scala 3 ã«ç§»æ€ããããšã ãsbt ã®ãã¯ããåè§£ããŠãåå°ããäœãçŽããšãã課é¡ã ããã㯠Scala 2 ãš 3 ã§ãäžçŽè
åãã®ãããã¯ã§ãåèªèº«ã詊è¡é¯èª€ããªãããã£ãŠããã®ã§ãèŠãæžãã®ãããªãã®ã ãšæã£ãŠã»ãããããã¯ãã®ããŒã2ã ã
åè:
Instance
build.sbt
ãã¯ããšèšãããŠæãã€ãã®ã¯ .value
ã䜿ã£ã Applicative do ãã¯ããªããããªãããšæããåŒã³æ¹ãšããŠã¯ãããã¯åŒã°ãªã人ããããããããªããããã®åœä»€åãã颿°åãžã®å€æãæ
ã£ãŠããã®ã¯ãã¡ãã£ãšå€ãã£ãååãæã€ Instance class ã®ã³ã³ãããªã³ã :
/**
* The separate hierarchy from Applicative/Monad is for two reasons.
*
* 1. The type constructor is represented as an abstract type because a TypeTag cannot represent a type constructor directly.
* 2. The applicative interface is uncurried.
*/
trait Instance {
type M [ x ]
def app[ K [ L [ x ]] , Z ]( in: K [ M ], f: K [ Id ] => Z)( implicit a: AList [ K ]) : M [ Z ]
def map[ S , T ]( in: M [ S ], f: S => T) : M [ T ]
def pure[ T ]( t: () => T) : M [ T ]
}
trait MonadInstance extends Instance {
def flatten[ T ]( in: M [ M [ T ]]) : M [ T ]
}
Scaladoc ã§ãèšåãããŠããããsbt ã¯å
éšã«ç¬èªã® Applicative[_]
åã¯ã©ã¹ãå®çŸ©ããŠãããMark ã 2012幎 (Scala 2.10.0-M6 ããã) ã«åæãã 2ã€ã®çç±ãçŸæç¹ã§ãåœãŠã¯ãŸããã¯äžæã ããã¯ãã¯ãããªæãã :
2021-04-26
sbt 1.5.1 ããããªãªãŒã¹ãã¢ããŠã³ã¹ããããªãªãŒã¹ããŒãã®å®å
šçã¯ããã«ãã - https://github.com/sbt/sbt/releases/tag/v1.5.1 ãæ¬çš¿ã§ã¯ Bintray ãã JFrog Artifactory ãžã®ãã€ã°ã¬ãŒã·ã§ã³ã®å ±åãããã
Bintray ãã JFrog Artifactory ãžã®ãã€ã°ã¬ãŒã·ã§ã³
ãŸã㯠JFrog瀟ã«ãsbt ãããžã§ã¯ãããã³ Scala ãšã³ã·ã¹ãã ãžã®ç¶ç¶çãªãµããŒããããŠããã£ãŠããããšã«ã瀌ãèšãããã
sbt ãã³ã³ããªãã¥ãŒã¿ãŒæ°ãšãã©ã°ã€ã³æ°ã«ãããŠäŒžã³çãã ã£ãææã« Bintray ã®åœ¢ãããåé¡ããã£ããå人ã®ã³ã³ããªãã¥ãŒã¿ãŒã« Ivy ã¬ã€ã¢ãŠãã®ã¬ããžããªãäœã£ãŠãsbt ãã©ã°ã€ã³ãå
¬éããŠãããã解決åŽã§ã¯éçŽããããšããåé¡ã ãGitHub ã® sbt ãªãŒã¬ããŒãŒã·ã§ã³ã§ãã©ã°ã€ã³ã®ãœãŒã¹ãè€æ°äººã§æµåçã«ç®¡çããããšãã§ããããã«ãªã£ããããã€ããªãã¡ã€ã«ã®é
ä¿¡ã¯èª²é¡ãšããŠæ®ã£ãŠãããåœæã¯ sbt ã®ããŒãžã§ã³ãããå€ãã£ãŠãããšããã®ãããã2014幎㫠Bintray ãæ¡çšããŠãæé·æã®é
ä¿¡ã¡ã«ããºã ãæ
ã£ãŠããããããã«åãã¡ã¯ sbt ã® Debian ãš RPM ã€ã³ã¹ããŒã©ãŒããã¹ãã£ã³ã°ããã®ã« Bintray ã䜿ã£ãŠããŠããã㯠Lightbend 瀟ãæã£ãŠãããŠããã
2021幎2æãJFrog 㯠Bintray ãµãŒãã¹ã®çµäºãã¢ããŠã³ã¹ããããã®çŽåŸãããJFrog 瀟ã¯åããããã³ã³ã¿ã¯ãããŠããŠãäœåãããŒãã£ã³ã°ãã¹ã±ãžã¥ãŒã«ããŠãããããopen source sponsorship ãã°ã©ã³ãããŠããããããã€ã°ã¬ãŒã·ã§ã³çšã®ããŒã«ãããããããããšãäžè©±ã«ãªã£ãŠããã
ä»çŸåš Scala Center ã«ã©ã€ã»ã³ã¹ãããJFrog ãã¹ãã³ãµãŒããŠãããã¯ã©ãŠãã»ãã¹ã㪠Artifactory ã®ã€ã³ã¹ã¿ã³ã¹ã皌åããŠããããArtifactory ã®ã€ã³ã¹ã¿ã³ã¹ããšäœåºŠãæžãã®ãé·ãã®ã§ãæ¬çš¿ã§ã¯ Artsy ãšåŒã¶ãsbt 1.5.1 ããªãªãŒã¹ãããããšã§ããã€ã°ã¬ãŒã·ã§ã³ã¯å®äºãããšæãã
read ç³»
4æ18æ¥ã®æç¹ã§å
šãŠã® sbt ãã©ã°ã€ã³ãš sbt 0.13 ã¢ãŒãã£ãã¡ã¯ãã Artsy ã«ç§»è¡ããŠãLightbend IT ããŒã ã https://repo.scala-sbt.org/scalasbt/ ã Artsy ãæãããã«ããŠããããããæ¢åã®ãã«ãã¯äœãããªããŠããã®ãŸãŸåã ã¯ãã ãããã¯5æ1æ¥ä»¥éã§ã倧äžå€«ãªã¯ãã ãããããããããªããªããissue ãäžãã£ãŠããããã§ãã¯ããåŸãå ±åããé¡ãããŸãã
write ç³»
Artsy ã® sbt-plugin-releases
ã¯ãªãŒããªã³ãªãŒã«ããäºå®ã ããã®ããããã©ã°ã€ã³äœè
ã®äººã¯ãSonatype OSSRH ã«ç§»è¡ããå¿
èŠããããorganization åã®èš±å¯ãäžããããå
¬é㯠sbt-ci-release ã§èªååã§ããã
2021-04-19
/ scala
ç«çª: 19æ¥ç® ãFunctionK ãšãã Rúnar ããã«ããã©ã³ã¯2å€çžæ§ã®ãšã³ã³ãŒãã£ã³ã°ããããŠé«ã©ã³ã¯å€çžãå¯èœã«ãããšäºèŠããã Resource ããŒã¿åã«é¢ããŠã
2021-02-16
/ sbt
sbt 1.1.0 ã§åã¯çµ±äžã¹ã©ãã·ã¥æ§æãå®è£
ãããããããæ°å¹Žçµã£ã仿¥ã«ãªã£ãŠãå€ã sbt 0.13 ã§ã®ã·ã§ã«æ§æã廿¢å§åããããã® pull request ãéã£ãã#6309
æãè¡ããšããŠãbuild.sbt
ã®ããã®æ§æ§æã廿¢å§åã«ãããšããè©±é¡ ãåºãŠãã ã
ãçµ±äžãã¹ã©ãã·ã¥æ§æãããåä»ããããã®ã¯ã·ã§ã«æ§æãšãã«ãå®çŸ©æ§æãçµ±äžããããã ããã®ãããã·ã§ã«ã®æ§æ§æã廿¢å§åãããªãã°ãskip in publish
ã scalacOptions in (Compile, console)
ãšãããµãã« in
ãäœ¿ãæ§ build.sbt
æ§æãåæã«å»æ¢å§åãããšããã®ã¯çã«ããªã£ãŠããã
build.sbt
ãçµ±äžã¹ã©ãã·ã¥æ§æãžãšå€æãã syntactic Scalafix rule ãã¡ãã¡ãã£ãšäœã£ãã®ã§ããã§ç޹ä»ãã - https://gist.github.com/eed3si9n/57e83f5330592d968ce49f0d5030d4d5
çšæ³
ãããžã§ã¯ãã git ã§ç®¡çããããããã¯ã¢ãããåãããšã
$ cs install scalafix
$ export PATH= " $PATH: $HOME/Library/Application Support/Coursier/bin"
$ scalafix --rules= https://gist.githubusercontent.com/eed3si9n/57e83f5330592d968ce49f0d5030d4d5/raw/7f576f16a90e432baa49911c9a66204c354947bb/Sbt0_13BuildSyntax.scala *.sbt project/*.scala
å®å
šã«ã¯æ£ç¢ºãããªãããæåã§å
šéšããããã¯ãã·ã ãšæãã
2021-02-06
/ git
git bisect ã¯ãã°ã®å
¥ã£ãå Žæãç¹å®ããã®ã«æçšãªãã¯ããã¯ã ã ç¹ã« scala/scala ã®å Žåã¯ãbisect.sh
ã¯ãã«ãæžã¿ã®ã³ã³ãã€ã©ã Scala CI Artifactory ããå©çšããããšã§æéãç¯çŽã§ããã
2020-12-14
/ scala
Rob wrote :
I want to tell sbt “this specific version breaks binary compatibility, so don’t resolve it via eviction, fail the build instead.” How do I do this? Complete answers only, I’m done trying to figure it out by following clues.
sbt ã«ããã®ç¹å®ã®ããŒãžã§ã³ã¯ãã€ããªäºææ§ãå£ãããããŒãžã§ã³ã®è§£æ±ºãããªãã§ãã«ãã倱æããŠããšèšããããããã¯ã©ããããã ããã? ãã³ãã远ãã®ã«ç²ããã®ã§ãå®å
šãªåçã®ã¿åéã
ãããè¡ãå°ã㪠sbt ãã©ã°ã€ã³ sbt-strict-update ãæžããã
project/plugins.sbt
ã«ä»¥äžã远å :
addSbtPlugin( "com.eed3si9n" % "sbt-strict-update" % "0.1.0" )
ãã㊠build.sbt
ã«ãããæžã:
ThisBuild / libraryDependencySchemes += "org.typelevel" %% "cats-effect" % "early-semver"
ããã ãã ã
ThisBuild / scalaVersion : = "2.13.3"
ThisBuild / libraryDependencySchemes += "org.typelevel" %% "cats-effect" % "early-semver"
lazy val root = ( project in file( "." ))
. settings(
name : = "demo" ,
libraryDependencies ++= List (
"org.http4s" %% "http4s-blaze-server" % "0.21.11" ,
"org.typelevel" %% "cats-effect" % "3.0-8096649" ,
),
)
ãã Rob ãããäžã®ãã«ãã compile
ããããšãããšä»¥äžã®ããã«å€±æããã¯ãã :
2020-12-01
/ sbt
æ¬çš¿ã¯åã«æžããTravis-CI ããã® sbt ãã©ã°ã€ã³ã®èªåå
¬é ã® GitHub Actions çã ã
Ãlaf ããã® olafurpg/sbt-ci-release ã䜿ã£ãŠ sbt ãã©ã°ã€ã³ã®ãªãªãŒã¹ãèªååããŠã¿ããsbt-ci-release ã® README 㯠Sonatype OSS åãã®æ®éã®ã©ã€ãã©ãªã®ãªãªãŒã¹ãåæã«æžãããŠãããsbt ãã©ã°ã€ã³ã®ãªãªãŒã¹ã«å¿
èŠãªå·®å以å€ã®è©³çŽ°ã¯ README ãåç
§ããŠã»ããã
ãªãªãŒã¹ãèªååããããšãã®ãã®ããã¹ãã»ãã©ã¯ãã£ã¹ã ããsbt ãã©ã°ã€ã³ã®ãªãªãŒã¹ã«é¢é£ããŠç¹ã«å¬ããããšãããããã®æ¹æ³ã䜿ãããšã§ Bintray ã® sbt organization ã«ãŠãŒã¶ãŒã远å ããã«ãè€æ°äººã§ sbt ãã©ã°ã€ã³ã®ãªãªãŒã¹æš©éãå
±æããããšãå¯èœãšãªããããã¯ä»äºã§ã¡ã³ãããŠãããã©ã°ã€ã³ããããšãã«äŸ¿å©ã ã
step 1: sbt-ci-release
sbt-release ã䜿ã£ãŠããå Žåã¯åé€ãããsbt-ci-release ã远å ããã
addSbtPlugin( "org.foundweekends" %% "sbt-bintray" % "0.6.1" )
addSbtPlugin( "com.geirsson" % "sbt-ci-release" % "1.5.4" )
addSbtPlugin( "com.jsuereth" % "sbt-pgp" % "2.1.1" ) // for gpg 2
version.sbt
ãåé€ããã
step 2: -SNAPSHOT version
sbt-dynver ãå€å°æããŠãã¿ã°ã®ä»ããŠããªãã³ãããã§ -SNAPSHOT ããŒãžã§ã³ã䜿ããããã«ãã:
ThisBuild / dynverSonatypeSnapshots : = true
ThisBuild / version : = {
val orig = ( ThisBuild / version). value
if ( orig. endsWith( "-SNAPSHOT" )) "2.2.0-SNAPSHOT"
else orig
}
step 3: sbt-bintray ã»ããã£ã³ã°ã埩掻ããã
ãã©ã°ã€ã³ã¯éåžž sbt-bintray ã䜿ã£ãŠãªãªãŒã¹ããã®ã§ãpublishTo
ã bintray / publishTo
ã«æ»ããpublishMavenStyle
ã false
ã«ããã
2020-11-29
/ scala
æ¬çš¿ã¯ 2018幎12æã« 4.0.0-RC2 ãšå
±ã«ååºããã2020幎11æã«ãªãªãŒã¹ãã 4.0.0 ã§ã®å€æŽãåæ ããŠæŽæ°ããŠããã
æè¿ scopt 4.0 ãæžããŠããããã£ãã¡ãªäººã¯ readme ã«é£ãã§ã»ããã
4.0.0 ã詊ãã«ã¯ä»¥äžã build.sbt ã«æžã:
libraryDependencies += "com.github.scopt" %% "scopt" % "4.0.0"
scopt 4.0.0 ã¯ä»¥äžã®ãã«ããããªãã¯ã¹ã«å¯ŸããŠã¯ãã¹ãããªãã·ã¥ãããŠãã:
Scala
JVM
JS (1.x)
JS (0.6.x)
Native (0.4.0-M2)
Native (0.3.x)
3.0.0-M2
â
â
n/a
n/a
n/a
3.0.0-M1
â
â
n/a
n/a
n/a
2.13.x
â
â
â
n/a
n/a
2.12.x
â
â
â
n/a
n/a
2.11.x
â
â
â
â
â
scopt ã¯ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãããŒã¹ããããã®å°ããªã©ã€ãã©ãªã ã2008幎㫠aaronharnly/scala-options ãšããŠå§ãŸããåœå㯠Ruby ã® OptionParser ãç·©ãã«ããŒã¹ã«ãããã®ã ã£ããscopt 2 ã§ immutable parsing ãå°å
¥ããŠãscopt 3 ã§ã¯ Read
åã¯ã©ã¹ã䜿ã£ãŠã¡ãœããæ°ã倧å¹
ã«æžããããšãã§ããã
2020-10-25
/ sbt
sbt ãš Zinc 1.4.x ç³»åã§åãæéãšåããããã®ã¯ãããããã¡ã€ã«ã®ä»®æ³åãšã¿ã€ã ã¹ã¿ã³ããæãåºãããšã ããã®çµã¿åããã«ãããã·ã³ç¹å®æ§ãšæãã Zinc ã®ç¶æ
ãè§£æŸããããšãã§ããScala ã®ããã®å·®åãªã¢ãŒããã£ãã·ã¥ãæ§ç¯ããããã®ç€ãšãªããããã«é¢ããŠsbt ã§ã®ã³ã³ãã€ã«ãã£ãã·ã¥ ãæžãããããã¯ãã®ç¶ç·šãšãªãã
sbt 1.4.x ãåºãã®ã§ããã®æ©èœãå®éã«äœ¿ã£ãŠã¿ãããšããæ°éãäžéšé«ãŸã£ãŠããã
ãªã¢ãŒããã£ãã·ã¥ãµãŒããŒ
ãªã¢ãŒããã£ãã·ã¥ãéçšããã«ã¯ããªã¢ãŒããã£ãã·ã¥ãµãŒããŒãå¿
èŠãšãªããåæã®ããŒã«ã¢ãŠãã§ã¯ã远å ã§ãµãŒããŒãçšæããã«ç°¡åã«è©Šããããã« Maven ãªããžã㪠(MavenCache("local-cache", file("/tmp/remote-cache"))
ãå«ã) ãšäºæãæãããããã«ãããæ¬¡ã®ã¹ãããã¯ãã®ãªã¢ãŒããã£ãã·ã¥ããã·ã³éã§å
±æããããšã ã
ãšãããã JFrog Bintray 㯠Maven ãªããžããªãšããŠæ¯ãèãããšãã§ãããšããæå³ã§è¯ããã£ãããªããããªãããšæããBintray ã« publish ãè¡ãã«ã¯ RESTful API ãçµç±ããå¿
èŠããã£ãŠããã㯠sbt-bintray ãã«ãã»ã«åããŠããã
ã¡ãªã¿ã« Bazel 㯠HTTP ãããã³ã«ã gRPC ãçšãããªã¢ãŒããã£ãã·ã¥ã®ãµããŒããæäŸãããã㯠Nginxãbazel-remoteãGoogle Cloud Storageããã®ä» HTTP ã話ããã¢ããªãäœã§ãå®è£
ã§ãããã©ã€ãã©ãªäŸåæ§ãšéã£ãŠç¹ã« resolve ããå¿
èŠãç¡ãã®ã§å°æ¥çã«ã¯ãã®ãããªæ¹åã«ç§»è¡ããã®ãè¯ããšæãã
sbt-bintray-remote-cache
ä»ãããªã¢ãŒããã£ãã·ã¥ã䜿ã£ãŠã¿ãããšãã人ã®ããã«ãsbt-bintray ã®ã¹ãã³ãªããšã㊠sbt-bintray-remote-cache ãšãããã©ã°ã€ã³ãäœã£ãã
䜿ãã«ã¯ä»¥äžã project/plugins.sbt
ã«è¿œå ãã:
addSbtPlugin( "org.foundweekends" % "sbt-bintray-remote-cache" % "0.6.1" )
Bintray ãªããšããã±ãŒãž
次ã«ãhttps://bintray.com/<your_bintray_user>/
ã«è¡ã£ãŠãæ°ãã Generic ãªãªããžããªã remote-cache
ãšããååã§äœããéåžžã®ã¢ãŒãã£ãã¡ã¯ããšãã£ãã·ã¥ãæ··ãããªãããã«ããããã«ãããã¯å€§åãªã¹ãããã ã
ãããããremote-cache ãªããžããªå
ã«ããã±ãŒãžãäœããåºæ¬çã«ã¯ 1ã€ã®ãã«ãã«å¯Ÿã㊠1ã€ã®ããã±ãŒãžãäœãã
èªèšŒæ
å ±
ãªã¢ãŒããã£ãã·ã¥ã« push ããã«ã¯ãBintray ã®èªèšŒæ
å ± (ãŠãŒã¶åãš API key) ãèªèšŒãã¡ã€ã«ãããã¯ç°å¢å€æ°ã«ãŠæž¡ãå¿
èŠããããããŒã«ã«ã§ã¯ sbt-bintray ãšåãèªèšŒãã¡ã€ã«ã䜿ãããšãã§ãã ($HOME/.bintray/.credentials
)ãCI ãã·ãŒã³ã§ã¯ sbt-bintray ãšç°ãªã ç°å¢å€æ°ã䜿ã:
2020-10-19
sbt 1.4.1 ããããªãªãŒã¹ãã¢ããŠã³ã¹ããããªãªãŒã¹ããŒãã®å®å
šçã¯ããã«ãã - https://github.com/sbt/sbt/releases/tag/v1.4.1
ã¢ããã°ã¬ãŒãæ¹æ³
å
¬åŒ sbt ã©ã³ãã£ãŒ ã SDKMAN ã https://www.scala-sbt.org/download.html ããããŠã³ããŒãããŠããããã®ã€ã³ã¹ããŒã©ãŒã«ã¯ sbtn
ã®ãã€ããªãå«ãŸããŠããã
次ã«ã䜿ããããã«ãã® project/build.properties
ãã¡ã€ã«ã«ä»¥äžã®ããã«æžã:
ãã®æ©æ§ã«ãã£ãŠäœ¿ããããã«ãã«ã ã sbt 1.4.1 ã䜿ããããã«ãªã£ãŠããã
äž»ãªå€æŽç¹
@eatkins ããã«ãã read line ãšãæååŠçãŸããã®æ§ã
ãªå€æŽãäŸãã°ãsbt new
ã§æåããšã³ãŒãããŠããªãåé¡ãªã©ã
Scala.JS ã§ã® Scala 2.13-3.0 ãµã³ãã€ããã®ä¿®æ£ #5984 by @xuwei-k
shellPrompt
ãšã release*
ããŒãªã© build lint æã®èŠåã®ä¿®æ£ #5983 /#5991 by @xirc and @eed3si9n
plugins
ã³ãã³ãã®åºåããµããããžã§ã¯ãã§åããããã«ããæ¹å #5932 by @aaabramov
ãã®ä»ã¯ https://github.com/sbt/sbt/releases/tag/v1.4.1 ãåç
§
åå
sbt 1.4.1 㯠9åã®ã³ã³ããªãã¥ãŒã¿ãŒã«ããäœãããã Ethan Atkins, Eugene Yokota (eed3si9n), Adrien Piquerez, Kenji Yoshida (xuwei-k), Nader Ghanbari, Taichi Yamakawa, Andrii Abramov, Guillaume Martres, Regis Desgroppesããã®å ŽããåãããŠã³ã³ããªãã¥ãŒã¿ãŒã®çããã«ã瀌ãèšãããããŸãããããã®ã³ã³ããªã®ããã€ã㯠ScalaMatsuri 2020 äžã®ããã«ãœã³ ã«ãŠè¡ãããã
2020-10-19
/ scala
æ¬çš¿ã¯ ScalaMatsuri Day 2 ã¢ã³ã«ã³ãã¡ã¬ã³ã¹ã§ OSS ããã«ãœã³ãä»®æ³åããããšã®ã¬ããŒãã ã誰ããã¢ã³ã«ã³ãã¡ã¬ã³ã¹ã®ãããã¯ãšããŠææ¡ããããããåã¯æäŒã§ãã¡ã·ãªããŒã¿ãŒãšããŠç³ãåºãã ããªã®ã§äºåæºåã¯ç¹ã«ç¡ããå
ã
㯠4æé (JST æ£å - 4pmãEDT 11pm - 3am) ã§æ ãããã£ãããããŸãåã£ãã®ã§ã³ãŒããŒãã¬ã€ã¯ã®åŸãæ°æéç¶ããã
ã¢ã³ã«ã³ãã¡ã¬ã³ã¹ããããšãã«ãã€ã匷調ããŠãã®ã¯ãäºæ¬è¶³ã®æ³åãã§:
ãã€ã§ãèªåã«ãšã£ãŠãã®å Žããã®ãåŠã³ããèªåããå Žãžã®ãè²¢ç®ããç¡ããªãšæããå Žå: èªåã®äºæ¬è¶³ã䜿ã£ãŠå¥ã®å Žãžç§»åããããš
ãªã³ã©ã€ã³ã®ã¢ã³ã«ã³ãã¡ã¬ã³ã¹ã§ãè€æ°ã®ã»ãã·ã§ã³ãè¡ãããŠããã®ã§å¥ã®ããŒã¯ãèŠãããã«æãããéäžããåå ããããšã¯èªç±ã§ããããšãäºåã«äŒããã
䜿ã£ããã®
Zoom Meeting
Discord
Google Docs
äž»ãªã³ãã¥ãã±ãŒã·ã§ã³ã¯ ScalaMatsuri ãçšæããŠãã Zoom Meeting ã䜿ã£ããããã§ç°ãªãåå è
ãèªåã®ç»é¢ãå
±æããã質åããããã§ãããæœåšçãªåé¡ãšããŠã¯ãå
šå¡ãä»ã®äººå
šå¡ãèãããç¶æ
ã«ãªãã®ã§ãè€æ°ã®ã°ã«ãŒããåæã«ãã¢ããã°ã©ã ãããããšãã£ãç¶æ³ã«ã¯åããªãã
ããã¹ãããŒã¹ã®ã³ãã¥ãã±ãŒã·ã§ã³ãšããŠã¯ Discord ã䜿ã£ããDiscord ã¯ãªã³ã¯ãå
±æãããã質åããããã«ã䜿ããåãã¡ã¯ãããªãã£ãããDiscord ã®ãã€ã¹ãã£ã³ãã«ã䜿ã£ãŠç»é¢ã®å
±æ ãå¯èœãªã®ã§ãããžã§ã¯ãæ¯ã«ãã€ã¹ãã£ã³ãã«åããããšããäœ¿ãæ¹ãã§ãããšæãã
ãããžã§ã¯ããš GitHub issue ã®åæãã©ã®äœæ¥ããããã®ãã®ãµã€ã³ã¢ããã«ã¯ Google Doc äžæã䜿ã£ãã
æµã
ã¡ã³ã¿ãŒãã§ãããããžã§ã¯ãã¡ã³ããã®äººãåå ããŠãããèã
ãããžã§ã¯ãã¡ã³ããã¯ä»ã®äººãæãä»ãããã good first 㪠GitHub issue ã Google doc ã«æžããŠãZoom ã§ãã®ç°¡åãªèª¬æãããã
åå è
㯠issue ã®é£ã«èªåã®ååãæžããŠãµã€ã³ã¢ãããã (ãã¢ã§äžã€ã® issue ã«åãçµãããšãå¯)
ãããžã§ã¯ãã¡ã³ããã¯åäœãã¹ããšçµ±åãã¹ã (scala/scala ã ãš partestãsbt/sbt ã ãš scripted) ã®èµ°ããæ¹ã解説
èªåãå
±åäœæ¥ããå Žåã¯ãããžã§ã¯ãã¡ã³ããã¯ãã£ãšãã£ã¬ã³ãžã³ã°ãªã¿ã¹ã¯ãææ¡ããŠããã
人ã®åºå
¥ããããã®ã§ãäžèšããªããŒã
åºæ¬çã«ã¯ãã¥ãŒãããŠããã¯
ãã¡ã·ãªããŒã¿ãŒã¯ãçãäœæ¥ãããã®ããããã©ããã®ç¢ºèªã宿çã«è¡ã
誰ããã¿ã¹ã¯ãå®äºãããæåã§ã倱æã§ã Zoom ã§è»œãçºè¡šããã(åå è
ãå€ãå Žåã¯ããã¯1æ¥ã®æåŸã«ãã£ãŠããã)
scala/scala
Scala ã®ã³ã³ãã€ã©ãæšæºã©ã€ãã©ãªãéçºããã scala/scala ã«ã³ã³ããªãã¥ãŒãã«èå³ããã人ãå€ãã£ããæãããªãã°ä¿®æ£ãããªãå Žå㯠scala/scala ãžã®ãã«ãªã¯ã¯æ°ã¶ææŸçœ®ããããããå¯èœæ§ãããæšãæ³šæããã
2020-10-18
/ scala
ScalaMatsuri 2020 ã§ ‘èªç±ãå¹³çãããã¯ã¹åãããããªããã£ãå’ ãšããããŒã¯ã§ç»å£ããŸããã
2020-08-24
/ sbt
sbt-projectmatrix 㯠sbt ã®ã¯ãã¹ãã«ããæ¹åããããã«ãåãå®éšãšããŠäœã£ãŠãããã©ã°ã€ã³ã§ãæ¬çš¿ã¯ç¬¬1å ã第2å ã第3å ã«ç¶ã第4匟ã ã0.6.0 ããªãªãŒã¹ããã®ã§ããã§ç޹ä»ããã
ãããã: è€æ°ã® Scala ããŒãžã§ã³ã«å¯Ÿãããã«ã
sbt-projectmatrix ããã«ãã«è¿œå åŸã以äžã®ããã«ã㊠2ã€ã® Scala ããŒãžã§ã³ã䜿ã£ããããªãã¯ã¹ãã»ããã¢ããããã
ThisBuild / organization : = "com.example"
ThisBuild / scalaVersion : = "2.12.10"
ThisBuild / version : = "0.1.0-SNAPSHOT"
lazy val core = ( projectMatrix in file( "core" ))
. settings(
name : = "core"
)
. jvmPlatform( scalaVersions = Seq ( "2.12.12" , "2.13.3" ))
ããã¯ããããã® scalaVersion
ã«ãµããããžã§ã¯ããäœãã ++
ã¹ã¿ã€ã«ã®ã¹ããŒããã«ãªã¯ãã¹ãã«ããšéã£ãŠãããã¯äžŠåã«ãã«ããããããã¯å€ãã£ãŠããªãã
ååã§ã¯ %
ã䜿ã£ãŠäŸåæ§ãã¹ã³ãŒãä»ãã§ããããšã玹ä»ããã
0.6.0 ã§ã®æ°æ©èœ: ããã·ã³ãã«ãªãããžã§ã¯ãID
JVM2_13
ãšãããµãã£ãã¯ã¹ã远å ãã代ããã«ãsbt-projectmatrix 0.6.0 ãã JVM
軞㚠2_13
軞ã¯ããã©ã«ããšããŠãcoreJVM2_13
ã§ãªã¯ãæ®éã« core
ãšã util
ãšããååã®ãµããããžã§ã¯ããçæããããšã«ããã
0.6.0 ã§ã®æ°æ©èœ: 2.13-3.0 ãµã³ãã€ããã®ãµããŒã
Scala 3.0 ã¯çµã¿èŸŒã¿ã§ Scala 2.13.x ã«å¯Ÿããã€ã³ã¿ãŒãªãã©ããªãã£ãæã¡ã2.13.x ãã©ã³ãã§ãæè¿ã«ãªã£ãŠ TASTy reader ãšãã Scala 3.0 ã€ã³ã¿ãŒãªãã©ããªãã£æ©èœã远å ãããã詳现ã¯çããšããŠããããçšã㊠1ã€ã®ãµããããžã§ã¯ã㯠Dotty å¥ã®ãµããããžã§ã¯ã㯠2.13 ã䜿ããšãã£ãããšãå¯èœãšãªãã