Skip to content

1.5.0.0 の変更点 ​

第2版作成 最終更新 (日本時間)
確認バージョン1.5.0.0

リリース日: 2026年1月13日。1.4.23.3 からの変更です。機能追加・仕様変更と不具合修正を分けて記載します。

機能追加・仕様変更 ​

  • 実行環境・DB — ターゲットフレームワークを.NET10となるよう改めた。
  • その他 — マークダウンライブラリ(Marked)を更新した。
  • 運用・設定 — バックグラウンドサービスに未使用のPermissions/Linksのレコードを削除できるようになった。
  • API・拡張 — 計算式を無効にできるようになった。
  • その他 — 状況による制御を無効にできるようになった。

不具合修正 ​

  • 利用者・権限 — 分析チャートの追加時、「サイトのエクスポート権限」が必須になっている不具合を修正。
  • 運用・設定 — KVSの有効化時、ユーザ切り替え後、元のユーザに戻せない不具合を修正。
  • その他 — 縦並びのラジオボタンに意図しないクリック領域がある不具合を修正。
  • 実行環境・DB — ver.1.4.22.0以降で、CodeDefinerを/cオプションで実行後に「データベース変更なし」のメッセージが表示されない場合がある不具合を修正。

実装を読む ​

1.4.23.3 との差分を確認しています。実行環境の更新に加え、不要データの定期削除と、設定を残したまま計算式・状況による制御を止める機能が追加された版です。

機能設定・実装導入時の要点
.NET 10TargetFrameworkアプリケーションと CodeDefiner の実行環境をそろえる
未使用レコードの削除BackgroundService.json既定では無効。対象は Links と Permissions
計算式の無効化FormulaSet.Disabled定義を削除せずに計算対象から外す
状況による制御の無効化StatusControl.Disabled定義を削除せずに適用対象から外す

.NET 10 への移行と Markdown ライブラリの更新 ​

アプリケーションの TargetFramework が net10.0 になりました。CodeDefiner も同じターゲットへ更新されています。プリザンター本体だけでなく、データベース構成を更新する CodeDefiner も .NET 10 を対象にしていることを確認できます(Implem.Pleasanter.csproj、Implem.CodeDefiner.csproj)。

Markdown の描画に使う Marked も更新されています。アプリケーションの実行環境の変更と、ブラウザで Markdown を HTML に変換するライブラリの変更は別の変更点です(package.json)。

未使用の Links・Permissions を定期削除する ​

BackgroundService.json に次の設定が追加されました。下記は有効化する例で、配布時の DeleteUnusedRecord は false です(BackgroundService.json)。

json
{
  "DeleteUnusedRecord": true,
  "DeleteUnusedRecordTime": ["03:00"],
  "DeleteUnusedRecordChunkSize": 1000
}

DeleteUnusedRecordTimer は、Links.DestinationId、Links.SourceId、Permissions.ReferenceId を順に対象として、参照先が使われていないレコードを削除します。ごみ箱の保管期間を指定する DeleteTrashBoxRetentionPeriod とは別の処理です(DeleteUnusedRecordTimer.cs)。

削除は ChunkSize の件数ずつ繰り返します。設定が未指定または 0 以下なら 1,000 件を使い、繰り返しは最大 10,000 回です。10 回ごとの途中経過と終了時の削除件数をシステムログに残すため、一度に全件削除する処理ではありません(DeleteUnusedRecordTimer.cs)。

計算式・状況による制御を定義ごとに無効化する ​

計算式には FormulaSet.Disabled、状況による制御には StatusControl.Disabled が追加されました。どちらも nullable な真偽値で、true の定義だけを無効として扱います。設定を削除せずに一時停止し、同じ内容を再び有効にできます(FormulaSet.cs、StatusControl.cs)。

計算式の実行側では、保存されている Formulas を直接走査する代わりに GetFormulas() を使い、無効な式を除外します。状況による制御も適用時に Disabled != true を条件にしています。無効化は実行する定義の選別に反映されます(SiteSettings.cs、IssueModel.cs)。

調査元 ​

変更履歴

第2版1.5系の変更記事に設定例と実装の詳細を追加
第1版1.5.0.0 の変更点と4項目の比較データを追加