eugene yokota
c4e5e8654e
[2.x] Mark log-related keys transient ( #9407 )
2026-07-03 10:40:10 +02:00
Rikito Taniguchi
10f98e6c01
[2.x] Fix macro expand for HKT type arguments ( #9377 )
...
Def.setting and Def.task macro expansion looks for internal wrapper
call generated for .value.
It visits all function calls in the macro. If the block contains
functions call whose type parameter is HKT, macro expansion crashed.
Macro expansion tries to match IO against '[a], and failed with MatchError.
This commit adds wildcard pattern, and leave unmatched type arguments unchanged.
2026-06-24 21:22:11 -04:00
eugene yokota
25cb2f3e60
[2.x] fix: Add warning about trainsient key ( #9288 )
...
**Problem**
Transient key is silently excluded from caching.
**Solution**
Add a warning.
2026-06-01 06:29:44 -04:00
eugene yokota
315202181c
[2.x] ci: Scalafmt 3.11.1 ( #9279 )
...
Apply Scalafmt
2026-05-31 16:01:15 -04:00
eugene yokota and Anatolii Kmetiuk
6c8ee6ea37
[2.x] Remove Path type from caching ( #9032 )
...
**Problem**
Like File, Path normally captures the absolute path,
so likely not a good candidate for caching.
**Solution**
Ban it.
---------
Co-authored-by: Anatolii Kmetiuk <[email protected] >
2026-04-06 14:40:33 -04:00
Douglas Ma
a7d5f45515
[2.x] fix: Reject java.io.File as cached task output type ( #8766 )
...
Change the behavior when a cached task's output type contains
java.io.File: instead of silently skipping the cache, throw a
compile-time error with a message recommending xsbti.VirtualFileRef,
xsbti.HashedVirtualFileRef, or xsbti.VirtualFile, and linking to the
caching documentation.
Internal sbt tasks that return File types are wrapped with
Def.uncached to opt out of caching.
Fixes https://github.com/sbt/sbt/issues/8762
Generated-by: GitHub Copilot (Claude)
* [2.x] fix: Reject java.io.File as cached task output type
Use @transient on File-returning keys in Keys.scala instead of
wrapping tasks with Def.uncached in Defaults.scala. This ensures
build users who rewire these tasks also get caching skipped
automatically.
- Add @transient to 19 File-returning taskKey definitions in Keys.scala
- Revert Def.uncached wrappers from Defaults.scala
- Error at compile time when File is used as cached task output type
- Update error message to recommend @transient and link to docs
- Update scripted tests to use @transient approach
Fixes #8762
Generated-by: GitHub Copilot (Claude Opus 4.6)
2026-02-21 01:35:46 -05:00
xuwei-k
c0fe4dfb10
Add tailrec annotation
2026-01-11 16:33:45 +09:00
Eugene Yokota
43382095ef
Use scala.transient to denote the empty cache level
2025-08-16 01:27:14 -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
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
xuwei-k
031e806a24
fix ContTestMacro
2025-05-10 07:44:11 +09:00
xuwei-k
ce654c4ffc
remove unused imports
2025-05-09 19:40:49 +09:00
eugene yokota
84ebcd3c34
Merge pull request #8110 from xuwei-k/remove-unused-imports
...
[2.x] remove unused imports
2025-05-09 02:28:52 -07:00
xuwei-k
237f341d6f
add using if explicitly providing arguments to methods defined with implicit
2025-05-09 16:48:39 +09:00
xuwei-k
fa6daec812
remove unused imports
2025-05-09 16:46:48 +09:00
Eugene Yokota
f3dd5dbd71
fix: Fix qual lookup
...
**Problem**
Nested macro that expands to map or mapN fails to
find the qual because the trees end up being different
between the record scan and actual replacement.
**Solution**
First try for equals normally, then compare the show strings.
2025-05-05 03:04:44 -04:00
xuwei-k
cbc065f0ff
remove scala 3 issues 21779 workaround
2025-03-13 08:05:05 +09:00
xuwei-k
5d660ab8b5
remove unnecessary case
...
- https://github.com/xuwei-k/scalafix-rules/blob/3ca36335057154ef4431fee464a86b721013d334/rules/src/main/scala/fix/RemoveParameterUntuplingCase.scala
- https://docs.scala-lang.org/scala3/reference/other-new-features/parameter-untupling.html
- https://docs.scala-lang.org/scala3/reference/other-new-features/parameter-untupling-spec.html
2025-02-22 08:48:29 +09:00
Josh Soref
613eb86447
Spelling ( #8028 )
...
* spelling: 1.x
Signed-off-by: Josh Soref <[email protected] >
* spelling: a
Signed-off-by: Josh Soref <[email protected] >
* spelling: aether
Signed-off-by: Josh Soref <[email protected] >
* spelling: anymore
Signed-off-by: Josh Soref <[email protected] >
* spelling: artifact
Signed-off-by: Josh Soref <[email protected] >
* spelling: available
Signed-off-by: Josh Soref <[email protected] >
* spelling: be
Signed-off-by: Josh Soref <[email protected] >
* spelling: bridge
Signed-off-by: Josh Soref <[email protected] >
* spelling: cannot
Signed-off-by: Josh Soref <[email protected] >
* spelling: case-insensitive
Signed-off-by: Josh Soref <[email protected] >
* spelling: checksum
Signed-off-by: Josh Soref <[email protected] >
* spelling: class loads
Signed-off-by: Josh Soref <[email protected] >
* spelling: contra
Signed-off-by: Josh Soref <[email protected] >
* spelling: dependencies
Signed-off-by: Josh Soref <[email protected] >
* spelling: dependency
Signed-off-by: Josh Soref <[email protected] >
* spelling: dependent
Signed-off-by: Josh Soref <[email protected] >
* spelling: deriveds
Signed-off-by: Josh Soref <[email protected] >
* spelling: describes
Signed-off-by: Josh Soref <[email protected] >
* spelling: early
Signed-off-by: Josh Soref <[email protected] >
* spelling: enclosed
Signed-off-by: Josh Soref <[email protected] >
* spelling: evaluation
Signed-off-by: Josh Soref <[email protected] >
* spelling: excluding
Signed-off-by: Josh Soref <[email protected] >
* spelling: execution
Signed-off-by: Josh Soref <[email protected] >
* spelling: for
Signed-off-by: Josh Soref <[email protected] >
* spelling: frequently
Signed-off-by: Josh Soref <[email protected] >
* spelling: github
Signed-off-by: Josh Soref <[email protected] >
* spelling: green
Signed-off-by: Josh Soref <[email protected] >
* spelling: https://www
Signed-off-by: Josh Soref <[email protected] >
* spelling: https
Signed-off-by: Josh Soref <[email protected] >
* spelling: in-sourcing
Signed-off-by: Josh Soref <[email protected] >
* spelling: include
Signed-off-by: Josh Soref <[email protected] >
* spelling: incompatible
Signed-off-by: Josh Soref <[email protected] >
* spelling: indefinitely
Signed-off-by: Josh Soref <[email protected] >
* spelling: information
Signed-off-by: Josh Soref <[email protected] >
* spelling: inputted
Signed-off-by: Josh Soref <[email protected] >
* spelling: just
Signed-off-by: Josh Soref <[email protected] >
* spelling: lastmodifiedtimes
Signed-off-by: Josh Soref <[email protected] >
* spelling: latest
Signed-off-by: Josh Soref <[email protected] >
* spelling: manifest
Signed-off-by: Josh Soref <[email protected] >
* spelling: miscellaneous
Signed-off-by: Josh Soref <[email protected] >
* spelling: more
Signed-off-by: Josh Soref <[email protected] >
* spelling: neither
Signed-off-by: Josh Soref <[email protected] >
* spelling: never
Signed-off-by: Josh Soref <[email protected] >
* spelling: nonexistent
Signed-off-by: Josh Soref <[email protected] >
* spelling: opted
Signed-off-by: Josh Soref <[email protected] >
* spelling: outputting
Signed-off-by: Josh Soref <[email protected] >
* spelling: params
Signed-off-by: Josh Soref <[email protected] >
* spelling: performance
Signed-off-by: Josh Soref <[email protected] >
* spelling: preceding
Signed-off-by: Josh Soref <[email protected] >
* spelling: presentation
Signed-off-by: Josh Soref <[email protected] >
* spelling: project
Signed-off-by: Josh Soref <[email protected] >
* spelling: projects
Signed-off-by: Josh Soref <[email protected] >
* spelling: protocol
Signed-off-by: Josh Soref <[email protected] >
* spelling: related
Signed-off-by: Josh Soref <[email protected] >
* spelling: representation
Signed-off-by: Josh Soref <[email protected] >
* spelling: res
Signed-off-by: Josh Soref <[email protected] >
* spelling: resolverlist
Signed-off-by: Josh Soref <[email protected] >
* spelling: resolverset
Signed-off-by: Josh Soref <[email protected] >
* spelling: response
Signed-off-by: Josh Soref <[email protected] >
* spelling: returned
Signed-off-by: Josh Soref <[email protected] >
* spelling: sbt_version
Signed-off-by: Josh Soref <[email protected] >
* spelling: scalacheck
Signed-off-by: Josh Soref <[email protected] >
* spelling: sentinels
Signed-off-by: Josh Soref <[email protected] >
* spelling: separates
Signed-off-by: Josh Soref <[email protected] >
* spelling: serves
Signed-off-by: Josh Soref <[email protected] >
* spelling: should
Signed-off-by: Josh Soref <[email protected] >
* spelling: significant
Signed-off-by: Josh Soref <[email protected] >
* spelling: specifically
Signed-off-by: Josh Soref <[email protected] >
* spelling: substitute
Signed-off-by: Josh Soref <[email protected] >
* spelling: suppress
Signed-off-by: Josh Soref <[email protected] >
* spelling: terminal
Signed-off-by: Josh Soref <[email protected] >
* spelling: the
Signed-off-by: Josh Soref <[email protected] >
* spelling: title
Signed-off-by: Josh Soref <[email protected] >
* spelling: transitive
Signed-off-by: Josh Soref <[email protected] >
* spelling: version
Signed-off-by: Josh Soref <[email protected] >
* spelling: versions
Signed-off-by: Josh Soref <[email protected] >
* spelling: want
Signed-off-by: Josh Soref <[email protected] >
* spelling: wanting
Signed-off-by: Josh Soref <[email protected] >
* spelling: whether
Signed-off-by: Josh Soref <[email protected] >
* link: sbt Cached Resolution
Signed-off-by: Josh Soref <[email protected] >
* link: Testing sbt plugins
Signed-off-by: Josh Soref <[email protected] >
---------
Signed-off-by: Josh Soref <[email protected] >
2025-02-04 01:11:28 -05:00
xuwei-k
da26f3078b
use withFilter instead of filter
2025-01-04 09:10:36 +09:00
xuwei-k
13d6626564
update .scalafmt.conf. enforce new scala 3 syntax
2025-01-02 11:25:34 +09:00
Eugene Yokota
56941dac04
refactor: Update Scala 3 syntax
2024-10-27 23:55:30 -04:00
xuwei-k
b3336b2ce2
fix type error if too many .value
2024-10-17 10:35:16 +09:00
Adrien Piquerez
31710c0879
Reduce allocation of Action.Mapped
...
For a tuple (t1, t2, ..., tn) of tasks we instantiate a unique Mapped instead of many
Mapped(t1, Mapped(t2, Mapped(...))
2024-10-02 15:54:20 +02:00
Adrien Piquerez
f08f272d23
[2.x] Fix scripted cache tests
2024-09-18 10:28:11 +02:00
Eugene Yokota
2aba06bb90
Refactor ActionCache to split into smaller functions
2024-09-08 14:42:24 -04:00
Eugene Yokota
eb9a507419
Refactor Def.declareOutputDirectory to return vf
2024-08-18 12:57:29 -04:00
Eugene Yokota
987ab5f214
Add Def.declareOutputDirectory function
2024-08-18 12:57:29 -04:00
Eugene Yokota
c8ddbaed0e
Implement InternalActionResult
2024-08-18 12:57:29 -04:00
Eugene Yokota
c81d269ed2
Merge branch '1.10.x' into wip/merge-1.10.x
2024-05-07 04:39:25 -04:00
Adrien Piquerez
2e439cab1e
[2.x] report cache errors
...
Report a cache error if the output file of a task is not cacheable
2024-04-24 10:41:56 +02:00
Adrien Piquerez
a89ad8ad4d
apply review
2024-03-07 09:00:17 +01:00
Adrien Piquerez
12e9267e1e
Remove more unused
2024-03-05 15:25:25 +01:00
Adrien Piquerez
c15a4031a9
Fix or mute warnings
2024-03-05 10:39:00 +01:00
adpi2
64be877549
Merge pull request #7491 from adpi2/misc-cleanup
...
[2.x] Miscellaneous cleanup
2024-02-08 17:42:35 +01:00
eugene yokota
ecca26175e
[sbt 2.x] remote cache ( #7464 )
...
For the details about this PR, please see the blog post https://eed3si9n.com/sbt-remote-cache/ .
* Add cache basics
* Refactor Attributed to use StringAttributeMap, which is Map[StringAttributeKey, String]
* Implement disk cache
* Rename Package to Pkg
* Virtualize packageBin
* Use HashedVirtualFileRef for packageBin
* Virtualize compile task
2024-02-07 10:34:06 -05:00
Adrien Piquerez
cabf08e5f0
Use report.errorAndAbort in macro
2024-02-07 11:55:27 +01:00
Adrien Piquerez
a15fb91c5c
Remove AList
2023-12-13 14:01:57 +01:00
Adrien Piquerez
73e3b43683
Introduce util-core to cross-compile util-logging
2023-11-14 11:43:12 +01:00
Julien Richard-Foy
72bfb3f45a
Transfer copyright to Scala Center
2023-06-20 16:39:07 +02:00
Eugene Yokota
9f5525c989
inline parameter removes let binding
2023-01-15 23:50:29 -05:00
Eugene Yokota
cba7a0efc3
Refactor to build mainProj
2023-01-15 23:48:11 -05:00
Eugene Yokota
d802c2ba04
valStart to change synthetic variable names
2023-01-15 23:45:35 -05:00
Eugene Yokota
73c7236c2c
Refactor to use Type instead of TypeRepr
2023-01-15 23:45:35 -05:00
Eugene Yokota
c1be8eacb6
Fix Convert
2023-01-15 23:45:34 -05:00
Eugene Yokota
66fa46a912
Fix InputTask macro
2023-01-15 23:44:28 -05:00
Eugene Yokota
7e5fbcd92b
Manually inline extension method
2023-01-15 23:44:28 -05:00
Eugene Yokota
f3dd2dff36
Starting input task
2023-01-15 23:43:59 -05:00
Eugene Yokota
2f50a88a3d
Fix Cont
2023-01-15 23:43:59 -05:00
Eugene Yokota
6662dbad26
InputWrapper can be inline method
2023-01-15 23:43:59 -05:00