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
WriteToDiskPostProcessor
so that it will replace any inapropriate path characters per-platform with the correct ones. - Modified
GenerateOptions
andConfigOptions
for the Genesis.CLI so that the case-sensitive "plugins" folder name is used and removed any platform-specific path characters. - Added
OperatingSystemTools
helper methods for determining current operating system
- Modified
GetAttributes
andHasAttributes
extension methods with optional bool parametercanInherit
so that a user can check to see if aITypeSymbol
is decorated with an matching attribute or base type name. - Adjusted interface for
ICachedNamedTypeSymbol
forGetAttributes
andHasAttributes
to include new optional parametercanInherit
.
- Renamed
NamedTypeSymbolInfo
toCachedNamedTypeSymbol
and modified access to be internal. This is now exposed to users as theICachedNamedTypeSymbol
interface 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-unsafe
argument.
- The
CHANGELOG.MD
file 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-unsafe
to 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.FilterTypeSymbols
method that accepts a collection ofNamedTypeSymbolInfo
.
- Fixed bug in
ITypeSymbol.GetArrayElementType
where the element type attempted to be returned would occasionally result in a cast exception from being cast to aINamedTypeSymbol
when the return type is aITypeSymbol
.
- Created NamedTypeSymbolInfo as a wrapper for
INamedTypeSymbol
that caches commonly used member returns from the symbol. It's cached fields and helper methods can be used over directly accessingINamedTypeSymbol
to 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
NamedTypeSymbolInfo
instead ofINamedTypeSymbol
. Adjusted usage in existing plugins. - Replaced menu item to select
Genesis.CLI.zip
file 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.