Skip to content

Latest commit

 

History

History
214 lines (162 loc) · 8.01 KB

CHANGELOG.md

File metadata and controls

214 lines (162 loc) · 8.01 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Changed

  • chore: Target net6.0 TFM. (#140)
  • deps: update dependencies and build tools. (#140)
  • refactor: simplify getting SourceText in source generator. First-time contribution from @Neme12. Thanks you! (#138)
  • rename default branch to main.
  • build: use .NET 7 SDK.
  • chore: Target net7.0 TFM.

0.13.0 - 2021-09-16

Changed

  • ListNode<T>-derived classes (e.g. ItemListNode) now have covariant return with self type in WithNodes method override (e.g. ItemListNode ItemListNode.WithNodes(nodes)). (#133)
  • wham publish fixed to work on repositories with no gst file. (#135)

0.12.0 - 2020-11-12

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, is tag) (#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).

0.11.0 - 2020-07-15

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

0.10.0 - 2020-06-03

Added

  • readme field on datafile root elements (gamesystem and catalogue) in code and in 2.03 schema (#115).

Changed

  • In WarHub.ArmouryModel.ProjectModel.IDatafileInfo interface SourceNode? GetData() changed to async Task<SourceNode?> GetDataAsync(); this also results in some APIs changing to be async as well, especially in Workspaces.BattleScribe namespace (#117).

0.9.0 - 2020-05-21

Added

  • C# 8.0 Nullable Reference Types support (NRTs) (#111).
  • netstandard2.1 targets in libraries to support NRT-enabled TFMs.

Removed

  • WhamNodeCoreAttribute class from .Source library (added by accident in v0.8).

0.8.0 - 2020-05-14

Added

  • NodeList<T>.Slice(int, int) method to support ranges in C#8 (#89).
  • comment field on data elements (and in 2.03 schema) (#108).

Changed

  • Renamed BattleScribeVersion static well-known values from V0_00 to V0x00 (#86).
  • Renamed Resources to XmlResources (.Source library) (#86).
  • Changed NodeList<T>.GetEnumerator() and ListNode<T>.GetEnumerator() return type to custom enumerator NodeList<T>.Enumerator that's optimized for performance (#89).
  • Changed all parameter names across the board to be camelCased. Also changed parameter names of With methods to value to mirror setters (#90).
  • All Node With methods 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

0.7.0 - 2019-11-05

Added

  • Support for BattleScribe v2.03 data format (#47)
  • "Latest" channel (folder) for Catalogue.xsd.
  • wham --info command that displays more detailed program info (#64).
  • EntryLink now has SelectionEntries, SelectionEntryGroups and EntryLinks lists (#77).

Changed

  • Current version of schema changed to v2.03 (latest)
  • NodeFactory in WarHub.ArmouryModel.Source namespace was rewritten to provide much more defaults, use other Nodes as value providers, and add more methods (#58).
  • INodeWithCore<TCore> is now covariant on TCore parameter, updating it's signature to interface INodeWithCore<out TCore> (#63).
  • Cores and Nodes' With and Update methods now check for equality of old and new, and when they're equal, return current instance (#75).
  • SourceRewriter implementation fixed to actually work (#75).
  • EntryLink now inherits from SelectionEntryBase instead of EntryBase (#77).

Removed

  • SelectionEntryNode.CategoryEntryId property was removed. It was a leftover from old format, pre-2.01 (#59).
  • SourceNode.Core property was removed (#59). All other classes that previously declared it still have it.
  • SourceNode(NodeCore core, SourceNode parent) constructor was replaced with a new one: SourceNode(SourceNode parent) since the Core property is no longer part of this type (#63).
  • SourceNode no longer implements INodeWithCore<NodeCore> (#63).

0.6.17 - 2019-08-16

Added

  • Support for BattleScribe v2.02 data format (#39)
  • CLI tool wham installable via dotnet install tool -g wham
  • XSD for catalogue, roster and game system XML, accessible via WarHub.AmouryModel.Source.XmlFormat.Resources class
  • Migration XSL transforms for game system and catalogue XML files, accessible via WarHub.AmouryModel.Source.XmlFormat.Resources class. Supported BattleScribe versions:
    • 1.15
    • 2.00
    • 2.01
    • 2.02
  • Migrations can be applied via WarHub.ArmourtModel.Source.BattleScribe.DataVersionManagement type. This type has methods that allow applying single migration XSL, as well as applying migrations that take given input to newest version known.