Releases: WarHub/wham
Releases · WarHub/wham
v0.14.0
[0.14.0] - 2026-02-28
Changed
- chore: Target
net10.0TFM. (#259) - deps: update dependencies and build tools. (#259)
- deps: update System.CommandLine to 2.0.x. (#259)
- deps: update Serilog to 4.x, Serilog.Sinks.Console to 6.x.
- deps: update Microsoft.CodeAnalysis.CSharp to 5.0.0. (#259)
- refactor: migrate source generator to IIncrementalGenerator. (#260)
- refactor: remove morelinq dependency, replace with local implementations.
- refactor: remove Optional dependency, replace with nullable references.
- refactor: code cleanup — remove warning suppressions, fix sync-over-async, move InternalsVisibleTo to csproj.
ListNode<T>.WithNodes covariant return type
Roster migrations, Cores now records
Added
- Feat: Add support for roster migrations (#131).
Changed
- deps: Use .NET 5 SDK for build, target only .NET 5 with NuGet packages.
- Fix: RosterTag name in v2.03 XSD schema (was
tags, istag) (#121). - Refactor: Core types are now C# 9 nominal records (#125).
- Refactor: Xml serializers are now manually crafted using C# 9/.NET 5 Source Generators;
this allows Xml serialization to work with C#9 records and (primarily) ImmutableArrays,
as well as greatly reduce warmup-time in deployments like Blazor WASM, and remove
any Reflection from that process (#130).
Update data schema to be fully 2.03 compliant
Added
- Added some base classes:
- added QueryFilteredBase (QueryBase with ChildId), inherits from QueryBase
- added SelectionParentBase, base of Force and Selection
- added ModifierBase, base of Modifier and ModifierGroup
- Added descriptive comments to ModifierKind
- Added RosterTag type
- Added missing fields to be fully 2.03 schema compliant:
- added CostType.Hidden
- added ModifierGroup.ModifierGroups
- added many fields to Publication:
- ShortName
- Publisher
- PublicationDate
- PublisherUrl
- added CustomNotes and Tags to Roster
- added CustomName and CustomNotes to RosterElementBase
Changed
- CharacteristicType now inherits Commentable
- renamed SelectorBase to QueryBase
- BSv2.03 schema with the above changes
IDatafileInfo.GetData now async, along with other APIs
Added
readmefield on datafile root elements (gamesystem and catalogue) in code
and in 2.03 schema (#115).
Changed
- In
WarHub.ArmouryModel.ProjectModel.IDatafileInfointerface
SourceNode? GetData()changed toasync Task<SourceNode?> GetDataAsync();
this also results in some APIs changing to beasyncas well, especially in
Workspaces.BattleScribenamespace (#117).
Add C#8's Nullable Reference Types support
Add 'comment' support
Added
NodeList<T>.Slice(int, int)method to support ranges in C#8 (#89).commentfield on data elements (and in 2.03 schema) (#108).
Changed
- Renamed
BattleScribeVersionstatic well-known values fromV0_00toV0x00(#86). - Renamed
ResourcestoXmlResources(.Sourcelibrary) (#86). - Changed
NodeList<T>.GetEnumerator()andListNode<T>.GetEnumerator()
return type to custom enumeratorNodeList<T>.Enumeratorthat's optimized
for performance (#89). - Changed all parameter names across the board to be camelCased. Also changed
parameter names ofWithmethods tovalueto mirror setters (#90). - All Node
Withmethods for collection properties are now extension methods,
with the exception the ones where parameter name is the same as the property's
that's being modified (#90). - Renamed a couple of Source Core/Node properties (#91):
- Category: IsPrimary -> Primary
- CategoryLink: IsPrimary -> Primary
- EntryBase: IsHidden -> Hidden
- Repeat:
- Repeats -> RepeatCount
- IsRoundUp -> RoundUp
- SelectorBase: PercentValue -> IsValuePercentage
- SelectionEntryBase: Import -> Exported
v0.8.0-alpha.12: build: Update dependencies, add Publish workflow (#100)
* build: Use .NET Core SDK v3.1.200 * style: Abstract class ctor now protected * ci: Set ci configuration to Release * style: Refactor Directory.Build.props * deps: Update to CG.R v0.7, RecGen v0.6 * ci: Add publish workflow * fix: Apply code quality warning fixes * tests: Don't close stream too early
v0.7.0
v0.7.0-beta.3: fix: add SEs, SEGs and ELs to EntryLink (#77)
Changelog diff: v0.7.0-beta.2...v0.7.0-beta.3