Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: protobuf-net/protobuf-net
Choose a Base Repository
protobuf-net/protobuf-net
854825967/protobuf-net
AlexMihalev/protobuf-net
Anters/protobuf-net
AqlaSolutions/AqlaSerializer
Aristos/protobuf-net
BlueRaja/protobuf-net
Bringer128/protobuf-net
Bryan-Legend/protobuf-net
CCChaos/protobuf-net
Centurys/protobuf-net
Chobicus/protobuf-net
CoenGoedegebure/protobuf-net
CornerZhang/protobuf-net
DHMin/protobuf-net
DeadlyEmbrace/protobuf-net
Dylan-Jang/protobuf-net
Erguotou/protobuf-net
FFHixio/protobuf-net
GSerjo/protobuf-net
GeorchW/protobuf-net
Jadewyh/protobuf-net
KennethLK/protobuf-net
KevivL/protobuf-net
KeyleXiao/protobuf-net
KinciengLit/protobuf-net
LiangZuoting/protobuf-net
LukeLandWalker/protobuf-net
Michael--/protobuf-net
MrGuardian/protobuf-net
MrSanZxr/protobuf-net
Nordeus/protobuf-net
Pellucid-Petrus/protobuf-net
PilotMartin/protobuf-net
PrinC/protobuf-net
Ribosome2/protobuf-net
SamHammett/protobuf-net
Samana/protobuf-net
Sartoon/protobuf-net
ShuaiPointChen/protobuf-net
SimonPStevens/protobuf-net
SunHJ/protobuf-net
TamaBaka/protobuf-net
Tapanila/protobuf-net
TediWang/protobuf-net
ZFreeGo/protobuf-net
andr33a/protobuf-net
aniongithub/protobuf-net
apirila/protobuf-net
arventwei/protobuf-net
beannt/protobuf-net
bestwpw/protobuf-net
beykery/protobuf-net
bigtim2000/protobuf-net
blawlor/protobuf-net
blueoak888/protobuf-net
c2b26/protobuf-net
cc682/protobuf-net
ccjimmy/protobuf-net
chaosky/protobuf-net
chenbreeze/protobuf-net
chengwenze/protobuf-net
chenkaigithub/protobuf-net
citybird/protobuf-net
cjsjy123/protobuf-net
codingconcepts/protobuf-net
coqns/protobuf-net
cphuoc91/protobuf-net
cuco/protobuf-net
cuitking/protobuf-net
cwindhausen/protobuf-net
devZys/protobuf-net
dhcgn/protobuf-net
dictbox/protobuf-net
diguo2046/protobuf-net
djttokyo/protobuf-net
duke-lv/protobuf-net
durazell/protobuf-net
elka-jinx/protobuf-net
esamdal/protobuf-net
ezhangle/protobuf-net
fhchina/protobuf-net
floatinghotpot/protobuf-net
fnicollier/protobuf-net
foreverjay/protobuf-net
gaojing007/protobuf-net
gecambridge/protobuf-net
genesissupsup/protobuf-net
groscalin/protobuf-net
gyurisc/protobuf-net
haoljp/protobuf-net
hauerwu/protobuf-net-1
hawkproject/protobuf-net
hbwjz/protobuf-net
helojo/protobuf-net
hivanov/protobuf-net
huijie1990/protobuf-net
hujunlong/protobuf-net
jackson1991123/protobuf-net
jango2015/protobuf-net
jberke/protobuf-net
jddsb/protobuf-net
jechtom/protobuf-net
jensWorkGit/protobuf-net
jethac/protobuf-net
jinyonghao65/protobuf-net
kangkot/protobuf-net
karp-hhp/protobuf-net
kerryjiang/protobuf-net
kerwinluk/protobuf-net
kingsoft-topgame/protobuf-net
kleopatra999/protobuf-net
kotobanone/protobuf-net
kthompson/protobuf-net
lalalaring/protobuf-net
laneser/protobuf-net
leihua918/protobuf-net
levelfire/protobuf-net
lf675874049/protobuf-net
lihuilai/protobuf-net
lingkeyang/protobuf-net
linshuhe/protobuf-net
liurenfeng/protobuf-net
liyonghelpme/protobuf-net
lkalsace/protobuf-net
lumieru/protobuf-net
luojinfang/protobuf-net
luyikk/protobuf-net
ly774508966/protobuf-net
lyntel/protobuf-net
mashifei/protobuf-net
mdonoughe/protobuf-net
micahl/protobuf-net
mikeyoon/protobuf-net
modulexcite/protobuf-net-1
moto2002/protobuf-net
mysll/protobuf-net
nathanielcook/protobuf-net
nedma/protobuf-net
nekohands/protobuf-net
neorc99/protobuf-net
ngocnl/protobuf-net
nilref/protobuf-net
orifjonmelibayev/protobuf-net
oxygen0106/protobuf-net
plynkus/protobuf-net
pourfun/protobuf-net
pshrosbree/protobuf-net
ptrefall/protobuf-net
puXiaoyi/protobuf-net
rajasvu/protobuf-net
rhna/protobuf-net
ricfre/protobuf-net
robinkanters/protobuf-net
ruanbl/protobuf-net
rushfrisby/protobuf-net
sandorfr/protobuf-net
seandanger/protobuf-net
seanet7or/protobuf-net
smartpcr/protobuf-net
sodowp/protobuf-net
sotn0r/protobuf-net
stephenfung/protobuf-net
stipe108/protobuf-net
stormleoxia/protobuf-net
super-rain/protobuf-net
tachen/protobuf-net
taotao111/protobuf-net
tariano/protobuf-net
tbella/protobuf-net
the-vk/protobuf-net
theintegrator/protobuf-net
thesourcerer/protobuf-net
thstone/protobuf-net
tjphilpot/protobuf-net
tkggusraqk/protobuf-net
tomtc123/protobuf-net
ubikuity/protobuf-net
v-good-/protobuf-net
vebin/protobuf-net
veblush/protobuf-net
w359405949/protobuf-net
walkurec/protobuf-net
wanggan768q/protobuf-net
wangzongyi/protobuf-net
wazazhang/protobuf-net
windqiang/protobuf-net
wliangde/protobuf-net
wlz/protobuf-net
xiaoyooo/protobuf-net
xidius/protobuf-net
xivk/protobuf-net
xzoth/protobuf-net
ylyking/protobuf-net
zGameDeveloper/protobuf-net
zbynek001/protobuf-net
zh423328/protobuf-net
zhenyao2008/protobuf-net
zhumingchuang/protobuf-net
zoqiushui/protobuf-net
Nothing to show
base: 3.0.24
head repository: protobuf-net/protobuf-net
Choose a Head Repository
protobuf-net/protobuf-net
854825967/protobuf-net
AlexMihalev/protobuf-net
Anters/protobuf-net
AqlaSolutions/AqlaSerializer
Aristos/protobuf-net
BlueRaja/protobuf-net
Bringer128/protobuf-net
Bryan-Legend/protobuf-net
CCChaos/protobuf-net
Centurys/protobuf-net
Chobicus/protobuf-net
CoenGoedegebure/protobuf-net
CornerZhang/protobuf-net
DHMin/protobuf-net
DeadlyEmbrace/protobuf-net
Dylan-Jang/protobuf-net
Erguotou/protobuf-net
FFHixio/protobuf-net
GSerjo/protobuf-net
GeorchW/protobuf-net
Jadewyh/protobuf-net
KennethLK/protobuf-net
KevivL/protobuf-net
KeyleXiao/protobuf-net
KinciengLit/protobuf-net
LiangZuoting/protobuf-net
LukeLandWalker/protobuf-net
Michael--/protobuf-net
MrGuardian/protobuf-net
MrSanZxr/protobuf-net
Nordeus/protobuf-net
Pellucid-Petrus/protobuf-net
PilotMartin/protobuf-net
PrinC/protobuf-net
Ribosome2/protobuf-net
SamHammett/protobuf-net
Samana/protobuf-net
Sartoon/protobuf-net
ShuaiPointChen/protobuf-net
SimonPStevens/protobuf-net
SunHJ/protobuf-net
TamaBaka/protobuf-net
Tapanila/protobuf-net
TediWang/protobuf-net
ZFreeGo/protobuf-net
andr33a/protobuf-net
aniongithub/protobuf-net
apirila/protobuf-net
arventwei/protobuf-net
beannt/protobuf-net
bestwpw/protobuf-net
beykery/protobuf-net
bigtim2000/protobuf-net
blawlor/protobuf-net
blueoak888/protobuf-net
c2b26/protobuf-net
cc682/protobuf-net
ccjimmy/protobuf-net
chaosky/protobuf-net
chenbreeze/protobuf-net
chengwenze/protobuf-net
chenkaigithub/protobuf-net
citybird/protobuf-net
cjsjy123/protobuf-net
codingconcepts/protobuf-net
coqns/protobuf-net
cphuoc91/protobuf-net
cuco/protobuf-net
cuitking/protobuf-net
cwindhausen/protobuf-net
devZys/protobuf-net
dhcgn/protobuf-net
dictbox/protobuf-net
diguo2046/protobuf-net
djttokyo/protobuf-net
duke-lv/protobuf-net
durazell/protobuf-net
elka-jinx/protobuf-net
esamdal/protobuf-net
ezhangle/protobuf-net
fhchina/protobuf-net
floatinghotpot/protobuf-net
fnicollier/protobuf-net
foreverjay/protobuf-net
gaojing007/protobuf-net
gecambridge/protobuf-net
genesissupsup/protobuf-net
groscalin/protobuf-net
gyurisc/protobuf-net
haoljp/protobuf-net
hauerwu/protobuf-net-1
hawkproject/protobuf-net
hbwjz/protobuf-net
helojo/protobuf-net
hivanov/protobuf-net
huijie1990/protobuf-net
hujunlong/protobuf-net
jackson1991123/protobuf-net
jango2015/protobuf-net
jberke/protobuf-net
jddsb/protobuf-net
jechtom/protobuf-net
jensWorkGit/protobuf-net
jethac/protobuf-net
jinyonghao65/protobuf-net
kangkot/protobuf-net
karp-hhp/protobuf-net
kerryjiang/protobuf-net
kerwinluk/protobuf-net
kingsoft-topgame/protobuf-net
kleopatra999/protobuf-net
kotobanone/protobuf-net
kthompson/protobuf-net
lalalaring/protobuf-net
laneser/protobuf-net
leihua918/protobuf-net
levelfire/protobuf-net
lf675874049/protobuf-net
lihuilai/protobuf-net
lingkeyang/protobuf-net
linshuhe/protobuf-net
liurenfeng/protobuf-net
liyonghelpme/protobuf-net
lkalsace/protobuf-net
lumieru/protobuf-net
luojinfang/protobuf-net
luyikk/protobuf-net
ly774508966/protobuf-net
lyntel/protobuf-net
mashifei/protobuf-net
mdonoughe/protobuf-net
micahl/protobuf-net
mikeyoon/protobuf-net
modulexcite/protobuf-net-1
moto2002/protobuf-net
mysll/protobuf-net
nathanielcook/protobuf-net
nedma/protobuf-net
nekohands/protobuf-net
neorc99/protobuf-net
ngocnl/protobuf-net
nilref/protobuf-net
orifjonmelibayev/protobuf-net
oxygen0106/protobuf-net
plynkus/protobuf-net
pourfun/protobuf-net
pshrosbree/protobuf-net
ptrefall/protobuf-net
puXiaoyi/protobuf-net
rajasvu/protobuf-net
rhna/protobuf-net
ricfre/protobuf-net
robinkanters/protobuf-net
ruanbl/protobuf-net
rushfrisby/protobuf-net
sandorfr/protobuf-net
seandanger/protobuf-net
seanet7or/protobuf-net
smartpcr/protobuf-net
sodowp/protobuf-net
sotn0r/protobuf-net
stephenfung/protobuf-net
stipe108/protobuf-net
stormleoxia/protobuf-net
super-rain/protobuf-net
tachen/protobuf-net
taotao111/protobuf-net
tariano/protobuf-net
tbella/protobuf-net
the-vk/protobuf-net
theintegrator/protobuf-net
thesourcerer/protobuf-net
thstone/protobuf-net
tjphilpot/protobuf-net
tkggusraqk/protobuf-net
tomtc123/protobuf-net
ubikuity/protobuf-net
v-good-/protobuf-net
vebin/protobuf-net
veblush/protobuf-net
w359405949/protobuf-net
walkurec/protobuf-net
wanggan768q/protobuf-net
wangzongyi/protobuf-net
wazazhang/protobuf-net
windqiang/protobuf-net
wliangde/protobuf-net
wlz/protobuf-net
xiaoyooo/protobuf-net
xidius/protobuf-net
xivk/protobuf-net
xzoth/protobuf-net
ylyking/protobuf-net
zGameDeveloper/protobuf-net
zbynek001/protobuf-net
zh423328/protobuf-net
zhenyao2008/protobuf-net
zhumingchuang/protobuf-net
zoqiushui/protobuf-net
Nothing to show
compare: 3.0.52
Commits on Jul 06, 2020
…pe should be forced, just like a single Type instance is
- add non-generic utility methods for all the new input types
- promote "Type first" on the utility methods; de-promote legacy and Merge
Commits on Jul 08, 2020
… reflection. (#680)
…tion. (#679)
Commits on Jul 13, 2020
Commits on Aug 05, 2020
Commits on Aug 06, 2020
Commits on Aug 07, 2020
* tidy up MetaType.OPTIONS_* - been meaning to do that for ages!

* implement and test for #692

* support sub-type skipping in non-generic APIs

* fix changed expectations; lib revs

* CI

* TrySerializeAny should also respect inheritance

* yak for clean build
…ted at type root (#696)
Commits on Aug 10, 2020
…throw EndOfStreamException, not NullReferenceException (xref #697)
Commits on Aug 19, 2020
Co-authored-by: Konstantin Sharon <konstantins@sentinelone.com>
Commits on Oct 02, 2020
1. ImplementsServiceFor: don't claim nullables
2. GetServicesImpl: dive into nullables
Commits on Oct 03, 2020
* start putting hooks in place to allow surrogates to be defined externally;

- new RuntimeTypeModel API to allow transform methods to be supplied
- new checks in "emit" (don't emit internal serializer types)
- implement "emit" in ExternalSerializer (in some cases)

* yaks

* fix emit of surrogates

* use ProviderCache<T> directly if we're already ignoring accessibility

* still need to emit non-public providers for external types (at that point: it isn't our problem)

* more words

* add native google / nodatime test

* try to enable inbuilts to be used as surrogate targets

* allow surrogates for inbuilts to go direct, bypassing GetSerializer

* additional test for primitive surrogates via attributes

* silly compiler-generated names...

* 1. implement Instant
2. make more things work on macosx

* fix more broken OS tests

* fix more broken OS tests

* more macosx test fixes

* update the protos for the 5 impacted types from NodaTime.Serialization; snapshot the output

* generalize external imports via addition of Origin; imports are now sorted alphabetically

* rename API to AddNodaTime, as it isn't all via surrogates

* update .proto files, and add google/type/*

* fix CS1591 (missing comments)

* add example for SO64101495

* add round-trip example for IPAddress

* fix schema generation when using surrogates to primitive types

* add example of primitive custom serializer

* add baseline and binary assert to SO64101495 example

* - add native (i.e. Google protobuf) test for all common nodatime tests
- fix generator so that imports work on the website
This reverts commit f815a8d.
Showing with 7,162 additions and 531 deletions.
  1. +1 −0 Build.csproj
  2. +1 −1 README.md
  3. +1 −1 docs/3_0.md
  4. +1 −0 docs/_config.yml
  5. +11 −0 docs/releasenotes.md
  6. +1 −1 src/Benchmark/Benchmark.csproj
  7. +2 −1 src/Benchmark/Codegen/protogen.cs
  8. +1 −1 src/BenchmarkBaseline/BenchmarkBaseline.csproj
  9. +3 −2 src/Directory.Build.props
  10. +4 −4 src/Examples/EnumTests.cs
  11. +4 −2 src/Examples/Examples.csproj
  12. +21 −9 src/Examples/Issues/Issue124.cs
  13. +2 −2 src/Examples/Issues/Issue265.cs
  14. +4 −4 src/Examples/Issues/Issue303.cs
  15. +1 −1 src/Examples/Issues/Issue304.cs
  16. +1 −1 src/Examples/Issues/Issue306.cs
  17. +1 −1 src/Examples/Issues/Issue310.cs
  18. +1 −1 src/Examples/Issues/Issue316.cs
  19. +1 −1 src/Examples/Issues/Issue329.cs
  20. +2 −2 src/Examples/Issues/Issue647.Generated.cs
  21. +1 −1 src/Examples/Issues/Issue647.cs
  22. +172 −0 src/Examples/Issues/Issue692.cs
  23. +85 −0 src/Examples/Issues/Issue695.cs
  24. +70 −0 src/Examples/Issues/Issue697.cs
  25. +110 −0 src/Examples/Issues/Issue713.cs
  26. +1 −1 src/Examples/Issues/SO11656439.cs
  27. +33 −4 src/Examples/Issues/SO12040007.cs
  28. +1 −1 src/Examples/Issues/SO13802844.cs
  29. +190 −0 src/Examples/Issues/SO64101495.cs
  30. +1 −1 src/Examples/Issues/SO6505590.cs
  31. +3 −3 src/Examples/Pipeline.cs
  32. +18 −18 src/Examples/ProtoGeneration.cs
  33. +2 −2 src/LongDataTests/LongDataTests.csproj
  34. +315 −0 src/NativeGoogleTests/Date.cs
  35. +84 −0 src/NativeGoogleTests/Dayofweek.cs
  36. +328 −0 src/NativeGoogleTests/Duration.cs
  37. +380 −0 src/NativeGoogleTests/MakeMeOneWithEverything.cs
  38. +34 −0 src/NativeGoogleTests/NativeGoogleTests.csproj
  39. +73 −0 src/NativeGoogleTests/NodaTimeTests.cs
  40. +551 −0 src/NativeGoogleTests/Nodatime.cs
  41. +346 −0 src/NativeGoogleTests/Timeofday.cs
  42. +357 −0 src/NativeGoogleTests/Timestamp.cs
  43. +2 −6 src/protobuf-net.Core/ExtensibleUtil.cs
  44. +1 −3 src/protobuf-net.Core/Helpers.cs
  45. +40 −3 src/protobuf-net.Core/Internal/DynamicStub.cs
  46. +1 −1 src/protobuf-net.Core/Internal/ThrowHelper.cs
  47. +0 −3 src/protobuf-net.Core/MeasureState.cs
  48. +6 −0 src/protobuf-net.Core/Meta/SchemaGenerationOptions.cs
  49. +96 −12 src/protobuf-net.Core/Meta/TypeModel.cs
  50. +45 −27 src/protobuf-net.Core/ProtoContractAttribute.cs
  51. +8 −5 src/protobuf-net.Core/ProtoReader.State.ReadMethods.cs
  52. +2 −2 src/protobuf-net.Core/ProtoReader.Stream.cs
  53. +0 −2 src/protobuf-net.Core/ProtoReader.cs
  54. +6 −2 src/protobuf-net.Core/ProtoWriter.State.WriteMethods.cs
  55. +0 −2 src/protobuf-net.Core/ProtoWriter.State.cs
  56. +1 −1 src/protobuf-net.Core/Serializers/RepeatedSerializer.cs
  57. +1 −1 src/protobuf-net.Core/WellKnownTypes/Duration.cs
  58. +1 −1 src/protobuf-net.Core/WellKnownTypes/Empty.cs
  59. +1 −1 src/protobuf-net.Core/WellKnownTypes/Timestamp.cs
  60. +0 −2 src/protobuf-net.Core/WireType.cs
  61. +3 −2 src/protobuf-net.MSBuild.Test/BuildTests.cs
  62. +1 −1 src/protobuf-net.MSBuild.Test/protobuf-net.MSBuild.Test.csproj
  63. +19 −0 src/protobuf-net.MSBuild/GenerateProtoBufCode.cs
  64. +9 −6 src/protobuf-net.MSBuild/build/protobuf-net.MSBuild.targets
  65. +118 −0 src/protobuf-net.NodaTime/NodaTimeExtensions.cs
  66. +119 −0 src/protobuf-net.NodaTime/NodaTimeSerializers.cs
  67. +15 −0 src/protobuf-net.NodaTime/protobuf-net.NodaTime.csproj
  68. +2 −2 src/protobuf-net.Protogen/protobuf-net.Protogen.csproj
  69. +12 −4 src/protobuf-net.Reflection.Test/Schemas/SchemaTests.cs
  70. +2 −2 src/protobuf-net.Reflection.Test/Schemas/google/protobuf/duration.proto
  71. +12 −3 src/protobuf-net.Reflection.Test/Schemas/google/protobuf/timestamp.proto
  72. +17 −12 src/protobuf-net.Reflection.Test/Schemas/google/type/date.proto
  73. +3 −3 src/protobuf-net.Reflection.Test/Schemas/google/type/dayofweek.proto
  74. +5 −4 src/protobuf-net.Reflection.Test/Schemas/google/type/timeofday.proto
  75. +14 −0 src/protobuf-net.Reflection.Test/Schemas/nodatime.proto
  76. +48 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/collector/logs/v1/logs_service.proto
  77. +45 −0 ...otobuf-net.Reflection.Test/Schemas/opentelemetry/proto/collector/metrics/v1/metrics_service.proto
  78. +45 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/collector/trace/v1/trace_service.proto
  79. +77 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/common/v1/common.proto
  80. +130 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/logs/v1/logs.proto
  81. +529 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/metrics/v1/metrics.proto
  82. +34 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/resource/v1/resource.proto
  83. +261 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/trace/v1/trace.proto
  84. +78 −0 src/protobuf-net.Reflection.Test/Schemas/opentelemetry/proto/trace/v1/trace_config.proto
  85. BIN src/protobuf-net.Reflection.Test/macosx/protoc
  86. +16 −5 src/protobuf-net.Reflection.Test/protobuf-net.Reflection.Test.csproj
  87. BIN src/protobuf-net.Reflection.Test/protoc.exe
  88. BIN src/protobuf-net.Reflection.Test/windows/protoc.exe
  89. +1 −1 src/protobuf-net.Reflection/CSharpCodeGenerator.cs
  90. +0 −2 src/protobuf-net.Reflection/NameNormalizer.cs
  91. +3 −2 src/protobuf-net.Reflection/Parsers.cs
  92. +1 −0 src/protobuf-net.Reflection/Properties/AssemblyInfo.cs
  93. +6 −3 src/protobuf-net.Reflection/google/protobuf/any.proto
  94. +2 −4 src/protobuf-net.Reflection/google/protobuf/api.proto
  95. +6 −1 src/protobuf-net.Reflection/google/protobuf/compiler/plugin.proto
  96. +1 −1 src/protobuf-net.Reflection/google/protobuf/descriptor.proto
  97. +1 −1 src/protobuf-net.Reflection/google/protobuf/duration.proto
  98. +1 −1 src/protobuf-net.Reflection/google/protobuf/empty.proto
  99. +1 −1 src/protobuf-net.Reflection/google/protobuf/field_mask.proto
  100. +1 −1 src/protobuf-net.Reflection/google/protobuf/source_context.proto
  101. +1 −1 src/protobuf-net.Reflection/google/protobuf/struct.proto
  102. +11 −2 src/protobuf-net.Reflection/google/protobuf/timestamp.proto
  103. +2 −2 src/protobuf-net.Reflection/google/protobuf/type.proto
  104. +1 −1 src/protobuf-net.Reflection/google/protobuf/wrappers.proto
  105. +57 −0 src/protobuf-net.Reflection/google/type/calendar_period.proto
  106. +170 −0 src/protobuf-net.Reflection/google/type/color.proto
  107. +50 −0 src/protobuf-net.Reflection/google/type/date.proto
  108. +97 −0 src/protobuf-net.Reflection/google/type/datetime.proto
  109. +51 −0 src/protobuf-net.Reflection/google/type/dayofweek.proto
  110. +51 −0 src/protobuf-net.Reflection/google/type/expr.proto
  111. +34 −0 src/protobuf-net.Reflection/google/type/fraction.proto
  112. +37 −0 src/protobuf-net.Reflection/google/type/latlng.proto
  113. +43 −0 src/protobuf-net.Reflection/google/type/money.proto
  114. +66 −0 src/protobuf-net.Reflection/google/type/month.proto
  115. +135 −0 src/protobuf-net.Reflection/google/type/postal_address.proto
  116. +95 −0 src/protobuf-net.Reflection/google/type/quaternion.proto
  117. +44 −0 src/protobuf-net.Reflection/google/type/timeofday.proto
  118. +3 −0 src/protobuf-net.Reflection/protobuf-net.Reflection.csproj
  119. +3 −3 src/protobuf-net.Test/CompatibilityLevelAmbientAutoTupleTests.cs
  120. +3 −3 src/protobuf-net.Test/CompatibilityLevelListsMaps.cs
  121. +6 −6 src/protobuf-net.Test/CompatibilityLevelTests.cs
  122. +1 −3 src/protobuf-net.Test/CustomScalarAllocator.cs
  123. +1 −1 src/protobuf-net.Test/Issues/CustomDictionaryWithIgnoreListHandling.cs
  124. +1 −1 src/protobuf-net.Test/Issues/Immutables.cs
  125. +174 −0 src/protobuf-net.Test/Issues/Issue536.cs
  126. +1 −1 src/protobuf-net.Test/Issues/Issue598.cs
  127. +1 −1 src/protobuf-net.Test/Issues/SO_InterestingFailures.cs
  128. +1 −1 src/protobuf-net.Test/ManualSerializer.cs
  129. +3 −3 src/protobuf-net.Test/Meta/Struct.cs
  130. +289 −0 src/protobuf-net.Test/NodaTimeTests.cs
  131. +2 −2 src/protobuf-net.Test/Serializers/Proto3Tests.cs
  132. +19 −16 src/protobuf-net.Test/Serializers/UriTests.cs
  133. +54 −2 src/protobuf-net.Test/ServiceSchemas.cs
  134. +9 −1 src/protobuf-net.Test/SpanReadTests.cs
  135. +5 −2 src/protobuf-net.Test/protobuf-net.Test.csproj
  136. +18 −0 src/protobuf-net.sln
  137. +5 −7 src/protobuf-net/Compiler/CompilerContext.cs
  138. +1 −1 src/protobuf-net/Compiler/CompilerContextScope.cs
  139. +47 −3 src/protobuf-net/Internal/Serializers/ExternalSerializer.cs
  140. +1 −1 src/protobuf-net/Internal/Serializers/IRuntimeProtoSerializerNode.cs
  141. +1 −1 src/protobuf-net/Internal/Serializers/SubItemSerializer.cs
  142. +31 −19 src/protobuf-net/Internal/Serializers/SurrogateSerializer.cs
  143. +25 −15 src/protobuf-net/Internal/Serializers/TypeSerializer.cs
  144. +157 −76 src/protobuf-net/Meta/MetaType.cs
  145. +209 −100 src/protobuf-net/Meta/RuntimeTypeModel.cs
  146. +17 −3 src/protobuf-net/Meta/ValueMember.cs
  147. +0 −3 src/protobuf-net/Serializer.Serialize.cs
  148. +27 −11 src/protobuf-net/Serializer.cs
  149. +2 −2 src/protogen.site.blazor.client/Models/GeneratorViewModel.cs
  150. +2 −3 src/protogen.site.blazor.client/Pages/Index.razor
  151. +2 −2 src/protogen.site.blazor.client/protogen.site.blazor.client.csproj
  152. +16 −19 src/protogen.site/Controllers/HomeController.cs
  153. +1 −6 src/protogen.site/protogen.site.csproj
  154. +8 −1 src/protogen/GrpcTools.cs
  155. +1 −2 src/protogen/Program.cs
  156. +2 −2 src/protogen/protogen.csproj
@@ -4,6 +4,7 @@
<ProjectReference Include="src\protobuf-net\*.csproj" />
<ProjectReference Include="src\protobuf-net.Core\*.csproj" />
<ProjectReference Include="src\protobuf-net.MSBuild\*.csproj" />
<ProjectReference Include="src\protobuf-net.NodaTime\*.csproj" />
<ProjectReference Include="src\protobuf-net.Protogen\*.csproj" />
<ProjectReference Include="src\protobuf-net.Reflection\*.csproj" />
<ProjectReference Include="src\protobuf-net.AspNetCore\*.csproj" />
@@ -91,7 +91,7 @@ using (var file = File.OpenRead("person.bin")) {

### Inheritance

Inheritance must be explicitly declared, in a similar way that if must for XmlSerializer and DataContractSerializer. This is done via [ProtoInclude(...)] on each type with known sub-types:
Inheritance must be explicitly declared, in a similar way that it must for XmlSerializer and DataContractSerializer. This is done via [ProtoInclude(...)] on each type with known sub-types:

```csharp
[ProtoContract]
@@ -44,7 +44,7 @@ a simple update. A few niche features have changed or been removed - more detail
and [`protobuf-net.Core`](https://www.nuget.org/packages/protobuf-net.Core/), with the "Core" package having the main serializer API but none of the runtime reflection
code; this means that future AOT-only scenarios only require the "Core" package, and can omit the overhead of shipping any of the other code *at all*; you can see
this in action already at [protogen.marcgravell.com](https://protogen.marcgravell.com/), which uses the schema parting tools *and serializer core* in the client browser
(not at the web-server) via "Blazor"/WASM, via a dependency on `protobuf-net.Core` (a huge thanks once again to [Rémi BOURGAREL](https://github.com/RemiBou) here, who leant
(not at the web-server) via "Blazor"/WASM, via a dependency on `protobuf-net.Core` (a huge thanks once again to [Remi BOURGAREL](https://github.com/RemiBou) here, who leant
their Blazor expertise)

## Changes To Existing Features
@@ -0,0 +1 @@
theme: jekyll-theme-cayman
@@ -11,6 +11,17 @@ Packages are available on NuGet: [protobuf-net](https://www.nuget.org/packages/p
- 3.2: protogen support for emitting pre-coded custom serializers
- future: build-time tooling from code-first (aka "generators")

## unreleased

- add new protobuf-net.NodaTime package that adds direct support for NodaTime primitives (note: this may be relocated to a NodaTime library)
- fix #700 - new APIs to allow surrogates to be defined externally, and to be implemented over primitive backing types
- fix #703 - new options on MSBuild targets (via Konstantin Sharon)
- fix #693 - new `IgnoreUnknownSubTypes` API on `[ProtoContract(...)]` and `MetaType`; serializes the types it *does* understand, and silently ignores the unknown sub-types
- fix #695 - JIT error when serialization callbacks declared at types other than the inheritance root
- fix #713 - work correctly with arrays (etc) of nullable enum types
- fix #697 - improve error reporting for invalid end-group markers
- fix #668 - additional non-generic APIs
- fix problem with protogen website not allowing imports

## 3.0.24

@@ -19,7 +19,7 @@

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
<PackageReference Include="Google.Protobuf" Version="3.12.3" />
<PackageReference Include="Google.Protobuf" Version="3.12.4" />
<ProjectReference Include="..\protobuf-net\protobuf-net.csproj" />
<PackageReference Include="Pipelines.Sockets.Unofficial" Version="2.1.16" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" />
@@ -2,6 +2,7 @@
// Consider using 'partial classes' to extend these types
// Input: my.proto

#pragma warning disable IDE0079
#pragma warning disable CS1591, CS0612, CS0618, CS3021, IDE1006
namespace protogen
{
@@ -105,4 +106,4 @@ public partial class OrderLine : global::ProtoBuf.IExtensible

}

#pragma warning restore CS1591, CS0612, CS0618, CS3021, IDE1006
#pragma warning restore IDE0079, CS1591, CS0612, CS0618, CS3021, IDE1006
@@ -19,7 +19,7 @@

<ItemGroup>
<PackageReference Include="BenchmarkDotNet" Version="0.12.1" />
<PackageReference Include="Google.Protobuf" Version="3.12.3" />
<PackageReference Include="Google.Protobuf" Version="3.12.4" />
<PackageReference Include="protobuf-net" Version="2.4.6" />
<PackageReference Include="Pipelines.Sockets.Unofficial" Version="2.1.16" />
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" />
@@ -5,7 +5,7 @@
<OutputType>Library</OutputType>
<SignAssembly>true</SignAssembly>
<DelaySign>False</DelaySign>
<NoWarn>NU5105;CS1701;BC42016</NoWarn>
<NoWarn>NU5105;CS1701;BC42016;IDE0057</NoWarn>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)ProtoBuf.snk</AssemblyOriginatorKeyFile>
<Copyright>See https://github.com/protobuf-net/protobuf-net</Copyright>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
@@ -31,8 +31,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
<PackageReference Include="Nerdbank.GitVersioning" Version="3.1.91" PrivateAssets="All" />
<PackageReference Include="Nerdbank.GitVersioning" Version="3.2.31" PrivateAssets="All" />
<!-- oh gawd, I'm just not emotionally prepared for this...
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4">
<PrivateAssets>all</PrivateAssets>
@@ -72,7 +72,7 @@ enum blah {
A = -1;
C = 1;
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}


@@ -96,7 +96,7 @@ enum blah {
A = -1;
C = 1;
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}

[Fact]
@@ -132,7 +132,7 @@ enum OutOfRangeEnum {
// F = -2147483649; // note: enums should be valid 32-bit integers
}
*/
", proto);
", proto, ignoreLineEndingDifferences: true);
}

public enum InRangeEnum : long
@@ -181,7 +181,7 @@ enum blah {
A = -1;
C = 1;
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}

[Fact]
@@ -17,16 +17,18 @@
<ProjectReference Include="..\protobuf-net.MessagePipes\protobuf-net.MessagePipes.csproj" />
<ProjectReference Include="..\protobuf-net\protobuf-net.csproj" />
<ProjectReference Include="..\protobuf-net.Reflection\protobuf-net.Reflection.csproj" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.0" />
<PackageReference Include="System.Threading.Channels" Version="4.7.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="System.Collections.Immutable" Version="1.7.1" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.2">
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Runtime.InteropServices.RuntimeInformation" Version="4.3.0" />
<PackageReference Include="Xunit.SkippableFact" Version="1.4.13" />
</ItemGroup>
<ItemGroup Condition="$(TargetFramework)=='net462'">
<PackageReference Include="NHibernate" Version="4.1.1.4000" />
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Media;
using Xunit;
@@ -36,25 +37,36 @@ public class TypeWithColor
public Color Color { get; set; }
}

[Fact]
[SkippableFact]
public void TestMediaColorDirect()
{
var model = RuntimeTypeModel.Create();
model.Add(typeof(Color), false).Add("A","R","G","B");
Skip.IfNot(RuntimeInformation.IsOSPlatform(OSPlatform.Windows));
AvoidJit();
static void AvoidJit()
{
var model = RuntimeTypeModel.Create();
model.Add(typeof(Color), false).Add("A", "R", "G", "B");

RoundtripTypeWithColor(model);
RoundtripTypeWithColor(model);
}
}

[Fact]
[SkippableFact]
public void TestMediaColorSurrogate()
{
var model = RuntimeTypeModel.Create();
model.Add(typeof(Color), false).SetSurrogate(typeof(MyColor));
Skip.IfNot(RuntimeInformation.IsOSPlatform(OSPlatform.Windows));
AvoidJit();

RoundtripTypeWithColor(model);
static void AvoidJit()
{
var model = RuntimeTypeModel.Create();
model.Add(typeof(Color), false).SetSurrogate(typeof(MyColor));

RoundtripTypeWithColor(model);
}
}

private void RoundtripTypeWithColor(RuntimeTypeModel model)
private static void RoundtripTypeWithColor(RuntimeTypeModel model)
{
var orig = new TypeWithColor
{
@@ -105,7 +105,7 @@ enum E {
V1 = 1;
V2 = 2;
}
", schema);
", schema, ignoreLineEndingDifferences: true);
}

[Fact]
@@ -133,7 +133,7 @@ enum E {
message List_E {
repeated E items = 1;
}
", schema);
", schema, ignoreLineEndingDifferences: true);
}

private static void TestArray(TypeModel model)
@@ -40,7 +40,7 @@ public void TestEntireModel_Proto2()
}
",

model.GetSchema(null, ProtoSyntax.Proto2)
model.GetSchema(null, ProtoSyntax.Proto2), ignoreLineEndingDifferences: true

);
}
@@ -66,7 +66,7 @@ public void TestEntireModel_Proto3()
}
",

model.GetSchema(null, ProtoSyntax.Proto3)
model.GetSchema(null, ProtoSyntax.Proto3), ignoreLineEndingDifferences: true

);
}
@@ -143,7 +143,7 @@ public void TestInheritanceStartingWithBaseType()
}
",

model.GetSchema(typeof(Animal), ProtoSyntax.Proto2)
model.GetSchema(typeof(Animal), ProtoSyntax.Proto2), ignoreLineEndingDifferences: true

);
}
@@ -166,7 +166,7 @@ public void TestInheritanceStartingWithDerivedType()
}
",

model.GetSchema(typeof(Animal), ProtoSyntax.Proto2)
model.GetSchema(typeof(Animal), ProtoSyntax.Proto2), ignoreLineEndingDifferences: true

);
}
@@ -19,7 +19,7 @@ public void DefaultValuesForBoolMustBeLowerCase()
}
",

Serializer.GetProto<Foo>(ProtoSyntax.Proto2)
Serializer.GetProto<Foo>(ProtoSyntax.Proto2), ignoreLineEndingDifferences: true

);
}
@@ -25,7 +25,7 @@ public void TestTuple()
message Foo {
map<int32,string> Lookup = 1;
}
", schema);
", schema, ignoreLineEndingDifferences: true);
}

[ProtoContract]
@@ -33,7 +33,7 @@ public void Execute()
message Dog {
optional string OwnerName = 1;
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}

[ProtoContract]
@@ -30,7 +30,7 @@ public void Execute()
message BinarySerializationSurrogate_MyException {
optional bytes objectData = 1;
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}

class MyException : Exception { }
@@ -59,7 +59,7 @@ enum ETheoFlags {
message Foo {
optional ETheoFlags Flags = 1 [default = TF_P];
}
", proto);
", proto, ignoreLineEndingDifferences: true);
}
}
}
@@ -5,7 +5,7 @@
// </auto-generated>

#region Designer generated code
#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#pragma warning disable CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
namespace ProtoBuf.Issues.Issue647Types.Bar
{

@@ -54,5 +54,5 @@ public partial class FooClass : global::ProtoBuf.IExtensible

}

#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#pragma warning restore CS0612, CS0618, CS1591, CS3021, IDE0079, IDE1006, RCS1036, RCS1057, RCS1085, RCS1192
#endregion
@@ -51,7 +51,7 @@ public void GeneratedCodeIncludesNamespaces()
}).Single().Text;
Log(actualCsharp);

var expectedCsharp = File.ReadAllText(@"Issues\Issue647.Generated.cs");
var expectedCsharp = File.ReadAllText(@"Issues/Issue647.Generated.cs");
Assert.Equal(expectedCsharp, actualCsharp, ignoreLineEndingDifferences: true);
}
}

No commit comments for this range