You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+17-1Lines changed: 17 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,11 +6,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6
6
7
7
## [Unreleased]
8
8
9
+
## [0.8.6] - 2026-03-21
9
10
### Fixed
11
+
- Build CI workflow (`build.yml`) now uses `actions/checkout@v4` and `actions/setup-dotnet@v4` (previously v3/v2) and includes an explicit `dotnet paket restore` step.
12
+
-`Myriad.Sdk``PackageDownload` is now conditional — skipped when consumers override `MyriadSdk_Generator_Exe`, preventing unnecessary network downloads and offline build failures.
13
+
- Package ID casing normalised to `Myriad` in `Myriad.Sdk.props` (was `myriad`).
14
+
- Publish workflow version validation hardened: regex anchored with `$`, dots escaped in grep, early failure on missing `VersionPrefix`.
15
+
- Plugin loader now logs `ReflectionTypeLoadException.LoaderExceptions` to stderr in `--verbose` mode.
- Sample project updated from stale NuGet v0.5.1 references to local `ProjectReference` imports.
10
18
- Publish workflow now supports manual dispatch via `workflow_dispatch` input, uses `$GITHUB_OUTPUT` instead of deprecated `::set-output`, and replaces archived GitHub Actions with `softprops/action-gh-release@v2`. A missing `dotnet paket restore` step was also added before build and test steps. (#234)
11
19
-`Myriad.Sdk.proj` now uses `PackageDownload` instead of `PackageReference` for the `Myriad` tool dependency, resolving **NU1102** and **NU1212** errors that caused every publish attempt to fail since v0.8.4. Consumers of `Myriad.Sdk` also get the matching `Myriad` package placed in the NuGet cache automatically via a `PackageDownload` item in `Myriad.Sdk.props`. (#236)
12
20
-`build.proj` Pack target now normalises 2-segment version numbers (e.g. `0.85`) to 3-segment (`0.85.0`) before passing them to `dotnet pack`/`dotnet restore`, preventing a Paket nuspec filename mismatch that caused pack to fail when using versions like `/p:Version=0.85`. (#238)
13
-
- Publish workflow now requires 3-segment version tags (e.g. `v0.8.5`, not `v0.85`) and validates that the tag version matches `VersionPrefix` in `Directory.Build.props`, preventing accidental releases under the wrong version number (e.g. `0.85.0` instead of `0.8.5`). (#239)
21
+
- Publish workflow now requires 3-segment version tags (e.g. `v0.8.5`, not `v0.85`) and validates that the tag version matches `VersionPrefix` in `Directory.Build.props`, preventing accidental releases under the wrong version number (e.g. `0.85.0` instead of `0.8.5`). (#239, #252)
22
+
23
+
### Changed
24
+
-`Ast.extractTypeDefn` and `Ast.ModuleOrNamespace.getTypeDefns` now share a single private `extractTypesFromDecls` helper, eliminating an identical nested `extractTypes` definition that was duplicated in both functions. (#262)
25
+
-`resolveCaseIdent` helper extracted from `DUCasesGenerator` into `GeneratorHelpers`, eliminating duplication with `LensesGenerator`. (#253)
26
+
-`generateModules` and `filterByAttribute` helpers extracted into `GeneratorHelpers`, eliminating the duplicate `Generate` pipeline boilerplate in `DUCasesGenerator` and `FieldsGenerator`. (#241, #255, #257, #258)
Copy file name to clipboardExpand all lines: docs/content/docs/External Resources/index.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,10 +13,10 @@ menu:
13
13
14
14
There is currently an introduction to Myriad and a How to guide on creating a simple generator
15
15
16
-
[Applied Metaprogramming with Myriad and Falanx](https://7sharp9.github.io/fsharp/2019-04-24-applied-metaprogramming-with-myriad/) - This is a video I made for my YouTube channel which covers some details on Myriad.
16
+
[Applied Metaprogramming with Myriad and Falanx](https://7sharp9.dev/programming/2019-04-24-applied-metaprogramming-with-myriad/) - This is a video I made for my YouTube channel which covers some details on Myriad.
17
17
18
18
19
-
[Myriad Intro](https://7sharp9.github.io/fsharp/2019-11-06-myriad-intro/) - This is a blog post I wrote around the time of Applied Metaprogramming with Myriad and Falanx which has details of making a generator that produces this simple module:
19
+
[Myriad Intro](https://7sharp9.dev/programming/2019-11-06-myriad-intro/) - This is a blog post I wrote around the time of Applied Metaprogramming with Myriad and Falanx which has details of making a generator that produces this simple module:
Copy file name to clipboardExpand all lines: docs/content/docs/Tutorials/configuration.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,11 +58,17 @@ type GeneratorContext = {
58
58
ConfigKey: string option
59
59
ConfigGetter: string -> (string * obj) seq
60
60
InputFilename: string
61
+
ProjectContext: ProjectContext option
62
+
AdditionalParameters: IDictionary<string, string>
61
63
}
62
64
65
+
type Output =
66
+
| Ast of SynModuleOrNamespace list
67
+
| Source of string
68
+
63
69
type IMyriadGenerator =
64
70
abstract member ValidInputExtensions: string seq
65
-
abstract member Generate: GeneratorContext -> FsAst.AstRcd.SynModuleOrNamespaceRcd list
71
+
abstract member Generate: GeneratorContext -> Output
66
72
```
67
73
68
74
ValidInputExtensions is used so a plugin is tied to certain file types as input, if you plugin generating ast fragments from java files then you would add `.java` to the `ValidInputExtensions` implementation for example.
0 commit comments