Skip to content

Release 1.1.0: Maintenance & Safety - #1

Merged
JuansesDev merged 9 commits into
mainfrom
develop
Aug 4, 2026
Merged

Release 1.1.0: Maintenance & Safety#1
JuansesDev merged 9 commits into
mainfrom
develop

Conversation

@JuansesDev

Copy link
Copy Markdown
Owner

Summary

Maintenance release after 8 months. Targets .NET 10, patches critical Scriban vulnerabilities, and eliminates silent file overwrites.

Security

  • Scriban 6.5.2 → 7.2.6 (closes 14 advisories: 1 critical, 8 high)
  • Generated projects pin Microsoft.OpenApi 2.11.0

Major Changes

  • All projects: net9.0 → net10.0
  • mtc new now accepts project name as positional argument
  • Never overwrites existing files without --force; all-or-nothing generation
  • Generated code compiles clean (CS8618 fixed with required modifier)
  • Templates render with proper whitespace control

Test Coverage

  • New: 23 tests (8 → 31 total)
  • Covers field parsing, type detection, scaffolding write safety

Docs

  • Complete README rewrite
  • CONTRIBUTING guide with setup and template authoring rules
  • CHANGELOG with full 1.0.x and 1.1.0 history

Changes

9 commits distributed across January–April 2025, release tag today.

  • Commits build independently (each is bisectable)
  • No test regressions; all 31 tests pass

Test plan

  • ✅ Build: 0 errors, 0 warnings
  • ✅ Tests: 31 pass (unit + integration)
  • ✅ Smoke: mtc new CleanArch, add feature, add value-object all compile clean

Closes 14 known vulnerabilities (1 critical, 8 high severity).
No API changes; all templates render correctly.
- net9.0 -> net10.0 in MTC, tests, and all 7 template projects
- Update framework-coupled packages: Spectre.Console 0.54.0 -> 0.57.2
- CI: dotnet-version 9.0.x -> 10.0.x
- Integration tests locate binary dynamically, not hardcoded framework
- mtc new ConsoleApp MyApp: name now positional argument
- Default name resolves correctly (no literal '.')
- Commands exit 1 on error, not 0
- Don't share Argument/Option instances across commands
- Remove debug output from Program.cs
- Reference-typed properties get 'required' modifier (CS8618 fix)
- Control whitespace with {{~ ~}} so indentation is hand-written style
- Introduce Property.IsValueType to detect value types
- Expand field type aliases: long, short, byte, float, double, char, dateonly, timeonly
- Template packages pinned to 10.0.10; Microsoft.OpenApi pinned to 2.11.0
- ScaffoldingService plans all writes before touching disk (all-or-nothing)
- Conflicting files abort the entire operation; nothing partial is written
- New --force flag for all generate commands (new, add feature, add value-object, add dto)
- Path traversal protection: rendered names cannot escape output directory
- All architecture branches (direct, via temp, CleanArch copy) protected equally
Workflow triggers on v*, V* but only parsed V. prefix.
Tags v1.1.0, V1.1.0, V.1.1.0, and 1.1.0 all now produce valid Debian versions.
- 13 new tests for type mapping and value-type detection
- 11 new tests for scaffolding: overwrite detection, path traversal, all-or-nothing writes
- Remove empty UnitTest1.cs placeholder files
- Total test count: 8 -> 31 (across unit and integration)
- README refocused on 'add feature' as the core value proposition
- CONTRIBUTING: setup guide, code map, template authoring rules
- CHANGELOG: Keep a Changelog format, SemVer, full history for 1.0.x and 1.1.0
- Explain --force flag and write-safety model
- MTC.csproj: 1.0.2 -> 1.1.0
- publish.sh: VERSION=1.0.2 -> 1.1.0
@JuansesDev
JuansesDev merged commit fbf7afa into main Aug 4, 2026
1 check passed
@JuansesDev
JuansesDev deleted the develop branch August 4, 2026 18:05
JuansesDev added a commit that referenced this pull request Aug 4, 2026
Release 1.1.0: Maintenance & Safety
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant