Skip to content
Open
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
bc154a0
Initial plan
Copilot May 2, 2026
8c7f1e2
NuGetプラグインストアの基本実装を追加
Copilot May 2, 2026
1364f7a
レビューフィードバック対応とサンプルプロジェクト追加
Copilot May 2, 2026
fb90a49
Changes before error encountered
Copilot May 2, 2026
3acc8c9
最新masterを統合して競合を解消
Freeesia Jul 26, 2026
37f3588
レビュー指摘のプラグイン配布動作を修正
Freeesia Jul 26, 2026
61ee76d
NuGetプラグイン配布と依存解決を改善
Freeesia Jul 28, 2026
5fa132b
Address NuGet plugin lifecycle and packaging feedback
Freeesia Jul 31, 2026
d8e9963
masterの最新変更をマージして競合を解消
Freeesia Jul 31, 2026
a5de060
NuGetプラグインのフレームワーク判定と依存アセンブリ解決を改善
Freeesia Aug 1, 2026
9041b6b
NuGetプラグインの読み込みと管理を修正
Freeesia Aug 1, 2026
51cd4ea
プラグインのプレリリース導入に対応
Freeesia Aug 1, 2026
9e597f2
NuGetパッケージの版番号をタグから取得
Freeesia Aug 1, 2026
d7dc5f4
プラグインストアのNuGet連携をライブラリへ移行
Freeesia Aug 3, 2026
e6168a3
プラグイン情報のバックグラウンド更新と再起動を追加
Freeesia Aug 3, 2026
38a25cc
NuGetプラグイン通信をSDKへ統合
Freeesia Aug 4, 2026
f44c738
NuGetプラグイン重複と検索エラーを修正
Freeesia Aug 4, 2026
5cdcc95
NuGetプラグイン管理領域と重複処理を修正
Freeesia Aug 4, 2026
f0d1cd1
プラグイン操作の中断復旧とマニフェスト検証を追加
Freeesia Aug 5, 2026
5d5ed74
不要な実装を削除して構成を整理する
Freeesia Aug 9, 2026
ba9e31c
プラグインストア画面のUIレイアウトを整理・改善
Freeesia Aug 9, 2026
97372a2
プラグインストアUI刷新・アイコン/免責事項対応
Freeesia Aug 9, 2026
60bc741
プラグイン状態バッジをアイコンに重ねて表示
Freeesia Aug 9, 2026
b313bf2
プラグインストアのレビュー指摘を修正
Freeesia Aug 9, 2026
2bdf830
プラグインストアのアイコン表示レイアウトを刷新
Freeesia Aug 9, 2026
650b194
レイアウト
Freeesia Aug 11, 2026
44770a7
レイアウト
Freeesia Aug 11, 2026
6cdd936
PR #615のレビュー指摘を修正
Freeesia Aug 11, 2026
c5d9e0f
旧manifest互換用の既定値を削除
Freeesia Aug 11, 2026
18b5762
NuGet所有者で公式プラグインを判定
Freeesia Aug 11, 2026
b6b3df1
プラグインの起動時削除とNuGet公開方式を修正
Freeesia Aug 11, 2026
eb941bb
PLaMoプラグインのNuGetパッケージ作成を修正
Freeesia Aug 11, 2026
9299077
プラグインREADMEをアプリ言語に対応
Freeesia Aug 13, 2026
727f966
プラグインの配布設定をプロパティ化
Freeesia Aug 13, 2026
e550bbb
配布プロジェクトの設定を標準化
Freeesia Aug 14, 2026
be312a0
集約プロジェクトによる復元競合を回避
Freeesia Aug 14, 2026
cdaad3e
配布プロジェクトの復元競合を防止
Freeesia Aug 14, 2026
03aee76
設定のバインド処理を元の実装に戻す
Freeesia Aug 14, 2026
3adf2c2
マージ競合を解決: CUDA toolkitステップと新規プロパティを両立
Copilot Aug 19, 2026
fbf8c31
CUDAツールキットステップを削除: PLamoPluginは同梱対象外のため不要
Copilot Aug 19, 2026
ce46f8f
マージ競合の誤解決を修正: CommonSettings.IsEnableAutoTargetを削除
Copilot Aug 19, 2026
699641b
プラグインストアのインストール後動作を修正
Freeesia Aug 20, 2026
c47cbb0
デバッグ時のプラグイン読み込みと表示文言を修正
Freeesia Aug 23, 2026
6a88a88
NuGetランタイム資産の展開方法を修正
Freeesia Aug 23, 2026
e6039cf
GitHub CopilotのCLIをプラグインへ同梱
Freeesia Aug 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 10 additions & 11 deletions .github/workflows/dotnet-desktop.yml
Comment thread
Freeesia marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,6 @@ jobs:
versionSpec: "6.x"
- id: gitversion
uses: gittools/actions/gitversion/execute@v4.7.0
- uses: Jimver/cuda-toolkit@v0.2.30
with:
cuda: '12.9.0'
- run: |
dotnet publish WindowTranslator -c Release -o publish --sc ${{ matrix.self }} `
-p:Version=${{ steps.gitversion.outputs.fullSemVer }} `
Expand All @@ -137,14 +134,16 @@ jobs:
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
- run: |
$folders = Get-ChildItem -Path "Plugins" -Directory | Where-Object { $_.Name -notmatch "Dummy" -and $_.Name -notmatch "Tests?" }
for ($i = 0; $i -lt $folders.Count; $i++) {
dotnet publish $folders[$i].FullName -c Release -o "publish\plugins\$($folders[$i].Name)" `
-p:Version=${{ steps.gitversion.outputs.fullSemVer }} `
-p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} `
-p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} `
-p:InformationalVersion=${{ steps.gitversion.outputs.informationalVersion }} `
-p:DecryptKey="${{ secrets.WINDOWTRANSLATOR_DECRYPTKEY }}"
dotnet msbuild Plugins\WindowTranslator.Plugins.proj -target:PublishAppBundle `
-p:Configuration=Release `
-p:AppBundleOutputPath="$((Resolve-Path publish).Path)\plugins" `
-p:Version=${{ steps.gitversion.outputs.fullSemVer }} `
-p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} `
-p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} `
-p:InformationalVersion=${{ steps.gitversion.outputs.informationalVersion }} `
-p:DecryptKey="${{ secrets.WINDOWTRANSLATOR_DECRYPTKEY }}"
if ($LASTEXITCODE -ne 0) {
Comment thread
Freeesia marked this conversation as resolved.
Outdated
exit $LASTEXITCODE
}
- uses: actions/download-artifact@v8
if: ${{ needs.docs.result == 'success' }}
Expand Down
55 changes: 53 additions & 2 deletions .github/workflows/dotnet-package.yml
Comment thread
Freeesia marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
name: .NET Core Package

on:
pull_request:
push:
tags: [v*]

jobs:
build:
runs-on: windows-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v7
with:
Expand All @@ -25,10 +29,57 @@ jobs:
versionSpec: "6.x"
- id: gitversion
uses: gittools/actions/gitversion/execute@v4.7.0
- id: package-version
Comment thread
Freeesia marked this conversation as resolved.
Outdated
shell: pwsh
run: |
if ('${{ github.event_name }}' -eq 'push') {
$tag = '${{ github.ref_name }}'
if ($tag -notmatch '^v(?<version>[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?)$') {
Write-Error "NuGet package tag must be v-prefixed SemVer: $tag"
exit 1
}
"version=$($Matches.version)" >> $env:GITHUB_OUTPUT
}
else {
"version=0.0.0-pr.${{ github.run_number }}" >> $env:GITHUB_OUTPUT
}
- uses: Jimver/cuda-toolkit@v0.2.30
with:
cuda: '12.9.0'
- run: |
dotnet pack WindowTranslator.Abstractions -c Release -o pack `
Comment thread
Freeesia marked this conversation as resolved.
Outdated
-p:Version=${{ steps.gitversion.outputs.fullSemVer }} `
-p:Version=${{ steps.package-version.outputs.version }} `
-p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} `
-p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} `
-p:InformationalVersion=${{ steps.gitversion.outputs.informationalVersion }}
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
dotnet pack ColorThief\ColorThief -c Release -o pack `
-p:Version=${{ steps.package-version.outputs.version }} `
-p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} `
-p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} `
-p:InformationalVersion=${{ steps.gitversion.outputs.informationalVersion }}
dotnet nuget push pack\*.nupkg -k ${{ secrets.NUGET_KEY }} -s https://api.nuget.org/v3/index.json --skip-duplicate
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
dotnet msbuild Plugins\WindowTranslator.Plugins.proj -target:PackPlugins `
-p:Configuration=Release `
-p:PackageOutputPath="$((Resolve-Path pack).Path)" `
-p:Version=${{ steps.package-version.outputs.version }} `
-p:AssemblyVersion=${{ steps.gitversion.outputs.assemblySemVer }} `
-p:FileVersion=${{ steps.gitversion.outputs.assemblySemFileVer }} `
-p:InformationalVersion=${{ steps.gitversion.outputs.informationalVersion }} `
-p:DecryptKey="${{ secrets.WINDOWTRANSLATOR_DECRYPTKEY }}"
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
- name: NuGet login
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
id: nuget_login
uses: NuGet/login@v1
with:
user: Freesia
- name: NuGet push
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: dotnet nuget push pack\*.nupkg --api-key ${{ steps.nuget_login.outputs.NUGET_API_KEY }} --source https://api.nuget.org/v3/index.json --skip-duplicate
4 changes: 4 additions & 0 deletions ColorThief/ColorThief/ColorThief.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

<PropertyGroup>
<TargetFramework>net10.0-windows10.0.20348.0</TargetFramework>
<PackageId>WindowTranslator.ColorThief</PackageId>
<Title>WindowTranslator ColorThief Support Library</Title>
<Description>Color extraction support library for the WindowTranslator ColorThief plugin.</Description>
<PackageTags>$(PackageTags);ColorThief</PackageTags>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>StudioFreesia.ColorThief</RootNamespace>
Expand Down
5 changes: 5 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.302" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.0" />
Expand All @@ -34,6 +35,10 @@
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.298" />
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.135" />
<PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="NuGet.Frameworks" Version="7.6.0" />
<PackageVersion Include="NuGet.Packaging" Version="7.6.0" />
<PackageVersion Include="NuGet.Protocol" Version="7.6.0" />
<PackageVersion Include="NuGet.Versioning" Version="7.6.0" />
<PackageVersion Include="Octokit" Version="14.0.0" />
<PackageVersion Include="Panlingo.LanguageIdentification.FastText" Version="0.6.2" />
<PackageVersion Include="PropertyTools" Version="3.1.0" />
Expand Down
10 changes: 9 additions & 1 deletion Plugins/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
<EnableDynamicLoading>true</EnableDynamicLoading>
</PropertyGroup>

<!-- アプリへの同梱と NuGet 公開は、各プラグインから明示的に有効化する。 -->
Comment thread
Freeesia marked this conversation as resolved.
Outdated
<PropertyGroup>
<IncludeInAppBundle Condition="'$(IncludeInAppBundle)' == ''">false</IncludeInAppBundle>
<PublishToNuGet Condition="'$(PublishToNuGet)' == ''">false</PublishToNuGet>
<IncludePluginRuntimeAssetsInPackage
Condition="'$(IncludePluginRuntimeAssetsInPackage)' == ''">false</IncludePluginRuntimeAssetsInPackage>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" ExcludeAssets="runtime" />
<PackageReference Include="Microsoft.Extensions.Options" ExcludeAssets="runtime" />
Expand All @@ -22,4 +30,4 @@
<ExcludeAssets>runtime</ExcludeAssets>
</ProjectReference>
</ItemGroup>
</Project>
</Project>
49 changes: 47 additions & 2 deletions Plugins/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,8 +1,53 @@
<Project>
<PropertyGroup>
<IsPackable>$(PublishToNuGet)</IsPackable>
Comment thread
Freeesia marked this conversation as resolved.
Outdated
<IsPublishable
Condition="'$(AppBundleOutputPath)' != ''">$(IncludeInAppBundle)</IsPublishable>
<PublishDir
Comment thread
Freeesia marked this conversation as resolved.
Outdated
Condition="'$(AppBundleOutputPath)' != ''">$(AppBundleOutputPath)\$(MSBuildProjectName)\</PublishDir>
</PropertyGroup>

<!-- 上位階層の Directory.Build.targets をインクルード -->
<Import Project="$(MSBuildProjectDirectory)\..\..\Directory.Build.targets" Condition="Exists('$(MSBuildProjectDirectory)\..\..\Directory.Build.targets')" />

<Target Condition="'$(IsTestProject)' != 'true'" Name="PostBuild" AfterTargets="PostBuildEvent">
<PropertyGroup Condition="'$(IsTestProject)' != 'true' AND '$(IsPackable)' != 'false'">
Comment thread
Freeesia marked this conversation as resolved.
Outdated
<PackageTags>$(PackageTags);windowtranslator-plugin</PackageTags>
<PackageReadmeFile Condition="Exists('$(MSBuildProjectDirectory)\README.md')">README.md</PackageReadmeFile>
<PackageIcon>plugin-icon.png</PackageIcon>
<TargetsForTfmSpecificBuildOutput
Condition="'$(IncludePluginRuntimeAssetsInPackage)' == 'true'">$(TargetsForTfmSpecificBuildOutput);AddPluginRuntimeAssetsToPackage</TargetsForTfmSpecificBuildOutput>
</PropertyGroup>

<ItemGroup Condition="Exists('$(MSBuildProjectDirectory)\README.md')">
Comment thread
Freeesia marked this conversation as resolved.
Outdated
<None Update="$(MSBuildProjectDirectory)\README.md" Pack="true" PackagePath="\" />
</ItemGroup>

<ItemGroup Condition="'$(IsTestProject)' != 'true' AND '$(IsPackable)' != 'false'">
Comment thread
Freeesia marked this conversation as resolved.
Outdated
<None Include="$(MSBuildThisFileDirectory)plugin-icon.png" Pack="true" PackagePath="\" />
</ItemGroup>

<!--
PackageReference の build/buildTransitive ターゲットによって出力されるネイティブ資産は、
依存パッケージの標準 runtimes/ 配下に存在しない場合がある。
必要なプラグインだけ IncludePluginRuntimeAssetsInPackage=true で実際のビルド出力を同梱する。
-->
<Target
Condition="'$(IsPackable)' != 'false' AND '$(IncludePluginRuntimeAssetsInPackage)' == 'true'"
Name="AddPluginRuntimeAssetsToPackage">
<ItemGroup>
<_PluginWinX64RuntimeAsset Include="$(TargetDir)runtimes\win-x64\**\*" />
<_PluginWinRuntimeAsset Include="$(TargetDir)runtimes\win\**\*" />
<_PluginAnyRuntimeAsset Include="$(TargetDir)runtimes\any\**\*" />
<BuildOutputInPackage Include="@(_PluginWinX64RuntimeAsset)"
TargetPath="runtimes\win-x64\%(RecursiveDir)%(Filename)%(Extension)" />
<BuildOutputInPackage Include="@(_PluginWinRuntimeAsset)"
TargetPath="runtimes\win\%(RecursiveDir)%(Filename)%(Extension)" />
<BuildOutputInPackage Include="@(_PluginAnyRuntimeAsset)"
TargetPath="runtimes\any\%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
</Target>

<Target Condition="'$(IsTestProject)' != 'true' AND ('$(GITHUB_ACTIONS)' != 'true' OR '$(IncludeInAppBundle)' == 'true')" Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="call $(ProjectDir)..\copy_plugins.bat $(OutDir) $(ProjectName) $(Configuration)" />
</Target>
</Project>
</Project>
Loading
Loading