diff --git a/CHANGELOG.md b/CHANGELOG.md index 18c3d9a..a6e7a01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,134 @@ This project uses [**Break Versioning**](https://www.taoensso.com/break-versioni --- +# `v1.0.0-RC1` (2024-10-29) + +## 📦 Dependencies + +Available on Clojars: + +1. [Telemere](https://clojars.org/com.taoensso/telemere/versions/1.0.0-RC1) - main dep for most users +2. [Shell API](https://clojars.org/com.taoensso/telemere-shell/versions/1.0.0-RC1) - alternative minimal dep [for library authors](https://github.com/taoensso/telemere/wiki/9-Authors#3-telemere-as-an-optional-dependency), etc. +3. [SLF4J provider](https://clojars.org/com.taoensso/telemere-slf4j/versions/1.0.0-RC1) - additional dep for users that want to [interop with Java logging](https://github.com/taoensso/telemere/wiki/3-Config#java-logging) + +This project uses [Break Versioning](https://www.taoensso.com/break-versioning). + +## Release notes + +This is the first official **v1 release candidate**. If no unexpected issues come up, this will become **v1 stable**. + +As always, please **report any unexpected problems** on [GitHub](https://github.com/taoensso/telemere/issues) or the [Slack channel](https://www.taoensso.com/telemere/slack), thank you! 🙏 + +\- [Peter Taoussanis](https://www.taoensso.com) + +## Recent changes + +### Since `v1.0.0-beta25` (2024-09-25) + +* No API changes + +### Earlier + +* \[mod] Update `pr-signal-fn` to use `clean-signal-fn` \[f70363091] (beta 23) +* \[mod] Rename `taoensso.telemere.api` -> `taoensso.telemere.shell` \[a9005e7f1] (beta 23) +* \[mod] Move dep: `com.taoensso/slf4j-telemere` -> [com.taoensso/telemere-slf4j](https://clojars.org/com.taoensso/telemere-slf4j) \[77ed27cfd] (beta 22) +* \[mod] Generalize "intake", rename -> "interop" \[ef678bcc] (beta 20) +* \[mod] Make `:host` output opt-in for default signal handlers \[88eb5211] (beta 20) +* \[mod] OpenTelemetry handler: rename (generalize) \[064ef323] (beta 19) +* \[mod] OpenTelemetry handler: revert #10 \[599236f4] (beta 18) +* \[mod] Decrease level of :on-init signals \[4d2b5d46] (beta 18) +* \[mod] Removed `*auto-stop-handlers?*` var (beta 15) +* \[mod] Removed `:needs-stopping?` [handler dispatch opt](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#help:handler-dispatch-options) (beta 15) +* \[mod] Cljs handlers MUST now include stop (0) arity (beta 15) +* \[mod] Users MUST now **manually call** [`stop-handlers!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#stop-handlers!) (beta 15) +* \[mod] SLF4J and `tools.logging` signals now have a custom `:kind` and no `:id` (beta 14) +* \[mod] Renamed `get-min-level` -> [`get-min-levels`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#get-min-levels) (beta 13) +* \[mod] Renamed `shut-down-handlers!` -> [`stop-handlers!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#stop-handlers!) (beta 13) +* \[mod] Changed default **handler back-pressure** mechanism from `:dropping` to `:blocking` (eaiser for most users to understand and detect; override when calling [`add-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#add-handler!)) (beta 11) +* \[mod] [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) now takes only a **single opts map** (beta 10) +* \[mod] [User-level kvs](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#help:signal-options) are **no longer included by default** in handler output. `:incl-kvs?` option has been added to [`format-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#format-signal-fn) and [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) (beta 7) +* \[mod] Middleware must now be a **single fn**, use [`comp-middleware`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#comp-middleware) to create one fn from many (beta 7) +* \[mod] [OpenTelemetry handler](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.open-telemetry#handler:open-telemetry) is **no longer auto added** (beta 1) +* \[mod] Various API improvements to [included handlers](https://github.com/taoensso/telemere/wiki/4-Handlers#included-handlers) and [utils](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils) + +## Recent additions + +### Since `v1.0.0-beta25` (2024-09-25) + +* **\[new]** Add `:ctx+`, `:middleware+` signal options \[5a8c407] (RC1) +* **\[new]** OpenTelemetry handler: try print map vals as EDN \[c1e1c1e] (RC1) +* **\[new]** [#28] OpenTelemetry handler: support custom signal attrs \[5ef4f12] (RC1) +* **\[new]** Simplify default OpenTelemetry providers code, expose SDK \[19548d3] (RC1) +* **\[new]** Add `dispatch-signal!` util \[5ac8725] (RC1) +* **\[new]** `writeable-file!`: resolve sym links, etc. \[9965450] (RC1) +* **\[new]** Extend IIFE-wrap to Clj \[d0ad99d] (RC1) +* **\[new]** Numerous improvements to docs and examples (RC1) + +### Earlier + +* \[new] Add `:rate-limit-by` option to all signal creators \[d9c358363] (beta 23) +* \[new] Add `clean-signal-fn` util \[be55f44a8] (beta 23) +* \[new] Add `signal-allowed?` util \[d12b0b145] (beta 23) +* \[new] Allow compile-time config of uid kind \[965c2277f] (beta 23) +* \[new] Avoid duplicated trace bodies \[c9e84e8b3] (beta 23) +* \[new] Cap length of displayed run-form when tracing \[85772f733] (beta 23) +* \[new] Added experimental [shell API](https://cljdoc.org/d/com.taoensso/telemere-shell/CURRENT/api/taoensso.telemere.api) for library authors \[ece51b2ef] (beta 22) +* \[new] Auto stop existing handler when replacing it (beta 22) +* \[new] Added `"(.*)"` wildcard syntax to kind/ns/id filters (beta 22) +* \[new] Internal and doc improvements: \[8066776a8], \[b4b06f324], \[3068ccf8d] (beta 21) +* \[new] OpenTelemetry handler: improve span interop \[84957c6d] (beta 20) +* \[new] OpenTelemetry handler: add experimental trace output \[67cb4941] (beta 18) +* \[new] Improve uid control, switch to nano-style by default \[5ab2736c] (beta 18) +* \[new] Add host info to signal content \[1cef1957] (beta 18) +* \[new] Add extra tracing info to signal content \[d635318f] (beta 18) +* \[new] Ongoing [API](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere) and [wiki](https://github.com/taoensso/telemere/wiki) doc improvements (beta 15) +* \[new] [#5] Added [comparison to Mulog](https://github.com/taoensso/telemere/wiki/6-FAQ#how-does-telemere-compare-to-mulog) (beta 15) +* \[new] SLF4J and `tools.logging` signals now have a namespace (from logger name) (beta 14) +* \[new] Added [`get-handlers-stats`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#get-handlers-stats) (beta 13) +* \[new] [`add-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#add-handler!) can now specify per-handler `:drain-msecs` (beta 13) +* \[new] Added [`*auto-stop-handlers?*`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#*auto-stop-handlers?*) (beta 13) +* \[new] [`remove-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#remove-handler!) now auto stops relevant handlers after removal (beta 13) +* \[new] [`with-handler`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#with-handler) and [`with-handler+`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#with-handler+) now auto stops relevant handlers after use (beta 12) +* \[new] (Advanced) Handler fns can now include `:dispatch-opts` metadata, useful for handler authors that want to set defaults for use by [`add-handler!`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#add-handler!) (beta 8) +* \[new] Added [Slack handler](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.slack#handler:slack) (beta 8) +* \[new] Added [TCP](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.sockets#handler:tcp-socket) and [UDP](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.sockets#handler:udp-socket) socket handlers (beta 7) +* \[new] Clj [signal content](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere#help:signal-content) now includes `:thread {:keys [group name id]}` key (beta 7) +* \[new] Added [postal (email) handler](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.postal#handler:postal) (beta 5) +* \[new] Handlers now block to try drain their signal queues on shutdown (beta 3) +* \[new] Rate limiter performance improvements (via Encore) (beta 3) + +## Recent fixes + +### Since `v1.0.0-beta25` (2024-09-25) + +* **\[fix]** `signal-opts`: allow map forms as intended \[f7a5663] (RC1) +* **\[fix]** `uncaught->error!` wasn't working (@benalbrecht) \[7f52cb1] (RC1) + +### Earlier + +* \[fix] Regression affecting deprecated `rate-limiter*` (beta 25) +* \[fix] Don't try count non-list tracing bodies \[88f7a3c7d] (beta 24) +* \[fix] [#21] Work around issue with use in Cljs `core.async/go` bodies \[cbab57be6] (beta 23) +* \[fix] [#20] Wrong :arglists meta on `spy!` \[568906c96] (beta 23) +* \[fix] [#18] Support `{:uid :auto}` for non-tracing signal creators \[f52a04b4d] (beta 23) +* \[fix] Runtime Clj env config now works correctly in uberjars (beta 23) +* \[fix] Signal `:line` info missing for some wrapped-macro cases \[0f09b797e] (beta 22) +* \[fix] OpenTelemetry handler: use signal callsite Context as root span parent \[a8e92303] (beta 19) +* \[fix] [#16] OpenTelemetry handler: coerce line attrs (@flyingmachine) \[17349a08] (beta 19) +* \[fix] Decrease min Java version (11->8) (@flyingmachine) \[a1c50f10] (beta 19) +* \[fix] Broken handler ns and kind filters \[23194238] (beta 16) +* \[fix] [#10] OpenTelemetry handler: render keywords as plain strings \[6e94215e] (beta 15) +* \[fix] [#11] OpenTelemetry handler: signals without message fail \[863cea15] (beta 15) +* \[fix] [#14] File handler: Don't truncate gzip output \[2d4b0497] (beta 15) +* \[fix] Don't drop signals while draining async buffer during shutdown, add tests (via Encore) (beta 12, beta 13) +* \[fix] [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) wasn't realizing delayed messages, add tests \[cf72017a] (beta 11) +* \[fix] [`pr-signal-fn`](https://cljdoc.org/d/com.taoensso/telemere/CURRENT/api/taoensso.telemere.utils#pr-signal-fn) broken custom pr-fn support, add tests \[e7cce0c1] (beta 10) +* \[fix] [#6] Missing root stack trace, add tests \[213c6470] (beta 9) +* \[fix] Broken AOT support, add tests \[ffea1a30] (beta 1) +* \[fix] SLF4J broken timestamps, add tests \[e222297a] (beta 1) + +--- + # `v1.0.0-beta25` (2024-09-25) ## 📦 Dependencies diff --git a/README.md b/README.md index e93b93b..9454db4 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ See [here](../../wiki/1-Getting-started) for **full introduction** (concepts, te ## Latest release/s -- `2024-09-25` `v1.0.0-beta25`: [release info](../../releases/tag/v1.0.0-beta25) (for early adopters/feedback) +- `2024-10-29` `v1.0.0-RC1`: [release info](../../releases/tag/v1.0.0-RC1) [![Main tests][Main tests SVG]][Main tests URL] [![Graal tests][Graal tests SVG]][Graal tests URL] diff --git a/projects/main/project.clj b/projects/main/project.clj index 63091a1..2de5852 100644 --- a/projects/main/project.clj +++ b/projects/main/project.clj @@ -1,4 +1,4 @@ -(defproject com.taoensso/telemere "1.0.0-SNAPSHOT" +(defproject com.taoensso/telemere "1.0.0-RC1" :author "Peter Taoussanis " :description "Structured telemetry library for Clojure/Script" :url "https://www.taoensso.com/telemere" @@ -46,14 +46,14 @@ *unchecked-math* false #_:warn-on-boxed} :dependencies - [[org.clojure/core.async "1.6.681"] - [org.clojure/test.check "1.1.1"] - [org.clojure/tools.logging "1.3.0"] - [org.slf4j/slf4j-api "2.0.16"] - [com.taoensso/telemere-shell "1.0.0-SNAPSHOT"] - [com.taoensso/telemere-slf4j "1.0.0-SNAPSHOT"] - #_[org.slf4j/slf4j-simple "2.0.16"] - #_[org.slf4j/slf4j-nop "2.0.16"] + [[org.clojure/core.async "1.6.681"] + [org.clojure/test.check "1.1.1"] + [org.clojure/tools.logging "1.3.0"] + [org.slf4j/slf4j-api "2.0.16"] + [com.taoensso/telemere-shell "1.0.0-RC1"] + [com.taoensso/telemere-slf4j "1.0.0-RC1"] + #_[org.slf4j/slf4j-simple "2.0.16"] + #_[org.slf4j/slf4j-nop "2.0.16"] ;;; For optional handlers [io.opentelemetry/opentelemetry-api "1.43.0"] diff --git a/projects/shell/project.clj b/projects/shell/project.clj index 1b88849..5121bc7 100644 --- a/projects/shell/project.clj +++ b/projects/shell/project.clj @@ -1,4 +1,4 @@ -(defproject com.taoensso/telemere-shell "1.0.0-SNAPSHOT" +(defproject com.taoensso/telemere-shell "1.0.0-RC1" :author "Peter Taoussanis " :description "Minimal Telemere shell API for library authors, etc." :url "https://www.taoensso.com/telemere" @@ -15,7 +15,7 @@ {:dependencies [[org.clojure/clojurescript "1.11.132"] [org.clojure/clojure "1.12.0"] - [com.taoensso/telemere "1.0.0-SNAPSHOT"]]} + [com.taoensso/telemere "1.0.0-RC1"]]} :dev {:plugins diff --git a/projects/slf4j/project.clj b/projects/slf4j/project.clj index 090bb03..d80ee20 100644 --- a/projects/slf4j/project.clj +++ b/projects/slf4j/project.clj @@ -1,4 +1,4 @@ -(defproject com.taoensso/telemere-slf4j "1.0.0-SNAPSHOT" +(defproject com.taoensso/telemere-slf4j "1.0.0-RC1" :author "Peter Taoussanis " :description "Telemere backend/provider for SLF4J API v2" :url "https://www.taoensso.com/telemere" @@ -18,7 +18,7 @@ {:dependencies [[org.clojure/clojure "1.12.0"] [org.slf4j/slf4j-api "2.0.16"] - [com.taoensso/telemere "1.0.0-SNAPSHOT"]]} + [com.taoensso/telemere "1.0.0-RC1"]]} :dev {:plugins