Commit Graph

3668 Commits

Author SHA1 Message Date
Eugene Yokota 5df3843410 fix: Fixes reload
**Problem**
Plugins go missing after reload.

**Solution**
We need to stop caching the classpaths apparently.
2025-08-10 04:58:53 -04:00
eugene yokota d7d2a6f0d4
Merge pull request #8199 from eed3si9n/wip/dependency-tree
[2.x] refactor: Unify to dependencyTree
2025-08-10 01:24:05 -04:00
Eugene Yokota (eed3si9n) 61fe604519 refactor: Unify to dependency-tree
**Problem**
While sbt-dependency-graph is useful, not just for the basic ASCII graph,
but for DOT file generation etc, it adds a large number of settings and
tasks for combination of formats and actions to the point that
we actually disable most of them by default.

**Solution*
I've had an idea for a while that dependencyTree can be implemented
as a inputTask that accepts its own subcommands and options,
and this implements that.

For example, to open the browser that hosts a DOT file, now you can write
    dependencyTree dot --browse
2025-08-10 00:37:16 -04:00
Eugene Yokota 7d00a2c51d Merge branch '1.11.x' into wip/merge-1.11.x 2025-08-09 13:47:36 -04:00
Eugene Yokota 9e37218dcf refactor: Hide Ivy-related classes
Move Ivy-related classes to internal.
Promote IvyPaths and Credentials to core.
2025-08-09 01:52:45 -04:00
Eugene Yokota 42010a317e Flip testForkedParallel to true 2025-08-08 02:06:36 -04:00
Eugene Yokota 699c970065 Fix sonaUploadRequestTimeout
**Problem/Solution**
sonaUploadRequestTimeout should be a global key.
2025-08-04 04:28:53 -04:00
Eugene Yokota ac57fb083e Remove IntegrationTest 2025-08-03 19:50:33 -04:00
Eugene Yokota b1a3ef3743 Merge branch '1.11.x' into wip/merge-1.11.x 2025-08-02 23:13:41 -04:00
Eugene Yokota c8737b8e4f refactor: Change the test type
**Problem**
test task is typed to unit.
To distinguish test from any other tasks, we want to actually type this to something.

**Solution**
Forward TestResult to the test task.
2025-08-02 18:12:20 -04:00
Jules Ivanic 8c0010a086
Review: the new configurable request timeout value should be `10.minutes` and should only be used for upload 2025-07-04 16:40:52 +04:00
Eugene Yokota b247e2620f Reimplement test agent as a worker command
This sends JSON-RPC over stdin as opposed to using ObjectStream over socket.
2025-07-04 01:28:56 -04:00
Jules Ivanic 084ca08f34
Allow users to configure the timeout when publishing to the Maven Central repo 2025-07-02 13:53:50 +04:00
Eugene Yokota 6a7b56a645 Default to cached task
This flips the default `:=` operation to the cached task.
To opt out of the cache, use `Def.uncached(...)` or
mark the key with `@cacheLevel(include = Array.empty)`
2025-06-21 08:54:51 +09:00
Dmitrii Naumenko c3925c85ef fix: do not treat values "1.x" of "pluginCrossBuild/sbtBinaryVersion" as sbt 2 (fixes #8166)
As a consequence, this fixes artifact name contraction for maven style and thus fixes publishing to Sonatype when a cross-built sbt version is different from 1.0
2025-06-19 14:24:36 +02:00
Eugene Yokota 41a9e3b952 fport: Add Resolver.sonatypeCentralRepo 2025-06-08 02:08:54 -04:00
Eugene Yokota 009efd6422 update to lm 1.11.2 and deprecate sonatypeOssSnapshots 2025-06-07 03:00:43 -04:00
Eugene Yokota 2036ce6836 fix: Default sbtPluginPublishLegacyMavenStyle to false
**Problem**
Central Portal no longer supports the legacy sbt plugin layout.

**Solution**
Make the default more friendly by setting sbtPluginPublishLegacyMavenStyle to false.
2025-06-01 22:43:43 -04:00
Roberto Tyley d97373454f
Add `sonaDeploymentName` to `excludeLintKeys`
sbt added the `sonaDeploymentName` key with https://github.com/sbt/sbt/pull/8126, released with https://github.com/sbt/sbt/releases/tag/v1.11.0 - in use, this seems to be getting lint warnings (as introduced by https://github.com/sbt/sbt/pull/5153):

```
[warn] there's a key that's not used by any other settings/tasks:
[warn]  
[warn] * scala-collection-plus / sonaDeploymentName
[warn]   +- /home/runner/work/scala-collection-plus/scala-collection-plus/build.sbt:3
[warn]  
[warn] note: a setting might still be used by a command; to exclude a key from this `lintUnused` check
[warn] either append it to `Global / excludeLintKeys` or call .withRank(KeyRanks.Invisible) on the key
```

https://github.com/rtyley/scala-collection-plus/actions/runs/15326291872/job/43121748535#step:6:19

...https://github.com/sbt/sbt/pull/5153 does say that "notable exceptions are settings used exclusively by a command" - I _think_ that maybe `sonaDeploymentName` is only used by the commands `sonaRelease` & `sonaUpload`, so it's necessary to add it to `excludeLintKeys`?
2025-05-29 16:18:28 +01:00
Eugene Yokota 4521f43995 Support debug output for macros
It's sometimes useful to get the output of the macro-generated code.
This adds a mechanism to allow plugins.sbt to pass in scalacOptions,
which we can later check from the macro.

1. -Xmacro-settings:sbt:Vprint prints out the code.
2. Adding -Xmacro-settings:sbt:print-tree-structure prints out the tree structure.
2025-05-27 00:58:41 -04:00
Eugene Yokota e023c2dc64 Merge branch '1.11.x' into wip/merge-1.11.x 2025-05-25 17:20:48 -04:00
Eugene Yokota eaf12caaa3 lm 1.11.0 2025-05-24 01:53:48 -04:00
Eugene Yokota 9e7a0fa136 fail on sonaRelease if the version is SNAPSHOT 2025-05-21 00:26:51 -04:00
Eugene Yokota 929b0bf525 fix: Fix Sonatype publishing
**Problem**
1. query string wasn't passed in, so sonaRelease wasn't working
2. deployment name should be human readable

**Solution**
This fixes the query string passing by hand-crafting the URL.

This also generates human readable deployment name.
2025-05-18 15:25:27 -04:00
Eugene Yokota 341cd9cf24 sonaBundle shouldn't aggregate 2025-05-15 22:33:43 -04:00
Eugene Yokota dc235777fe Implement environment variable support 2025-05-15 22:25:28 -04:00
Eugene Yokota d8813bc506 Sonatype Publish Portal support
**Problem**
Sonatype is sunsetting HTTP Rest endpoint OSSRH in June 2025.

**Solution**
This implements a built-in publishing mechanism.
Kudos to David Doyle who has spearheaded Sonatype Central support via sonatype-central-client etc.
2025-05-15 03:27:54 -04:00
Eugene Yokota 1795b797bf Merge branch '1.10.x' into wip/merge-1.10.x 2025-05-12 03:30:51 -04:00
Eugene Yokota 3b4547718e Remove deprecated methods 2025-05-11 05:23:41 -04:00
Eugene Yokota 967ecb49bc deps: Scala 3.7.0 2025-05-11 01:30:07 -04:00
kenji yoshida 1d7871233b
Revert "fix: BSP error status code in more cases" 2025-05-11 12:59:15 +09:00
eugene yokota 01df2e0c0f
Merge pull request #8114 from xuwei-k/implicit-explicit-using-2
[2.x] add `using` if explicitly providing arguments to methods defined with `implicit`
2025-05-09 11:02:53 -07:00
xuwei-k 74a4abf049 add `using` if explicitly providing arguments to methods defined with `implicit` 2025-05-09 20:11:43 +09:00
xuwei-k ce654c4ffc remove unused imports 2025-05-09 19:40:49 +09:00
Alec Theriault 5d81f2c3d1
fix: BSP error status code in more cases
Ensures that `buildTarget/compile` returns a `StatusCode.Error` instead
of a JSON-RPC error even when the compile error is buried deeper in the
`Incomplete` causes.

Fixes #8104
2025-05-07 06:16:27 -04:00
Eugene Yokota 1de1f903d8 refactor: Clean up EvaluateTask 2025-05-05 15:50:37 -04:00
Eugene Yokota d10e5b6f48 Add test for cache hits 2025-05-02 03:23:29 -04:00
Eugene Yokota 2fd08caeda Scala compiler plugin support
**Problem**
Compiler options for the compiler plugins ends up capturing the absolute path, specific to the machine.

**Solution**
This encodes the plugin paths as virtual paths.
2025-05-01 00:15:42 -04:00
Eugene Yokota 1415b2efa4 fix: Fix incremental test with companion objects [merge-skip]
**Problem**
Incremental test (aka testQuick) has a bug when companion objects
depends on others since at some point it's failing to look up relationship from Zinc analysis.

**Solution**
This fixes the lookup.
2025-03-31 22:44:57 -04:00
Brice Jaglin 9ff4e1d1e9 cache semanticdb output when not included in JAR 2025-03-28 12:47:03 +01:00
Eugene Yokota 2f4280c6f3 fix: Fix incremental test with companion objects
**Problem**
Incremental test (aka testQuick) has a bug when companion objects
depends on others since at some point it's failing to look up relationship from Zinc analysis.

**Solution**
This fixes the lookup.
2025-03-23 22:25:16 -04:00
Eugene Yokota 12d2cc8ef1 fix: Use Retry.io for compilation
**Problem**
sbt 1.10.10 still has retry problem with compilation.

**Solution**
Revert the retry logic back to the time when we only retried IOExceptions.
2025-03-16 21:43:01 -04:00
Eugene Yokota bd7bf73de5 fix: Fix SIP-51 message
**Problem**
The error message uses name, which may not match the actual project id
that the user can type into the shell.

**Solution**
Use displayBuildRelative to calculate the proper subproject id.
2025-03-16 14:58:23 -04:00
Eugene Yokota de5c9b1869 Scala 3.6.4 2025-03-10 01:51:32 -04:00
Brice Jaglin 80ac808619
Remove debug println 2025-03-10 02:37:15 +01:00
Eugene Yokota 8db8c79d33 Implement client-side run
**Problem**
`run` task has been emulated via function call inside of a sandboxed classloader,
and blocking the command processing of sbt server loop.
This poses isolation and availability issues.

**Solution**
This implements client-side run where the server creates a sandbox environment, and sends the information to the client,
and the client forks a new JVM to perform the run.
The client-side behavior has been implemented in sbtn side already.
2025-03-09 15:00:24 -04:00
Eugene Yokota 2c3c0f4a7c Merge branch '1.10.x' into wip/merge-1.10.x 2025-03-08 19:05:30 -05:00
Eugene Yokota 946b54c858 Skip retry on CompileCancelled
**Problem**
When compilation fails, it's retrying 10 times
since Retry now retries on non-IOExceptions.

**Solution**
This adds CompileFailed to excluded exception list.
2025-03-03 22:19:22 -05:00
Eugene Yokota 5d5fe21ec5 Revert run switching on 1.x
**Problem**
client-side run apparently won't work for Scala.JS,
so forcing sbtn users to client-side run will break the Scala.JS users.

**Solution**
This reverts the client-side run on sbt 1.x, while retaining the
mechanism for sbt 2.x usages via sbtn.
Now, if `run / connectInput := true` is true, stdout will not display on sbtn.
2025-03-03 04:59:36 -05:00
Eugene Yokota a18ed19cbc fix: Use JDK path, not JRE path
**Problem**
There are a few places where javaHome or java path is set,
using java.home system property. The problem is that it points to JRE,
not JDK, so it would break on Java compilation etc.

**Solution**
If the path ends with jre, go up one directory.
2025-03-03 02:31:44 -05:00