Skip to content

feat(java): add created_at support to ls-remote --json#7297

Merged
jdx merged 1 commit into
mainfrom
feat/java-created-at
Dec 14, 2025
Merged

feat(java): add created_at support to ls-remote --json#7297
jdx merged 1 commit into
mainfrom
feat/java-created-at

Conversation

@jdx

@jdx jdx commented Dec 14, 2025

Copy link
Copy Markdown
Owner

Summary

  • Implement _list_remote_versions_with_info() for the Java backend to support release timestamps
  • Add created_at field to JavaMetadata struct (optional)
  • Timestamps will automatically appear once the mise-java API is updated to include created_at

Background

The mise-java database already stores created_at and modified_at timestamps for each release, but these aren't currently exposed in the API response. This PR adds the infrastructure on the mise side so that once the API is updated to include the field, it will automatically work.

API Investigation

Checked the mise-java repository:

  • Database schema (sql/schema.sql) has created_at and modified_at fields
  • The JvmData struct just needs to add the field
  • Related: may need a small PR to mise-java to expose the timestamp

Test plan

  • Verified mise ls-remote java --json works correctly
  • Field will be null until mise-java API is updated
  • All existing functionality preserved

🤖 Generated with Claude Code


Note

Adds created_at timestamps to Java remote version listings by returning VersionInfo from a new _list_remote_versions_with_info and extending JavaMetadata.

  • Backend (Java):
    • Remote versions with metadata: Implement _list_remote_versions_with_info returning Vec<VersionInfo> (includes version and optional created_at).
      • Update _list_remote_versions to derive plain versions from this metadata.
      • Ensure uniqueness by version using unique_by.
    • Metadata model: Add optional created_at field to JavaMetadata and propagate it into VersionInfo.
    • Imports: Use VersionInfo from crate::backend.

Written by Cursor Bugbot for commit 2294c2f. This will update automatically on new commits. Configure here.

Implement `_list_remote_versions_with_info()` for the Java backend to
support release timestamps when using `mise ls-remote java --json`.

The JavaMetadata struct now includes an optional `created_at` field.
Currently the mise-java API doesn't expose this field, but the database
has it - once the API is updated to include `created_at`, it will
automatically appear in ls-remote output.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings December 14, 2025 20:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds infrastructure support for displaying release timestamps in mise ls-remote java --json output by implementing _list_remote_versions_with_info() and adding a created_at field to the JavaMetadata struct. The timestamps will automatically populate once the mise-java API is updated to include this field in its responses.

Key changes:

  • Implemented _list_remote_versions_with_info() method for the Java backend
  • Added optional created_at field to JavaMetadata struct
  • Refactored _list_remote_versions() to delegate to the new info method

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jdx jdx enabled auto-merge (squash) December 14, 2025 20:53
@jdx jdx merged commit 1f4dd6b into main Dec 14, 2025
30 checks passed
@jdx jdx deleted the feat/java-created-at branch December 14, 2025 20:54
@github-actions

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.6 x -- echo 21.1 ± 0.6 20.0 28.4 1.00
mise x -- echo 22.1 ± 0.9 20.3 31.9 1.04 ± 0.05

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.6 env 20.7 ± 0.7 19.7 31.2 1.00
mise env 21.3 ± 0.7 19.8 23.0 1.03 ± 0.05

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.6 hook-env 20.9 ± 0.4 20.2 24.5 1.00
mise hook-env 21.6 ± 0.5 20.2 23.2 1.03 ± 0.03

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.12.6 ls 17.7 ± 0.4 16.4 18.8 1.00
mise ls 18.5 ± 0.5 17.3 19.9 1.05 ± 0.04

xtasks/test/perf

Command mise-2025.12.6 mise Variance
install (cached) 112ms 111ms +0%
ls (cached) 66ms 67ms -1%
bin-paths (cached) 74ms 74ms +0%
task-ls (cached) 451ms 452ms +0%

jdx pushed a commit that referenced this pull request Dec 14, 2025
### 🚀 Features

- **(java)** add created_at support to ls-remote --json by @jdx in
[#7297](#7297)
- **(ls-remote)** add created_at timestamps to ls-remote --json for more
backends by @jdx in [#7295](#7295)
- **(ls-remote)** add created_at timestamps to ls-remote --json for core
plugins by @jdx in [#7294](#7294)
- **(registry)** add --json flag to registry command by @jdx in
[#7290](#7290)
- **(ruby)** add created_at timestamps to ls-remote --json by @jdx in
[#7296](#7296)

### 🐛 Bug Fixes

- **(spm)** recursively update submodules after checkout by @JFej in
[#7292](#7292)
- prioritize raw task output over task_output setting by @skorfmann in
[#7286](#7286)

### New Contributors

- @skorfmann made their first contribution in
[#7286](#7286)
- @JFej made their first contribution in
[#7292](#7292)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants