WarHub.ArmouryModel.ProjectModel 0.14.0

dotnet add package WarHub.ArmouryModel.ProjectModel --version 0.14.0
                    
NuGet\Install-Package WarHub.ArmouryModel.ProjectModel -Version 0.14.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WarHub.ArmouryModel.ProjectModel" Version="0.14.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WarHub.ArmouryModel.ProjectModel" Version="0.14.0" />
                    
Directory.Packages.props
<PackageReference Include="WarHub.ArmouryModel.ProjectModel" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WarHub.ArmouryModel.ProjectModel --version 0.14.0
                    
#r "nuget: WarHub.ArmouryModel.ProjectModel, 0.14.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package WarHub.ArmouryModel.ProjectModel@0.14.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WarHub.ArmouryModel.ProjectModel&version=0.14.0
                    
Install as a Cake Addin
#tool nuget:?package=WarHub.ArmouryModel.ProjectModel&version=0.14.0
                    
Install as a Cake Tool

wham

NuGet packages CI GitHub Action License

WarHub.ArmouryModel library and wham tool

Foundational .NET library for wargame datafile tools, written in C#.

Overview

This is the home of the WarHub.ArmouryModel library handling wargame roster and data files. It consists of:

  • wham - a CLI tool (Command Line) used to manage, convert and publish datafiles, distributed as .NET Global Tool (.NET SDK v10+ required)
  • WarHub.ArmouryModel.Source library provides API to manage and interact with wargaming data files (game systems, catalogues) and rosters.
  • WarHub.ArmouryModel.Source.BattleScribe provides convenient methods to load and save BattleScribe XML datafiles.
  • WarHub.ArmouryModel.ProjectModel library provides API to operate on wham workspaces (abstraction) and their configuration (.whamproj configuration files).
  • WarHub.ArmouryModel.Workspaces.BattleScribe implements project model for BattleScribe format.
  • WarHub.ArmouryModel.Workspaces.Gitree implements project model for gitree where directory and file structure is a part of datafile shape, building datafile from massive amounts of tiny files. It's mostly designed to work well with VCS (Version Control Systems) such as git.

All libraries, unless otherwise specifed, target .NET 10.

There are also test projects and WarHub.ArmouryModel.Source.CodeGeneration project which contains code generator used to build .Source library. This code generator uses C# Source Generators.

Usage

wham installation

To install wham command line tool:

  1. please install .NET SDK v10 for your platform.
  2. In your shell/command line run dotnet tool install wham -g
  3. You can check if the tool is available: wham --version should show what version exactly is running.

This will install preview of wham CLI tool in your user-space (not system global), and so it doesn't require root/admin permissions. (Although installation of .NET SDK can).

wham features

  • converts BattleScribe workspace (xml files: .cat/.catz/.gst/.gstz) into gitree workspace (mutliple small files in directory trees) that behaves with git well.
  • publishes BattleScribe format distribution files:
    • .bsr repository distribution package - zip archive containing datafiles (.cat and .gst) and DataIndex index.xml file.
    • index.bsi which is DataIndex index.xml-containing zip archive.
    • index.xml DataIndex.
    • .cat/.gst datafiles
    • .catz/.gstz zipped datafiles

wham usage

You can always run wham -? or wham -h or wham [action] -? to get help about the tool/action.

Development

The development branch is the main branch. Stable releases are marked via vX.Y.Z tags. This project uses Nerdbank.GitVersioning package that automatically generates version numbers for assemblies and packages from git tree. It won't work if the git clone is shallow or otherwise incomplete.

Credits

The library is MIT licensed (license in repo root). Created by Amadeusz Sadowski (@amis92). BattleScribe name is used without permission under fair-use laws.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on WarHub.ArmouryModel.ProjectModel:

Package Downloads
WarHub.ArmouryModel.Workspaces.BattleScribe

Implementations of wham ProjectModel for BattleScribe format files: .cat(z), .gst(z), .bsi, .bsr.

WarHub.ArmouryModel.Workspaces.Gitree

Implementations of wham ProjectModel for gitree format where directory and file structure is a part of datafile content, building up final datafiles from tiny files. It's mostly designed to work well with VCS such as git.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.14.0 96 2/28/2026
0.13.0 2,474 9/16/2021
0.12.0 1,135 11/12/2020
0.11.0 1,454 7/15/2020
0.10.0 1,422 6/3/2020
0.9.0 1,377 5/21/2020
0.8.0 1,358 5/14/2020
0.8.0-rc.1.1 427 5/14/2020
0.8.0-alpha.12.ge79a7ebb95 416 5/12/2020
0.7.0 1,617 11/5/2019
0.7.0-beta.3 450 11/2/2019
0.7.0-beta.2 441 11/1/2019
0.7.0-beta.1 433 10/23/2019
0.7.0-alpha-0002 1,239 10/4/2019
0.6.17 1,505 8/16/2019
0.6.15-beta-g1cb58de07f 1,223 8/16/2019
0.6.8-beta-ge10d0437a4 1,305 7/18/2019