Files
llm-wiki/raw/official-docs/dx-mise-asdf-tool-versioning.md
T

10 KiB

title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
title source_type url archive_url status confidence tags related_projects related_branches created last_reviewed
Tool versioning — mise / asdf / SDKMAN / `.tool-versions` official-doc https://mise.jdx.dev/ raw high
developer-experience
tool-versioning
mise
asdf
sdkman
jdk
ca-skeleton
official-doc
ca-skeleton
feature-developer-experience-contract
feature-build-release-supply-chain-contract
feature-ci-quality-gates-contract
2026-05-25 2026-05-27

Tool versioning — mise / asdf / SDKMAN / .tool-versions

Layer: raw/official-docs/ — mise / asdf / SDKMAN / Adoptium Temurin 공식 페이지 발췌. ca-tmpl 의 "JDK = Temurin 21 LTS. gradle-wrapper 8.x. .tool-versions 또는 .sdkmanrc 로 핀." 결정의 도구 근거.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-developer-experience-contract JDK Temurin 21 LTS + .tool-versions/.sdkmanrc 핀 결정 — 도구를 강제하지 않고 파일 포맷을 강제하는 전략 근거
raw/branch-notes/feature-build-release-supply-chain-contract JDK version pin via .tool-versions 또는 gradle/wrapper/ 가 reproducibility 조건임을 근거
raw/branch-notes/feature-ci-quality-gates-contract CI runner JDK 버전이 .tool-versions 와 일치해야 reproducible build 성립한다는 사실 근거

추가 foundational 인용:

컨텍스트

feature-developer-experience-contract 결정 "JDK = Temurin 21 LTS. gradle-wrapper 8.x. .tool-versions 또는 .sdkmanrc 로 핀." 의 도구 근거. mise/asdf/SDKMAN 중 어떤 것을 default 로 권장할지, .tool-versions 포맷이 어디 spec 에 정의되어 있는지 raw 로 확보.

출처 / Source

핵심 인용 / Key quotes (verbatim)

mise (https://mise.jdx.dev/)

[§The Idea] "mise does the same for your dev env. It installs and activates the right tools, loads the right env vars, and wires up the right tasks for the commands you run."

[§The Menu] "One CLI for the whole project setup."

[§Dev Tools] "Install project tools, pin versions, and switch automatically as you move between directories."

[§pantry · 900+ tools, 1 toml file] "900+ tools, 1 toml file"

asdf-vm (https://asdf-vm.com/)

[§asdfThe Multiple Runtime Version Manager] "Manage all your runtime versions with one tool!"

[§One Config File] ".tool-versions to manage all your tools, runtimes and their versions in a single, sharable place."

[§One Tool] "Manage each of your project runtimes with a single CLI tool and command interface."

[§Plugins] "Large ecosystem of existing runtimes & tools. Simple API to add support for new tools as you need!"

Adoptium Temurin 21

(Adoptium releases 페이지 fetch 에서는 LTS 정책의 verbatim 정의 인용 미확보. JDK 21 의 "LTS" 표기만 navigation 에 존재. LTS 의 정확한 정의는 별도 Adoptium support 페이지 fetch 필요 — 본 차수에서는 needs-confirmation.)

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
DX-TV-C1 mise 는 dev env 의 tool 을 설치/활성화하고, env vars 를 로드하며, command 에 맞는 task 를 wiring 함 [§The Idea (mise)] "mise does the same for your dev env. It installs and activates the right tools, loads the right env vars, and wires up the right tasks for the commands you run." official-vendor-doc mise 채택 환경 mise 가 asdf 의 superset 이라는 뜻 아님 — 본 페이지에는 asdf 와의 호환성 인용 미확보
DX-TV-C2 mise 는 프로젝트 도구를 install / pin / directory 이동 시 auto-switch 함 [§Dev Tools (mise)] "Install project tools, pin versions, and switch automatically as you move between directories." official-vendor-doc per-project 도구 관리 pin 방식 (TOML vs .tool-versions) 의 정확한 spec 은 본 인용 범위 밖
DX-TV-C3 mise pantry 는 900+ tools 를 1개 TOML 파일로 관리 [§pantry (mise)] "900+ tools, 1 toml file" official-vendor-doc mise TOML 사용 환경 모든 tool 이 LTS / stable 보장된다는 뜻 아님
DX-TV-C4 asdf 는 multiple runtime version manager — 모든 runtime version 을 하나의 도구로 관리 [§asdfThe Multiple Runtime Version Manager (asdf)] "Manage all your runtime versions with one tool!" official-vendor-doc asdf 채택 환경 asdf 자체 성능 / 속도 보장 아님
DX-TV-C5 .tool-versions 파일은 모든 tool, runtime, 그 버전을 단일 공유 위치에서 관리 (asdf 1차 정의) [§One Config File (asdf)] ".tool-versions to manage all your tools, runtimes and their versions in a single, sharable place." official-vendor-doc asdf / asdf-호환 도구 사용 환경 mise 가 .tool-versions 를 100% 호환한다는 사실 (본 fetch 에서는 mise 페이지에 명시 인용 미확보 — 별도 mise 문서 페이지 확인 필요)
DX-TV-C6 asdf 는 plugin model 로 작동하며, 기존 runtime/tool 생태계가 크고, 새 tool 지원을 위한 simple API 제공 [§Plugins (asdf)] "Large ecosystem of existing runtimes & tools. Simple API to add support for new tools as you need!" official-vendor-doc asdf plugin 사용 환경 plugin 의 보안 검증 / 신뢰성 보장 아님 — community 책임
DX-TV-C7 (SDKMAN .sdkmanrc 인용은 본 차수 fetch 에서 미확보 — 별도 fetch 필요) (해당 인용 없음 — 본 차수 fetch 누락) needs-confirmation (별도 fetch 필요) .sdkmanrc 의 정확한 포맷 / 호환성 인용 불가
DX-TV-C8 (Adoptium Temurin 21 의 LTS 지원 기간 verbatim 인용은 본 차수 fetch 에서 미확보 — releases 페이지에 navigation "JDK 21 - LTS" 만 존재. 별도 Adoptium support 페이지 fetch 필요) (해당 인용 없음 — 본 차수 fetch 누락) needs-confirmation (별도 fetch 필요) "2028-09 까지 지원" 같은 구체 기간은 인용으로 보장 안 됨

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • DX-TV-C1 ~ C3: mise 의 기능 (tool install / pin / auto-switch / TOML 관리)
    • DX-TV-C4 ~ C6: asdf 의 정의, .tool-versions 의 1차 spec 위치 (asdf-vm), plugin model
  • 이 자료가 증명하지 않는 것 (needs-confirmation):
    • mise 가 asdf .tool-versions 를 100% 호환한다는 사실 (mise 1차 fetch 에는 명시 인용 미확보 — DX-TV-C5 의 "Does not prove" 컬럼 참조)
    • SDKMAN .sdkmanrc 의 정확한 포맷, .tool-versions 와의 호환성 (DX-TV-C7 — 본 차수 fetch 미수행)
    • Adoptium Temurin 21 의 정확한 LTS 지원 기간 (DX-TV-C8 — 본 차수 fetch 미수행)
    • mise/asdf/SDKMAN 중 어느 것이 ca-tmpl 의 default 로 적합한지 (벤더 비교는 본 인용 범위 밖)
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • .sdkmanrc.tool-versions 동시 존재 시 drift 위험의 실제 시연 + ca-tmpl 의 "단일 source 권장" 정책 확정
    • Adoptium Temurin 21 LTS 의 정확한 EOL 일자 (별도 페이지 fetch)
    • Gradle 8.x toolchain auto-provisioning 이 .tool-versions 없이도 JDK 를 받아오는지의 실제 동작 (별도 Gradle 공식 페이지 fetch 필요)

메모 / Notes (내 프로젝트 해석)

본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.

  • .tool-versions 는 asdf 가 도입한 사실상 표준 포맷 (DX-TV-C5). mise 가 호환한다는 일반 통념은 본 1차 fetch 에서는 verbatim 보장 안 됨 → 두 도구 모두 같은 파일을 읽는다는 주장은 별도 fetch 후 확정.
  • SDKMAN 의 .sdkmanrc 는 별도 포맷이므로 둘 다 두면 drift 가능. ca-tmpl 이 "또는" 으로 표현한 것은 drift 위험을 내포 → wiki 변환 시 단일 source 권장으로 좁힐 필요.
  • Temurin 21 을 default LTS 로 둔 근거 (DX-TV-C8 미확정): Adoptium 의 LTS 정책 (인용 미확보). 다른 vendor (Corretto, Zulu, GraalVM CE) 도 LTS 제공하지만 default 를 단일화하는 편이 reproducibility 에 유리 (해석).
  • gradle-wrapper 8.x: Gradle 8 LTS 는 toolchain auto-provisioning 을 지원한다는 일반 통념 → .tool-versions 없이도 Gradle 이 JDK 를 받아 올 수 있음 (별도 인용 필요). ca-tmpl 이 .tool-versions 핀을 강제하는 것은 IDE / CLI / Gradle outside 사용자까지 통일하려는 의도.
  • 트레이드오프: mise 는 빠르고 활발하지만 신규, asdf 는 안정적이지만 plugin script 기반으로 느림 (성능 인용 미확보 — 해석). ca-tmpl 이 도구를 강제하지 않고 파일 포맷 을 강제하는 전략은 합리적.