Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
7ec36f9
chore: add package tags for abstractions package
juner May 8, 2026
45662c2
feat: setup testing infrastructure for Processor.Abstractions and tra…
juner May 27, 2026
de31931
docs: update README.md to reflect IEventProcessor-based architecture
juner May 27, 2026
ce21243
feat: add Esolang.Generator.Abstractions project
juner May 27, 2026
c69b0bc
refactor: adjust KnownTypes to protected readonly struct
juner May 27, 2026
9ca6c75
feat: standardize common generator types in Esolang.Generator.Abstrac…
juner May 27, 2026
8d521c9
feat: complete KnownTypes standardization and nullable handling in Ge…
juner May 27, 2026
3a0e44c
feat: finalize KnownTypes implementation in Esolang.Generator.Abstrac…
juner May 27, 2026
1345edb
ちょっとコミット
juner May 27, 2026
681c554
dotnet format
juner May 27, 2026
12ae558
Add common generator abstractions for method signature binding and ty…
juner May 27, 2026
a69c302
Add XML documentation comments in English to generator abstractions
juner May 27, 2026
c52a47e
feat(generator): Esolang.Brainfuckの対応に伴うGenerator.Abstractionsの修正
juner May 28, 2026
18b7878
test(generator): KnownTypes のユニットテスト追加および環境整備
juner May 28, 2026
9cfe746
test(generator): MethodSignatureBinder の非同期メソッドバインディングテストを追加
juner May 28, 2026
d20baa1
test(generator): 残りのテスト実装ファイルと関連プロジェクト設定をコミット
juner May 28, 2026
7f0f6a9
test(generator): MethodSignatureBinder の全網羅テスト実装とテスト環境の安定化
juner May 28, 2026
bf5133f
test(generator): NullableAnnotation 周りの修正とカバレッジ調整
juner May 28, 2026
9695904
test(generator): MethodSignatureBinder のバインディング網羅テストの追加
juner May 28, 2026
c5e63b9
test(generator): MethodSignatureBinder の Logger 探索およびパラメータ関連の網羅テストを実装…
juner May 28, 2026
0426647
test(generator): MethodSignatureBindingTests の修正をコミット
juner May 28, 2026
d3ae696
プライマリコンストラ化
juner May 28, 2026
dc8e1b0
dotnet format
juner May 28, 2026
cae66a5
refactor(generator): Replace string ErrorId with type-safe BindingErr…
juner May 29, 2026
b1a572d
add dotnet_style_prefer_collection_expression = when_types_loosely_ma…
juner May 30, 2026
34b3023
add csharp_style_pattern_matching_over_is_with_cast_check = true:erro…
juner May 30, 2026
e2324b2
add dotnet_diagnostic.MSTEST0020.severity = error / dotnet_diagnostic…
juner May 30, 2026
4aa1f4b
add dotnet_diagnostic.MSTEST0037.severity = error
juner May 30, 2026
c0d3388
add MSTEST analyzers
juner May 30, 2026
85ac351
editorconig editing...
juner May 30, 2026
c3c5e5b
BindingError は ライブラリ利用側から継承できないようにする / MethodSignatureBinding のコンストラク…
juner May 30, 2026
3605fb2
editorconfig editing...
juner May 30, 2026
a597e2b
IsValid に MemberNotNullWhen の付与
juner May 30, 2026
8e0d5c2
不備の修正
juner May 30, 2026
19015d2
改行の追加
juner May 30, 2026
a6518b2
ソート
juner May 31, 2026
d803cc2
Refactor: IO extensions into Esolang.Processor.Extensions.IO project
juner Jun 1, 2026
a348ede
Fix: Re-integrate tests for IO extensions
juner Jun 1, 2026
4e30134
名前空間の調整
juner Jun 1, 2026
d18cfa5
Feat: Add Esolang.Interpreter.Abstractions
juner Jun 1, 2026
bd72f32
feat: ensure cooperative cancellation in RunToConsoleAsync
juner Jun 1, 2026
67fe9a8
refactor: cleanup generator and processor abstractions
juner Jun 1, 2026
7ecc373
docs: finalize v2.0.0 documentation and changelog
juner Jun 1, 2026
0999788
CHANGELOG の整理( v1.0.0 - v2.0.0 というニュアンスでは不要な内容の削除
juner Jun 1, 2026
b648177
chore: update NuGet package metadata (Description, PackageTags, Packa…
juner Jun 1, 2026
9ce778e
ci: update GitHub Actions workflows for build, test, and release
juner Jun 1, 2026
93092d3
docs: update root README.md with package summaries and NuGet links
juner Jun 2, 2026
cdbf74d
docs: improve project READMEs and sync with source implementation
juner Jun 2, 2026
30560c7
docs: complete v2.0.0 changelog with detailed changes and breaking up…
juner Jun 2, 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
82 changes: 78 additions & 4 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning

# Accessibility modifier settings
dotnet_style_require_accessibility_modifiers = for_non_interface_members
dotnet_style_require_accessibility_modifiers = omit_if_default

# Expression-level preferences
dotnet_style_coalesce_expression = true:warning
Expand Down Expand Up @@ -236,7 +236,81 @@ dotnet_style_qualification_for_field = false:silent
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning
# 関係演算子の優先順位が明確な場合は、かっこを使用しない
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:warning
# 関係演算子の優先順位が明確な場合は、かっこを使用しない
dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary:warning
# 関係演算子の優先順位が明確な場合は、かっこを使用しない
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:warning
# 算術演算子の優先順位が明確な場合はかっこを使用しない
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning
# IEnumerable<int> list = new List<int>() { 1, 2 };など、型が緩やかに一致する場合でもコレクション式を使用することを好みます。 対象となる型は、右側の型と一致するか、IEnumerable<T>、ICollection<T>、IList<T>、IReadOnlyCollection<T>、IReadOnlyList<T>のいずれかの型である必要があります。
dotnet_style_prefer_collection_expression = when_types_loosely_match:warning
# 不要な using ディレクティブを削除する (IDE0005)
dotnet_diagnostic.IDE0005.severity = warning
# is 式と型キャストの代わりにパターン マッチングを使用します。
csharp_style_pattern_matching_over_is_with_cast_check = true:warning
# 既定の修飾子である場合を除き、アクセシビリティ修飾子を優先します。
dotnet_style_require_accessibility_modifiers = omit_if_default:warning
# 未使用のプライベート メンバーを削除する (IDE0051)
dotnet_diagnostic.IDE0051.severity = warning

#region
# CA2012: ValueTask を正しく使用する必要があります
dotnet_diagnostic.CA2012.severity = warning
# CA2016: CancellationToken パラメーターを受け取るメソッドに渡す
dotnet_diagnostic.CA2016.severity = warning
# CA2200: スタックの詳細を保持するために再スローします。
dotnet_diagnostic.CA2200.severity = warning
# CA2217: 列挙型に FlagsAttributeを付与しないでください。
dotnet_diagnostic.CA2217.severity = warning
#endregion

#region MSTest Analyzers

# MSTEST0017: アサーション引数は正しい順序で渡す必要があります
dotnet_diagnostic.MSTEST0017.severity = warning
# MSTEST0020: TestInitialize メソッドよりもコンストラクターを優先する
dotnet_diagnostic.MSTEST0020.severity = warning
# MSTEST0021: TestCleanup メソッドよりも Dispose を優先する
dotnet_diagnostic.MSTEST0021.severity = warning
# MSTEST0022: Dispose メソッドよりも TestCleanup を優先する
dotnet_diagnostic.MSTEST0022.severity = warning
# MSTEST0023: ブール アサーションを否定しないこと
dotnet_diagnostic.MSTEST0023.severity = warning
# MSTEST0024: TestContext を静的メンバーに格納しない
dotnet_diagnostic.MSTEST0024.severity = warning
# MSTEST0025: 常に失敗するアサートではなく 'Assert.Fail' を使う
dotnet_diagnostic.MSTEST0025.severity = warning
# MSTEST0026: アサーションでの条件付きアクセスを回避する
dotnet_diagnostic.MSTEST0026.severity = warning
# MSTEST0029: パブリック メソッドをテスト メソッドにする必要がある
dotnet_diagnostic.MSTEST0029.severity = warning
# MSTEST0032: 条件が常に真であることがわかっているため、アサーションを確認するか削除してください
dotnet_diagnostic.MSTEST0032.severity = warning
# MSTEST0036: テスト クラス内でシャドウイングを使用しない
dotnet_diagnostic.MSTEST0036.severity = warning
# MSTEST0037: 適切な 'Assert' メソッドを使用する
dotnet_diagnostic.MSTEST0037.severity = warning
# MSTEST0038: 値型では 'Assert.AreSame' または 'Assert.AreNotSame' を使用しない
dotnet_diagnostic.MSTEST0038.severity = warning
# MSTEST0040: 'async void' コンテキスト内でアサートしない
dotnet_diagnostic.MSTEST0040.severity = warning
# MSTEST0044: DataTestMethod よりも TestMethod を優先する
dotnet_diagnostic.MSTEST0044.severity = warning
# MSTEST0045: タイムアウトに協調キャンセルを使用する
dotnet_diagnostic.MSTEST0045.severity = warning
# MSTEST0046: StringAssertではなくAssertを使います
dotnet_diagnostic.MSTEST0046.severity = warning
# MSTEST0049: Flow TestContext キャンセル トークンを使用する
dotnet_diagnostic.MSTEST0049.severity = warning
# MSTEST0051: Assert.Throws には 1 つのステートメントのみを含める必要があります
dotnet_diagnostic.MSTEST0051.severity = warning
# MSTEST0054: TestContext.CancellationToken からのキャンセル トークンを使用する
dotnet_diagnostic.MSTEST0054.severity = warning
# MSTEST0058: catch ブロック内の assert を避ける
dotnet_diagnostic.MSTEST0058.severity = warning
# MSTEST0061: ランタイム チェックの代わりに OSCondition 属性を使用する
dotnet_diagnostic.MSTEST0061.severity = warning

#endregion
23 changes: 13 additions & 10 deletions .github/workflows/dotnet.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: build
name: build and test

on:
push:
Expand All @@ -12,35 +12,38 @@ on:

env:
DOTNET_VERSION: '10.0.x'
NUGET_SOURCE: 'https://api.nuget.org/v3/index.json'

jobs:
build:
name: build-${{matrix.os}}
build-and-test:

name: build-and-test-${{matrix.os}}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Install dependencies
run: dotnet restore --source "${{ env.NUGET_SOURCE }}"

run: dotnet restore
- name: Build
run: dotnet build --no-restore

- name: Test
run: dotnet test --no-restore --verbosity normal

- name: Pack
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
dotnet pack -o artifacts/

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: ${{ matrix.os == 'ubuntu-latest' }}
with:
name: artifacts
Expand Down
32 changes: 24 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,32 @@ permissions:

env:
DOTNET_VERSION: '10.0.x'
NUGET_SOURCE: 'https://api.nuget.org/v3/index.json'

jobs:
publish:
name: publish-packages-and-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag || github.ref }}
fetch-depth: 0
- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore
run: dotnet restore --source "${{ env.NUGET_SOURCE }}"
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --configuration Release --no-build --verbosity normal
- name: Pack
run: |
dotnet pack Generator.Abstractions/Esolang.Generator.Abstractions.csproj -c Release -o artifacts/nuget
dotnet pack Interpreter.Abstractions/Esolang.Interpreter.Abstractions.csproj -c Release -o artifacts/nuget
dotnet pack Processor.Abstractions/Esolang.Processor.Abstractions.csproj -c Release -o artifacts/nuget
dotnet pack Processor.Extensions.IO/Esolang.Processor.Extensions.IO.csproj -c Release -o artifacts/nuget
- name: Publish to NuGet.org
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
Expand Down Expand Up @@ -93,7 +97,19 @@ jobs:
set -euo pipefail
tag="${{ github.event.inputs.tag || github.ref_name }}"
shopt -s nullglob
gh release create "$tag" \
--repo "${{ github.repository }}" \
--title "$tag" \
artifacts/nuget/*.nupkg artifacts/nuget/*.snupkg || true
assets=(artifacts/nuget/*.nupkg artifacts/nuget/*.snupkg)
prerelease_flag=""
if [[ "$tag" == *-* ]]; then
prerelease_flag="--prerelease"
fi
if gh release view "$tag" >/dev/null 2>&1; then
if [ ${#assets[@]} -gt 0 ]; then
gh release upload "$tag" "${assets[@]}" --clobber
fi
else
gh release create "$tag" \
"${assets[@]}" \
--title "$tag" \
--generate-notes \
$prerelease_flag
fi
Loading
Loading