Skip to main content

api-promotion

Promote iTwin.js APIs to beta or public, or remove @preview, following repository release-tag policy.

소스 정보

저장소
iTwin/itwinjs-core
최근 소스 활동
2026년 10월 22일 16:33
감지된 SKILL.md 언어
영어
스타
740
포크
249

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
api-promotion
description
Promote iTwin.js APIs to beta or public, or remove @preview, following repository release-tag policy.
# API Promotion ## Workflow ### 1. Read policy and establish scope Read `docs/learning/guidelines/release-tags-guidelines.md` and `docs/learning/api-support-policies.md` first. Use those documents to choose release tags and interpret `@preview`; this skill does not define a separate promotion ladder. List the requested symbols, their effective current tags (including inherited tags), and target tags using source and `common/api/<package>.api.md`. If the target or readiness for public support is unclear, confirm it with the user before editing. ### 2. Check promotion dependencies - Check whether a containing API also needs promotion. When promoting a container, preserve the effective tags of members outside the requested scope with explicit member tags where needed; private implementation members need no tags. - Check that consumers can obtain and use the API through supported exports and, where applicable, constructors, factories, or accessors. - Use API Extractor's `ae-incompatible-release-tags` errors to guide same-package signature checks instead of recursively inspecting every referenced class and member. - Manually check cross-package types exposed by the promoted signatures against their source or API reports. Also check for unexported types and types accessible only through `src/internal/` or `internal/cross-package.ts`; `ae-forgotten-export` is suppressed in `tools/build/scripts/extract-api.js`. Include types nested in callbacks, generic constraints, and base types. If a dependency requires promoting additional APIs or changing exports, explain the blocker and confirm the expanded scope before making those changes. ### 3. Update tags and documentation Apply the agreed tags using the policy's placement rules. Review the promoted APIs' documentation against implementation, callers, and tests: - Describe the consumer contract, including relevant preconditions, defaults, errors, side effects, and failure behavior, rather than implementation details. - Use accurate terminology and TSDoc, including documentation on interface fields. - Ensure links resolve to documented, supported APIs; qualify member links with their owning type. Avoid repeating release-tag metadata in prose. ### 4. Verify coverage Find existing tests for the promoted contract, including important failure cases. Reuse sufficient coverage; add focused tests only for gaps, following the package's conventions. Runtime tests should assert behavior, not just invocation. For interfaces and type aliases, verify appropriate compiled usage or type-level coverage rather than inventing a runtime test for each declaration. Read the affected package's `package.json` for its build and test commands. Build before running tests that consume compiled output. Record the targeted test commands and results, or the exact blockers if they cannot run. ### 5. Regenerate and review reports During iteration, use the affected packages' build and `extract-api` scripts, rebuilding changed dependencies first. Resolve diagnostics and review `common/api/<package>.api.md` and `common/api/summary/<package>.exports.csv` for the agreed promotions, preserved member tags, and unintended API changes. Follow `CONTRIBUTING.md` for required validation and pre-push checks; package-local iteration does not replace its clean repository build and API extraction requirement for release-tag changes. Include affected-package lint and documentation builds where required. ### 6. Record the change Follow `CONTRIBUTING.md` for Rush change files in affected published packages (`"type": "none"`), naming the promoted APIs. Add `docs/changehistory/NextVersion.md` guidance for breaking changes or significant features, following the repository's NextVersion rules.
GitHub에서 보기