Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Andrew Arnott
    @AArnott
    It looks like Azure Pipelines' default for releases is to auto-trigger, so I inadvertently started pushing all builds to nuget.org. I've unlisted the few that got listed unintentionally and turned off the auto-trigger.
    Andrew Arnott
    @AArnott
    @neuecc Can you review my latest changes in the next few days and see if you have any further API feedback? I want to lock down on a stable 2.0 API soon, and that of course needs your feedback.
    Yoshifumi Kawai
    @neuecc
    @AArnott
    Ok, maybe I will post some issues.
    Andrew Arnott
    @AArnott
    @guitarrapc Thanks for the added permissions on the Azure Pipelines account. But I need one more thing: I need administrator permission on the Default agent pool in order to add an agent to it. https://dev.azure.com/ils0086/MessagePack-CSharp/_settings/agentqueues?queueId=1&view=security
    never mind. I had permission to create a new pool so I did that.
    Andrew Arnott
    @AArnott
    Woot! It's working. We have Unity builds as part of CI/PR builds on Azure Pipelines. Yay.
    https://dev.azure.com/ils0086/MessagePack-CSharp/_build/results?buildId=141
    But GitHub still only shows one status instead of two (1 for Windows and 1 for Unity). So both are building, but if either fails, the user will only see the one status failure instead of 1 pass and one fail. We can improve this by installing the Azure Pipelines GitHub App to the ils0086 account. @guitarrapc or @neuecc can either of you arrange that?
    image.png
    Yoshifumi Kawai
    @neuecc
    Now, we're in a holiday, we'll check tomorrow.

    By the way, Could you revert this PR?
    neuecc/MessagePack-CSharp#491

    Page's first-view should show all the information.
    Because users who does not know this lib(first visited users) see readme and does not click next pages.
    We have to tell them the value of this library, forcefully.
    Separated to many files are clean, but it is wothless.

    Microsoft official library no need to think because microsoft-fans uses it without thinking.
    But user created OSS is not.
    Although this library is a latecomer and not to fluent in English, it is used by many people.
    This is one of the reasons why I have successfully made OSS (I have 6 repositories of over 1000 stars).

    Andrew Arnott
    @AArnott
    Thanks for your reply, @neuecc. Yes, I'll merge docs back into the README. I tried to keep the sales pitch at the top of the README in anticipation of your concern that we "sell" the library on the first page, but I guess I didn't keep (nearly) enough.
    Rather than revert the PR, I'll re-merge the docs, since amidst the PR I made a lot of small edits to update.
    Question though: can you see room to leave (or in the future, create) any docs outside the README itself? The reason is I find it very hard to navigate the README with it so large. I find an index into documentation that is short and to the topic to read about much easier to parse.
    Kevin Streicher
    @NoxMortem
    @neuecc Absolutely. The readme on all of your OSS projects was a huge driving factor of getting, e.g. our attention when we used it.
    Andrew Arnott
    @AArnott
    I've re-merged the docs back into README
    Yoshifumi Kawai
    @neuecc
    I've added Azure Pipelines GitHub App to my account.
    Yoshifumi Kawai
    @neuecc
    I've added issues #502 to #514 . Not yet reviewed completely for Unity, but once this is all.
    Andrew Arnott
    @AArnott
    Great. I'll take a look at those.
    Yoshifumi Kawai
    @neuecc
    thanks for reviewing of my issues.
    I'll back day after tomorrow.
    Andrew Arnott
    @AArnott
    It was good working with you in "real time" yesterday/lastnight/today (in my timezone anyway). Thanks for letting me know you'll be away for a day.
    Aleksander Heintz
    @Alxandr
    @AArnott did we go back to only static classes?
    Andrew Arnott
    @AArnott
    Yes, per @neuecc's insistence MessagePackSerializer is a static class again.
    Andrew Arnott
    @AArnott
    @neuecc how did you generate the sandbox\PerfBenchmarkDotNet\GeneratedFormatter.cs file? I've been maintaining it by hand but I'd love to verify that the generators are updated as necessary.
    Yoshifumi Kawai
    @neuecc
    @AArnott generated from mpc but yes, fix by manually.
    Aleksander Heintz
    @Alxandr
    @neuecc did you have time to look at neuecc/MessagePack-CSharp#530 It would be a (minor) breaking change, so getting it before 2.0 would be really nice.
    Andrew Arnott
    @AArnott
    @neuecc Since it looks like we may not have an agreed upon stable API by the end of this week, but I think there's hope we can reconcile our goals, so I bought some more time. I also see a hard problem in my use case that can only be solved by truly supporting streaming deserialization (neuecc/MessagePack-CSharp#437). I may actually try to work that into v2 instead of postponing to some future v3 in order to avoid two sets of massively API breaking changes.
    Yoshifumi Kawai
    @neuecc
    How to disable Directory.Build.props, Directory.Build.targets when open MessagePack.UnityClient.sln under MessagePack.UnityClient?
    hiradyazdan
    @hiradyazdan
    @neuecc i haven’t seen any activity on Utf8Json since 2018, is this project obsolete?
    Andrew Arnott
    @AArnott
    What problem are the imports causing? You can't disable them, but we could rearrange the code so the props file isn't above the unity folder.
    Yoshifumi Kawai
    @neuecc
    image.png
    only Visual Studio, shows some error(but in Unity Editor works).
    @hiradyazdan Utf8Json and MessagePack adopts similar architecture. When MessagePack architecture will stable, I'll back.
    hiradyazdan
    @hiradyazdan
    @neuecc you mean i can serialize json string to object and vice versa (not binaries/byte arrays) with messagepack too? i didn’t realize that! can you please point me to where and how i can do that? because wherever i looked there was nothing i could find in that regard. Or perhaps you mean the core is similar?
    hiradyazdan
    @hiradyazdan
    the problem is if i have messagepack and utf8json both in one project, there will be a conflict for class vague match
    Andrew Arnott
    @AArnott
    @hiradyazdan Which class exactly causes the collision?
    @neuecc Can you open an issue to track the Directory.Build.Props unity issue?
    hiradyazdan
    @hiradyazdan
    @AArnott there’s an issue for it already neuecc/Utf8Json#46 i have commented at th end.
    hiradyazdan
    @hiradyazdan
    the suggestion in the issue, seems a bit overkill as one might not need to define separate assemblies on unity for example, for only different serializers where both share the same core logic
    hiradyazdan
    @hiradyazdan
    @AArnott is there anyway to ignore null values from a serialized object in int key mode? I understand that int keys will set null if value not provided or indexes are skipped, as the receiver would be accepting the same key index, but what if sender has different indexing than receiver? say in two different environments where messagepack-csharp is used for the serializer only?
    Andrew Arnott
    @AArnott
    I'm not sure I understand your question, @hiradyazdan. In int key mode, MessagePack stores each field as an element in an array. If we didn't store a messagepack nil code in a slot of that array, what would we store instead? If we "compressed" it by simply omitting those elements then all the indexes would be off and the deserializer wouldn't know how to interpret each element.
    hiradyazdan
    @hiradyazdan
    @AArnott can’t we skip the nil and reindex? let’s say in the IL or the generated code we reorder the elements if they have nil values before serializing to binaries
    the use case of this would be when there are two different model structures required for the same model, where one doesn’t need the elements that the other need (aiming to two different servers for example)
    hiradyazdan
    @hiradyazdan
    if we could have an option that by choice we reindex the elements and exclude the nil values this scenario could be possible
    hiradyazdan
    @hiradyazdan
    otherwise, you’d have to have an extra copy of the same model and its properties with different keys only, which is excessive from developers’ point of view!
    Andrew Arnott
    @AArnott
    @hiradyazdan: let's say you have a class with 4 properties that you're deserializing, and you receive a msgpack binary with ['a','d','g']. One of the properties are missing because it was nil. But which one was it?
    hiradyazdan
    @hiradyazdan
    @AArnott oh i forgot to clarify, let’s say the deserializer is on another environment with different model structure which expects 3 properties already
    you have a deserializer using msgpack-csharp in c# env which can work fine without skipping nils and reindxing, and another one, on another server for example, that expects different model structure, which skips and reindex.
    hiradyazdan
    @hiradyazdan
    i mean the class/struct which defines the properties on the other server only correspond to some of the properties in the first one, not all
    Andrew Arnott
    @AArnott
    It sounds like you have two potential schemas you want to serialize to. You can do that in either of two ways: The simplest is to define each schemas in terms of a C# class. Serialize an instance of the class based on where you're sending the serialized result. So if you have one destination that expects 3 properties and one that expects 4, instantiate and initialize both classes, and serialize each one.
    The other option is to write a custom formatter that knows to skip specific properties and serialize with that one when you want to omit them.
    hiradyazdan
    @hiradyazdan
    @AArnott i like the second option, is there any example for this scenario already?