All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
These issues should help resolve any operating system path issues that caused either plugins to fail to be discovered or files to be written incorrectly.
- Modified
WriteToDiskPostProcessorso that it will replace any inapropriate path characters per-platform with the correct ones. - Modified
GenerateOptionsandConfigOptionsfor the Genesis.CLI so that the case-sensitive "plugins" folder name is used and removed any platform-specific path characters. - Added
OperatingSystemToolshelper methods for determining current operating system
- Modified
GetAttributesandHasAttributesextension methods with optional bool parametercanInheritso that a user can check to see if aITypeSymbolis decorated with an matching attribute or base type name. - Adjusted interface for
ICachedNamedTypeSymbolforGetAttributesandHasAttributesto include new optional parametercanInherit.
- Renamed
NamedTypeSymbolInfotoCachedNamedTypeSymboland modified access to be internal. This is now exposed to users as theICachedNamedTypeSymbolinterface so that it can be easily changed in the future without breaking user-code.
- Fixed a duplicate header on the GenesisPreferences UI.
- Modified internal parallelization for Roslyn Project parsing to use async correctly.
- Modified plugin loading so that by default plugin assemblies that are not in-sync with the nuget package assemblies in use by Genesis.CLI will issue a warning and:
- If on the same major and minor version will still be loaded.
- If on an older major or minor version will not be loaded. These can still be force-loaded if a user passed the
load-unsafeargument.
- The
CHANGELOG.MDfile containing release notes is now included with the Unity package. - Created Unity flow for third-party developers to easily expose their plugins for other users and easily install or update them in their Genesis.CLI configuration.
- Added new Genesis.CLI argument for
load-unsafeto force load any out-of-date plugins, if any.
- Added additional helper methods and caching to NamedTypeSymbolInfo. All members are now lazily-loaded rather than initialized in constructor.
- Modified AutoUpdate functionality so that the zip extraction only overwrites content from the zip file (does not disturb other existing custom plugins for example).
- Added new overload of
AssembliesConfig.FilterTypeSymbolsmethod that accepts a collection ofNamedTypeSymbolInfo.
- Fixed bug in
ITypeSymbol.GetArrayElementTypewhere the element type attempted to be returned would occasionally result in a cast exception from being cast to aINamedTypeSymbolwhen the return type is aITypeSymbol.
- Created NamedTypeSymbolInfo as a wrapper for
INamedTypeSymbolthat caches commonly used member returns from the symbol. It's cached fields and helper methods can be used over directly accessingINamedTypeSymbolto improve CPU perf. - Added auto-update detection for when a Genesis.CLI installation is out-of-date when compared to the Genesis package version.
- Modified MemoryCache to cache a collection of
NamedTypeSymbolInfoinstead ofINamedTypeSymbol. Adjusted usage in existing plugins. - Replaced menu item to select
Genesis.CLI.zipfile with updating existing installation, if present. - Parallelized several loops for CPU perf improvement.
This template should be used for any new releases to document any changes.
For new features.
For changes in existing functionality.
For soon-to-be removed features.
for now removed features.
For any bug fixes.
In case of vulnerabilities.