Skip to content

Commit 8bf7d83

Browse files
chore: initial commit
0 parents  commit 8bf7d83

File tree

17 files changed

+822
-0
lines changed

17 files changed

+822
-0
lines changed

.github/CODEOWNERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Default owners for everything
2+
* @toon-format/dotnet-maintainers
3+
4+
# Project governance and documentation
5+
CODE_OF_CONDUCT.md @johannschopplich
6+
CONTRIBUTING.md @johannschopplich
7+
LICENSE @johannschopplich
8+
README.md @johannschopplich
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for taking the time to report a bug!
9+
10+
- type: textarea
11+
id: description
12+
attributes:
13+
label: Description
14+
description: A clear description of what the bug is
15+
placeholder: When I try to encode..., I expect..., but instead...
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: reproduction
21+
attributes:
22+
label: Reproduction Steps
23+
description: Steps to reproduce the behavior
24+
placeholder: |
25+
1. Import Toon.Format
26+
2. Call Encode() with...
27+
3. See error...
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: expected
33+
attributes:
34+
label: Expected Behavior
35+
description: What you expected to happen
36+
validations:
37+
required: true
38+
39+
- type: textarea
40+
id: actual
41+
attributes:
42+
label: Actual Behavior
43+
description: What actually happened (including error messages)
44+
validations:
45+
required: true
46+
47+
- type: textarea
48+
id: environment
49+
attributes:
50+
label: Environment
51+
description: |
52+
Please provide:
53+
- .NET version
54+
- Toon.Format version
55+
- Operating system
56+
placeholder: |
57+
- .NET 8.0.0
58+
- Toon.Format 0.1.0
59+
- macOS 14.0
60+
validations:
61+
required: true
62+
63+
- type: textarea
64+
id: additional
65+
attributes:
66+
label: Additional Context
67+
description: Any other context about the problem (optional)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement
3+
labels: ["enhancement"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for suggesting a feature!
9+
10+
- type: textarea
11+
id: problem
12+
attributes:
13+
label: Problem Statement
14+
description: What problem does this feature solve?
15+
placeholder: As a user, I want to... because...
16+
validations:
17+
required: true
18+
19+
- type: textarea
20+
id: solution
21+
attributes:
22+
label: Proposed Solution
23+
description: How would you like this to work?
24+
placeholder: |
25+
Add a new method/function that...
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: alternatives
31+
attributes:
32+
label: Alternatives Considered
33+
description: What alternative solutions have you considered?
34+
35+
- type: textarea
36+
id: spec
37+
attributes:
38+
label: SPEC Compliance
39+
description: |
40+
Does this relate to the TOON specification?
41+
If yes, please reference the relevant section.
42+
placeholder: This relates to SPEC.md section...
43+
44+
- type: textarea
45+
id: additional
46+
attributes:
47+
label: Additional Context
48+
description: Any other context, mockups, or examples
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: SPEC Compliance Issue
2+
description: Report a deviation from the TOON specification
3+
labels: ["spec-compliance"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Report an issue where toon-dotnet doesn't comply with the official TOON spec.
9+
10+
- type: input
11+
id: spec-version
12+
attributes:
13+
label: SPEC Version
14+
description: Which version of the TOON spec does this relate to?
15+
placeholder: v1.3
16+
validations:
17+
required: true
18+
19+
- type: input
20+
id: spec-section
21+
attributes:
22+
label: SPEC Section
23+
description: Which section of SPEC.md is affected?
24+
placeholder: "Section 2.3: Array Notation"
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: spec-requirement
30+
attributes:
31+
label: SPEC Requirement
32+
description: What does the spec require?
33+
placeholder: According to SPEC.md, the encoder should...
34+
validations:
35+
required: true
36+
37+
- type: textarea
38+
id: current-behavior
39+
attributes:
40+
label: Current Behavior
41+
description: What does toon-dotnet currently do?
42+
placeholder: Currently, toon-dotnet...
43+
validations:
44+
required: true
45+
46+
- type: textarea
47+
id: test-case
48+
attributes:
49+
label: Test Case
50+
description: Provide a test case that demonstrates the issue
51+
placeholder: |
52+
```csharp
53+
using Toon.Format;
54+
var result = ToonEncoder.Encode(...);
55+
// Expected: ...
56+
// Actual: ...
57+
```
58+
validations:
59+
required: true
60+
61+
- type: textarea
62+
id: additional
63+
attributes:
64+
label: Additional Context
65+
description: Any other relevant information

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
## Description
2+
3+
<!-- Provide a clear and concise description of your changes -->
4+
5+
## Type of Change
6+
7+
<!-- Mark the relevant option with an [x] -->
8+
9+
- [ ] Bug fix (non-breaking change that fixes an issue)
10+
- [ ] New feature (non-breaking change that adds functionality)
11+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
12+
- [ ] Documentation update
13+
- [ ] Refactoring (no functional changes)
14+
- [ ] Performance improvement
15+
- [ ] Test coverage improvement
16+
17+
## Related Issues
18+
19+
<!-- Link any related issues using #issue_number -->
20+
21+
Closes #
22+
23+
## Changes Made
24+
25+
<!-- List the main changes in this PR -->
26+
27+
-
28+
-
29+
-
30+
31+
## SPEC Compliance
32+
33+
<!-- If this PR relates to the TOON spec, indicate which sections are affected -->
34+
35+
- [ ] This PR implements/fixes spec compliance
36+
- [ ] Spec section(s) affected:
37+
- [ ] Spec version:
38+
39+
## Testing
40+
41+
<!-- Describe the tests you added or ran -->
42+
43+
- [ ] All existing tests pass
44+
- [ ] Added new tests for changes
45+
- [ ] Tested on .NET 8.0
46+
- [ ] Tested on .NET 9.0
47+
48+
## Checklist
49+
50+
<!-- Mark completed items with an [x] -->
51+
52+
- [ ] My code follows the project's coding standards
53+
- [ ] I have run `dotnet format`
54+
- [ ] I have added tests that prove my fix/feature works
55+
- [ ] New and existing tests pass locally
56+
- [ ] I have updated documentation (if needed)
57+
- [ ] My changes do not introduce new dependencies
58+
59+
## Additional Context
60+
61+
<!-- Add any other context about the PR here (optional) -->

.github/workflows/publish.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Publish to NuGet
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
publish:
9+
name: Publish to NuGet
10+
runs-on: ubuntu-latest
11+
permissions:
12+
id-token: write
13+
contents: read
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Setup .NET
19+
uses: actions/setup-dotnet@v4
20+
with:
21+
dotnet-version: "8.0"
22+
23+
- name: Restore dependencies
24+
run: dotnet restore
25+
26+
- name: Build
27+
run: dotnet build --configuration Release --no-restore
28+
29+
- name: Pack
30+
run: dotnet pack --configuration Release --no-build --output ./artifacts
31+
32+
- name: Publish to NuGet
33+
run: dotnet nuget push ./artifacts/*.nupkg --source https://api.nuget.org/v3/index.json

.github/workflows/test.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
name: .NET ${{ matrix.dotnet-version }} on ${{ matrix.os }}
12+
runs-on: ${{ matrix.os }}
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
os: [ubuntu-latest, macos-latest, windows-latest]
17+
dotnet-version: ["8.0", "9.0"]
18+
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Setup .NET ${{ matrix.dotnet-version }}
23+
uses: actions/setup-dotnet@v4
24+
with:
25+
dotnet-version: ${{ matrix.dotnet-version }}
26+
27+
- name: Restore dependencies
28+
run: dotnet restore
29+
30+
- name: Build
31+
run: dotnet build --no-restore --configuration Release
32+
33+
- name: Run tests
34+
run: dotnet test --no-build --configuration Release --verbosity normal
35+
36+
- name: Run tests with coverage
37+
if: matrix.os == 'ubuntu-latest' && matrix.dotnet-version == '8.0'
38+
run: |
39+
dotnet test --configuration Release --collect:"XPlat Code Coverage" --results-directory ./coverage
40+
41+
- name: Upload coverage to Codecov
42+
if: matrix.os == 'ubuntu-latest' && matrix.dotnet-version == '8.0'
43+
uses: codecov/codecov-action@v4
44+
with:
45+
directory: ./coverage
46+
fail_ci_if_error: false

.gitignore

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# .NET build outputs
2+
bin/
3+
obj/
4+
out/
5+
6+
# NuGet packages
7+
*.nupkg
8+
*.snupkg
9+
packages/
10+
.nuget/
11+
12+
# Build results
13+
[Dd]ebug/
14+
[Dd]ebugPublic/
15+
[Rr]elease/
16+
[Rr]eleases/
17+
x64/
18+
x86/
19+
[Ww][Ii][Nn]32/
20+
[Aa][Rr][Mm]/
21+
[Aa][Rr][Mm]64/
22+
bld/
23+
[Bb]in/
24+
[Oo]bj/
25+
[Ll]og/
26+
[Ll]ogs/
27+
28+
# Visual Studio files
29+
.vs/
30+
*.user
31+
*.suo
32+
*.userosscache
33+
*.sln.docstates
34+
*.userprefs
35+
36+
# Rider
37+
.idea/
38+
*.sln.iml
39+
40+
# Visual Studio Code
41+
.vscode/
42+
43+
# MonoDevelop
44+
*.pidb
45+
*.pdb
46+
*.log
47+
48+
# Test results
49+
TestResults/
50+
*.trx
51+
*.coverage
52+
*.coveragexml
53+
54+
# IDEs
55+
*.swp
56+
*.swo
57+
*~
58+
.DS_Store
59+
60+
# Backup files
61+
*~
62+
*.orig
63+
*.bak

0 commit comments

Comments
 (0)