Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sequence writer #37968

Closed
wants to merge 47 commits into from
Closed

Sequence writer #37968

wants to merge 47 commits into from

Conversation

m-nash
Copy link
Member

@m-nash m-nash commented Aug 1, 2023

Fixes #38078

Using this PR to experiment with different options for SequenceWriter

Not intended to be merged before ModelSerialization goes live

Contributing to the Azure SDK

Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.

For specific information about pull request etiquette and best practices, see this section.

nisha-bhatia and others added 30 commits April 21, 2023 11:09
* wip

* wip

* wip

* wip

* wip
* add scaffolding for readme

* fix type on class name

* one more typo :-(

* make tests sync
* add use cases for explicit casts

* remove extra empty line

* add custom expected value for net462
* add use cases for stj

* address feedback

* add some clarification to readme
* wip

* wip

* wip

* Update StaticDeserializerTests.cs

* Update StaticDeserializerTests.cs

* Update StaticDeserializerTests.cs
* add use cases for stj

* address feedback

* add some clarification to readme

* add model serializer example

* move serialization classes into azure.core.serialization

* update after namespace move
* Update SerializableOptions.cs

* wip

* wip

* update

* wip

* wip
* wip

* Update ModelSerializer.cs

* wip

* Update ReadOnlyPropertyTests.cs

* wip

* Update SerializableOptions.cs

* Update SerializableOptions.cs

* wip

* wip

* Update SerializationSamples.cs
* demo of what it would look like for public surface

* wip

* update tests and more renames

* name tweaks

* update api

* add nullable

* adjust public api surface and move test cases to public project to avoid internalsvisibleto

* integrate feature/updateSerializer

* rename IModel to IModelSerializable since it now has the serialization methods on it

* share deserialization code between converter and modelserializer
* wip

* wip

* Update Serialization.md

* Update ModelXmlTests.cs

* wip

* wip

* update combined interface example

---------

Co-authored-by: m-nash <[email protected]>
* update to v1 api surface

* update api after merge
* wip

* wip

* Update UsingJsonSerializerTests.cs

* wip

* Update Serialization.md

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update ModelSerializerOptions.cs

* wip

* Update ModelSerializerOptions.cs

* Update ModelSerializerOptions.cs
…#37815)

* update format to have J and W and implement json always on xml models

* update api
m-nash and others added 11 commits July 27, 2023 10:46
* wip

* update benchmark to use a real model from compute

* update api

* add multi buffer option and benchmarks for larger object

* minor fixes on perf

* perf updates and split the xml / json interfaces so we can take Utf8JsonWriter

* add delayed RequestContent to improve implicit cast perf

* fixes after merge

* add utf8jsonreader deserialize

* update for the rest of the test models with jsonreader

* update api

* fix typo

* upload bimodal repro

* return values from benchmarks

* updates after merge

* update modelserializeroptions to a struct

* wip

* update to split request content and sequence writer

* update api

* remove static azure default options since new is zero alloc

* update api

* add non generic overloads in modelserializer

* Revert "update api"

This reverts commit 34c0f6b.

* Revert "remove static azure default options since new is zero alloc"

This reverts commit 5f7bcfa.

* wip

* updates after merge

* update api

* add memory diag by default for all benchmarks

* use fixed settings to run benchmarks faster

* add package needed to use ETW profiler in benchmark

* change dictionary to resolver factory

* update options back to class

* update to make interface generic

* remove two way implicit

* add XElement api on public interface

* update api

* swap to struct for options

* remove unused shared source
* hide getsequence until we deal with use-after-free

* update api

* remove broken inheritdocs
* testing public test project failure in ci

* mark the project as test project

* add public test to split list

* set support project to false to run tests in ci

* add failing case after merge

* remove failing test
* address api review feedback

* switch options to class and add a fozen static reference

* update api

* rename WriteTo -> CopyTo

* update snippets
* update request content create to take an imodelserializable

* make sequenceWriter internal
* move convert to binary data onto modelserializer

* validate error scenarios for modelserializer

* rename default wire options

* add overload to converter ctor

* update for format overloads and docs

* update format docs

* add tests for more validation around multiple types in a single json serializer instance
@azure-sdk
Copy link
Collaborator

API change check

APIView has identified API level changes in this PR and created following API reviews.

Azure.Core

m-nash and others added 6 commits August 1, 2023 16:49
* remove IModelXmlSerializable

* update api
* remove IModelXmlSerializable

* update api

* address initial feedback

* remove reference to utf8jsonreader helpers

* update debug assert
* add some tests

* more tests

* wip

* add benchmarks for RequestContent

* update request content to use sequence writer access class

* add write lock to serialization

* remove empty file

* harden flaky test
@m-nash m-nash linked an issue Aug 8, 2023 that may be closed by this pull request
Base automatically changed from feature/updateSerializer to main August 11, 2023 17:39
@github-actions
Copy link

Hi @m-nash. Thank you for your interest in helping to improve the Azure SDK experience and for your contribution. We've noticed that there hasn't been recent engagement on this pull request. If this is still an active work stream, please let us know by pushing some changes or leaving a comment. Otherwise, we'll close this out in 7 days.

@github-actions github-actions bot added the no-recent-activity There has been no recent activity on this issue. label Oct 13, 2023
@github-actions
Copy link

Hi @m-nash. Thank you for your contribution. Since there hasn't been recent engagement, we're going to close this out. Feel free to respond with a comment containing /reopen if you'd like to continue working on these changes. Please be sure to use the command to reopen or remove the no-recent-activity label; otherwise, this is likely to be closed again with the next cleanup pass.

@github-actions github-actions bot closed this Oct 20, 2023
@jsquire jsquire deleted the mnash-sequenceWriter branch February 18, 2025 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Azure.Core no-recent-activity There has been no recent activity on this issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update SequenceBuilder so it can be public
3 participants