= Changelog

A release with known breaking changes is marked with:

* [breaking] you probably need to change your code
* [minor breaking] you likely don't need to change your code

// DO NOT EDIT: the "Unreleased" section header is automatically updated by bb publish
// bb publish will fail on any of:
// - unreleased section not found,
// - unreleased section empty
// - optional attribute is not [breaking] or [minor breaking]
//   (adjust these in publish.clj as you see fit)
== Unreleased

== v1.2.24 - 2024-05-07 [[v1.2.24]]

* Fix: Default scope for managed dependencies should not be hard-coded to `compile`
(https://github.com/clj-commons/pomegranate/issues/125[#125])
(https://github.com/marcobiscaro2112[@marcobiscaro2112])
* Docs: minor updates/corrections

https://github.com/clj-commons/pomegranate/compare/v1.2.23\...v1.2.24[commit log]

== v1.2.23 - 2023-02-13 [[v1.2.23]]

* Bump stale deps, some of which had vulnerabilities
(https://github.com/clj-commons/pomegranate/issues/134[#134])
(https://github.com/lread[@lread])
* Don't accept empty but truthy `:repositories`
(https://github.com/clj-commons/pomegranate/pull/133[#133])
(https://github.com/vemv[@vemv])
* General quality
** Review and update docs and docstrings.
(https://github.com/clj-commons/pomegranate/issues/149[#149])
(https://github.com/clj-commons/pomegranate/issues/153[#153])
(https://github.com/lread[@lread])
** Update automated testing to cover Linux, Windows, current JDKs, and Clojure v1.4+
(https://github.com/clj-commons/pomegranate/issues/137[#137])
(https://github.com/lread[@lread])
** Add automated check for vulnerabilities in dependencies
(https://github.com/clj-commons/pomegranate/pull/135[#135])
(https://github.com/lread[@lread])
** Address all reflection warnings
(https://github.com/clj-commons/pomegranate/pull/131[#131])
(https://github.com/vemv[@vemv])
** Add automated clj-kondo linting
(https://github.com/clj-commons/pomegranate/pull/139[#139])
(https://github.com/lread[@lread])
** Add automated release workflow
(https://github.com/clj-commons/pomegranate/pull/138[#138])
(https://github.com/lread[@lread])
** Dependencies now specified only once
(https://github.com/clj-commons/pomegranate/pull/136[#136])
(https://github.com/lread[@lread])
** Review and update classpath related tests
(https://github.com/clj-commons/pomegranate/pull/154[#154])
(https://github.com/lread[@lread])

https://github.com/clj-commons/pomegranate/compare/Release-1.2.1\...v1.2.23[commit log]

== v1.2.1 - 2021-04-12

* Upgrade wagon libs from 3.2.2 \-> 3.3.4

== v1.2.0 - 2020-01-10

* Bump deps
* Add `deps.edn`
(https://github.com/slipset[@slipset])
* Configure session to download signature checksums by default
(https://github.com/clj-commons/pomegranate/issues/113[#113])
(https://github.com/glts[@glts])
* Prep for first release from clj-commons
(https://github.com/slipset[@slipset])
** Change deploy coordinates from cemerick to clj-commons
** Change deploy destination from Maven Central to Clojars
** Switch from Travis CI to CircleCI for tests

== v1.1.1 - 2020-01-10

* Bad release, replaced by v1.2.0

== https://github.com/cemerick/pomegranate/milestone/9?closed=1[v1.1.0] - 2018-10-02

* Upgrade Maven Resolver dependencies (gh-103)

== https://github.com/cemerick/pomegranate/milestone/8?closed=1[v1.0.0] [breaking] - 2017-11-03

* Ensure JDK 9 compatibility via dynapath 1.0.0.
A non-trivial breaking change.
Change is to avoid JDK 9's warnings re: reflective calls into non-public methods, etc.
This means ``URLClassLoader``s are no longer modifiable by default. (gh-92)

== https://github.com/cemerick/pomegranate/issues?q=milestone%3A0.4.0+is%3Aclosed[v0.4.0] [minor breaking] - 2017-08-25

* Potentially breaking: Non-TLS HTTP repositories are unsupported; using a "bare" HTTP repository now requires registering a "wagon" for the insecure transport method (gh-83)
* Switched/upgraded from Sonatype Aether to Maven-resolver (gh-80)
* Upgraded to Maven `3.5.0` (gh-83)
* `add-dependencies` now allows you to specify which `ClassLoader` to modify (gh-63)
* Repository names can now be any `Named` value (strings, keywords, or symbols) (gh-84)
* Some previously-internal functions are now marked as public:
`merge-versions-from-managed-coords` (gh-74), and `dependency` and `make-repository` (gh-69)

== https://github.com/cemerick/pomegranate/issues?q=milestone%3A0.3.1+is%3Aclosed[v0.3.1] - 2016-03-22

* Add support for "managed" dependencies in `resolve-dependencies` (gh-72)

== https://github.com/cemerick/pomegranate/issues?milestone=5&page=1&state=closed[v0.3.0] - 2014-02-17

* Added `cemerick.pomegranate.aether/resolve-artifacts`, which allows for the resolution of a sequence of artifacts, without doing transitive resolution on their dependencies. (gh-57)
* Provide an error if a registered wagon factory fails to instantiate (gh-58)

== v0.2.0 [minor breaking] - 2013-03-18

_This release contains breaking changes from `0.1.3`, though it's expected that
the affected APIs are rarely used.

*Dynamic classpath support (`cemerick.pomegranate`)*

* The `URLClasspath` protocol has been removed in favor of using
https://github.com/tobias/dynapath/[dynapath]'s `DynamicClasspath` protocol.
(gh-43) _breaking change_
* `classloader-hierarchy` now starts at the current thread context classloader instead of Clojure's "baseLoader". _breaking change_
* New `resources` and `classloader-resources` fns for determining from which classloader(s) a given resource is available (gh-48)

*Aether API (`cemerick.pomegranate.aether` and friends)*

* `install-artifacts` and `deploy-artifacts` are now generalized to operate over multiple files (vs. the prior assumptions re: an artifact + a POM) (gh-52)
* `resolve-dependencies*` now available that returns the bare Aether results of dependency resolution, _sans_ Clojure-friendly graphification (gh-50)
* `resolve-dependencies`, `install-artifacts`, and `deploy-artifacts` now accept an optional `:repository-session-fn` to potentially modify the Aether `RespositorySystemSession` prior to its use (gh-56)
