-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MNG-8146] Drop commons-lang #1564
[MNG-8146] Drop commons-lang #1564
Conversation
For start, the distro zip lost almost 1 MB (was 10 MB now is 9MB). Second, am really unsure why it was introduced in the first place, as it merely caused confusion, over StringUtils for example. Finally, these "subtle distinctions" in input param validation (like notBlank throwing NPE for null string, and IAEx for blank string) just really makes no sense: a param is either valid (acceptable) or invalid (unacceptable) and failure should happen.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Several changes are not OK. There is clearly a definition that for a null value an NPE is expected, not IAE for past 10+ years. This violates the expectations from Effective Java. @elharo
This is really nitpicking. Can you show me where we make use of that important distinction? |
Yes, through out our entire codebase. Use https://docs.oracle.com/javase%2F8%2Fdocs%2Fapi%2F%2F/java/util/Objects.html#requireNonNull-T- as a fallthrough. |
</exclusion> | ||
<exclusion> | ||
<groupId>commons-logging</groupId> | ||
<artifactId>commons-logging</artifactId> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you remove the commons-logging exclusion? This is unrelated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because commons-cli does not depend on any of these, this seems legacy that was never removed? Commons cli deps are only these:
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
<scope>test</scope>
</dependency>
</dependencies>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commons Logging has been removed as a dep?
I agree that for those few cases Commons Lang is overkill. |
Don't divert: I asked you to show me where changed spots in this PR benefit anything from NPE (as vs IAEx). But nevertheless, with copy-paste (of message) introduced Objects.requireNonNull use instead to do throw NPE "by the book". |
I'll have to dig into the individual changes. However overall I no longer trust commons-lang and definitely favor removing our dependence on it if possible. |
For ref, the Maven4 PR #1080 |
return false; | ||
} | ||
for (int i = 0; i < str.length(); i++) { | ||
if (!Character.isDigit(str.charAt(i))) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is going to allow digits from other alphabets beyond the usual 0-9. I don't think we want that, do we?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was
https://github.com/apache/commons-lang/blob/45a955702a06d817aa18007a9b099c37ee2ec20a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java#L679
but it actually ended up here
https://github.com/apache/commons-lang/blob/45a955702a06d817aa18007a9b099c37ee2ec20a/src/main/java/org/apache/commons/lang3/StringUtils.java#L3812-L3813
And javadoc DOES contains example with non latin alphabet. But I agree, we really want ASCII 0-9 here.
@@ -80,10 +79,13 @@ public String getMavenVersion() { | |||
} | |||
|
|||
public boolean isMavenVersion(String versionRange) { | |||
if (Objects.requireNonNull(versionRange, "versionRange can neither be null, empty nor blank") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: comma after empty
@@ -104,8 +105,16 @@ public DefaultBeanConfigurationRequest setConfiguration( | |||
} | |||
|
|||
private Plugin findPlugin(Model model, String groupId, String artifactId) { | |||
Validate.notBlank(groupId, "groupId can neither be null, empty nor blank"); | |||
Validate.notBlank(artifactId, "artifactId can neither be null, empty nor blank"); | |||
if (Objects.requireNonNull(groupId, "groupId can neither be null, empty nor blank") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: comma after empty
@@ -89,7 +89,10 @@ public void testCalculateDegreeOfConcurrency() { | |||
int cpus = Runtime.getRuntime().availableProcessors(); | |||
assertEquals((int) (cpus * 2.2), cli.calculateDegreeOfConcurrency("2.2C")); | |||
assertEquals(1, cli.calculateDegreeOfConcurrency("0.0001C")); | |||
assertThrows(IllegalArgumentException.class, new ConcurrencyCalculator("2.C")); | |||
// Note: this assertion below makes no sense, first Float.parseFloat("2.") DOES parse the string in 2.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, just delete this then
I concur that NPE is strongly preferred over IAE for null values. I didn't happen to find any places where this was done wrong, but I wasn't reading that closely. |
I agree with this "general" rule to prefer NPE over IAE, but disagree with unconditional sticking to this rule. One has to be pragmatic a bit, and allow deviation. My point was, that in this PR, the spots where it was changed did and does not benefit anything from distinguishing NPE from IAE, while if you look at change that made PR "by the book" (to distinguish NPE and IAE) worsened the quality of code, as it caused string/message duplication all over the place. Result: no benefit but code redundancy has grown. So, IMHO rigidly sticking to something is just as bad as never adhering to any best practice. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very good now. What about transitive commons lang?
@@ -179,7 +179,8 @@ private static boolean isDigits(String str) { | |||
return false; | |||
} | |||
for (int i = 0; i < str.length(); i++) { | |||
if (!Character.isDigit(str.charAt(i))) { | |||
char c = str.charAt(i); | |||
if (!(c >= '0' && c <= '9')) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good!
assertTrue(Character.isDigit(ver.charAt(4))); | ||
ArtifactVersion version = newArtifactVersion(ver); | ||
assertEquals(ver, version.getQualifier()); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hold on, shouldn't this fail?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, as these are not numbers anymore, they are qualifiers (otherwise it would go into major, minor...)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
man, I want U+1F4A9
as qualifier!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but we must carry thru same change on Resolver as well...
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@codemirror/view](https://github.com/codemirror/view) | [`6.28.1` -> `6.28.2`](https://renovatebot.com/diffs/npm/@codemirror%2fview/6.28.1/6.28.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@codemirror%2fview/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@codemirror%2fview/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@codemirror%2fview/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@codemirror%2fview/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@headlessui/react](https://github.com/tailwindlabs/headlessui) ([source](https://github.com/tailwindlabs/headlessui/tree/HEAD/packages/@headlessui-react)) | [`2.0.4` -> `2.1.1`](https://renovatebot.com/diffs/npm/@headlessui%2freact/2.0.4/2.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@headlessui%2freact/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@headlessui%2freact/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@headlessui%2freact/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@headlessui%2freact/2.0.4/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@heroicons/react](https://github.com/tailwindlabs/heroicons) | [`2.1.3` -> `2.1.4`](https://renovatebot.com/diffs/npm/@heroicons%2freact/2.1.3/2.1.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@heroicons%2freact/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@heroicons%2freact/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@heroicons%2freact/2.1.3/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@heroicons%2freact/2.1.3/2.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mocha) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha)) | [`10.0.6` -> `10.0.7`](https://renovatebot.com/diffs/npm/@types%2fmocha/10.0.6/10.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fmocha/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fmocha/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fmocha/10.0.6/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fmocha/10.0.6/10.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.14.2` -> `20.14.9`](https://renovatebot.com/diffs/npm/@types%2fnode/20.14.2/20.14.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.14.2/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.14.2/20.14.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@typescript-eslint/eslint-plugin](https://typescript-eslint.io/packages/eslint-plugin) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)) | [`7.13.0` -> `7.14.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@typescript-eslint/parser](https://typescript-eslint.io/packages/parser) ([source](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)) | [`7.13.0` -> `7.14.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/7.13.0/7.14.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/7.13.0/7.14.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [buf](https://github.com/bufbuild/buf) | `1.33.0` -> `1.34.0` | [![age](https://developer.mend.io/api/mc/badges/age/hermit/buf/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/buf/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/buf/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/buf/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | minor | | [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | [`7.34.2` -> `7.34.3`](https://renovatebot.com/diffs/npm/eslint-plugin-react/7.34.2/7.34.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-react/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-react/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-react/7.34.2/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-react/7.34.2/7.34.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `v1.27.2` -> `v1.30.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2/v1.27.2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2/v1.27.2/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `v1.27.18` -> `v1.27.21` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.18/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fconfig/v1.27.18/v1.27.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `v1.17.18` -> `v1.17.21` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.18/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fcredentials/v1.17.18/v1.17.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/aws/aws-sdk-go-v2/service/secretsmanager](https://github.com/aws/aws-sdk-go-v2) | `v1.30.0` -> `v1.31.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go-v2%2fservice%2fsecretsmanager/v1.30.0/v1.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/puzpuzpuz/xsync/v3](https://github.com/puzpuzpuz/xsync) | `v3.1.0` -> `v3.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.1.0/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fpuzpuzpuz%2fxsync%2fv3/v3.1.0/v3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/swaggest/jsonschema-go](https://github.com/swaggest/jsonschema-go) | `v0.3.70` -> `v0.3.72` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fswaggest%2fjsonschema-go/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fswaggest%2fjsonschema-go/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fswaggest%2fjsonschema-go/v0.3.70/v0.3.72?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/tmc/langchaingo](https://github.com/tmc/langchaingo) | `v0.1.11` -> `v0.1.12` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ftmc%2flangchaingo/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ftmc%2flangchaingo/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ftmc%2flangchaingo/v0.1.11/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ftmc%2flangchaingo/v0.1.11/v0.1.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [maven](https://github.com/apache/maven) | `3.9.7` -> `3.9.8` | [![age](https://developer.mend.io/api/mc/badges/age/hermit/maven/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/maven/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/maven/3.9.7/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/maven/3.9.7/3.9.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | patch | | [protoc](https://github.com/protocolbuffers/protobuf) | `27.1` -> `27.2` | [![age](https://developer.mend.io/api/mc/badges/age/hermit/protoc/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/protoc/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/protoc/27.1/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/protoc/27.1/27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | minor | | [react-router-dom](https://github.com/remix-run/react-router) ([source](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | [`6.23.1` -> `6.24.0`](https://renovatebot.com/diffs/npm/react-router-dom/6.23.1/6.24.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.23.1/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.23.1/6.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [reactflow](https://github.com/xyflow/xyflow) ([source](https://github.com/xyflow/xyflow/tree/HEAD/packages/reactflow)) | [`11.11.3` -> `11.11.4`](https://renovatebot.com/diffs/npm/reactflow/11.11.3/11.11.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/reactflow/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/reactflow/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/reactflow/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/reactflow/11.11.3/11.11.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/Microsoft/TypeScript)) | [`5.4.5` -> `5.5.2`](https://renovatebot.com/diffs/npm/typescript/5.4.5/5.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.4.5/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.4.5/5.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [webpack](https://github.com/webpack/webpack) | [`5.92.0` -> `5.92.1`](https://renovatebot.com/diffs/npm/webpack/5.92.0/5.92.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/webpack/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/webpack/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/webpack/5.92.0/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/webpack/5.92.0/5.92.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [zola](https://github.com/getzola/zola) | `0.18.0` -> `0.19.1` | [![age](https://developer.mend.io/api/mc/badges/age/hermit/zola/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/hermit/zola/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/hermit/zola/0.18.0/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/hermit/zola/0.18.0/0.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | minor | | [org.apache.maven.plugins:maven-dependency-plugin](https://maven.apache.org/plugins/) | `3.7.0` -> `3.7.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-dependency-plugin/3.7.0/3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | build | patch | | [io.github.classgraph:classgraph](https://github.com/classgraph/classgraph) | `4.8.173` -> `4.8.174` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.classgraph:classgraph/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.classgraph:classgraph/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.classgraph:classgraph/4.8.173/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.classgraph:classgraph/4.8.173/4.8.174?slim=true)](https://docs.renovatebot.com/merge-confidence/) | compile | patch | --- ### Release Notes <details> <summary>codemirror/view (@​codemirror/view)</summary> ### [`v6.28.2`](https://github.com/codemirror/view/blob/HEAD/CHANGELOG.md#6282-2024-06-21) [Compare Source](https://github.com/codemirror/view/compare/6.28.1...6.28.2) ##### Bug fixes Only use `EditContext` on Chrome versions that support passing it an inverted selection range. Fix an issue that prevented non-inclusive block widgets from having their `updateDOM` method called when changed. Re-enable `EditContext` use on Chrome 126 and up. </details> <details> <summary>tailwindlabs/headlessui (@​headlessui/react)</summary> ### [`v2.1.1`](https://github.com/tailwindlabs/headlessui/blob/HEAD/packages/@​headlessui-react/CHANGELOG.md#211---2024-06-26) [Compare Source](https://github.com/tailwindlabs/headlessui/compare/@headlessui/react@v2.1.0...@headlessui/react@v2.1.1) ##### Fixed - Fix issues spreading omitted props onto components ([#​3313](https://github.com/tailwindlabs/headlessui/pull/3313)) - Fix initial `anchor="selection"` positioning ([#​3324](https://github.com/tailwindlabs/headlessui/pull/3324)) - Fix render prop in `ComboboxOptions` to use `any` instead of `unknown` ([#​3327](https://github.com/tailwindlabs/headlessui/pull/3327)) - Fix incorrect `Transition` boundary for `Dialog` component ([#​3331](https://github.com/tailwindlabs/headlessui/pull/3331)) ### [`v2.1.0`](https://github.com/tailwindlabs/headlessui/blob/HEAD/packages/@​headlessui-react/CHANGELOG.md#210---2024-06-21) [Compare Source](https://github.com/tailwindlabs/headlessui/compare/@headlessui/react@v2.0.4...@headlessui/react@v2.1.0) ##### Added - Add ability to render multiple `Dialog` components at once (without nesting them) ([#​3242](https://github.com/tailwindlabs/headlessui/pull/3242)) - Add new data-attribute-based transition API ([#​3273](https://github.com/tailwindlabs/headlessui/pull/3273), [#​3285](https://github.com/tailwindlabs/headlessui/pull/3285), [#​3307](https://github.com/tailwindlabs/headlessui/pull/3307), [#​3309](https://github.com/tailwindlabs/headlessui/pull/3309), [#​3312](https://github.com/tailwindlabs/headlessui/pull/3312)) - Add `DialogBackdrop` component ([#​3307](https://github.com/tailwindlabs/headlessui/pull/3307), [#​3310](https://github.com/tailwindlabs/headlessui/pull/3310)) - Add `PopoverBackdrop` component to replace `PopoverOverlay` ([#​3308](https://github.com/tailwindlabs/headlessui/pull/3308)) ##### Fixed - Keep `Combobox` open when clicking scrollbar in `ComboboxOptions` ([#​3249](https://github.com/tailwindlabs/headlessui/pull/3249)) - Ensure `ComboboxInput` does not sync with current value while typing ([#​3259](https://github.com/tailwindlabs/headlessui/pull/3259)) - Fix visual jitter in `Combobox` component when using native scrollbar ([#​3190](https://github.com/tailwindlabs/headlessui/pull/3190)) - Improve UX by freezing `ComboboxOptions` while closing ([#​3304](https://github.com/tailwindlabs/headlessui/pull/3304)) - Merge incoming `style` prop on `ComboboxOptions`, `ListboxOptions`, `MenuItems`, and `PopoverPanel` components ([#​3250](https://github.com/tailwindlabs/headlessui/pull/3250)) - Prevent focus on `Checkbox` when it is `disabled` ([#​3251](https://github.com/tailwindlabs/headlessui/pull/3251)) - Use `useId` instead of React internals (for React 19 compatibility) ([#​3254](https://github.com/tailwindlabs/headlessui/pull/3254)) - Cancel outside click behavior on touch devices when scrolling ([#​3266](https://github.com/tailwindlabs/headlessui/pull/3266)) - Correctly apply conditional classes when using `Transition` and `TransitionChild` components ([#​3303](https://github.com/tailwindlabs/headlessui/pull/3303)) ##### Changed - Allow using the `Tab` and `Shift+Tab` keys when the `Listbox` component is open ([#​3284](https://github.com/tailwindlabs/headlessui/pull/3284)) </details> <details> <summary>tailwindlabs/heroicons (@​heroicons/react)</summary> ### [`v2.1.4`](https://github.com/tailwindlabs/heroicons/blob/HEAD/CHANGELOG.md#214---2024-06-17) [Compare Source](https://github.com/tailwindlabs/heroicons/compare/v2.1.3...v2.1.4) ##### Fixed - Improve tree-shakability of React package ([#​1192](https://github.com/tailwindlabs/heroicons/pull/1192)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v7.14.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7141-2024-06-24) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-nullish-coalescing] treat enums and literals as their underlying primitive types - **eslint-plugin:** \[prefer-nullish-coalescing] ensure ternary fix does not remove parens ##### ❤️ Thank You - Jake Bailey You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v7.14.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7140-2024-06-24) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0) ##### 🚀 Features - support TypeScript 5.5 ##### 🩹 Fixes - **eslint-plugin:** \[no-extraneous-class] handle abstract members - **eslint-plugin:** \[prefer-nullish-coalescing] handle intersected primitive types - **eslint-plugin:** \[no-invalid-this] support AccessorProperty ##### ❤️ Thank You - Brad Zacher - cm-ayf - Jake Bailey - James Zhan - Joshua Chen - yoshi2no You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v7.13.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#7131-2024-06-17) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1) ##### 🩹 Fixes - **eslint-plugin:** \[prefer-readonly] refine report locations - **eslint-plugin:** \[return-await] support explicit resource management - **eslint-plugin:** \[no-unsafe-member-access] differentiate a types-error any from a true any ##### ❤️ Thank You - Kirk Waiblinger - Yukihiro Hasegawa You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v7.14.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7141-2024-06-24) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.14.0...v7.14.1) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v7.14.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7140-2024-06-24) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.13.1...v7.14.0) ##### 🚀 Features - support TypeScript 5.5 ##### ❤️ Thank You - Brad Zacher - cm-ayf - Jake Bailey - James Zhan - Joshua Chen - yoshi2no You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. ### [`v7.13.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#7131-2024-06-17) [Compare Source](https://github.com/typescript-eslint/typescript-eslint/compare/v7.13.0...v7.13.1) This was a version bump only for parser to align it with other projects, there were no code changes. You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website. </details> <details> <summary>bufbuild/buf (buf)</summary> ### [`v1.34.0`](https://github.com/bufbuild/buf/blob/HEAD/CHANGELOG.md#v1340---2024-06-21) - Add `buf config ls-modules` command to list configured modules. - Fix issue where `buf generate` would succeed on missing insertion points and panic on empty insertion point files. - Update `buf generate` to allow the use of Editions syntax when doing local code generation by proxying to a `protoc` binary (for languages where code gen is implemented inside of `protoc` instead of in a plugin: Java, C++, Python, etc). - Allow use of an array of strings for the `protoc_path` property of for `buf.gen.yaml`, where the first array element is the actual path and other array elements are extra arguments that are passed to `protoc` each time it is invoked. </details> <details> <summary>jsx-eslint/eslint-plugin-react (eslint-plugin-react)</summary> ### [`v7.34.3`](https://github.com/jsx-eslint/eslint-plugin-react/blob/HEAD/CHANGELOG.md#7343---20240618) [Compare Source](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3) ##### Fixed - \[`prop-types`]: null-check rootNode before calling getScope ([#​3762][] [@​crnhrv](https://github.com/crnhrv)) - \[`boolean-prop-naming`]: avoid a crash with a spread prop ([#​3733][] [@​ljharb](https://github.com/ljharb)) - \[`jsx-boolean-value`]: `assumeUndefinedIsFalse` with `never` must not allow explicit `true` value ([#​3757][] [@​6uliver](https://github.com/6uliver)) - \[`no-object-type-as-default-prop`]: enable rule for components with many parameters ([#​3768][] [@​JulienR1](https://github.com/JulienR1)) - \[`jsx-key`]: incorrect behavior for checkKeyMustBeforeSpread with map callbacks ([#​3769][] [@​akulsr0](https://github.com/akulsr0)) [7.34.3]: https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.34.2...v7.34.3 [#​3769]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3769 [#​3768]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3768 [#​3762]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3762 [#​3757]: https://github.com/jsx-eslint/eslint-plugin-react/pull/3757 [#​3733]: https://github.com/jsx-eslint/eslint-plugin-react/issues/3733 </details> <details> <summary>aws/aws-sdk-go-v2 (github.com/aws/aws-sdk-go-v2)</summary> ### [`v1.30.0`](https://github.com/aws/aws-sdk-go-v2/compare/v1.29.0...v1.30.0) [Compare Source](https://github.com/aws/aws-sdk-go-v2/compare/v1.29.0...v1.30.0) ### [`v1.29.0`](https://github.com/aws/aws-sdk-go-v2/compare/v1.28.0...v1.29.0) [Compare Source](https://github.com/aws/aws-sdk-go-v2/compare/v1.28.0...v1.29.0) ### [`v1.28.0`](https://github.com/aws/aws-sdk-go-v2/compare/v1.27.2...v1.28.0) [Compare Source](https://github.com/aws/aws-sdk-go-v2/compare/v1.27.2...v1.28.0) </details> <details> <summary>puzpuzpuz/xsync (github.com/puzpuzpuz/xsync/v3)</summary> ### [`v3.2.0`](https://github.com/puzpuzpuz/xsync/releases/tag/v3.2.0) [Compare Source](https://github.com/puzpuzpuz/xsync/compare/v3.1.0...v3.2.0) - Introduce Map/MapOf configs and grow-only option ([#​132](https://github.com/puzpuzpuz/xsync/issues/132)) Adds options support to the `NewMap`/`NewMapOf` functions. A `MapOf` can now be created like this: ```go m := xsync.NewMapOf[int, int](WithPresize(100)) ``` `NewPresizedMap`/`NewPresizedMapOf` functions are deprecated. Use the `WithPresize` option instead. Also, adds `WithGrowOnly` option. It configures new `Map`/`MapOf` instance to be grow-only. This means that the underlying hash table grows in capacity when new keys are added, but does not shrink when keys are deleted. The only exception to this rule is the `Clear` method which shrinks the hash table back to the initial capacity. Grow-only maps are more efficient in the case of oscillating map size, i.e. when the map frequently grows and then shrinks in size. </details> <details> <summary>swaggest/jsonschema-go (github.com/swaggest/jsonschema-go)</summary> ### [`v0.3.72`](https://github.com/swaggest/jsonschema-go/releases/tag/v0.3.72) [Compare Source](https://github.com/swaggest/jsonschema-go/compare/v0.3.71...v0.3.72) #### What's Changed - Recognize popular UUID types by [@​vearutop](https://github.com/vearutop) in [https://github.com/swaggest/jsonschema-go/pull/120](https://github.com/swaggest/jsonschema-go/pull/120) **Full Changelog**: https://github.com/swaggest/jsonschema-go/compare/v0.3.71...v0.3.72 ### [`v0.3.71`](https://github.com/swaggest/jsonschema-go/releases/tag/v0.3.71) [Compare Source](https://github.com/swaggest/jsonschema-go/compare/v0.3.70...v0.3.71) #### What's Changed - Update CI by [@​vearutop](https://github.com/vearutop) in [https://github.com/swaggest/jsonschema-go/pull/118](https://github.com/swaggest/jsonschema-go/pull/118) - Recognize \[]byte as base64 string by [@​vearutop](https://github.com/vearutop) in [https://github.com/swaggest/jsonschema-go/pull/119](https://github.com/swaggest/jsonschema-go/pull/119) **Full Changelog**: https://github.com/swaggest/jsonschema-go/compare/v0.3.70...v0.3.71 </details> <details> <summary>tmc/langchaingo (github.com/tmc/langchaingo)</summary> ### [`v0.1.12`](https://github.com/tmc/langchaingo/releases/tag/v0.1.12) [Compare Source](https://github.com/tmc/langchaingo/compare/v0.1.11...v0.1.12) #### What's Changed - llms/googleai: fix vertex do not return usage info by [@​wangjiancn](https://github.com/wangjiancn) in [https://github.com/tmc/langchaingo/pull/904](https://github.com/tmc/langchaingo/pull/904) - bugfix: Anthropic Function Calling by [@​lwlee2608](https://github.com/lwlee2608) in [https://github.com/tmc/langchaingo/pull/899](https://github.com/tmc/langchaingo/pull/899) - llms/anthropic: Fix Content set incorrectly for anthropic llm requests by [@​JckHoe](https://github.com/JckHoe) in [https://github.com/tmc/langchaingo/pull/908](https://github.com/tmc/langchaingo/pull/908) - llms/googleai: fix convert tool error by [@​wangjiancn](https://github.com/wangjiancn) in [https://github.com/tmc/langchaingo/pull/903](https://github.com/tmc/langchaingo/pull/903) - llms/googleai: Fix usage population tests, max token test, update dpep by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/910](https://github.com/tmc/langchaingo/pull/910) - docs/groq: by [@​devalexandre](https://github.com/devalexandre) in [https://github.com/tmc/langchaingo/pull/907](https://github.com/tmc/langchaingo/pull/907) - llms/watsonx: update module by [@​h0rv](https://github.com/h0rv) in [https://github.com/tmc/langchaingo/pull/902](https://github.com/tmc/langchaingo/pull/902) - docs: fix text_splitters mdx code example never closed by [@​4lxprime](https://github.com/4lxprime) in [https://github.com/tmc/langchaingo/pull/900](https://github.com/tmc/langchaingo/pull/900) - textsplitter: add WithHeadingHierarchy option to markdown splitter to retain heading hierarchy in chunks by [@​iwilltry42](https://github.com/iwilltry42) in [https://github.com/tmc/langchaingo/pull/898](https://github.com/tmc/langchaingo/pull/898) - examples: point watsonx example at current main by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/911](https://github.com/tmc/langchaingo/pull/911) - outputparser: add `Defined` parser to extract a struct from LLM output by [@​erictse](https://github.com/erictse) in [https://github.com/tmc/langchaingo/pull/856](https://github.com/tmc/langchaingo/pull/856) - anthropic: Improve streaming message handling in anthropic client by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/912](https://github.com/tmc/langchaingo/pull/912) - googleai: Settle on GOOGLE_API_KEY for google auth env var name by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/913](https://github.com/tmc/langchaingo/pull/913) - llms: Increase default tokens by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/914](https://github.com/tmc/langchaingo/pull/914) - examples: Add example readmes by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/916](https://github.com/tmc/langchaingo/pull/916) - examples: Improve top level readme by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/919](https://github.com/tmc/langchaingo/pull/919) - anthropic: Spruce up tool calling example by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/921](https://github.com/tmc/langchaingo/pull/921) - examples: point to 0.1.12-pre.0 by [@​tmc](https://github.com/tmc) in [https://github.com/tmc/langchaingo/pull/922](https://github.com/tmc/langchaingo/pull/922) #### New Contributors - [@​JckHoe](https://github.com/JckHoe) made their first contribution in [https://github.com/tmc/langchaingo/pull/908](https://github.com/tmc/langchaingo/pull/908) - [@​4lxprime](https://github.com/4lxprime) made their first contribution in [https://github.com/tmc/langchaingo/pull/900](https://github.com/tmc/langchaingo/pull/900) - [@​iwilltry42](https://github.com/iwilltry42) made their first contribution in [https://github.com/tmc/langchaingo/pull/898](https://github.com/tmc/langchaingo/pull/898) - [@​erictse](https://github.com/erictse) made their first contribution in [https://github.com/tmc/langchaingo/pull/856](https://github.com/tmc/langchaingo/pull/856) **Full Changelog**: https://github.com/tmc/langchaingo/compare/v0.1.11...v0.1.12 </details> <details> <summary>apache/maven (maven)</summary> ### [`v3.9.8`](https://github.com/apache/maven/releases/tag/maven-3.9.8): 3.9.8 [Compare Source](https://github.com/apache/maven/compare/maven-3.9.7...maven-3.9.8) ##### [Release Notes - Maven - Version 3.9.8](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316922\&version=12354748) <h2> Bug </h2> <ul> <li>[<a href='https://issues.apache.org/jira/browse/MNG-7758'>MNG-7758</a>] - o.e.aether.resolution.ArtifactResolutionException incorrectly examined when multiple repositories are involved </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8066'>MNG-8066</a>] - Maven hangs on self-referencing exceptions </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8116'>MNG-8116</a>] - Plugin configuration can randomly fail in case of method overloading as it doesn&#​39;t take into account implementation attribute </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8131'>MNG-8131</a>] - Property replacement in dependency pom no longer works </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8135'>MNG-8135</a>] - Profile activation based on OS properties is no longer case insensitive </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8142'>MNG-8142</a>] - If JDK profile activator gets "invalid" JDK version for whatever reason, it chokes but does not tell why </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8147'>MNG-8147</a>] - Profile interpolation broke their evaluation in case of duplicate IDs </li> </ul> <h2> Improvement </h2> <ul> <li>[<a href='https://issues.apache.org/jira/browse/MNG-7902'>MNG-7902</a>] - Sort plugins in validation report </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8140'>MNG-8140</a>] - When a model is discarded (by model builder) for whatever reason, show why it happened </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8141'>MNG-8141</a>] - Model Builder should report if not sure about "fully correct" outcome </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8150'>MNG-8150</a>] - Make SimplexTransferListener handle absent source/target files </li> </ul> <h2> Task </h2> <ul> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8146'>MNG-8146</a>] - Drop use of commons-lang </li> </ul> <h2> Dependency upgrade </h2> <ul> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8136'>MNG-8136</a>] - Update to Eclipse Sisu 0.9.0.M3 </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8143'>MNG-8143</a>] - Update to commons-cli 1.8.0 </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8144'>MNG-8144</a>] - Update to Guava 32.2.1-jre </li> <li>[<a href='https://issues.apache.org/jira/browse/MNG-8154'>MNG-8154</a>] - Upgrade default plugin bindings </li> </ul> *** ##### What's Changed - Use Maven Wrapper to build by [@​slawekjaranowski](https://github.com/slawekjaranowski) in [https://github.com/apache/maven/pull/1553](https://github.com/apache/maven/pull/1553) - \[3.9.x] \[MNG-8136] Update Eclipse Sisu to 0.9.0.M3 by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1547](https://github.com/apache/maven/pull/1547) - \[MNG-8135] Profile activation based on OS properties is no longer case insensitive by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1561](https://github.com/apache/maven/pull/1561) - \[3.9.x] Dependency updates by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1560](https://github.com/apache/maven/pull/1560) - \[MNG-7902] Sort plugins in the validation report ([#​1510](https://github.com/apache/maven/issues/1510)) by [@​slawekjaranowski](https://github.com/slawekjaranowski) in [https://github.com/apache/maven/pull/1562](https://github.com/apache/maven/pull/1562) - \[MNG-8066] Default exception handler does not handle recursion by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1558](https://github.com/apache/maven/pull/1558) - \[MNG-8142] Hidden bug: JDK profile activator throw NumberFormatEx by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1557](https://github.com/apache/maven/pull/1557) - \[MNG-8146] Drop commons-lang by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1564](https://github.com/apache/maven/pull/1564) - \[MNG-8140] Always tell why model was discarded as "invalid" by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1555](https://github.com/apache/maven/pull/1555) - \[MNG-8141] Model builder should report problems it finds during build by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1556](https://github.com/apache/maven/pull/1556) - \[MNG-8141]\[MNG-8147] Restore profile ID invariance but warn if duplicate IDs present by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1568](https://github.com/apache/maven/pull/1568) - \[MNG-8141] Aftermath, and tidy up by [@​cstamas](https://github.com/cstamas) in [https://github.com/apache/maven/pull/1572](https://github.com/apache/maven/pull/1572) - \[MNG-8150] Backport TransferListener improvements for Maven 3.9.x by [@​pshevche](https://github.com/pshevche) in [https://github.com/apache/maven/pull/1576](https://github.com/apache/maven/pull/1576) - \[MNG-7758] Report dependency problems for all repository by [@​slawekjaranowski](https://github.com/slawekjaranowski) in [https://github.com/apache/maven/pull/1584](https://github.com/apache/maven/pull/1584) - \[MNG-8154] Upgrade default plugin bindings by [@​slawekjaranowski](https://github.com/slawekjaranowski) in [https://github.com/apache/maven/pull/1586](https://github.com/apache/maven/pull/1586) **Full Changelog**: https://github.com/apache/maven/compare/maven-3.9.7...maven-3.9.8 </details> <details> <summary>protocolbuffers/protobuf (protoc)</summary> ### [`v27.2`](https://github.com/protocolbuffers/protobuf/releases/tag/v27.2): Protocol Buffers v27.2 ### Announcements - [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. ### Compiler - Avoid calling absl::InitializeLog in protoc with MSVC (https://github.com/protocolbuffers/protobuf/commit/aa7fcb3662f677b6ef06b55d5cae9d5b242fa1ef) ### C++ - Fix string_type bugs in edition 2023 ([#​17211](https://github.com/protocolbuffers/protobuf/issues/17211)) (https://github.com/protocolbuffers/protobuf/commit/4923b8d72d39a4189ca7c7b9e20359d6ba527a10) - Add simple conformance test that builds the old gencode against the current runtime. (https://github.com/protocolbuffers/protobuf/commit/9cfb59b5e305dba959403b56112d9a8cf1f4d832) - Make the underlying type of the enum by 8-bits instead of using bitfields for (https://github.com/protocolbuffers/protobuf/commit/316f493b2f7f87f4402caea0d0ae1f332e2550fb) ### Java - Cleanup imports and comments in V3 stubs. (https://github.com/protocolbuffers/protobuf/commit/270ca6681a686fea24e23f7a389e4e3997409a4c) - Add stubs for GeneratedMessageV3, RepeatedFieldBuilderV3, SingleFieldBuilderV3 for compatibility with older <4.26.x gencode. (https://github.com/protocolbuffers/protobuf/commit/1e360a422a04942ff0758f4a390fb6c27b680c96) - Fix checking unknown field set empty which wasn't exposed yet in 27.x (https://github.com/protocolbuffers/protobuf/commit/c7a006a225e0b94b639a9be694b03c835f4db6d6) - Reserialize all unresolved features using java features from the generated pool in case of descriptors from the custom pool. (https://github.com/protocolbuffers/protobuf/commit/2426a02b90d61e6c18b8ffa411e76b1642f47ad6) - Reparse unknown features using extension registry containing Java features. (https://github.com/protocolbuffers/protobuf/commit/e5ddc45645871fbe2c6fc089ebe09f72ca727b5e) - Fix data race in crosslink. (https://github.com/protocolbuffers/protobuf/commit/3d71e22b7ae17cbe82dd20a29ef7ef4e75e06ec5) - Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773) ### Csharp - Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097) - Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773) ### Python - Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773) ### PHP ##### PHP C-Extension - Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097) - *See also UPB changes below, which may affect PHP C-Extension.* ### Ruby ##### Ruby C-Extension - Regenerate stale files (https://github.com/protocolbuffers/protobuf/commit/29f1b5259ea224abcaa9a4eb5e28f804ea8d5097) - *See also UPB changes below, which may affect Ruby C-Extension.* ### UPB (Python/PHP/Ruby C-Extension) - Fix delimited inheritance in all languages. (https://github.com/protocolbuffers/protobuf/commit/c4f359ebf03e235d348a363d3b76660c6c960773) ### Other - Port windows bootstrapping fix ([#​17225](https://github.com/protocolbuffers/protobuf/issues/17225)) (https://github.com/protocolbuffers/protobuf/commit/19bd2115d04fcc6196e504a4f07d99b6f16be7d7) </details> <details> <summary>remix-run/react-router (react-router-dom)</summary> ### [`v6.24.0`](https://github.com/remix-run/react-router/blob/HEAD/packages/react-router-dom/CHANGELOG.md#6240) [Compare Source](https://github.com/remix-run/react-router/compare/react-router-dom@6.23.1...react-router-dom@6.24.0) ##### Minor Changes - Add support for Lazy Route Discovery (a.k.a. Fog of War) ([#​11626](https://github.com/remix-run/react-router/pull/11626)) - RFC: <https://github.com/remix-run/react-router/discussions/11113> - `unstable_patchRoutesOnMiss` docs: <https://reactrouter.com/en/main/routers/create-browser-router> ##### Patch Changes - Fix `fetcher.submit` types - remove incorrect `navigate`/`fetcherKey`/`unstable_viewTransition` options because they are only relevant for `useSubmit` ([#​11631](https://github.com/remix-run/react-router/pull/11631)) - Allow falsy `location.state` values passed to `<StaticRouter>` ([#​11495](https://github.com/remix-run/react-router/pull/11495)) - Updated dependencies: - `react-router@6.24.0` - `@remix-run/router@1.17.0` </details> <details> <summary>xyflow/xyflow (reactflow)</summary> ### [`v11.11.4`](https://github.com/xyflow/xyflow/releases/tag/11.11.4) [Compare Source](https://github.com/xyflow/xyflow/compare/reactflow@11.11.3...11.11.4) This release adds some deprecation warnings and introduces new function and attribute names for "edge update" which is now called "edge reconnect": `updateEdge` => `reconnectEdge` `onEdgeUpdateStart` => `onReconnectStart` `onEdgeUpdate` => `onReconnect` `onEdgeUpdateEnd` => `onReconnectEnd` `edgeUpdaterRadius` => `reconnectRadius` `edge.updatable` => `edge.reconnectable` We changed the term, because we think it's more clear what it does and is better to distinguish from the new `updateEdge` and `updateEdgeData` helpers in React Flow 12. ##### Patch Changes - [#​4389](https://github.com/xyflow/xyflow/pull/4389) [`092b2ecb`](https://github.com/xyflow/xyflow/commit/092b2ecbc45aa829e590acb094c7ef75d752d211) - rename updateEdge to reconectEdge - [#​4387](https://github.com/xyflow/xyflow/pull/4387) [`280a64ee`](https://github.com/xyflow/xyflow/commit/280a64ee1652e36366ea0e0ad6a56a41c6c5f7b9) - abort drag when multiple touches are detected - Updated dependencies \[[`092b2ecb`](https://github.com/xyflow/xyflow/commit/092b2ecbc45aa829e590acb094c7ef75d752d211), [`280a64ee`](https://github.com/xyflow/xyflow/commit/280a64ee1652e36366ea0e0ad6a56a41c6c5f7b9)]: - [@​reactflow/core](https://github.com/reactflow/core)[@​11](https://github.com/11).11.4 - [@​reactflow/background](https://github.com/reactflow/background)[@​11](https://github.com/11).3.14 - [@​reactflow/controls](https://github.com/reactflow/controls)[@​11](https://github.com/11).2.14 - [@​reactflow/minimap](https://github.com/reactflow/minimap)[@​11](https://github.com/11).7.14 - [@​reactflow/node-resizer](https://github.com/reactflow/node-resizer)[@​2](https://github.com/2).2.14 - [@​reactflow/node-toolbar](https://github.com/reactflow/node-toolbar)[@​1](https://github.com/1).3.14 </details> <details> <summary>Microsoft/TypeScript (typescript)</summary> ### [`v5.5.2`](https://github.com/Microsoft/TypeScript/compare/v5.4.5...ce2e60e4ea15a65992e54a9e8877d16be9d42abb) [Compare Source](https://github.com/Microsoft/TypeScript/compare/v5.4.5...v5.5.2) </details> <details> <summary>webpack/webpack (webpack)</summary> ### [`v5.92.1`](https://github.com/webpack/webpack/compare/v5.92.0...a82e0cd00e26d8452295f0d680417e4656a6d7cc) [Compare Source](https://github.com/webpack/webpack/compare/v5.92.0...v5.92.1) </details> <details> <summary>getzola/zola (zola)</summary> ### [`v0.19.1`](https://github.com/getzola/zola/blob/HEAD/CHANGELOG.md#0191-2024-06-24) - Fix `config.generate_feeds` being still serialized as `config.generate_feed`. Both are available for now - Fix `zola serve` not reacting to changes on some OSes ### [`v0.19.0`](https://github.com/getzola/zola/blob/HEAD/CHANGELOG.md#0190-2024-06-20) - Updates the pulldown-cmark dependency to v0.11.0. This improves footnote handling, and may also introduce some minor behavior changes such as reducing the amount of unnecessary HTML-escaping of text content. - Add bottom footnotes with backreference option - Fix link check report inconsistency - Fix resizing for images with EXIF orientation - Add MIME type to get_image_metadata - Fix hot loading for config.toml in some cases - Add `render = false` capability to pages - Handle string dates in YAML front-matter - Add support for fuse.js search format - Added support for generating multiple kinds of feeds at once - Changed config options named `generate_feed` to `generate_feeds` (both in config.toml and in section front-matter) - Changed config option `feed_filename: String` to `feed_filenames: Vec<String>` - The config file no longer allows arbitrary fields outside the `[extra]` section </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/TBD54566975/ftl). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Wes <wesbillman@users.noreply.github.com>
For start, keeping almost same LOC but the distro zip lost almost 1 MB (was 10MB now is 9MB). Second, am really unsure why it was introduced in the first place, as it merely caused confusion, over StringUtils for example.
https://issues.apache.org/jira/browse/MNG-8146