Skip to content

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への移行

重大な変更

  1. 非推奨のAPI削除

    typescript
    // 削除された(v1.0.0)
    TraeAPI.window.createOutputChannel()
    
    // 新しい方法(v1.1.0+)
    TraeAPI.window.createOutputChannel({ name: 'My Extension' })
  2. イベントハンドラーの変更

    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.0v1.1.0v1.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機能を有効化
}

関連リソース

究極の AI 駆動 IDE 学習ガイド