Skip to content

Commit 960f20a

Browse files
authored
Merge pull request #4 from lowlandtech/develop
Develop
2 parents ccbe17d + a9520be commit 960f20a

75 files changed

Lines changed: 11674 additions & 142 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.local.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(magick:*)",
5+
"Bash(copy:*)"
6+
]
7+
}
8+
}

.config/dotnet-tools.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": 1,
3+
"isRoot": true,
4+
"tools": {
5+
"cake.tool": {
6+
"version": "5.1.0",
7+
"commands": [
8+
"dotnet-cake"
9+
]
10+
}
11+
}
12+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
name: Bug Report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
<!-- A clear and concise description of the bug -->
11+
12+
## To Reproduce
13+
Steps to reproduce the behavior:
14+
1.
15+
2.
16+
3.
17+
18+
## Expected Behavior
19+
<!-- What you expected to happen -->
20+
21+
## Actual Behavior
22+
<!-- What actually happened -->
23+
24+
## Code Sample
25+
```csharp
26+
// Minimal code that reproduces the issue
27+
var context = new ExecutionContext();
28+
var template = "...";
29+
var result = engine.Render(template, context);
30+
```
31+
32+
## Environment
33+
- **TinyTemplateEngine Version:** [e.g., 2026.1.0]
34+
- **.NET Version:** [e.g., .NET 8.0]
35+
- **OS:** [e.g., Windows 11, Ubuntu 22.04, macOS Sonoma]
36+
- **IDE:** [e.g., Visual Studio 2022, VS Code, Rider]
37+
38+
## Error Message/Stack Trace
39+
```
40+
Paste any error messages or stack traces here
41+
```
42+
43+
## Additional Context
44+
<!-- Add any other context about the problem here -->
45+
46+
## Possible Solution
47+
<!-- Optional: suggest a fix or reason for the bug -->
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Feature Description
10+
<!-- A clear and concise description of the feature -->
11+
12+
## Problem Statement
13+
<!-- Describe the problem this feature would solve -->
14+
**Is your feature request related to a problem?**
15+
<!-- e.g., I'm always frustrated when... -->
16+
17+
## Proposed Solution
18+
<!-- Describe how you'd like the feature to work -->
19+
20+
### Code Example
21+
```csharp
22+
// How you envision using this feature
23+
var context = new ExecutionContext();
24+
// Your proposed API usage here
25+
```
26+
27+
## Alternatives Considered
28+
<!-- Describe alternative solutions you've considered -->
29+
30+
## Philosophy Alignment
31+
<!-- How does this fit with TinyTemplateEngine's philosophy? -->
32+
33+
- [ ] This is a core feature needed by most users
34+
- [ ] This could be implemented as a Template Service
35+
- [ ] This maintains the "tiny" principle
36+
- [ ] This adds no unnecessary dependencies
37+
38+
## Use Cases
39+
<!-- Describe 2-3 real-world scenarios where this would be useful -->
40+
41+
1.
42+
2.
43+
3.
44+
45+
## Additional Context
46+
<!-- Add any other context, screenshots, or examples -->
47+
48+
## Willingness to Contribute
49+
- [ ] I would be willing to implement this feature
50+
- [ ] I would be willing to help test this feature
51+
- [ ] I just want to suggest the idea

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
## Description
2+
<!-- Provide a brief description of the changes in this PR -->
3+
4+
## Type of Change
5+
<!-- Mark the relevant option with an "x" -->
6+
7+
- [ ] Bug fix (non-breaking change which fixes an issue)
8+
- [ ] New feature (non-breaking change which adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10+
- [ ] Documentation update
11+
- [ ] Performance improvement
12+
- [ ] Code refactoring
13+
- [ ] Template Service example
14+
15+
## Related Issue
16+
<!-- Link to the related issue -->
17+
Fixes #(issue number)
18+
19+
## Changes Made
20+
<!-- List the specific changes made in this PR -->
21+
22+
-
23+
-
24+
-
25+
26+
## Testing
27+
<!-- Describe the tests you added or ran -->
28+
29+
- [ ] Added new unit tests
30+
- [ ] All existing tests pass
31+
- [ ] Tested manually (describe below)
32+
33+
**Manual Testing Steps:**
34+
1.
35+
2.
36+
3.
37+
38+
## Checklist
39+
<!-- Mark items with an "x" when complete -->
40+
41+
- [ ] My code follows the project's code style
42+
- [ ] I have performed a self-review of my own code
43+
- [ ] I have commented my code, particularly in hard-to-understand areas
44+
- [ ] I have made corresponding changes to the documentation
45+
- [ ] My changes generate no new warnings
46+
- [ ] I have added tests that prove my fix is effective or that my feature works
47+
- [ ] New and existing unit tests pass locally with my changes
48+
- [ ] Any dependent changes have been merged and published
49+
50+
## Screenshots (if applicable)
51+
<!-- Add screenshots to help explain your changes -->
52+
53+
## Additional Notes
54+
<!-- Add any other context about the PR here -->

.github/dependabot.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
version: 2
2+
updates:
3+
# .NET dependencies
4+
- package-ecosystem: "nuget"
5+
directory: "/"
6+
schedule:
7+
interval: "weekly"
8+
day: "monday"
9+
time: "09:00"
10+
open-pull-requests-limit: 10
11+
labels:
12+
- "dependencies"
13+
- "nuget"
14+
commit-message:
15+
prefix: "chore"
16+
include: "scope"
17+
reviewers:
18+
- "wendellmva"
19+
20+
# GitHub Actions
21+
- package-ecosystem: "github-actions"
22+
directory: "/"
23+
schedule:
24+
interval: "weekly"
25+
day: "monday"
26+
time: "09:00"
27+
open-pull-requests-limit: 5
28+
labels:
29+
- "dependencies"
30+
- "github-actions"
31+
commit-message:
32+
prefix: "ci"
33+
include: "scope"
34+
reviewers:
35+
- "wendellmva"

.github/workflows/main.yml

Lines changed: 72 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,88 @@
1-
# This workflow will build a .NET project
2-
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
3-
4-
name: lowlandtech/tinytools
1+
name: CI
52

63
on:
74
push:
85
branches: [ "main" ]
96
pull_request:
107
branches: [ "main" ]
8+
workflow_dispatch:
9+
10+
env:
11+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
12+
DOTNET_CLI_TELEMETRY_OPTOUT: true
13+
DOTNET_NOLOGO: true
1114

1215
jobs:
13-
build:
16+
build-and-test:
17+
name: Build & Test
18+
runs-on: ${{ matrix.os }}
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
os: [ubuntu-latest, windows-latest, macos-latest]
23+
dotnet-version: ['8.0.x', '9.0.x']
24+
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@v4
28+
with:
29+
fetch-depth: 0 # Full history for better source link support
30+
31+
- name: Setup .NET SDK
32+
uses: actions/setup-dotnet@v4
33+
with:
34+
dotnet-version: ${{ matrix.dotnet-version }}
35+
36+
- name: Restore dependencies
37+
run: dotnet restore
38+
39+
- name: Build
40+
run: dotnet build --configuration Release --no-restore
41+
42+
- name: Run tests
43+
run: dotnet test --configuration Release --no-build --verbosity normal --collect:"XPlat Code Coverage" --results-directory ./coverage
44+
45+
- name: Upload coverage to Codecov
46+
if: matrix.os == 'ubuntu-latest' && matrix.dotnet-version == '9.0.x'
47+
uses: codecov/codecov-action@v4
48+
with:
49+
files: ./coverage/**/coverage.cobertura.xml
50+
fail_ci_if_error: false
51+
verbose: true
1452

53+
pack:
54+
name: Pack NuGet Package
1555
runs-on: ubuntu-latest
16-
56+
needs: build-and-test
57+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
58+
1759
steps:
18-
- uses: actions/checkout@v3
19-
- name: Setup .NET
20-
uses: actions/setup-dotnet@v3
60+
- name: Checkout code
61+
uses: actions/checkout@v4
62+
with:
63+
fetch-depth: 0
64+
65+
- name: Setup .NET SDK
66+
uses: actions/setup-dotnet@v4
2167
with:
22-
dotnet-version: 7.0.x
68+
dotnet-version: '9.0.x'
69+
2370
- name: Restore dependencies
2471
run: dotnet restore
72+
2573
- name: Build
26-
run: dotnet build --no-restore
27-
- name: Test
28-
run: dotnet test --configuration Release
74+
run: dotnet build --configuration Release --no-restore
75+
2976
- name: Pack
30-
run: dotnet pack src/lowlandtech.tinytools/LowlandTech.TinyTools.csproj -c Release
31-
- name: Publish to GitHub packages
32-
run: dotnet nuget push src/lowlandtech.tinytools/bin/Release/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "lowlandtech" --skip-duplicate
77+
run: dotnet pack src/lowlandtech.tinytools/LowlandTech.TinyTools.csproj --configuration Release --no-build --output ./artifacts
78+
79+
- name: Upload artifacts
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: nuget-packages
83+
path: ./artifacts/*.nupkg
84+
retention-days: 7
85+
86+
- name: Publish to GitHub Packages
87+
run: dotnet nuget push ./artifacts/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/lowlandtech/index.json" --skip-duplicate
88+
continue-on-error: true

0 commit comments

Comments
 (0)