-
Notifications
You must be signed in to change notification settings - Fork 652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Improvement] Move serialization and deserialization process of configuration out of the scope of core domain #3306
Comments
I was thinking we need to move The idea is to keep in the What do you think? |
I'm not sure what exactly the target architecture might be: Maybe onion architecture or 3-layer architecture with dedicated business entities. Independent of that the plan is to have some where a place (GitVersion.Core?) with business logic of GitVersion with no dependencies to other services or infrastructure like de-/serialization components. Thus this classes and interfaces which giving the additional value to GitVersion (without dependencies) needs to be present in GitVersion.Core. |
Maybe we need to create a concept and write a component diagram to illustrate the dependencies first? @asbjornu: What do you think? |
I think I covered this in #3790 |
🎉 This issue has been resolved in version 6.0.0-beta.4 🎉 Your GitReleaseManager bot 📦🚀 |
Is your improvement request related to a problem? Please describe.
In the discussion of pull-request #3235 (Create new fallback and unknown section in GitVersionConfiguration) we came to the conclusion that it might be a good idea to move the serialization and deserialization process out of the scope of the core domain (see #3235 (comment)).
Detailed Description
The core domain should have only the business logic without the dependency to the Yaml library.
Possible Implementation
Move the logic in GitVersionContextFactory from core to another place and only provide the final GitVersionConfiguration instance to the core domain. The idea is to either make the GitVersionConfiguration immutable or provide the entity via interface or abstract class.
The text was updated successfully, but these errors were encountered: