taoensso / timbre

Pure Clojure/Script logging library
https://www.taoensso.com/timbre
Eclipse Public License 1.0
1.44k stars 171 forks source link

Lots of Encore warnings #382

Closed awkay closed 5 months ago

awkay commented 5 months ago

The newer versions of Timbre use an older version of encore. I happen to use most of the things you maintain (carmine, timbre, encore, nippy, tufte) and the latest version of encore has explicit deprecation warnings on a number of functions that timbre uses. This results in 19 compiler warning in CLJS when using shadow-cljs, which is quite annoying (hard to see when you have a real error because of the noise).

As a result I have to carefully back-version things to make sure I don't get the latest. Not sure how you want to handle that, but thought you should know it's generating inconvenience.

Screenshot 2024-01-10 at 18 14 32

awkay commented 5 months ago

Hm...let me double checek that it is timbre...I thought I had but I think I might have been confused.

ptaoussanis commented 5 months ago

@awkay Hi Tony, this is unfortunately an upstream issue with shadow-cljs.

See here for an example workaround in the meantime.

Sorry about the trouble!

awkay commented 5 months ago

Actually once I looked into it further it was my dependency on an old version of sente. I did turn off this warning in shadow, but when I looked more carefully at the actual warnings it became more obvious.

That said, I've tended to partially adopt the philosophy Rich talked about in my libraries (require less, provide more, don't remove things), with a slight bit of your opinion on break versioning (when you have to break something, it should be obvious that you did). Sometimes a break is unavoidable, and is the lesser evil, but I've stopped deprecating functions because I never remove anything I've ever made public. I'll update the docstring and point them at the new better thing. I know that's not always possible, but I've found it creates a lot less chaos for my downstream users. Of course, the problem with making a new thing, is that if it is more of a component (like a Fulcro app) then mixing the two, even though they have different nses, breaks things. So, even though I've used break versioning AND renamed things, it is possible for users of my libraries to get into situations where they accidentally use an old thing with a new thing and it breaks (though you'd have to try very very hard, and I've never heard someone claim they ran into it)

Just my two cents. Nothing's perfect.

I love your work, and I'm sure you're doing what you think is best for the libraries. Thanks for all that you do!