Metalama 2023.1 is Generally Available

by Gael Fraiteur on 23 Jun 2023

I am pleased to inform you that Metalama 2023.1 is now generally available. This update focuses on bug fixes and platform support, adding compatibility with Visual Studio 17.6 and over 50 bug fixes and minor enhancements.

Metalama 2023.1 includes the following enhancements:

  • Added support for Visual Studio 17.6, Roslyn 4.6, and .NET SDK 7.0.300.
  • The IAdviceFactory.ImplementInterface now exposes the created members in IImplementInterfaceAdviceResult.
  • Introducing the new extension method IType.ToTypeOfExpression(), which returns an IExpression.
  • Contracts now support IEnumerable.
  • Ability to make an introduced field readonly.
  • Improved error reporting for aspect members with more than one advice/template attribute.
  • Enhanced error message when referencing a non-existing type in compile-time code.
  • In templates, foreach loops are now allowed in run-time-conditional blocks.
  • Better error reporting when the [Template] attribute is used on accessors.

For a detailed list of bug fixes, please refer to the change log for individual builds.

Please note that 2023.1 addresses a severe memory leak in Visual Studio, so we highly recommend taking this update.

As previously announced, we only address severe bugs in versions that have reached the RC stage. This approach ensures that we maintain the stability of our releases and minimize the risk of introducing instability. Consequently, we are now delivering more frequent updates with fewer enhancements but a greater focus on bug fixes. Our next bug-fixing release, Metalama 2023.2, is now in public preview and is scheduled for RC on July 17th.

I would like to apologize for the difficulties that occurred with the Visual Studio 17.6 update. We failed to meet our standard of testing our products with Microsoft’s release candidates and only started fixing two severe issues when the community was already affected. The impact of these difficulties was only limited due to the still relatively small user base of Metalama. Upon careful analysis, we have identified the root cause of this problem as a failure to restructure our engineering processes effectively when transitioning the Metalama project from R&D to production. Rest assured: we are currently reorganizing our operations to ensure that Metalama undergoes thorough testing before new Visual Studio versions are made generally available.

Happy meta-programming!