Git Product home page Git Product logo

Comments (8)

et1975 avatar et1975 commented on May 29, 2024

Just realized generating the files separately, instead of automagically as part of the build might work (and would be preferable) too, but it has another problem: I'd like to include the CLI tool in the same project, but building such a project currently fails unless there are are ProtoFile entries.

EDIT: found DesignTimeBuild prop that can be set to false to avoid codegen kicking in.

from falanx.

7sharp9 avatar 7sharp9 commented on May 29, 2024

One one file is supported as input to Falanx, the import statement should be used for this purpose. Froto does not yet support import although there is beta support for recursing generation on imports

from falanx.

enricosada avatar enricosada commented on May 29, 2024

Yes, atm multiple proto in fsproj are not support yet.

Will be nice to support it, so the following works

    <ProtoFile Include="a.proto" />
    <ProtoFile Include="b.proto" />

These are expected to be completly indipendent, and generator will run two times, generating two .fs files, so no types are shared

from falanx.

enricosada avatar enricosada commented on May 29, 2024

Just realized generating the files separately, instead of automagically as part of the build might work (and would be preferable) too, but it has another problem: I'd like to include the CLI tool in the same project, but building such a project currently fails unless there are are ProtoFile entries.

EDIT: found DesignTimeBuild prop that can be set to false to avoid codegen kicking in.

@et1975 the DesignTimeBuild cannot be set in projects, otherwise other .net msbuild sdk behaviour are disabled. If not needed (you dont want to use the integration), do not include Falanx.Sdk, but for this original issue, is easier to fix supporting multiple ProtoFiles

from falanx.

7sharp9 avatar 7sharp9 commented on May 29, 2024

multiple files adds some unforeseen issues like, if both are importing a type thats used in both messages. A better solution would probably be a composite proto files that imports both etc

from falanx.

et1975 avatar et1975 commented on May 29, 2024

if DesignTimeBuild is not an option, maybe the easy fix would be to treat the empty ProtoFile as no-op for codegen instead of failing?

from falanx.

enricosada avatar enricosada commented on May 29, 2024

multiple files adds some unforeseen issues like, if both are importing a type thats used in both messages. A better solution would probably be a composite proto files that imports both etc

@7sharp9 i think these are different scenario. often the proto have nothing in common, so we can for example create these in nested namespace, like

   <ProtoFile Include="a.proto" Namespace="ServiceA" />
   <ProtoFile Include="b.proto" Namespace="ServiceB" />

also if these use common types will be duplicated in different namespaces
It's the user who need to choose if create a new proto and import boths, to use shared types.

if DesignTimeBuild is not an option, maybe the easy fix would be to treat the empty ProtoFile as no-op for codegen instead of failing?

@et1975 yes, without <ProtoFile shouldnt run the generator, not fail the build. I'll check that too

from falanx.

enricosada avatar enricosada commented on May 29, 2024

fixed by #98 now multiple <ProtoFile are supported.

each one is independent from the others

from falanx.

Related Issues (20)

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.