Commit Graph

239 Commits

Author SHA1 Message Date
Eugene Yokota 28331a7444 Remove Mapper alias 2024-12-16 00:31:07 -05:00
João Ferreira a2b046e0c3 translate mapper to use VirtualFile 2024-12-15 21:55:56 -05:00
João Ferreira 4a588c3fe9 Path.directory scripted test 2024-12-15 21:55:56 -05:00
Eugene Yokota 9c124d0b10 Update to Scala 3.6.2 2024-12-10 23:45:01 -05:00
Eugene Yokota c4aebf5744 feat: Support glob expressions in scripted
**Problem**
It's currently not easy to write a scripted test that works on
both sbt 1.x and 2.x when you want to write exists test under target.

**Solution**
Since we can only use the file system (and not evaluate Scala version etc)
1. this implements glob expression support in `exists`, `absent`, and `delete`.
2. this also introduces `||` operator that would mean a or b.
2024-12-08 23:40:27 -05:00
Eugene Yokota 11b0231b17 url returns java.net.URI 2024-12-05 01:16:04 -05:00
Eugene Yokota 8bf9ecaba3 Add conversion for backward compatibility 2024-12-05 01:00:06 -05:00
Matthew de Detrich eea840be2c Replace tuple with proper record type for licenses 2024-12-05 00:56:39 -05:00
Eugene Yokota ac4ba55e9e fix: Fix root project detection
**Problem**
Whether a subproject is root or not is currently detected by
comparing getCanonicalFile against the build base directory.
Problem is that often the root project uses "." as the directory,
and getting the canonical file works ok for the current build,
but it breaks when loading `ProjectRef`.
There might be other bugs related to the root project detection.

**Solution**
This factors out `isRootPath` function that's aware of the build base.

This PR adds the repro test prepared by xuwei-k.
2024-12-02 03:15:35 -05:00
Eugene Yokota 4e3fbcced9 Refactor ScopeAxis to use enum 2024-11-24 23:10:18 -05:00
Eugene Yokota 56377274b7 fix: Fix Scala 3.x - 2.12 sandwich for matrix
Problem
Currently Scala 3.x - 2.13 sandwich doesn't seem to work for projectMatrix.
This is due to isScala2Scala3Sandwich checking for "3." while projectMatrix
uses scalaBinaryVersion, which is 3.

Solution
This consolidates the implementation of isScala2Scala3Sandwich with the one
in Defaults module, and check for both "3" and "3."
2024-11-23 04:05:28 -05:00
xuwei-k f11d9d76f0 remove more implicit. use given and using 2024-11-18 14:39:00 +09:00
xuwei-k c5b7038f3a use `given` instead of `implicit val` 2024-11-17 17:35:23 +09:00
xuwei-k 4da8d942ce use extension instead of implicit 2024-11-17 07:38:40 +09:00
Eugene Yokota d1b6609a33 Mark tests pending 2024-11-14 23:37:30 -05:00
Eugene Yokota 29c77f6f5f Merge branch 'develop' into wip/scalainstance 2024-11-14 22:02:10 -05:00
Eugene Yokota 5329029768 Mark jvm-sandwich pending 2024-11-14 22:01:30 -05:00
Adrien Piquerez f4f185a1c1 Settings as a Map[ScopedKey[x], x]
Settings0 used to be a Map[Scope, AttributeMap], and is now a
Map[ScopedKey[x], x].
This is better because we don't need to decompose all ScopedKey[x]
into a Scope and an AttributeKey[x], for recomposing it back later,
which duplicates all ScopedKey[x]. It reduces the number of long-living
ScopedKey[x] by 8%, and the total number of instances by 1.4%.

Also it improves the performance of Settings0, which was responsible of
2.95% of the total CPU time, and is now responsible of 0.41%.
2024-11-13 12:25:31 +01:00
Eugene Yokota 258a831b03 Use ScalaInstance from update
**Problem**
doc task currently doesn't work.

**Solution**
For now turn off the optimized ScalaInstance
2024-11-12 03:44:52 -05:00
Adrien Piquerez 9382fc99b7 Use caching in Project.transform 2024-11-04 10:43:42 +01:00
eugene yokota ccb5e11be9
Merge pull request #7800 from Friendseeker/bump-sbt-sbt-io
[2.x] Bump sbt to 1.10.3 and sbt-io to 1.10.1
2024-10-21 21:42:03 -04:00
eugene yokota 32464d382c
Merge pull request #7797 from Friendseeker/bump-scala-2
[2.x] Bump Scala 2.12 to 2.12.20
2024-10-21 21:41:28 -04:00
xuwei-k 026f78d056 delete useJCenter settingKey 2024-10-22 09:00:05 +09:00
Friendseeker 95d5aa7c4c Bump sbt & sbt-io version 2024-10-21 16:38:30 -07:00
Friendseeker 0b77171f31 Bump to Scala 2.12.20 in test files 2024-10-21 16:06:51 -07:00
Friendseeker dd16c9b0db Bump Scala 2 to 2.19.20 2024-10-21 15:11:52 -07:00
friendseeker e0d9493a93
Bump CI to JDK 21 2024-10-19 21:08:20 -07:00
xuwei-k b3336b2ce2 fix type error if too many `.value` 2024-10-17 10:35:16 +09:00
xuwei-k 6372c2056a fix old `in` syntax 2024-10-15 14:54:52 +09:00
Adrien Piquerez c82f13c2db Fix csrCacheDirectory and add test 2024-10-14 15:35:14 +02:00
adpi2 6d6cbce465
Merge pull request #7739 from adpi2/2.x-lm-coursier
[2.x] Merge librarymanagement and sbt-coursier
2024-10-11 16:14:17 +02:00
Adrien Piquerez a90bdcf703 Fix dependency-management/cache-update 2024-10-11 14:32:32 +02:00
Adrien Piquerez 149aa09315 Fix lm-coursier scripted 2024-10-11 14:30:55 +02:00
Adrien Piquerez 6d3fcb495d Move lm-coursier scripted to sbt-app 2024-10-11 14:30:55 +02:00
Eugene Yokota 65bc3d9722 fix: Resurrect or for tasks
**Problem**
1. `or` is missing
2. `?` should have English method name

**Solution**
1. This resurrects `or`
2. Name `??` as `option`, since `get` is taken
2024-10-10 02:39:52 -04:00
Adrien Piquerez eaf604f14d Clean lm-coursier scripted 2024-10-09 14:39:42 +02:00
xuwei-k cfb9ffea95 remove deprecated `[this]` qualifier
https://docs.scala-lang.org/scala3/reference/dropped-features/this-qualifier.html
2024-10-03 21:16:48 +09:00
eugene yokota eb5c3cfccf
[2.x] refactor: Remove useCoursier setting (drop Ivy) (#7712)
**Problem**
It's been a while since Coursier has been the default library management engine,
and we don't need to support two.

**Solution**
This removes `useCoursier` setting.
2024-10-02 14:33:54 -04:00
eugene yokota 59099cb3af Merge branch 'develop' into wip/query 2024-10-02 01:44:19 -04:00
eugene yokota 3c645bbeeb
Merge pull request #7688 from eed3si9n/wip/non-blocking-run
[2.x] feat: Non-blocking run
2024-10-01 16:47:26 -04:00
Eugene Yokota 5684a842c3 refactor: Remove sbt 0.13 `in` methods
**Problem**
See https://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html#Migrating+to+slash+syntax

We should remove `scalacOptions in (Compile, console)` notation. This was deprecated in https://eed3si9n.com/sbt-1.5.0.

**Solution**
This renames `in` to `rescope` for internal usage, and ports the usages to slash.
2024-09-28 19:19:58 -04:00
Eugene Yokota 89517c642c Merge branch 'develop' into wip/query 2024-09-28 18:55:15 -04:00
Eugene Yokota a6b4cfef12 refactor: Remove old sbt 0.13 shell syntax 2024-09-28 13:51:14 -04:00
adpi2 aa280837c0
Merge branch 'develop' into wip/cross-building 2024-09-26 14:15:05 +02:00
adpi2 1a4cdf4862
Merge pull request #7697 from adpi2/2.x-source-compat
[2.x] Improve backward source compat
2024-09-26 09:28:26 +02:00
Eugene Yokota e61ae80088 feat: queriable slash syntax (sbt query)
**Problem**
We want a more flexible way of aggregating subprojects.

**Solution**
This implements a subproject filtering as a replacement of
the subproject axis in the act command.
2024-09-26 01:20:44 -04:00
Adrien Piquerez 0728a5b5ad Add default imports 2024-09-25 16:43:45 +02:00
Adrien Piquerez eda3a87e76 Resolve conflict between BuildSyntax.dependsOn and Scoped.dependsOn 2024-09-25 16:43:45 +02:00
Eugene Yokota 01d5f9c050 feat: plugin cross building as Scala cross building
**Problem**
Since Scala cross building works better than the plugin cross building `^^`,
it was common for plugin authors to encode plugin cross building as Scala cross building
given that we usually have zero or one sbt release in one Scala version.

**Solution**
This brings in the setting into SbtPlugin so plugin authors can cross build
using sbt 2.x.
2024-09-22 17:25:08 -04:00
Eugene Yokota 354dd25988 fix: Fix common settings loading when root is synthetic
**Problem**
The new common settings feature doesn't work when the root isn't created by the user.

**Solution**
This fixes common settings by calling `expandCommonSettingsPerBase(...)` on
the synthetic root's base first.
2024-09-22 16:51:10 -04:00