jet / falanx

Generates F# code from protobuf schema for binary and json format

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Do not publish every project as nuget package

vchekan opened this issue · comments

Is your feature request related to a problem? Please describe.
We publish 7 nuget packages, which does not make sense because most projects are not standalone and make sense only as part of Falanx.Tool project. Instead we should publish 2 project: development dependecies, i.e. command line tool and runtime dependency (if any).

Describe the solution you'd like
Runtime dependency should not include dependencies which make sense for protobuf compiling stage.

About packages

The Falanx.Tool is the .net core global tool (dotnet tool install -g Falanx.Tool and falanx --help)
Is not needed by sdk integration, and is useful as standalone.

The Falanx.Sdk is the only needed by sdk integration, and bundle the falanx executable too (it doesnt reference the Falanx.Tool). It's used as compile time (with the PrivateAssets="All").

The Falanx.Proto.Codec.Binary and Falanx.Proto.Codec.Json are separated, because each support a single format with different package dependencies (like Newtonsoft.Json for json and Froto.Serialization for binary).
So end user can choose what they need, and can also use both together. used at runtime.

Up to here is ok i think.

These last two packages are common parts a bit entangled, needed at runtime because deps of the Falanx.Proto.Codec.*.

The Falanx.Proto.Core reference the protobuff parser lib Froto.Parser and Falanx.Machinery.

The Falanx.Machinery contains stuff needed and deps like Fantomas, FsAST and FCS.

These can be a bit splitted, to have only runtime deps:

  • .Json -> Fleece.NewtonsoftJson, Newtonsoft.Json
  • .Binary -> Froto.Parser

and a shared helper lib if needed to make generated code simpler, who can be shared by both Falanx.Proto.Codec.*

So one package less (or two if we remove the shared package), but less entangled

This done?

Closing, runtime deps are now separated from generator deps