kujirahand / nadesiko3

Japanese Programming Language Nadesiko v3 (JavaScript/TypeScript)
https://nadesi.com/
MIT License
240 stars 19 forks source link

プラグインバージョン管理の機構をつける #1647

Closed kujirahand closed 4 months ago

kujirahand commented 5 months ago

1638 によるObjectからMapへの変更で、プラグインが壊滅的に動かなくなるので、バージョン管理の機構を導入しました。

プラグインに関する仕様に関して詳しくは、以下を参照してください。 https://github.com/kujirahand/nadesiko3/blob/master/doc/plugins.md

プラグインオブジェクトの先頭に以下を差し込む必要があります。

{
  'meta': {
    type: 'const',
    value: {
      pluginName: 'plugin_***', // プラグインの名前
      description: '説明',
      pluginVersion: '3.6.0', // プラグインのバージョン
      nakoRuntime: ['wnako', 'cnako', 'phpnako'], // 対象ランタイム
      nakoVersion: '3.6.0' // 最小要求なでしこバージョン
    }
  },
  …
}
kujirahand commented 5 months ago

以下の感じにしようと思います。

export default {
  'meta': {
    type: 'const',
    value: {
      pluginName: 'plugin_system', // プラグインの名前
      description: '説明',
      pluginVersion: '3.6.0', // プラグインのバージョン
      nakoRuntime: ['wnako', 'cnako', 'phpnako'], // 対象ランタイム
      NakoVersion: '3.6.0' // 最小要求なでしこバージョン
    }
  },
kujirahand commented 5 months ago

プラグインのメタ情報は、__pluginInfoに保存することにしました。

__pluginInfoをJSONエンコード整形して表示。
kujirahand commented 5 months ago

v3.6.2でmeta情報が全くない場合にエラーが出ない問題がある。

kujirahand commented 4 months ago

だいたいうまく動いているので閉じます。