Giter VIP home page Giter VIP logo

fsmpack's People

Contributors

gsuuon avatar

Watchers

 avatar  avatar

fsmpack's Issues

Upversion

Bring older versions of data up to date

Notes / wip in upversion

  • Root type field which contains a stable hash of itself and all subtypes (stable relative to field types)
  • Generated deserialize on root types check expected hash against provided and warns against mismatch
  • Tool verifies two versions can roundtrip
  • Tool takes 2 versions of an FSMPack project and generates an upversion project
  • Tool works with CI / hooks (git work-tree .. && fsmpack verify ..)
  • Seperate helper project which references upversion projects

Upversion project:

  • References two versions of FSMPack project (or dlls, TBD)
  • <Aliases> + extern alias -- F# doesn't support extern alias so we'll need an extra csproj
  • Generated placeholders for every type which doesn't match
namespace <hashA>_to_<hashB>
open CSharpExternShim

type Converter =
  static member convert (data: Last.RelevantType) : Next.RelevantType = ()

Helper project:

  • Library for running a binary through upversion projects, reading the version field
  • Upversion dlls saved to same directory, named <hashA>_<hashB>.dll
  • Library checks files, finds path from hash field of binary to desired type, executes conversions

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.