Fork me on GitHub
#tools-deps
<
2020-07-17
>
danieroux08:07:18

@kenny This is how I solved it:

mvn org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file -Dfile=dev-local-0.9.172.jar -DlocalRepositoryPath=s3_m2_repository
aws s3 sync s3_m2_repository 

kenny15:07:08

Oh, nice! This seems like it'd upload all the necessary files. Sweet.

kenny02:07:25

This approach still results in the Download corrupted: Checksum validation failed, no checksums available warning message though 😞

danieroux09:07:39

@drewverlee I have entries like these: org.slf4j/slf4j-api {:mvn/version "1.7.14" :required-by :datomic-cloud}

Alex Miller (Clojure team)21:07:38

hey clj super fans, there is a new version of clj (and tools.deps) out and I'd love to have some people try it and verify no dep tree differences. you can install the latest dev release with:

brew uninstall clojure
brew install --devel clojure/tools/clojure

seancorfield21:07:41

@U064X3EF3 I expect you know about this

Warning: Calling 'devel' blocks in formulae is deprecated! Use 'head' blocks or @-versioned formulae instead.
Please report this issue to the clojure/tools tap (not Homebrew/brew or Homebrew/core), or even better, submit a PR to fix it:
  /usr/local/Homebrew/Library/Taps/clojure/homebrew-tools/Formula/clojure.rb:7

Alex Miller (Clojure team)21:07:29

brew breaks things faster than I can fix them

seancorfield21:07:32

Then I got

==> Downloading 
######################################################################## 100.0%
Error: clojure 1.10.1.536 is already installed
To upgrade to 1.10.1.561, run `brew upgrade clojure/tools/clojure`.
==> `brew cleanup` has not been run in 30 days, running now...
and it did not actually upgrade clojure 😐

seancorfield21:07:16

(! 1406)-> clojure -Sdescribe
{:version "1.10.1.547"
 :config-files ["/usr/local/Cellar/clojure/1.10.1.547/deps.edn" "/Users/sean/.clojure/deps.edn" ]

seancorfield21:07:23

Which is not 561

Alex Miller (Clojure team)21:07:12

brew upgrade --devel clojure/tools/clojure

seancorfield21:07:21

Nope, that doesn't work either.

seancorfield21:07:34

Error: invalid option: --devel

Alex Miller (Clojure team)21:07:37

well then brew uninstall clojure first

seancorfield21:07:25

(! 1413)-> clojure -Sdescribe
{:version "1.10.1.561"
 :config-files ["/usr/local/Cellar/clojure/1.10.1.561/deps.edn" "/Users/sean/.clojure/deps.edn" ]
Had to uninstall then install --devel

Alex Miller (Clojure team)21:07:05

yeah, that's the correct one

Alex Miller (Clojure team)21:07:58

the change of note here is I have rewritten how exclusions are handled if the same dep shows up more than once in the dep tree with different exclusion sets. this is uncommon, but possible and most commonly happens by having the dep with exclusions in one place and with no exclusions in another. in the past, what happened was somewhat arbitrary - depending which you first encountered you may get the dep or not.

Alex Miller (Clojure team)21:07:24

the updated behavior is that you will get the intersection of exclusion sets from all occurrences, so in the case above you will always get the dep

Alex Miller (Clojure team)21:07:49

in the process of implementing this, I've also substantially refactored the deps expansion code to make it easier to work on and comprehend. while those changes should be a no op, I did change a lot of code and well, you know.

Alex Miller (Clojure team)21:07:17

so if anyone has time to do a sanity check, that would be cool

Alex Miller (Clojure team)21:07:59

also, in the process of checking these changes, it's become clearer to me that -Stree is likely to lie to you about what happened in exclusion cases like the above, because it's based on the lib map, which is an inverted tree that loses exclusion path info. I'm going to rewrite it in terms of the trace data and then it will be both correct but can also include substantially more useful information (akin to tools.deps.graph trace mode). but going to do other work first.

seancorfield21:07:09

A quick test shows that it doesn't attempt to download any new dependencies for our monorepo so that looks sane.

Alex Miller (Clojure team)21:07:09

having a new clj should make everything stale (so effectively -Sforce), but maybe -Sforce too?

seancorfield21:07:27

I'm running our script that checks for updated versions of deps -- it builds new projects with our deps and then runs -Stree in those so there no cache. I'll let you know if that turns up any differences.

seancorfield21:07:40

Looks good. It detected a new version of org.apache.axis/axis and all the other dependencies remained unchanged.

seancorfield21:07:50

(that script hammers clojure -Stree 🙂 )

seancorfield21:07:26

Just for good measure, I blew away the cache folder in every subproject in our monorepo and rebuilt things. No changes in deps as far as I can tell.

Alex Miller (Clojure team)21:07:04

Thanks, good to have someone else try it :)

seancorfield21:07:52

You know me -- always happy to be on the bleeding edge!

kenny22:07:28

I can try this. @seancorfield how did you check for differences? Set diff of classpath?

seancorfield22:07:39

Just compared -Stree before and after.

seancorfield22:07:33

But also ran our test suite to see if any new dependencies got downloaded (none).