Skip to content

Releases: saucecontrol/InheritDoc

v2.0.1

08 Feb 04:20
Compare
Choose a tag to compare

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

19 Dec 21:14
Compare
Choose a tag to compare

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 to true 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.

v1.4.0

26 Nov 07:04
Compare
Choose a tag to compare
  • 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 an inheritdoc 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.
  • typeparamrefs inhereted in closed generic types will now be replaced with see references to the concrete type used.

v1.3.0

07 May 05:06
Compare
Choose a tag to compare
  • 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

09 Dec 00:26
Compare
Choose a tag to compare
  • Documentation is now included for explicit interface implementation members when the implementing type is non-public but has visibility above the configured TrimLevel. #4

v1.1.0

14 Nov 07:05
Compare
Choose a tag to compare
  • 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 and modopt 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

16 Feb 03:52
Compare
Choose a tag to compare
  • 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 has void 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

24 Oct 07:37
Compare
Choose a tag to compare
  • Improved warning logging integration with VS error list
  • Added file and position details to warnings where appropriate
  • New documentation trimming feature removes non-public documentation from the output file. This can be configured with the new InheritDocTrimLevel option described here

v0.3.0

04 Oct 08:58
Compare
Choose a tag to compare
  • 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

v0.2.0

30 Sep 07:15
Compare
Choose a tag to compare
  • Improved whitespace handling to preserve input and inherited XML formatting
  • Added success build message
  • Added ability to ignore warnings