Skip to content

Releases: pardeike/Harmony

Harmony 2.3.3

29 Mar 15:09
Compare
Choose a tag to compare

What's Changed

  • adds UnpatchCategory() 395749f
  • fixes HarmonyPriority bug with inherited values 395749f

Harmony 2.3.2

25 Mar 19:06
Compare
Choose a tag to compare

What's Changed

Harmony 2.3.1.1

03 Mar 22:51
76b4879
Compare
Choose a tag to compare

This releases fixes a regression for .Net Standard projects

Harmony 2.3.1

03 Mar 21:00
Compare
Choose a tag to compare

v2.3.1 fixes:

  • Dependency problem / duplicate type errors that we introduced with v2.3
  • Better dead code handling #584
  • new Lib.Harmony.Ref for projects targeting .NET Standard 2.0

Harmony Thin 2.3.0.1

26 Feb 14:08
Compare
Choose a tag to compare

This update updates Harmony Thin only and makes the dependency on MonoMod.Core public so it is included in transitive dependencies. No other changes.

Harmony 2.3

26 Feb 09:36
Compare
Choose a tag to compare

We have been preparing and testing this for months and I want to specially mention the the help of our HUGE community on this release. Harmony is downloaded over 800 times a day and has over 1.6 million downloads on Nuget and a Discord server with over 2100 members.

New core engine
Harmony 2.3 now uses MonoMod.Core v1.1 (part of https://github.com/MonoMod) which is a rewrite of the low level back-end for patching .NET methods.

Support for newer .NET versions
.NET 7 and .NET 8 support is finally here

Tests via GitHub Actions
Harmony is now tested on Azure and GitHub and thus we can start testing macOS and other fancy combinations: https://github.com/pardeike/Harmony/actions/workflows/test.yml

Fat and Thin versions
Harmony is now released in two packages on nuget: Lib.Harmony and Lib.Harmony.Thin. The thin version does not embed dependencies and thus allows you to manage them yourself. The normal version embeds them as internal types and works as usual as a standalone dll.
https://www.nuget.org/packages/Lib.Harmony
https://www.nuget.org/packages/Lib.Harmony.Thin

Changes

  • Support GenericInstance types in inline method signatures 1960f57
  • adds better detection for methods that end in dead code 7b5158a
  • Merge pull request #565 from Zetrith 03b6426
  • Error in exported Godot Engine build when attempting to patch method #562
  • Regression with methods ending in throw + ret e63e183
  • fixes a bug where Harmony calls TargetMethods() always twice 7ab508c
  • Native async patching is not available in .NET Standard or .NET #533
  • adds IEnumerable.Matches() b9206db
  • Uses PlatformTriple.Current.GetIdentifiable for a user submitted MethodInfo
  • fixes more unix tests
  • patches Assembly.GetExecutingAssembly internally
  • Improves http_client tests cda2226
  • adds useful linux test shortcut c2586e7
  • adds null/zero return clarifcations for TargetMethod/s #544
  • fixes CodeMatch(()=>... 7e4183e
  • Documentation Auxiliary Methods - Attribute spelling issue. Plus logic fix. #557
  • adds InnerTypes() and extensions for AccessTool methods on type Type d916a30
  • code cleanup, net8.0, optional ret code for methods ending in throw

Additions

  • adds Mono.Cecil.ByReferenceType, Mono.Cecil.GenericInstanceMethod, Mono.Cecil.GenericInstanceType, Mono.Cecil.TypeSpecification and Mono.Cecil.Cil.OpCodes to ForwardingAttributes
  • You can now patch methods like ref SomeType Test() by using ref RefResult<SomeType> __resultRef

Huge THANK YOU to all contributors (a lot of them new):

SPECIAL THANKS

Full Changelog

v2.2.2.0...v2.3.0.0

Harmony 2.3-prerelease.7

03 Feb 15:17
6a1059b
Compare
Choose a tag to compare
Pre-release

This release is just like prerelease.6 but build with the new thin/fat mechanics.
No new features or fixes were added.

Harmony 2.3-prerelease.6

02 Feb 16:12
1081de9
Compare
Choose a tag to compare
Pre-release

Fixes the following issues:

  • Support GenericInstance types in inline method signatures 1960f57
  • adds better detection for methods that end in dead code 7b5158a
  • Merge pull request #565 from Zetrith 03b6426

Harmony 2.3-prerelease.5

11 Jan 23:07
Compare
Choose a tag to compare
Pre-release

Fixes

  • Error in exported Godot Engine build when attempting to patch method #562
  • Regression with methods ending in throw + ret e63e183

Harmony 2.3-prerelease.4

29 Dec 15:39
Compare
Choose a tag to compare
Pre-release

Changes

  • updates MonoMod.Core to v1.1.0-prerelease.1
  • fixes Native async patching is not available in .NET Standard or .NET #533
  • adds IEnumerable.Matches() [b9206db]
  • Uses PlatformTriple.Current.GetIdentifiable for a user submitted MethodInfo
  • fixes more unix tests
  • patches Assembly.GetExecutingAssembly internally
  • Improves http_client tests [cda2226]
  • adds useful linux test shortcut [c2586e7]
  • adds null/zero return clarifcations for TargetMethod/s #544
  • fixes CodeMatch(()=>... [7e4183e]
  • Documentation Auxiliary Methods - Attribute spelling issue. Plus logic fix. #557
  • adds InnerTypes() and extensions for AccessTool methods on type Type [d916a30]
  • code cleanup, net8.0, optional ret code for methods ending in throw

For the main description see v2.3-prerelease.2