Releases: saucecontrol/InheritDoc
Releases · saucecontrol/InheritDoc
v2.0.2
Fixes
- Fixed a crash on invalid
cref
attribute values. Thanks to @coreyshuman for reporting this one. #17
v2.0.1
Fixes
- Fixed an issue that caused
cref
links on fields (and enum members) to not resolve if they referred to external types/docs. Thanks to @adaskos-signal for reporting this one. #14
v2.0.0
Breaking Changes
- Starting with v2.0, InheritDoc requires MSBuild 16.0 or newer. The required version is included with Visual Studio 2019 or later, or any currently supported version of the .NET SDK.
Fixes
- Fixed an issue that prevented the InheritDoc MSBuild task from being skipped in incremental builds when the compiler's input/output was unchanged. Previously, the input to the task was modified by the task's execution, meaning it would always evaluate as newer than the output. Thanks to @chm-tm for identifying and fixing this #13.
- Fixed an issue that allowed InheritDoc to run during design-time builds when
InheritDocEnabled
was explicitly set totrue
in a consuming project #10.
C# Primary Constructor Improvements
- InheritDoc now identifies primary constructors by matching documentation between a type and its constructor, and applies fixups to each of the documentation copies.
- Constructor documentation will now be inherited from a base constructor if present, allowing constructor
param
elements to be inherited. param
elements will be removed from the type's documentation when they are meant to apply to the constructor.
- Constructor documentation will now be inherited from a base constructor if present, allowing constructor
v1.4.0
- For .NET Standard 2.0 targets, a replacement
netstandard.xml
file is included in this package, meaning the previous workaround for the malformed docs shipped with the ref pack (dotnet/standard#1527) is no longer necessary. - Fixed a possible
NullReferenceException
when aninheritdoc
comment was used on an interface with no base. - Warnings will no longer be emitted for types/members in generated code (anything marked with
[GeneratedCode]
or[CompilerGenerated]
). #11 - Warnings will no longer be emitted for automatically inserted docs for explicit interface implementations with no base docs.
- When using C# Primary Constructors, warnings will not be emitted when the constructor does not have a base with documentation. In this case, constructor documentation will be inherited following the rules for the declaring type.
typeparamref
s inhereted in closed generic types will now be replaced withsee
references to the concrete type used.
v1.3.0
- InheritDoc now considers multiple possible documentation ID encoding variants when attempting to match a base or
cref
candidate #5 - Fixed a bug in the way documentation IDs were generated for nested generic types. If a generic was nested under another generic, and that nested type was used as an open generic method argument, the generic arguments were all assigned to the topmost type.
v1.2.0
v1.1.0
- InheritDoc processing is now disabled by default for debug builds. It can be explicitly enabled with the
InheritDocEnabled
MSBuild property. - The assembly resolver has been rewritten to create a proper closure over the reference assemblies from the build target. The previous version still allowed assemblies from the MSBuild host to be resolved, creating potential mismatches between the reference and the resolved assembly.
- Member matching logic has been relaxed to allow name-only matches on
modreq
andmodopt
types since these are now commonly used to support C# features and are matched only by name there.
*Due to a packaging glitch, I had to re-publish to NuGet, which required a version number bump. There was no code change from v1.1.0 to the 1.1.1 package version on nuget.org.
v1.0.0
- NuGet package no longer lists dependencies for target frameworks. Since InheritDoc is a dev-only dependency, its compatibility is based on the dev environment and not the build target. The only dependency (Mono.Cecil) is shipped in the package.
<returns />
elements are now trimmed from inherited docs if the target method hasvoid
return.<value />
elements are now trimmed from inherited docs if the target is not a property.- Improved base method resolution to match generic parameters as well as parameter types.
v0.4.0
v0.3.0
- Fixed issue with parameter type matching in referenced assemblies
- Improved warning and success build messages
- Added ability to select inheritance candidate explicitly with cref attribute, preserving parameter mappings