mirror of
https://github.com/sbt/sbt.git
synced 2026-09-02 02:57:21 +02:00
90ce3b99f8df159eaadb8fd5970debfc570b1038
A directory declared via Def.declareOutputDirectory is packaged as a sibling <dir>.sbtdir.zip, so deleting the directory leaves the zip behind. On a cache hit, syncFile's up-to-date short-circuit saw the zip in sync (same digest, already a CAS symlink) and returned without the unpack side effect, which only ran from the file-write path: the directory was never restored. For sbt's own compile, whose classes directory is declared this way, rm -rf of the classes directory with a warm cache meant run failed with ClassNotFoundException and no recompile; only deleting the zip as well (or the whole cache) recovered. The up-to-date branch now re-extracts when the extracted directory itself is missing: a single stat on the warm path, per review preference over a manifest-based per-file check. Partial deletions inside a still-existing directory are not repaired, consistent with treating target/ contents as sbt-managed. Refs #9462 (the directory-restoration half; the declareOutput-in-a-loop half is a separate macro-layer issue) Co-authored-by: Claude Opus 4.8 (1M context) <[email protected]> Co-authored-by: eugene yokota <[email protected]>
sbt
sbt is a build tool for Scala, Java, and more.
For general documentation, see https://www.scala-sbt.org/.
sbt 2.x
This is the 2.x series of sbt. The source code of sbt is split across several GitHub repositories, including this one.
- sbt/io hosts
sbt.iomodule. - sbt/zinc hosts Zinc, an incremental compiler for Scala.
- sbt/sbt, this repository hosts modules that implement the build tool.
Other links
- Setup: Describes getting started with the latest binary release.
- FAQ: Explains how to get help and more.
- sbt/sbt-zero-seven: hosts sbt 0.7.7 and earlier versions
Issues and Pull Requests
Please read CONTRIBUTING carefully before opening a GitHub Issue or a pull request.
If you're looking for an idea for a contribution, issues labeled with good first issue or help wanted might be good starting points.
If you would like to ask questions about sbt, there's sbt channel on Scala Discord, but it would be good to gather questions on Stackoverflow.
license
See LICENSE.
Languages
Scala
94.5%
Java
3.1%
Shell
1.1%
Batchfile
0.9%
Roff
0.2%
Other
0.1%