Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ pep440_rs = "0.7.3"
thiserror = "2.0.20"
anyhow = "1.0.104"
regex = "1.13.1"
quick-xml = { version = "0.42.0", features = ["serialize"] }
async-trait = "0.1.92"
indicatif = "0.18.6"
colored = "3.1.1"
Expand Down
2 changes: 2 additions & 0 deletions docs/ecosystems.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,8 @@ Composer は `~>` 演算子を受け付けない(`Invalid operator "~>"`)た

### Java(Gradle)

Maven Central の依存では、リポジトリのアーティファクト単位の `maven-metadata.xml` から版一覧を取得します。更新候補として選んだ版の POM の `Last-Modified` を確認してから age フィルタを適用します。完全一致の現在版が版一覧に無い場合は「最新」とせず取得失敗を報告します。公開日が無い、または不正な場合も age フィルタを黙って迂回せず取得失敗にします。

`strictly` / `require` / `prefer` / `reject` を使う Gradle の rich version 宣言は、`implementation("org.slf4j:slf4j-api") { version { ... } }` のような依存ブロック内でも解析します。文字列記法の短縮形でも、完全一致(`group:name:1.2.3!!`)、動的プレフィックス(`group:name:5.3.+!!`)、範囲(`group:name:[1.7, 1.8[!!`)、prefer 付きの strict 範囲(`group:name:[1.7, 1.8[!!1.7.25`)を解析できます。`strictly` または `require` で範囲を、`prefer` で優先するバージョンを指定している場合、depup は範囲を上限制約として維持したまま `prefer` の値を更新します。`reject` に列挙されたバージョンは候補から外し、`2.+` のような動的な reject や `[1.5,1.9)` のような範囲の reject も考慮します。

Gradle の宣言ラッパー `platform(...)` / `enforcedPlatform(...)` / `testFixtures(...)` にも対応しています。`implementation platform('com.google.cloud:libraries-bom:26.1.0')` や `testImplementation(platform("org.junit:junit-bom:5.10.0"))` のような BOM 宣言も解析・更新でき、開発依存かどうかはラッパーの外側にある configuration 名(`implementation` / `testImplementation` など)で判定します。
Expand Down
2 changes: 2 additions & 0 deletions docs/ecosystems.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,8 @@ Composer rejects the `~>` operator (`Invalid operator "~>"`), so for PHP a `~>`

### Java (Gradle)

For Maven Central dependencies, depup reads artifact-level `maven-metadata.xml` from the repository to discover versions. It checks the POM's `Last-Modified` header for each version selected as an update candidate, then applies the age filter. If an exact current version is absent from the repository metadata, depup reports a fetch failure instead of claiming it is already latest. A missing or invalid release date also fails the fetch rather than silently bypassing the age filter.

Gradle rich version declarations using `strictly`, `require`, `prefer`, and `reject` are parsed in dependency blocks such as `implementation("org.slf4j:slf4j-api") { version { ... } }`. String notation shorthand supports exact, dynamic-prefix, and range constraints, including `group:name:1.2.3!!`, `group:name:5.3.+!!`, `group:name:[1.7, 1.8[!!`, and a strict range with a preferred version such as `group:name:[1.7, 1.8[!!1.7.25`. When `strictly` or `require` declares a range and `prefer` declares the selected version, depup keeps the range as the upper-bound constraint and updates the `prefer` value. Versions listed with `reject` are removed from the candidates, including dynamic rejects such as `2.+` and ranges such as `[1.5,1.9)`.

Gradle declaration wrappers are supported: `platform(...)`, `enforcedPlatform(...)`, and `testFixtures(...)`. BOM declarations such as `implementation platform('com.google.cloud:libraries-bom:26.1.0')` and `testImplementation(platform("org.junit:junit-bom:5.10.0"))` are parsed and updated, and the surrounding configuration name is still used for the dev/production classification.
Expand Down
Loading
Loading