-
Notifications
You must be signed in to change notification settings - Fork 1.7k
AVRO-2211: SchemaBuilder equivalent or other means of schema creation #1597
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
Conversation
|
@yanivru Can you start by updating the description to follow the standards for the pull request? |
| * limitations under the License. | ||
| */ | ||
| using System; | ||
| using System.Collections.Generic; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you remove and sort usings. Assuming you are using VS.
| { | ||
| internal static IList<SchemaName> GetSchemaNames(IEnumerable<string> aliases, string enclosingTypeName, string enclosingTypeNamespace) | ||
| { | ||
| if (aliases == null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add brackets?
| if (aliases == null) | ||
| return null; | ||
|
|
||
| var enclosingSchemaName = new SchemaName(enclosingTypeName, enclosingTypeNamespace, null, null); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you replace var with the actual name of the object?
| private ArraySchema(Schema items, PropertyMap props) : base(Type.Array, props) | ||
| /// <param name="items">schema for the array items type.</param> | ||
| /// <param name="customAttributes">dictionary that provides access to custom properties.</param> | ||
| public ArraySchema(Schema items, PropertyMap customAttributes = null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Schema classes already use a Factory pattern method "NewInstance". I would recommend following the same pattern than exposing the constructor.
| /// <param name="customProperties">custom properties on this schema.</param> | ||
| /// <param name="doc">documentation for this named schema.</param> | ||
| /// <param name="defaultSymbol"></param> | ||
| public EnumSchema(string name, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Schema classes already use a Factory pattern method "NewInstance". I would recommend following the same pattern than exposing the constructor.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
NewInstance is internal, and it's more of a deserializer than an object creator, it contains a lot of logic. I can change the public constructors to a factory method (how should I call it?), is that the 'interface' we want the schema classes to expose? I think constructor is a bit more convenient to use.
| IGrouping<string, Schema> duplicateType = groupedByFullNames.FirstOrDefault(x => x.Count() > 1); | ||
|
|
||
| if (duplicateType != null) | ||
| throw new ArgumentException($"Duplicate type in union: {duplicateType.Key}"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add brackets
| if (schemas.Any(schema => schema.Tag == Type.Union)) | ||
| throw new ArgumentException("Unions may not immediately contain other unions", nameof(schemas)); | ||
|
|
||
| var groupedByFullNames = schemas.GroupBy(schema => schema.Fullname); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
replace var with actual type
| return result; | ||
| } | ||
|
|
||
| private void VerifyChildSchemas(List<Schema> schemas) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Document parameters and exception cases
| private void VerifyChildSchemas(List<Schema> schemas) | ||
| { | ||
| if (schemas.Any(schema => schema.Tag == Type.Union)) | ||
| throw new ArgumentException("Unions may not immediately contain other unions", nameof(schemas)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update wording. May seems optional. "Unions can not..."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I took that expression from the avro documentation. I believe it's better to be in sync with the documentation (https://avro.apache.org/docs/current/spec.html#Unions).
| var groupedByFullNames = schemas.GroupBy(schema => schema.Fullname); | ||
| IGrouping<string, Schema> duplicateType = groupedByFullNames.FirstOrDefault(x => x.Count() > 1); | ||
|
|
||
| if (duplicateType != null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can move your linq statement into the if. There is no reason to create a variable that is not used in another place.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It cannot be moved, I am calculating 'duplicateType' in the linq and checking it's value in the if statement.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IGrouping<string, Schema> duplicateType = schemas.GroupBy(schema => schema.Fullname).FirstOrDefault(x => x.Count() > 1);
if (duplicateType != null)
{
throw new ArgumentException($"Duplicate type in union: {duplicateType.Key}");
}
…ead of verifying it
|
Long awaited feature. Thanks for doing it! I assume https://issues.apache.org/jira/browse/AVRO-3003 is s typo in the PR description. The PR title has the proper tickjet number. |
|
|
||
| [TestCase("{\"type\": \"enum\", \"name\": \"Test\", \"symbols\": [\"A\", \"B\"]}", | ||
| [TestCase] | ||
| public void TestRecordCreation() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
other test cases would be useful with some expected result test parameter as well.
| testToString(sc, s); | ||
| } | ||
|
|
||
| [TestCase] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as my previous comment about more test cases.
|
@KyleSchoonover Fixed all issues. I changed the constructors to factory methods. If you think it's ok I will leave it. If not I can revert it. @zcsizmadia Added more unit tests |
| IEnumerable<string> aliases = null, | ||
| PropertyMap customProperties = null, | ||
| string doc = null, | ||
| string defaultSymbol = null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this have an addition parameter at the end? bool shouldThrowParseException = false
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The public method should have this parameter, it should always throw AvroException (and not ParseException. The internal constructor can be used by this method (public factory method) or by the NewInstance method (the json parsing method). So I add this parameter to it to choose which exception to throw.
But if we don't care about backward compatibility of the inner exception (till now there was SchemaParseException inside SchemaParseException, I can change to SchemaParseException the contains AvroException), I can remove this kinda ugly code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with the change to AvroException (however not the message if possible). I dont think an inner exception of SchemaParse Exception makes too much difference, it can be just a asimple AvroException.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, changed to AvroException (only the inner exception). Not sure how to add the release note :-)
| map.Add(name, field); | ||
| } | ||
|
|
||
| private static void addToFieldMap(Dictionary<string, Field> map, string name, Field field) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is addParsedFieldToFieldMap needed? It seems identical to addToFieldMap. Can we just keep addToFieldMap as is ans use it instead of addParsedFieldToFieldMap?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it just a workaround to change the exception type? If yes I would change the exception to the new type and call it out. This seems to me more confusing :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, tried to keep it backward compatible. And it's actually just the inner exception (I can RecordSchema.NewInstance to throw SchemaParseException anyway). Is that OK to break compatibility of inner exception?
What do you mean by "call it out"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With the call out I meant to make a release note that `in case of duplicate record field, AVroExc eption, or whatever exceptionn is thrown instead SchemaParseException.
I would have only one addToFieldMap method, and change the exception type to something more meaningful if SchemaParseException is not really correct (and create the release note). Or keep the original addToFieldMap as is. I just dont really see theadvantage of having addParsedFieldToFieldMap.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| int i = 0; | ||
| foreach (var symbol in symbols) | ||
| { | ||
| if (symbolMap.ContainsKey(symbol)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are null or empty strings allowed as a symbol? Should it throw ArgumentException if string.IsNullOrEmpty(symbol)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ArgumentException or AvroException? The convention everywhere in the code is to throw AvroException even in cases that ArgumentException seems more appropriate.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AvroException makes sense. Is there any other criteria for a symbol name? Maybe add a ValidateSymbol(string symbol) which checks a symbol and throws the exception? As a first implementation it is a simple string.IsNullOrEmpty()?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, just seen in spec that "Every symbol must match the regular expression [A-Za-z_][A-Za-z0-9_]*"
So added the regex to the name verification.
| { | ||
| Assert.Throws<AvroException>(() => EnumSchema.Create("name", new[] { "A", "B" }, defaultSymbol: "C")); | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add unit tests for invalid symbols if there is any. e.g. null, "", " " ...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| Assert.AreEqual(10, fixedSchema.Size); | ||
| Assert.AreEqual(s, fixedSchema.ToString()); | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should MapSchema.Create(...) tested as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just noticed there already is a CreateMap in MapSchema type. So I will remove the create. It's not consistent with other schema types (which has Create). But writing the type each time seems redundant, so leaving them "Create" (Seems like MapSchema is not consistent in other areas, like exception types). What do you think?
Anyway, tests added
| /// <param name="cutsomProperties">Dictionary that provides access to custom properties</param> | ||
| /// <returns>A new <see cref="MapSchema"/>.</returns> | ||
| public static MapSchema CreateMap(Schema type) | ||
| public static MapSchema CreateMap(Schema type, PropertyMap cutsomProperties = null) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix spelling plz
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
| return symbolMap; | ||
| } | ||
|
|
||
| private static bool ValidateSymbolName(string symbol) => string.IsNullOrEmpty(symbol) || !Regex.IsMatch(symbol, "^([A-Za-z_][A-Za-z0-9_]*)$"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I always have perfromance concerns when we use Regex. I know that JsonHelper.GetRequiredString(), however is that a concern here? What I am thinking is that when someone is using a schemaBuilder in runtime, this call might be called many times? I might be just too paranoid here. In a unit test I have no concern, however in the main library, it might cause unnecessary delay for a simple check. Of course if the name might be more complicated in the future, regex is probably the easiest/best solution.
IMO ValidateSymbol should throw the exception if not valid, something like this:
private static void ValidateSymbolName(string symbol)
{
if (string.IsNullOrEmpty(symbol) || !Regex.IsMatch(symbol, "^([A-Za-z_][A-Za-z0-9_]*)$"))
{
throw new AvroException($"Invalid symbol name: {symbol}");
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validate that returns bool. Don't know what I was thinking. Fixed.
Yeah, Regex is not really good at performance (I don't like the readability either), but since it's a new feature (the parsing code doesn't use this validation) so we are not degrading performance, and since my guess that usually schemas are not created in a tight loop (usually created once and reused), it should be ok. It can be fixed if it does prove to be a problem.
| public static MapSchema CreateMap(Schema type, PropertyMap custsomProperties = null) | ||
| { | ||
| return new MapSchema(type, cutsomProperties); | ||
| return new MapSchema(type, custsomProperties); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix the fix plz ;)
|
@yanivru Plz review the CodeQL warnings or suggestions and I think it is ready to be approved. Thanks for all the changes! |
|
@zcsizmadia I think I fixed all CodeQL issues |
…#1597) * AVRO-2211: Support schema creation * Add license info to new files * Fix documentation for FixedSchema ctor * Remove and sort using * Add missing brackets and replace var with explicit type * Fix exception type in case of parsing * Rename field to follow conventions * AVRO 2211: Inlining temporary variable in linq * AVRO-2211: Change exception type and add missing documentations * AVRO-2211: Fix RecordSchema to set the positions of it's fields, instead of verifying it * AVRO-2211: Fix RecordSchema fields assignment when creation new RecordSchema * AVRO-2211: Change constructors of schema classes to factory method * AVRO-2211: Add unit tests for RecordSchema and EnumSchema * :AVRO-2211: Remove whitespace * :AVRO-2211: Add symbol names verification for EnumSchema * AVRO-2211: Fix enum name validation * AVRO-2211: Throw AvroException consistently * AVRO-2211: Throw AvroException in RecrodSchema consistently * AVRO-2211: Remove duplicate factory methods on MapSchema * AVRO-2211: Remove redundant parameter doc * AVRO-2211: Add Schema creation tests * AVRO-2211: Change ValidateSymbol to throw exception * AVRO-2211: Fix typo * AVRO-2211: Fix code QL issues * AVRO-2211: Fix typo Co-authored-by: Martin Grigorov <[email protected]> (cherry picked from commit 1c84472)
|
Thank you, @yanivru ! |
…apache#1597) * AVRO-2211: Support schema creation * Add license info to new files * Fix documentation for FixedSchema ctor * Remove and sort using * Add missing brackets and replace var with explicit type * Fix exception type in case of parsing * Rename field to follow conventions * AVRO 2211: Inlining temporary variable in linq * AVRO-2211: Change exception type and add missing documentations * AVRO-2211: Fix RecordSchema to set the positions of it's fields, instead of verifying it * AVRO-2211: Fix RecordSchema fields assignment when creation new RecordSchema * AVRO-2211: Change constructors of schema classes to factory method * AVRO-2211: Add unit tests for RecordSchema and EnumSchema * :AVRO-2211: Remove whitespace * :AVRO-2211: Add symbol names verification for EnumSchema * AVRO-2211: Fix enum name validation * AVRO-2211: Throw AvroException consistently * AVRO-2211: Throw AvroException in RecrodSchema consistently * AVRO-2211: Remove duplicate factory methods on MapSchema * AVRO-2211: Remove redundant parameter doc * AVRO-2211: Add Schema creation tests * AVRO-2211: Change ValidateSymbol to throw exception * AVRO-2211: Fix typo * AVRO-2211: Fix code QL issues * AVRO-2211: Fix typo Co-authored-by: Martin Grigorov <[email protected]>
* Encoer v1 with interop data * unit tested * fmt * Interop tested * uneed file * remove bugs * clippy * fix README * rat fix * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * PR changes * static setup * Specific rename and interop test in script * typo * AVRO-3492: Add support for deriving Schema::Record aliases (#1647) * AVRO-3492: Add support for deriving Schema::Record aliases Uses Darling's 'multiple' attribute feature. Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3492: Add a test case with multiple attributes with different values for 'alias' key Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3494: Rust: uncomment some tests which actually pass Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3494: Uncomment a test for recursive types (#1648) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3492: Add logic to derive the aliases for Schema::Enum (#1649) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3415: Add code coverage report support for csharp (#1565) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3415 Add code coverage report support for csharp * Ignore Updates and package references * Updated names * Sorted packages alphabetically * Mode ReportGenerator instructions for global. * Update versions.props * Remove path * Updated tabbing * Cleanup version.props * Add missing settings from version.props * Updated from tabs to 2 space indents * Added command in code block * Fix carriage return * force carriage return * Another carriage return * Added longer path to report Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3384: Define C# Coding Style Guidelines (#1534) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3384 Initial check in * Formatting fix * Additional formatting * More formatting * Added additional rule * Completed new line rules * Indentation preferences complete * Updated header * Additional formatting * More formatting changes * Added spacing options * Updated wrap options * Additional documentation for styling * Updated notes * Updated more * Added var preferences and Expression-bodied member preferences * Initial styling rules documented * Updated naming rules to reflect Roslyn naming rules * Added other styling rule callouts. * Updated Readme * Updated rule * Add header template * Microsoft has a bug for semicolon which makes this not work. * Added license * Added note about IDE0055 Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3424: Added support to parse string into Schema.Type (#1571) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3424 Created extension method for converting string into a Schema.Type enumeration * Updated functionality * Removed breaking code * Updated remove quotes * Removed if from tests Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3003: Fully qualify enum default value in C# code gen (#1596) * AVRO-3458: Added tests for GenericRecord (#1606) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3458 Added tests for GenericRecord * Moved Schema to const * using discard * Empty * Add license Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-2883: Fix namespace mapping (#1610) * Remove unused package references * Replace namespace in text schema * Remove namespace mapping * Add unit tests * Match namespace mapping used in ticket * Make ReplaceMappedNamespacesInSchema private * Mark NamespaceMapping obsolete Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-2211: SchemaBuilder equivalent or other means of schema creation (#1597) * AVRO-2211: Support schema creation * Add license info to new files * Fix documentation for FixedSchema ctor * Remove and sort using * Add missing brackets and replace var with explicit type * Fix exception type in case of parsing * Rename field to follow conventions * AVRO 2211: Inlining temporary variable in linq * AVRO-2211: Change exception type and add missing documentations * AVRO-2211: Fix RecordSchema to set the positions of it's fields, instead of verifying it * AVRO-2211: Fix RecordSchema fields assignment when creation new RecordSchema * AVRO-2211: Change constructors of schema classes to factory method * AVRO-2211: Add unit tests for RecordSchema and EnumSchema * :AVRO-2211: Remove whitespace * :AVRO-2211: Add symbol names verification for EnumSchema * AVRO-2211: Fix enum name validation * AVRO-2211: Throw AvroException consistently * AVRO-2211: Throw AvroException in RecrodSchema consistently * AVRO-2211: Remove duplicate factory methods on MapSchema * AVRO-2211: Remove redundant parameter doc * AVRO-2211: Add Schema creation tests * AVRO-2211: Change ValidateSymbol to throw exception * AVRO-2211: Fix typo * AVRO-2211: Fix code QL issues * AVRO-2211: Fix typo Co-authored-by: Martin Grigorov <[email protected]> * AVRO-3841: Try exact schema match first in union type (#1635) * Try exact schema match * Fix formatting * Add tests for exception Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3495: Rust: Fields order should not matter (#1650) * AVRO-3495: The order of the struct's fields and schema's fields should not matter Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3495: Use the lookup table when comparing values against fields by name Until now it was expected that both the schema fields and the input values are sorted the same way. Use BTreeMap instead of HashMap for the lookup table because otherwise the assertion on the validation error messages is impossible due to random printing of the map's entries Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3495: Update the test case Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Bump slf4j.version from 1.7.33 to 1.7.36 in /lang/java (#1646) Bumps `slf4j.version` from 1.7.33 to 1.7.36. Updates `slf4j-api` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) Updates `slf4j-simple` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) Updates `slf4j-log4j12` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-simple dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-log4j12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3491 Avoid a cast after is check (#1645) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3491 Avoid a cast after is check Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3496: Rust: Use visitor.visit_borrowed_str() when possible (#1652) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3477: Add unit tests for logical types with fixed base type (#1629) * Support fixed base type for logical types * Tweak * Revert * Fix fixed type definition * Add AvroGen tests Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3465: Add avrogen protocol tests (#1616) * Add avrogen protocol tests * Add protocol test case * Fix merge conflicts Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3484: Add support for deriving a default value for a record field (#1651) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3497 Simplify conditional expression (#1658) * AVRO-3497 Simplify conditional expression * Added null check back * Updated tests * AVRO-3500: Use property-based testing for the IT tests in avro_derive module (#1659) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Configure Dependabot to check for Rust updates daily Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3501: Rust: Cache ~/.cargo and target folder for faster builds (#1661) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Avro 3502 logical type wrong order (#1664) * AVRO-3501: Rust: Cache ~/.cargo and target folder for faster builds Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3502: Rust: Wrong [ORDER] for Parsing Canonical Form Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Update uuid requirement from 0.8.2 to 1.0.0 in /lang/rust (#1660) * Update uuid requirement from 0.8.2 to 1.0.0 in /lang/rust Updates the requirements on [uuid](https://github.com/uuid-rs/uuid) to permit the latest version. - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](uuid-rs/uuid@0.8.2...1.0.0) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * Issue #1660 - Fix compilation errors after updating uuid crate from 0.8 to 1.0 Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Tzvetanov Grigorov <[email protected]> * Bump jmh.version from 1.34 to 1.35 in /lang/java (#1662) Bumps `jmh.version` from 1.34 to 1.35. Updates `jmh-core` from 1.34 to 1.35 Updates `jmh-generator-annprocess` from 1.34 to 1.35 --- updated-dependencies: - dependency-name: org.openjdk.jmh:jmh-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.openjdk.jmh:jmh-generator-annprocess dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump zstd-jni from 1.5.1-1 to 1.5.2-2 in /lang/java (#1663) Bumps [zstd-jni](https://github.com/luben/zstd-jni) from 1.5.1-1 to 1.5.2-2. - [Release notes](https://github.com/luben/zstd-jni/releases) - [Commits](luben/zstd-jni@v1.5.1-1...v1.5.2-2) --- updated-dependencies: - dependency-name: com.github.luben:zstd-jni dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump libthrift from 0.15.0 to 0.16.0 in /lang/java (#1665) Bumps [libthrift](https://github.com/apache/thrift) from 0.15.0 to 0.16.0. - [Release notes](https://github.com/apache/thrift/releases) - [Changelog](https://github.com/apache/thrift/blob/master/CHANGES.md) - [Commits](apache/thrift@v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: org.apache.thrift:libthrift dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3498 Deprecate NameCtorKey (#1657) * AVRO-3490 Updated to use throw expressions (#1644) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3490 Updated to use throw expressions * Additional expressions Co-authored-by: Kyle T. Schoonover <[email protected]> * Bump grpc.version from 1.45.0 to 1.45.1 in /lang/java (#1671) Bumps `grpc.version` from 1.45.0 to 1.45.1. Updates `grpc-core` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) Updates `grpc-stub` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) Updates `grpc-netty` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) --- updated-dependencies: - dependency-name: io.grpc:grpc-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.grpc:grpc-netty dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump underscore from 1.13.2 to 1.13.3 in /lang/js (#1669) Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.2 to 1.13.3. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](jashkenas/underscore@1.13.2...1.13.3) --- updated-dependencies: - dependency-name: underscore dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3484: Followup Check default json parsing at compile time for derive macro (#1668) * check json parsing at compile time * fmt * AVRO-3427: skip creation of namespace directories for csharp schema (#1578) * Add new argument parameter --skip-directories. It will skip creation of directories for namespace. Just generate classes in output directory * Add missing doc param description * Fix Unit tests after merge with master * Fix Unit tests after merge with master * C# Add unit tests for --skip-directories option Co-authored-by: Pawel Kordowski <[email protected]> * AVRO-3482: Reuse MAGIC in DataFileReader (#1639) DataFileReader reads magic information twice. seek(0) is invoked twice due to this. In cloud object stores, seeking back to 0 will cause it to fall back to "random IO policy". Example of this is S3A connector for s3. This causes suboptimal reads in object stores. Refactoring in the patch addresses this case by reusing MAGIC. * AVRO-2870: Avoid throwing from destructor in DataFileWriterBase (#921) Co-authored-by: Thiruvalluvan M G <[email protected]> * Updated the checksum for PHP composer download (#1677) * Remove trailing ^M to make Git happy Related to: 72e1135 Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Encoer v1 with interop data * unit tested * fmt * AVRO-3506: Cleanup and minor improvements Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Cleanup Give a better name to TestGenerateInteropSingleObjectEncoding Remove useless lifetime in schema.rs Remove .json files for the single object encoded test file Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Add licence header to TestGenerateInteropSingleObjectEncoding Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix spotless issues in the new Java test classes Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix the path to the schema file Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix the id to match the expected value Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix spotless again Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: Martin Grigorov <[email protected]> Co-authored-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: Kyle Schoonover <[email protected]> Co-authored-by: Kyle T. Schoonover <[email protected]> Co-authored-by: Jose Massada <[email protected]> Co-authored-by: Zoltan Csizmadia <[email protected]> Co-authored-by: Zoltan Csizmadia <[email protected]> Co-authored-by: yanivru <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kordos <[email protected]> Co-authored-by: Pawel Kordowski <[email protected]> Co-authored-by: rbalamohan <[email protected]> Co-authored-by: Andrew Onyshchuk <[email protected]> Co-authored-by: Thiruvalluvan M G <[email protected]>
* Encoer v1 with interop data * unit tested * fmt * Interop tested * uneed file * remove bugs * clippy * fix README * rat fix * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * Update lang/rust/avro/src/writer.rs Co-authored-by: Martin Grigorov <[email protected]> * PR changes * static setup * Specific rename and interop test in script * typo * AVRO-3492: Add support for deriving Schema::Record aliases (#1647) * AVRO-3492: Add support for deriving Schema::Record aliases Uses Darling's 'multiple' attribute feature. Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3492: Add a test case with multiple attributes with different values for 'alias' key Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3494: Rust: uncomment some tests which actually pass Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3494: Uncomment a test for recursive types (#1648) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3492: Add logic to derive the aliases for Schema::Enum (#1649) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3415: Add code coverage report support for csharp (#1565) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3415 Add code coverage report support for csharp * Ignore Updates and package references * Updated names * Sorted packages alphabetically * Mode ReportGenerator instructions for global. * Update versions.props * Remove path * Updated tabbing * Cleanup version.props * Add missing settings from version.props * Updated from tabs to 2 space indents * Added command in code block * Fix carriage return * force carriage return * Another carriage return * Added longer path to report Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3384: Define C# Coding Style Guidelines (#1534) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3384 Initial check in * Formatting fix * Additional formatting * More formatting * Added additional rule * Completed new line rules * Indentation preferences complete * Updated header * Additional formatting * More formatting changes * Added spacing options * Updated wrap options * Additional documentation for styling * Updated notes * Updated more * Added var preferences and Expression-bodied member preferences * Initial styling rules documented * Updated naming rules to reflect Roslyn naming rules * Added other styling rule callouts. * Updated Readme * Updated rule * Add header template * Microsoft has a bug for semicolon which makes this not work. * Added license * Added note about IDE0055 Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3424: Added support to parse string into Schema.Type (#1571) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3424 Created extension method for converting string into a Schema.Type enumeration * Updated functionality * Removed breaking code * Updated remove quotes * Removed if from tests Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3003: Fully qualify enum default value in C# code gen (#1596) * AVRO-3458: Added tests for GenericRecord (#1606) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3458 Added tests for GenericRecord * Moved Schema to const * using discard * Empty * Add license Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-2883: Fix namespace mapping (#1610) * Remove unused package references * Replace namespace in text schema * Remove namespace mapping * Add unit tests * Match namespace mapping used in ticket * Make ReplaceMappedNamespacesInSchema private * Mark NamespaceMapping obsolete Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-2211: SchemaBuilder equivalent or other means of schema creation (#1597) * AVRO-2211: Support schema creation * Add license info to new files * Fix documentation for FixedSchema ctor * Remove and sort using * Add missing brackets and replace var with explicit type * Fix exception type in case of parsing * Rename field to follow conventions * AVRO 2211: Inlining temporary variable in linq * AVRO-2211: Change exception type and add missing documentations * AVRO-2211: Fix RecordSchema to set the positions of it's fields, instead of verifying it * AVRO-2211: Fix RecordSchema fields assignment when creation new RecordSchema * AVRO-2211: Change constructors of schema classes to factory method * AVRO-2211: Add unit tests for RecordSchema and EnumSchema * :AVRO-2211: Remove whitespace * :AVRO-2211: Add symbol names verification for EnumSchema * AVRO-2211: Fix enum name validation * AVRO-2211: Throw AvroException consistently * AVRO-2211: Throw AvroException in RecrodSchema consistently * AVRO-2211: Remove duplicate factory methods on MapSchema * AVRO-2211: Remove redundant parameter doc * AVRO-2211: Add Schema creation tests * AVRO-2211: Change ValidateSymbol to throw exception * AVRO-2211: Fix typo * AVRO-2211: Fix code QL issues * AVRO-2211: Fix typo Co-authored-by: Martin Grigorov <[email protected]> * AVRO-3841: Try exact schema match first in union type (#1635) * Try exact schema match * Fix formatting * Add tests for exception Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3495: Rust: Fields order should not matter (#1650) * AVRO-3495: The order of the struct's fields and schema's fields should not matter Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3495: Use the lookup table when comparing values against fields by name Until now it was expected that both the schema fields and the input values are sorted the same way. Use BTreeMap instead of HashMap for the lookup table because otherwise the assertion on the validation error messages is impossible due to random printing of the map's entries Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3495: Update the test case Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Bump slf4j.version from 1.7.33 to 1.7.36 in /lang/java (#1646) Bumps `slf4j.version` from 1.7.33 to 1.7.36. Updates `slf4j-api` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) Updates `slf4j-simple` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) Updates `slf4j-log4j12` from 1.7.33 to 1.7.36 - [Release notes](https://github.com/qos-ch/slf4j/releases) - [Commits](qos-ch/slf4j@v_1.7.33...v_1.7.36) --- updated-dependencies: - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-simple dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-log4j12 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3491 Avoid a cast after is check (#1645) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3491 Avoid a cast after is check Co-authored-by: Kyle T. Schoonover <[email protected]> * AVRO-3496: Rust: Use visitor.visit_borrowed_str() when possible (#1652) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3477: Add unit tests for logical types with fixed base type (#1629) * Support fixed base type for logical types * Tweak * Revert * Fix fixed type definition * Add AvroGen tests Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3465: Add avrogen protocol tests (#1616) * Add avrogen protocol tests * Add protocol test case * Fix merge conflicts Co-authored-by: Zoltan Csizmadia <[email protected]> * AVRO-3484: Add support for deriving a default value for a record field (#1651) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3497 Simplify conditional expression (#1658) * AVRO-3497 Simplify conditional expression * Added null check back * Updated tests * AVRO-3500: Use property-based testing for the IT tests in avro_derive module (#1659) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Configure Dependabot to check for Rust updates daily Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3501: Rust: Cache ~/.cargo and target folder for faster builds (#1661) Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Avro 3502 logical type wrong order (#1664) * AVRO-3501: Rust: Cache ~/.cargo and target folder for faster builds Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3502: Rust: Wrong [ORDER] for Parsing Canonical Form Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Update uuid requirement from 0.8.2 to 1.0.0 in /lang/rust (#1660) * Update uuid requirement from 0.8.2 to 1.0.0 in /lang/rust Updates the requirements on [uuid](https://github.com/uuid-rs/uuid) to permit the latest version. - [Release notes](https://github.com/uuid-rs/uuid/releases) - [Commits](uuid-rs/uuid@0.8.2...1.0.0) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> * Issue #1660 - Fix compilation errors after updating uuid crate from 0.8 to 1.0 Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Martin Tzvetanov Grigorov <[email protected]> * Bump jmh.version from 1.34 to 1.35 in /lang/java (#1662) Bumps `jmh.version` from 1.34 to 1.35. Updates `jmh-core` from 1.34 to 1.35 Updates `jmh-generator-annprocess` from 1.34 to 1.35 --- updated-dependencies: - dependency-name: org.openjdk.jmh:jmh-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.openjdk.jmh:jmh-generator-annprocess dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump zstd-jni from 1.5.1-1 to 1.5.2-2 in /lang/java (#1663) Bumps [zstd-jni](https://github.com/luben/zstd-jni) from 1.5.1-1 to 1.5.2-2. - [Release notes](https://github.com/luben/zstd-jni/releases) - [Commits](luben/zstd-jni@v1.5.1-1...v1.5.2-2) --- updated-dependencies: - dependency-name: com.github.luben:zstd-jni dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump libthrift from 0.15.0 to 0.16.0 in /lang/java (#1665) Bumps [libthrift](https://github.com/apache/thrift) from 0.15.0 to 0.16.0. - [Release notes](https://github.com/apache/thrift/releases) - [Changelog](https://github.com/apache/thrift/blob/master/CHANGES.md) - [Commits](apache/thrift@v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: org.apache.thrift:libthrift dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3498 Deprecate NameCtorKey (#1657) * AVRO-3490 Updated to use throw expressions (#1644) * AVRO-3360 Updated XML documentation * Revert "AVRO-3360 Updated XML documentation" This reverts commit b8601c0. * AVRO-3490 Updated to use throw expressions * Additional expressions Co-authored-by: Kyle T. Schoonover <[email protected]> * Bump grpc.version from 1.45.0 to 1.45.1 in /lang/java (#1671) Bumps `grpc.version` from 1.45.0 to 1.45.1. Updates `grpc-core` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) Updates `grpc-stub` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) Updates `grpc-netty` from 1.45.0 to 1.45.1 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](grpc/grpc-java@v1.45.0...v1.45.1) --- updated-dependencies: - dependency-name: io.grpc:grpc-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.grpc:grpc-netty dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump underscore from 1.13.2 to 1.13.3 in /lang/js (#1669) Bumps [underscore](https://github.com/jashkenas/underscore) from 1.13.2 to 1.13.3. - [Release notes](https://github.com/jashkenas/underscore/releases) - [Commits](jashkenas/underscore@1.13.2...1.13.3) --- updated-dependencies: - dependency-name: underscore dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * AVRO-3484: Followup Check default json parsing at compile time for derive macro (#1668) * check json parsing at compile time * fmt * AVRO-3427: skip creation of namespace directories for csharp schema (#1578) * Add new argument parameter --skip-directories. It will skip creation of directories for namespace. Just generate classes in output directory * Add missing doc param description * Fix Unit tests after merge with master * Fix Unit tests after merge with master * C# Add unit tests for --skip-directories option Co-authored-by: Pawel Kordowski <[email protected]> * AVRO-3482: Reuse MAGIC in DataFileReader (#1639) DataFileReader reads magic information twice. seek(0) is invoked twice due to this. In cloud object stores, seeking back to 0 will cause it to fall back to "random IO policy". Example of this is S3A connector for s3. This causes suboptimal reads in object stores. Refactoring in the patch addresses this case by reusing MAGIC. * AVRO-2870: Avoid throwing from destructor in DataFileWriterBase (#921) Co-authored-by: Thiruvalluvan M G <[email protected]> * Updated the checksum for PHP composer download (#1677) * Remove trailing ^M to make Git happy Related to: 72e1135 Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * Encoer v1 with interop data * unit tested * fmt * AVRO-3506: Cleanup and minor improvements Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Cleanup Give a better name to TestGenerateInteropSingleObjectEncoding Remove useless lifetime in schema.rs Remove .json files for the single object encoded test file Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Add licence header to TestGenerateInteropSingleObjectEncoding Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix spotless issues in the new Java test classes Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix the path to the schema file Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix the id to match the expected value Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> * AVRO-3506: Fix spotless again Signed-off-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: Martin Grigorov <[email protected]> Co-authored-by: Martin Tzvetanov Grigorov <[email protected]> Co-authored-by: Kyle Schoonover <[email protected]> Co-authored-by: Kyle T. Schoonover <[email protected]> Co-authored-by: Jose Massada <[email protected]> Co-authored-by: Zoltan Csizmadia <[email protected]> Co-authored-by: Zoltan Csizmadia <[email protected]> Co-authored-by: yanivru <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kordos <[email protected]> Co-authored-by: Pawel Kordowski <[email protected]> Co-authored-by: rbalamohan <[email protected]> Co-authored-by: Andrew Onyshchuk <[email protected]> Co-authored-by: Thiruvalluvan M G <[email protected]> (cherry picked from commit 7ba9447)
Make sure you have checked all steps below.
Jira
My PR addresses the following Avro Jira
Tests
Commits
My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":
Documentation
In case of new functionality, my PR adds documentation that describes how to use it.