Refactor build configuration and add interface delegation generator#23
Merged
Conversation
Major build system improvements: - Restructure Directory.Build.props following timewarp-nuru pattern with clear sections and MSBuild variables - Simplify nuget.config: remove packageSourceMapping, use artifacts/packages for local feed - Remove package lock files and lock file configuration (unnecessary complexity) - Remove CI deterministic build configuration - Update csproj files to use $(RepositoryRoot) variable instead of hardcoded paths - Rename read-me.md to readme.md for consistency Interface delegation feature (work in progress): - Add ImplementsAttribute for Delphi-style interface delegation - Add InterfaceDelegationGenerator source generator (detection logic has bugs, needs debugging) - Add test files: ILogger, ConsoleLogger, DataService interfaces - Add diagnostic rules TW1001, TW1002, TW1003 to AnalyzerReleases.Unshipped.md - Create comprehensive task documentation in kanban/to-do/017_create-interface-delegation-generator/ Source generator configuration: - Update test console to use PackageReference instead of ProjectReference for analyzer - Add TimeWarp.SourceGenerators to Directory.Packages.props for version management - Configure GeneratePackageOnBuild in source/Directory.Build.props - Suppress RS2001 (not using shipped/unshipped workflow) and NU5128 (expected for analyzers) The interface delegation generator infrastructure is complete but the member detection logic needs debugging before it will work correctly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Update Directory.Packages.props to reference TimeWarp.SourceGenerators using $(Version) variable instead of hardcoded version, following timewarp-nuru pattern. This ensures the analyzer package version stays in sync with the main package version defined in source/Directory.Build.props. Bump version to 1.0.0-beta.5 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update NuGet cache key to use Directory.Packages.props instead of deleted packages.lock.json - Remove explicit dotnet pack step since GeneratePackageOnBuild handles it during build - Fix version extraction XPath to read from source/Directory.Build.props - Update package paths from source/.../bin/Release/ to artifacts/packages/ - Update artifact upload path to use artifacts/packages/ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR refactors the build configuration to follow the timewarp-nuru pattern and adds infrastructure for a Delphi-style interface delegation generator (work in progress).
Build System Improvements
$(RepositoryRoot),$(PackagesDirectory), etc.)artifacts/packagesfor local feed$(RepositoryRoot)variable instead of hardcoded relative pathsInterface Delegation Feature (WIP)
Added infrastructure for Delphi-style interface delegation:
Files Added:
interface-delegation-attribute.cs-[Implements]attribute definitioninterface-delegation-generator.cs- Source generator (has detection bugs, needs debugging)ILogger,ConsoleLogger,DataServicekanban/to-do/017_create-interface-delegation-generator/Configuration Changes
Status
The interface delegation generator infrastructure is complete but the member detection logic has bugs and needs debugging before it will work correctly. The build system improvements are ready for review.
Test plan
artifacts/packages/$(Version)variable[Implements]attributes (needs debugging)🤖 Generated with Claude Code