Commit Graph

127 Commits

Author SHA1 Message Date
Jon Skeet
e38294a62d First pass at the mutable API. Quite a bit more to do - in particular, it's pretty slow right now. 2015-06-09 19:30:44 +01:00
Jie Luo
90da3514cd Migrate writer to io::Printer for C# 2015-06-04 11:39:13 -07:00
Jie Luo
a21a2cf7d3 Change the C# enum generator inherit from primitive generator 2015-05-29 18:07:18 -07:00
Jie Luo
f7b417ddfe Add oneof support for C# 2015-05-29 13:29:30 -07:00
Jan Tattermusch
3668a224f3 Merge pull request #394 from ironhidegames/csharp-aot-ios
Solves AOT compilation issue for Unity - iOS
2015-05-21 08:48:27 -07:00
Ruben Garat
83bcfefb0b added concrete IEqualityComparer<ExtensionIntPair> implementation in ExtensionRegistryLite.cs to prevent AOT compilation issue with unity in iOS 2015-05-20 18:07:09 -03:00
Jon Skeet
b1a395ce07 Generate *all* protos in the script, applying fixups.
We still have some protos which aren't generated how we want them to be:

- Until we have an option to specify the "umbrella" class, DescriptorProtoFile
  will be broken. (The change of name here affects the reflection descriptor,
  which accounts for most of the change. That's easier than trying to work out
  exactly which occurrences of Descriptor need changing though.)
- That change affects UnittestCustomOptions
- Issue #307 breaks Unittest.cs

After this commit, we don't have the record of the fixups in the files themselves
any more, but one centralized record in the shell script.
2015-05-16 11:38:27 +01:00
Jon Skeet
734393d0f9 Make generate_protos.sh Windows-friendly.
To my surprise, executing generate_protos.sh used the version of Bash installed with Git for Windows by default.
After a few modifications to detect the most appropriate protoc to use, this worked pretty simply.
This change also:
- adds generation of the address book tutorial proto,
- fixes the addressbook.proto to specify proto2 explicitly (to avoid a warning from protoc; I don't think we want warnings...)
- fixes the addressbook.proto C# namespace (which I thought I'd done before, but apparently hadn't)
- includes the regenerated UnittestCustomOptions.cs apart from the DescriptorProtoFIle => Descriptor change
2015-05-14 09:11:57 +01:00
Jie Luo
2d9b1c592f Merge pull request #382 from jtattermusch/integrate_from_master
Integrate changes from latest master branch into csharp branch.
2015-05-13 15:24:42 -07:00
Jan Tattermusch
38da6583b1 Regenerate UnittestDropUnknownFields.cs 2015-05-13 13:38:54 -07:00
Jan Tattermusch
ff172ca8eb Update README.md for C# 2015-05-13 11:44:17 -07:00
Jon Skeet
fd1693a3fb Update C# code generation script 2015-05-13 17:56:52 +01:00
Jon Skeet
998b5ba20d Remove the C#-specific field_presence_test.proto, using unittest_no_field_presence.proto instead.
This is the start of establishing a C# namespace of "Google.ProtocolBuffers.TestProtos.Proto3" for proto3-syntax protos.
We could optionally split the directory structure as well into Proto2 and Proto3 for clarity.
2015-05-13 17:34:02 +01:00
Jan Tattermusch
881995352d regenerated UnittestImportLite.cs 2015-05-12 22:00:38 -07:00
Jan Tattermusch
4083104aa4 regenerated UnittestImportPublicLite 2015-05-12 21:58:59 -07:00
Jan Tattermusch
3aa5808557 Regenerated UnittestExtrasLite.cs 2015-05-12 21:56:40 -07:00
Jan Tattermusch
6f7a782934 Regenerated UnittestDropUnknownFields.cs 2015-05-12 21:54:23 -07:00
Jan Tattermusch
766036f231 remove C# files not referenced in any project 2015-05-12 21:42:40 -07:00
Jan Tattermusch
385afba572 Regenerate some proto files after ClsCompliance has been dropped 2015-05-12 21:42:40 -07:00
Jan Tattermusch
a39dc6d5be rename FieldPresence to correct name 2015-05-12 21:42:40 -07:00
Jan Tattermusch
3e0e54943b got rid of the outdated mono subdirectory 2015-05-12 21:42:40 -07:00
Jan Tattermusch
dfefe9a4c1 draft of generate_protos.sh 2015-05-12 21:42:40 -07:00
Jan Tattermusch
b1a921c7b3 add buildall script for mono 2015-05-12 21:42:39 -07:00
Jan Tattermusch
6f4bdffbe5 adding what was missing in .gitignore 2015-05-12 15:21:59 -07:00
Jan Tattermusch
86f97e3246 lib subdir is not needed anymore 2015-05-12 15:21:22 -07:00
Jan Tattermusch
3ccbf4b893 Fix newline assertion in TestJsonFormatted on mono 2015-05-12 11:54:23 -07:00
Jan Tattermusch
7149cee282 remove TreatWarningsAsError setting to allow building in Monodevelop 2015-05-12 11:23:35 -07:00
Jon Skeet
90c8932fc7 Convert back to using NUnit, which is now loaded via NuGet.
This includes the NUnit test adapter which allows NUnit tests to be run under VS without any extra plugins.
Unfortunate the compatibility tests using the abstract test fixture class show up as "external" tests, and aren't well presented - but they do run.
2015-05-12 09:48:02 +01:00
Jan Tattermusch
6f9da37b0d Performance optimization for small messages without unknown fields 2015-05-07 08:40:36 -07:00
Jie Luo
ea48104cdd fix comments 2015-05-01 10:35:19 -07:00
Jie Luo
41c175e711 Change field_presence_test.proto 2015-05-01 10:12:54 -07:00
Jie Luo
3d4b761998 fix comments 2015-04-30 18:36:17 -07:00
Jie Luo
6e1ec5f6ea fix commends from Jon Skeet 2015-04-30 18:19:50 -07:00
Jie Luo
24ae5105f3 Merge branch 'csharp' of git://github.com/google/protobuf into google-csharp 2015-04-30 11:23:09 -07:00
Jon Skeet
c56475088d Change to using xUnit for all unit tests, and fetch that via NuGet.
This includes fetching the VS unit test runner package, so that tests can be run from Visual Studio's Test Explorer.
2015-04-30 11:29:35 +01:00
Jie Luo
954bc83413 Merge branch 'csharp' of git://github.com/google/protobuf into google-csharp 2015-04-29 15:55:11 -07:00
Jie Luo
4af18b8711 rename FieldPResenceTest.cs file 2015-04-29 14:20:23 -07:00
Jon Skeet
ce97e68682 Convert both the full and lite runtimes (and json/xml serialization assemblies) to be Portable Class Libraries.
All referring projects are now .NET 4 client rather than .NET 3.5.
This commit also fixes up the ProtoBench app, which I'd neglected in previous commits. (Disentangling the two sets of changes would be time-consuming.)
2015-04-29 21:15:16 +01:00
Jie Luo
d1f5acaafb Change the package for field_presence_test.proto 2015-04-29 11:49:14 -07:00
Jie Luo
c5c9c6a7e0 field presence Reflection and tests 2015-04-29 11:33:07 -07:00
Jon Skeet
0e916d09a3 Removing more C# project files. 2015-04-29 12:22:35 +01:00
Jon Skeet
f015b860b7 Remove CLS compliance from runtime code.
We need to remove it from the generator too; I'll raise a github issue for that.
2015-04-29 12:21:54 +01:00
Jon Skeet
5e0189ab94 Update C# solution and AddressBook project.
Move to a single solution file containing all of the C# projects, but no other solution folders - it's easier to edit those files outside VS than keep adding and removing them from the project.
The AddressBook protos have been regenerated (with a change to the example proto which I haven't included in this change - I'll wait for us to decide exactly what we're doing with namespaces before changing protos outside the csharp directory.

Note that now we've got Addressbook.cs which contains AddressBook and Addressbook classes. It's bad enough that we've got a class called AddressBook within a namespace of AddressBook (hard to get away from) but having things vary just by case is nasty.
This is more evidence that an option for renaming the file and descriptor class would be welcome. (A single option can probably handle both.)
2015-04-29 10:10:20 +01:00
Jon Skeet
f651f73a3c Remove support for Serializable.
This could potentially be added back in later, but its use is limited and it's a pain in terms of support in PCL environments.
One use that has been highlighted is passing objects between AppDomains; we'd recommend passing a byte array explicitly and reparsing on the other side.
2015-04-29 09:18:19 +01:00
Jon Skeet
cc058e1118 Remove RPC support.
It is expected that third parties will generate service/RPC code themselves - see gRPC as an example.
2015-04-29 08:55:07 +01:00
Jon Skeet
e8310aa259 Remove a bunch of files which are no longer relevant:
1) Project files for different configurations - we're going to look at all this again, ideally to just have a single PCL-compatible build
2) ProtoGen - the C++ generator is now the only one we care about
3) Proto files - these are mostly duplicates (or older versions) of the ones in the common directories
2015-04-29 06:55:51 +01:00
Jon Skeet
5ca6dd76fb Update DescriptorProtoFile.cs and UnitTest.cs to indicate manual changes.
(Having regenerated descriptor.proto relative to src, the earlier commented-out code checking that dependencies match may now be okay to uncomment again. Will experiment in later CLs.)
2015-04-28 18:47:47 +01:00
Jon Skeet
ce66c5f1b9 Updated set of unit tests and unit test protos.
This commit includes changes to the C#-specific protos, and rebuilt versions of the "stock" protos.
The stock protos have been locally updated to have a specific C# namespace, but this is expected to change soon, so hasn't been committed.
Four areas are currently not tested:
1) Serialization - we may restore this at some point, possibly optionally.
2) Services - currently nothing is generated for this; will need to see how it interacts with GRPC
3) Fields beginning with _{digit} - see https://github.com/google/protobuf/issues/308
4) Fields with names which conflict with the declaring type in nasty ways - see https://github.com/google/protobuf/issues/309
2015-04-28 15:06:59 +01:00
Jon Skeet
f3504cf3b1 First part of making the C# runtime work with the new codegen.
1) Remove CSharpOptions
2) A new version of DescriptorProtoFile (with manual changes from codegen - it would otherwise be Descriptor.cs)
3) Turn off CLS compliance (which we'll remove from the codebase entirely; I don't think it's actually relevant these days)
4) Add "public imports" to FileDescriptor, with code broadly copied from the Java codebase.
Lots more changes to commit before it will build and tests run, but one step at a time...
2015-04-28 14:53:24 +01:00
Jan Tattermusch
1eab56aee8 removed .hgignore file 2015-04-16 12:31:48 -07:00