APIバージョン管理
Trae APIは、後方互換性を維持しながら新機能を導入するために、セマンティックバージョニングを使用しています。
現在のバージョン
v1.0.0 (安定版)
- リリース日: 2024年1月15日
- ステータス: 安定版、本番環境対応
- サポート期間: 2026年1月15日まで
主な機能
- 基本的なエディターAPI
- ファイルシステム操作
- 基本的なUI拡張
- 言語サービス統合
- 基本的なデバッグサポート
v1.1.0 (現在)
- リリース日: 2024年3月20日
- ステータス: 安定版、推奨
- サポート期間: 2026年3月20日まで
新機能
- AI統合API
- 高度なコード生成
- 改良されたテーマシステム
- Webビュー拡張
- 改良されたターミナル統合
v1.2.0 (ベータ版)
- リリース日: 2024年5月10日
- ステータス: ベータ版、テスト用
- サポート期間: 2024年8月10日まで
新機能(プレビュー)
- リアルタイムコラボレーション
- 高度なAIチャット機能
- カスタムレンダラー
- 改良されたパフォーマンス監視
バージョン選択ガイド
本番環境
本番環境の拡張機能には v1.1.0 を使用することを強く推奨します。
json
{
"engines": {
"trae": "^1.1.0"
}
}開発・テスト環境
新機能をテストする場合は、ベータ版を使用できます:
json
{
"engines": {
"trae": "^1.2.0-beta"
}
}レガシーサポート
古いプロジェクトでは、v1.0.0も引き続きサポートされています:
json
{
"engines": {
"trae": "^1.0.0"
}
}移行ガイド
v1.0.0から v1.1.0への移行
重大な変更
非推奨のAPI削除
typescript// 削除された(v1.0.0) TraeAPI.window.createOutputChannel() // 新しい方法(v1.1.0+) TraeAPI.window.createOutputChannel({ name: 'My Extension' })イベントハンドラーの変更
typescript// 古い方法(v1.0.0) TraeAPI.workspace.onDidChangeTextDocument((event) => { // 処理 }); // 新しい方法(v1.1.0+) TraeAPI.workspace.onDidChangeTextDocument((event) => { // eventオブジェクトに追加プロパティ console.log(event.reason); // 新しいプロパティ });
新機能の活用
typescript
// AI機能(v1.1.0+)
if (TraeAPI.version >= '1.1.0') {
const aiResponse = await TraeAPI.ai.chat.sendMessage('コードを説明して');
}
// テーマAPI(v1.1.0+)
if (TraeAPI.version >= '1.1.0') {
const theme = await TraeAPI.window.activeColorTheme;
}v1.1.0から v1.2.0への移行
新機能(ベータ版)
typescript
// リアルタイムコラボレーション(v1.2.0-beta+)
if (TraeAPI.version >= '1.2.0-beta') {
const session = await TraeAPI.collaboration.startSession();
}
// 高度なAI機能(v1.2.0-beta+)
if (TraeAPI.version >= '1.2.0-beta') {
const context = await TraeAPI.ai.getWorkspaceContext();
}バージョン検出
ランタイムでのバージョン確認
typescript
import { TraeAPI } from '@trae/api';
// 現在のAPIバージョンを取得
const currentVersion = TraeAPI.version;
console.log('現在のAPIバージョン:', currentVersion);
// バージョン比較
function isVersionSupported(requiredVersion: string): boolean {
return TraeAPI.version >= requiredVersion;
}
// 機能の条件付き使用
if (isVersionSupported('1.1.0')) {
// v1.1.0以降の機能を使用
const aiFeatures = TraeAPI.ai;
} else {
// フォールバック処理
console.warn('AI機能はv1.1.0以降で利用可能です');
}機能検出
typescript
// 特定の機能が利用可能かチェック
function hasAISupport(): boolean {
return 'ai' in TraeAPI && TraeAPI.ai !== undefined;
}
function hasCollaborationSupport(): boolean {
return 'collaboration' in TraeAPI && TraeAPI.collaboration !== undefined;
}
// 使用例
if (hasAISupport()) {
// AI機能を使用
const response = await TraeAPI.ai.chat.sendMessage('Hello');
}互換性マトリックス
| 機能 | v1.0.0 | v1.1.0 | v1.2.0-beta |
|---|---|---|---|
| 基本エディターAPI | ✅ | ✅ | ✅ |
| ファイルシステムAPI | ✅ | ✅ | ✅ |
| UI拡張 | ✅ | ✅ | ✅ |
| 言語サービス | ✅ | ✅ | ✅ |
| AI統合 | ❌ | ✅ | ✅ |
| 高度なテーマ | ❌ | ✅ | ✅ |
| Webビュー拡張 | ❌ | ✅ | ✅ |
| リアルタイムコラボレーション | ❌ | ❌ | ✅ |
| 高度なAIチャット | ❌ | ❌ | ✅ |
非推奨API
v1.0.0で非推奨
typescript
// 非推奨(v1.0.0で削除予定)
TraeAPI.window.showQuickPick(items, options, token);
// 推奨代替
TraeAPI.window.showQuickPick(items, { ...options, token });v1.1.0で非推奨
typescript
// 非推奨(v1.2.0で削除予定)
TraeAPI.workspace.createFileSystemWatcher(pattern);
// 推奨代替
TraeAPI.workspace.createFileSystemWatcher({
globPattern: pattern,
ignoreCreateEvents: false,
ignoreChangeEvents: false,
ignoreDeleteEvents: false
});実験的機能
v1.2.0-betaの実験的機能
これらの機能は将来のバージョンで変更される可能性があります:
typescript
// 実験的:カスタムレンダラー
if (TraeAPI.experimental?.customRenderers) {
const renderer = await TraeAPI.experimental.customRenderers.create({
type: 'markdown-enhanced'
});
}
// 実験的:高度なパフォーマンス監視
if (TraeAPI.experimental?.performance) {
const metrics = await TraeAPI.experimental.performance.getMetrics();
}サポートポリシー
長期サポート(LTS)
- v1.0.0: 2026年1月15日まで
- v1.1.0: 2026年3月20日まで
セキュリティアップデート
- 現在のメジャーバージョンとその前のメジャーバージョンにセキュリティパッチを提供
- 重要なセキュリティ問題は24時間以内にパッチリリース
バグ修正
- 現在のマイナーバージョンとその前のマイナーバージョンにバグ修正を提供
- 重要なバグは1週間以内に修正
更新通知
自動更新チェック
typescript
// 拡張機能で更新をチェック
TraeAPI.extensions.onDidChange((event) => {
if (event.type === 'update-available') {
TraeAPI.window.showInformationMessage(
'新しいAPIバージョンが利用可能です',
'アップデート'
).then(selection => {
if (selection === 'アップデート') {
TraeAPI.commands.executeCommand('workbench.action.reloadWindow');
}
});
}
});手動更新確認
typescript
// 手動で更新をチェック
async function checkForUpdates() {
const updateInfo = await TraeAPI.extensions.checkForUpdates();
if (updateInfo.hasUpdates) {
const message = `新しいバージョン ${updateInfo.latestVersion} が利用可能です`;
TraeAPI.window.showInformationMessage(message);
}
}ベストプラクティス
1. バージョン範囲の指定
json
{
"engines": {
"trae": ">=1.1.0 <2.0.0"
}
}2. 機能検出の使用
typescript
// バージョン番号ではなく機能検出を使用
if ('ai' in TraeAPI) {
// AI機能を使用
}3. 適切なエラーハンドリング
typescript
try {
if (TraeAPI.version >= '1.1.0') {
await TraeAPI.ai.chat.sendMessage('Hello');
}
} catch (error) {
if (error.code === 'FEATURE_NOT_AVAILABLE') {
// フォールバック処理
}
}4. 段階的な機能採用
typescript
// 新機能を段階的に導入
const features = {
ai: TraeAPI.version >= '1.1.0',
collaboration: TraeAPI.version >= '1.2.0-beta',
customRenderers: TraeAPI.experimental?.customRenderers !== undefined
};
if (features.ai) {
// AI機能を有効化
}