sarvex / .files

0 stars 0 forks source link

Update dependency funcool/promesa to v11 #85

Closed renovate[bot] closed 11 months ago

renovate[bot] commented 11 months ago

Mend Renovate logo banner

This PR contains the following updates:

Package Update Change
funcool/promesa major 9.0.471 -> 11.0.678

Release Notes

funcool/promesa (funcool/promesa) ### [`v11.0.678`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-110678) - Fix internal coercion function (cljs only) that causes unexpected behavior on `all` method - Add native suppor for `.finally` method on internal promise ### [`v11.0.674`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-110674) - Restore `error` helper for backward compatiblity ### [`v11.0.671`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-110671) [Compare Source](https://togithub.com/funcool/promesa/compare/11.0.670...11.0.671) - Fix issue on channel close operation (cljs only) ### [`v11.0.670`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-110670) [Compare Source](https://togithub.com/funcool/promesa/compare/11.0.664...11.0.670) - Add minor performance optimizations to internal PromiseImpl (cljs only) ### [`v11.0.664`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-110664) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.594...11.0.664) **Important Notice** In this version, one of the problems that existed since the birth of this library has been corrected, related to the fact that the default implementation of js/Promise makes it impossible to nest promises. This fact has caused the library in the first place to have had a divergence with its counterpart in CLJ/JVM and, secondly, to the fact that mapcat-type operators could not be correctly implemented, making them practically useless. With this version, the problem is fixed and while it cannot technically be considered a backwards compatibility break, some operators with promises will not function identically. Basically the magical auto-unwrapping of promises is gone. Function docstrings have already been explicit about what they are expected to return, so if you've been relying on the js/Promise implementation detail in CLJS, it's possible that some pieces of code are broken, because now several operators already work the same way in CLJ and CLJS. It should be said that only a set of operators has been really affected by the change. The Promise library exposes two styles of APIs: - one that is designed to be used with the `->` (`then`, `catch`, `handle`, `finally`) macro and is intended to emulate the behavior of js/Promise and that api hasn't changed, keep going working as it worked; - and the second style of api designed to be used with the `->>` macro (the `fmap`, `mcat`, `hmap`, `hcat`, `merr` and `fnly` functions, where already the contract was more strict); This is where this fix may have really affected the most since it makes it even stricter regarding the return values of the callbacks. As I have already commented before, the docstrings already had all this specified for a few versions. **Breaking changes:** - Rename `:async?` to `:async` prop on `fork-join-executor` for naming consistency - Internal refactor of Bulkhead impl, with relevant change is: raises exception instantly on submitig task on a busy instance instead of returning a rejected completable future **Relevant changes:** - Add internal Promise implementation that allows promise inspection. That enables the `pending?` `done?` `resolved?` and `rejected?` predicates to be used from CLJS - Add `IDeref` implementation to promises (`@promise` or `(deref promise)` now can be used on CLJS in a nonblocking way, if promise is not fulfilled, `nil` will be returned) - Expose almost all CSP API to CLJS (with the exception of go macros, because the JS runtime has no vthreads) - Fix many bugs on current CSP impl - Add first class support for errors on channels - Add metadata support for channels - Add `promesa.exec/get-thread-id` as replacement for the deprecated `thread-id` function. - Add `promesa.exec/fn->thread` thread constructor - Add `promesa.exec/thread-call` thread constructor (advanced version of `promesa.core/thread-call`) that creates unpooled threads - Add `promesa.exec/set-name!` helper for set/update thread name - Add `promesa.exec/get-name` helper for retrieve thread name - Add `promesa.util/try!` macro helper that wrap expression into a try/catch block and return the result or exception as value - Add `promesa.util/ignoring` macro helpet that wrap expression into a try/catch block and return the result or `nil` if exception is raised - Add `promesa.exec.semaphore` (only on JVM) namespace with helpers for working with Semaphore instances - Add semaphore based bulkhead implementation - Fix GraalVM support thanks to [@​borkdude](https://togithub.com/borkdude) ### [`v10.0.594`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100594) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.582...10.0.594) - Enable creation of virtual threads on `promesa.exec/thread` low-level macro. - Change internal vars naming for checking if the Virtual Threads ara available. - Properly unwrap completion exception on finally. - Define cljs Scheduler type statically, with deftype instead of reify (bacause of https://clojure.atlassian.net/browse/CLJS-3207) - Update github actions ### [`v10.0.582`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100582) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.581...10.0.582) - Add `once-buffer` (analogous to core.async `promise-buffer`). - Fix incorrect handling of terminating transducers on channels. ### [`v10.0.581`](https://togithub.com/funcool/promesa/compare/10.0.575...10.0.581) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.575...10.0.581) ### [`v10.0.575`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100575) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.571...10.0.575) - Add `expanding-buffer` as more flexible alternative to `fixed-buffer`. - Use `expanding-buffer` by default on channels initialized with buffer size. - Fix unexpected exception when channel is used with mapcat transducer. ### [`v10.0.571`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100571) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.570...10.0.571) - Revert deprecation of `then'` and `chain'` - Add **experimental** `promesa.core/wait-all` helper ### [`v10.0.570`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100570) [Compare Source](https://togithub.com/funcool/promesa/compare/10.0.544...10.0.570) - Add `promesa.exec.csp/mult*` alternative multiplexer constructor more similar to the `clojure.core.async/mult` one - Fix `promesa.exec/run!` and `promesa.exec/submit!`; make them respect the `promesa.exec/*default-executor*` dynamic var value when no explicit executor is provided - Improve internal implementation of `promesa.core/loop` macro (making it a little bit more efficient - Add general purpose `promesa.core/await!` and `promesa.core/await` helpers that serves for blocking current thread waiting the termination/completion of some resource; (**EXPERIMENTAL**, **JVM only**, look at ref-docs for details). Implemented by default for `Thread`, `CountDownLatch`, `CompletionStage` and `CompletableFuture`. - Reimplement `promesa.exec.csp/pipe` using promise API; removing internal go-block and make it more friendly to non-vthread JVM. - Reimplement `promesa.exec.csp/onto-chan!` using promise API; removing internal go-block and make it more friendly to non-vthread JVM. BREAKING CHANGE ON EXPERIMENTAL CSP API: - Make `put!` as blocking API, and move future returning api to `put`. - Make `take!` as blocking API, and move future returning api to `take`. ### [`v10.0.544`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-100544) [Compare Source](https://togithub.com/funcool/promesa/compare/9.2.542...10.0.544) **This release includes internal protocols changes that breaks compatibility. If you are using only public API, you should not be affected.** - Deprecate undocumented `promesa.core/chain'` function - Deprecate undocumented `promesa.core/catch'` function - Deprecate `promesa.core/error` alias to `catch` - Improve efficiency in the `promesa.core/any` implementation - Remove undocumented `promesa.core/err` alias. - Add `promesa.core/hmap` and `promesa.core/hcat` functions (in the same family as `promesa.core/handle` but with arguments in inverse order and no automatic unwrapping) - Add `promesa.core/fmap` convenience alias for `promesa.core/map` - Add `promesa.core/merr` (inverse ordered arguments and no automatic unwrapping version of `promesa.core/catch`) - Fix `promesa.exec.csp/!<` arguments (thanks to [@​alexandergunnarson](https://togithub.com/alexandergunnarson)) - Add `promesa.exec.csp/go-chan` convenience macro (thanks to [@​alexandergunnarson](https://togithub.com/alexandergunnarson) for the suggestion) - Add `promesa.exec/thread?` function - Update documentation related to all new related functions ### [`v9.2.542`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-92542) [Compare Source](https://togithub.com/funcool/promesa/compare/9.2.541...9.2.542) - Add `promesa.core/mcat`, a shorter alias for `mapcat` - Add `promesa.core/hmap`, a shorter alias for `handle` with inverted arguments (for `->>`) - Add `promesa.core/fnly`, a shorter alias for `finally` with inverted arguments (for `->>`) - Add `promesa.exec.bulkhead/bulkhead?` predicate. - Add arity 0 for `promesa.exec/interrupt!` function (interrupts the current thread). ### [`v9.2.541`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-92541) [Compare Source](https://togithub.com/funcool/promesa/compare/9.1.540...9.2.541) BREAKING CHANGES: They are very recent additions and may be considered experimental, but still worth mentioning as breaking change: - Rename `px/thread-interrupted?` to `px/interrupted?` - Rename `px/interrupt-thread!` to `px/interrupt!` - Move `promesa.exec.csp/sleep` to `px/sleep` Other changes: - Add `px/shutdown?` predicate - Make `px/sleep` accept number (in milliseconds) and duration instance - Make the `px/shutdown!` and `px/shutdown-now!` CLJ only ### [`v9.1.540`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-91540) [Compare Source](https://togithub.com/funcool/promesa/compare/9.1.539...9.1.540) - Minor consistency fix on `px/thread` macro parameters - Fix consistency issues on naming for internal thread factory helpers (this may **BREAKING CHANGE** if you are using the internal factory helpers). ### [`v9.1.539`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-91539) [Compare Source](https://togithub.com/funcool/promesa/compare/9.1.538...9.1.539) - Set the `px/thread` by default the daemon flag to true ### [`v9.1.538`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-91538) [Compare Source](https://togithub.com/funcool/promesa/compare/9.1.536...9.1.538) - Add `px/current-thread` helper function - Add `px/thread-interrupted?` helper function - Add `px/interrupt-thread!` helper function - Add `px/join!` helper function - Add `px/thread-id` helper function - Add `px/thread` low-level macro for create non-pooled threads ### [`v9.1.536`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-91536) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.518...9.1.536) - Assign default parallelism to scheduled executor (based on CPUs). - Add channels & csp pattern (experimental). - Restructurate documentation and improve many docstrings. ### [`v9.0.518`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90518) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.507...9.0.518) - Forward dynamic bindings for `pmap`. - Forward dynamic bindings for `with-dispatch` - Add minor internal adjustments to bulkhead. ### [`v9.0.507`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90507) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.494...9.0.507) - Replace previously introduced `ConcurrencyLimiter` (java impl) with `Bulkhead` (100% clojure impl; cljs not suported but contributions welcome to port it to cljs if someone consider it can be useful). - Fix `promesa.core/wrap`; it now only wraps if the value is not a promise instance - Add `promesa.exec/pmap`; a simplified `clojure.core/pmap` analogous function that allows use a user specified executor (thanks to the dynamic vars) (EXPERIMENTAL) - Add `promesa.exec/with-executor` helper macro for easily bind a new value to the `*default-executor*` and optionally close it on lexical scope ending (EXPERIMENTAL) ### [`v9.0.494`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90494) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.493...9.0.494) Date: 2022-10-31 - Add missing classes to repository ### [`v9.0.493`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90493) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.489...9.0.493) Date: 2022-10-31 - Minor documentation updates. - Make it work again as git dep. ### [`v9.0.489`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90489) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.488...9.0.489) Date: 2022-10-18 - Minor fixes on concurrency limiter hook fns. ### [`v9.0.488`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90488) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.486...9.0.488) Date: 2022-10-17 - Add more usability fixes on concurrencly limiter ### [`v9.0.486`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90486) Date: 2022-10-17 - Make usability and observability improvements to concurrency limiter ### [`v9.0.485`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90485) Date: 2022-10-17 - Exclude limiter from CLJS. - Make `-run!` protocol method be implemented in terms of `-submit!`. - Make ConcurrencyLimiter implement the IExecutor protocol. ### [`v9.0.481`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90481) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.477...9.0.481) Date: 2022-10-17 - Rewrite ConcurrencyLimiter for make it more clojure frendly. - Expose the **experimental** API for the ConcurrencyLimiter class. - Officially drop support for JDK <= 8 ### [`v9.0.477`](https://togithub.com/funcool/promesa/blob/HEAD/CHANGELOG.md#Version-90477) [Compare Source](https://togithub.com/funcool/promesa/compare/9.0.471...9.0.477) Date: 2022-10-15 - Change the license from BSD-2 to MPL-2.0 - Remove from CLJS: IState protocol and all related public API; that functions already does not works on cljs becuase of platform promise limitations, so we decided to just exclude them from cljs and saves some bytes - Simplify `pending?` impl in JVM - Add experimental (JVM only) ConcurrencyLimiter class

Configuration

πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ”• Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.