Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

In-source the modules of sbt/util required in sbt/zinc #321

Closed
wants to merge 224 commits into from

Conversation

dwijnand
Copy link
Member

Run git filter-branch as such:

cd /s
git clone /d/sbt-util /d/sbt-util-4-lm
git filter-branch -f --index-filter \
  'git rm --cached -qr -- . && git reset -q $GIT_COMMIT -- util/control internal/util-control util/relation internal/util-relation cache/tracking internal/util-tracking internal/util-scripted' \
  --prune-empty
git reset --hard
git gc --aggressive
git prune

Then that branch was merged into the 'eat-util' branch here, the build was
configured, and the source auto-formatted.

 * Fixes to API extraction and equality checking
 * Reworked tracking
 * New compile infrastructure based on API changes
 * Example application for testing
Compile task: fix detection of classpath changes
Aggressive compiler seems to work on scalaz now
…ary, work towards fixing OOME:PermGen issues on reload
* move TrapExit, SelectMainClass to run module
* rearrange some compilation-related code
* Jetty-related code moved to web module
added memoization for Set[File] => Set[File]
better underlying model
supports arbitrary length unions and products
(unions actually limited to 256 elements to encode length as byte)
gkossakowski and others added 21 commits April 12, 2016 20:14
Do not filter any logging in scripted logger by setting the log level to
Debug.
The caller of ScriptedRunner passes a logger and decides the level of
logging it wants to receive. Scripted shouldn't filter anything.
Run scripted tests in the alphabetical order
Fix compilation warnings, migrate to blackbox.Context
Fixes sbt#61

* move it back into style
* use that in Tracked (uncomment some code)
* specify the style in the spec test
* must define absolute file.. (doesn't pass with relative, which is wrong imo)
Fix stackoverflow in implicit FilesInfo JsonFormat
sbt/util#45 implemented caching using sjson-new. Now many of the functions take `CacheStore` that abstracts the caching ability.

sbt/sbt#3109 demonstrates that setting up CacheStore requires boilerplate involving concepts introduced in sbt 1.

This change adds back overrides using File by making assumption that majority of the time we would want standard JSON converter.
Adds back overrides for File-based caching
* detangle: (69 commits)
  Adds overrides for File-based caching
  Switch Scripted tests to used ManagedLogger
  Fix stackoverflow in implicit FilesInfo JsonFormat
  Update to latest revision of sjsonnew
  Adapt to recent changes to sbt-datatype
  Caching based on sjsonnew
  Add -Ywarn-unused & -Ywarn-unused-import, & fix warnings
  Update dependencies
  Scripted logger logs everything
  Run scripted tests in the alphabetical order
  Remove some warnings
  add documention for FileFunction.cached
  Hide stacktrace upon failure on pending scripted test
  Add scripted-core
  sbt.util.internal -> sbt.internal.util package
  Move util into sbt.util.internal package
  Removes a warning.
  Add recommended compiler flags, fix most of the warnings
  Add sbt-houserules, formatting.
  Add sbt-house-rules and bintray-sbt
  ...
@jvican
Copy link
Member

jvican commented Jun 26, 2017

What's the reason for this change?

@dwijnand dwijnand mentioned this pull request Jun 26, 2017
@dwijnand
Copy link
Member Author

To un-split the repositories. These are the subset of modules in sbt/util that are required by sbt/zinc but not by sbt/lm.

@jvican
Copy link
Member

jvican commented Jun 26, 2017

Yes, I've just understood it after I saw the other PRs. My only question is: would it make sense to change the name of the logging facilities from lmLogging to utilLogging? The logging API on which the compiler bridge depends comes from there, so I think a more generic name can help avoid confusion: "Why is the bridge depending on logging facilities from lm?".

Happy to LGTM after build passes.

@dwijnand
Copy link
Member Author

We can change it back, sure. The reason I changed it like so is for a few reasons:

  • make it obvious that the logging capabilities come from a module in sbt/librarymanagement
  • make it obvious that that module is versioned using lmVersion (utilVersion is gone).

@jvican
Copy link
Member

jvican commented Jun 27, 2017

Thanks for the explanation. I'm happy to leave it as lmLogging if it's too much trouble and the librarymanagement does indeed depend on the Java logging interfaces (it's not clear to me this is the case, we may be able to move them to Zinc).

The only thing I propose is to explain the reasons for this in both code and the CONTRIBUTING guide just to avoid confusion.

@dwijnand
Copy link
Member Author

See sbt/util#58 (comment).

@dwijnand dwijnand closed this Jun 30, 2017
@dwijnand dwijnand deleted the eat-util branch June 30, 2017 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet