AArnott / CodeGeneration.Roslyn

Assists in performing Roslyn-based code generation during a build.
Microsoft Public License
408 stars 59 forks source link

Feature: split main package into Engine and core #94

Closed amis92 closed 5 years ago

amis92 commented 5 years ago

Engine package contains the DocumentTransform and CompilationGenerator classes, taking the responsibility of all the operations.

Main package CodeGeneration.Roslyn keeps the public API surface required for building generators - Generator interfaces, Context and Result types.

This provides separation of concerns/responsibilities between public API for Generator implementations, and the worker/engine. It also means that the main package used by Generators has just a single external dependency - Microsoft.CodeAnalysis.CSharp.

I've also added solution folders, because single level list started to be crowded, but that's purely optional and obviously a little off-topic. There is "tests" folder with all test projects, "lib" folder for all libraries, and the tool app is kept at the root level.

amis92 commented 5 years ago

This PR will be rebased onto actual master when/if #91, #92, #93 get merged/dropped.

amis92 commented 5 years ago

@AArnott I've dropped the DeclarationComputer files again, but this time I've created https://github.com/AArnott/ImmutableObjectGraph/pull/113 so that ImmutableObjectGraph keeps working with future releases of this project.

I've rebased the changes on to the current master, so that the diff shows correctly.

The aim of this PR is still the same as it's declared in OP.

What do you think?

amis92 commented 5 years ago

Oh, also I've bumped the version to 0.5 to indicate a major change. I think that's ok?

amis92 commented 5 years ago

@AArnott ping? 🎵 Another month bites the dust 🎵

AArnott commented 5 years ago

I love your little tune. :) I laughed a long time at that.

Sorry for the delay.

AArnott commented 5 years ago

Oh, I guess the test failures are a pre-existing issue. So if you can just resolve the two comments I made to your changes we can complete this. :)