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 or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: apache/avro
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: release-1.11.2
Choose a base ref
...
head repository: apache/avro
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: release-1.11.3
Choose a head ref
Loading
Showing with 9,442 additions and 965 deletions.
  1. +1 −1 .github/workflows/codeql-csharp-analysis.yml
  2. +1 −1 .github/workflows/codeql-java-analysis.yml
  3. +1 −1 .github/workflows/codeql-js-analysis.yml
  4. +1 −1 .github/workflows/codeql-py-analysis.yml
  5. +62 −0 .github/workflows/java-publish-snapshot.yml
  6. +1 −1 .github/workflows/maven4.yml
  7. +1 −1 .github/workflows/rat.yml
  8. +1 −1 .github/workflows/spotless.yml
  9. +1 −1 .github/workflows/test-lang-c++.yml
  10. +2 −2 .github/workflows/test-lang-c.yml
  11. +2 −2 .github/workflows/test-lang-csharp.yml
  12. +2 −2 .github/workflows/test-lang-java.yml
  13. +2 −2 .github/workflows/test-lang-js.yml
  14. +2 −2 .github/workflows/test-lang-perl.yml
  15. +5 −5 .github/workflows/test-lang-php.yml
  16. +2 −2 .github/workflows/test-lang-py.yml
  17. +2 −2 .github/workflows/test-lang-ruby.yml
  18. +7 −7 .github/workflows/test-lang-rust-audit.yml
  19. +23 −38 .github/workflows/test-lang-rust-ci.yml
  20. +15 −8 .github/workflows/test-lang-rust-clippy.yml
  21. +2 −2 BUILD.md
  22. +5 −0 doc/README.md
  23. +4 −5 doc/content/en/docs/++version++/Specification/_index.md
  24. +29 −0 doc/content/en/docs/++version++/api-py.md
  25. +4 −4 doc/examples/java-example/pom.xml
  26. +4 −4 doc/examples/mr-example/pom.xml
  27. +1 −1 lang/java/android/pom.xml
  28. +1 −1 lang/java/archetypes/avro-service-archetype/pom.xml
  29. +1 −1 lang/java/archetypes/pom.xml
  30. +1 −1 lang/java/avro/pom.xml
  31. +26 −17 lang/java/avro/src/main/java/org/apache/avro/Protocol.java
  32. +1 −2 lang/java/avro/src/main/java/org/apache/avro/Schema.java
  33. +190 −0 lang/java/avro/src/main/java/org/apache/avro/SystemLimitException.java
  34. +14 −16 lang/java/avro/src/main/java/org/apache/avro/generic/GenericData.java
  35. +22 −52 lang/java/avro/src/main/java/org/apache/avro/io/BinaryDecoder.java
  36. +4 −20 lang/java/avro/src/main/java/org/apache/avro/io/DirectBinaryDecoder.java
  37. +6 −27 lang/java/avro/src/main/java/org/apache/avro/util/Utf8.java
  38. +121 −0 lang/java/avro/src/main/java/org/apache/avro/util/springframework/Assert.java
  39. +1,111 −0 lang/java/avro/src/main/java/org/apache/avro/util/springframework/ConcurrentReferenceHashMap.java
  40. +320 −0 lang/java/avro/src/main/java/org/apache/avro/util/springframework/ObjectUtils.java
  41. +18 −5 lang/java/avro/src/test/java/org/apache/avro/TestFixed.java
  42. +19 −4 lang/java/avro/src/test/java/org/apache/avro/TestProtocol.java
  43. +10 −5 lang/java/avro/src/test/java/org/apache/avro/TestReadingWritingDataInEvolvedSchemas.java
  44. +164 −0 lang/java/avro/src/test/java/org/apache/avro/TestSystemLimitException.java
  45. +125 −26 lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
  46. +382 −211 lang/java/avro/src/test/java/org/apache/avro/io/TestBinaryDecoder.java
  47. +24 −4 lang/java/avro/src/test/java/org/apache/avro/util/TestUtf8.java
  48. +44 −0 lang/java/avro/src/test/java/org/apache/avro/util/springframework/ComparableComparator.java
  49. +132 −0 lang/java/avro/src/test/java/org/apache/avro/util/springframework/NullSafeComparator.java
  50. +415 −0 lang/java/avro/src/test/java/org/apache/avro/util/springframework/StopWatch.java
  51. +688 −0 .../java/avro/src/test/java/org/apache/avro/util/springframework/TestConcurrentReferenceHashMap.java
  52. +2 −1 lang/java/compiler/pom.xml
  53. +4 −2 lang/java/compiler/src/main/java/org/apache/avro/compiler/specific/SpecificCompiler.java
  54. +2 −1 lang/java/compiler/src/test/idl/input/bar.avpr
  55. +9 −1 lang/java/compiler/src/test/idl/output/import.avpr
  56. +10 −1 lang/java/compiler/src/test/idl/output/nestedimport.avpr
  57. +26 −0 lang/java/compiler/src/test/java/org/apache/avro/specific/TestGeneratedCode.java
  58. +22 −0 lang/java/compiler/src/test/resources/regression_error_field_in_record.avsc
  59. +1 −1 lang/java/grpc/pom.xml
  60. +1 −1 lang/java/integration-test/codegen-test/pom.xml
  61. +1 −1 lang/java/integration-test/pom.xml
  62. +1 −1 lang/java/integration-test/test-custom-conversions/pom.xml
  63. +1 −1 lang/java/ipc-jetty/pom.xml
  64. +1 −1 lang/java/ipc-netty/pom.xml
  65. +1 −1 lang/java/ipc/pom.xml
  66. +1 −1 lang/java/mapred/pom.xml
  67. +1 −1 lang/java/maven-plugin/pom.xml
  68. +10 −0 lang/java/maven-plugin/src/main/java/org/apache/avro/mojo/AbstractAvroMojo.java
  69. +25 −0 lang/java/maven-plugin/src/test/java/org/apache/avro/mojo/TestSchemaMojo.java
  70. +1 −1 lang/java/maven-plugin/src/test/resources/unit/idl/pom-injecting-velocity-tools.xml
  71. +1 −1 lang/java/maven-plugin/src/test/resources/unit/idl/pom.xml
  72. +1 −1 lang/java/maven-plugin/src/test/resources/unit/protocol/pom-injecting-velocity-tools.xml
  73. +1 −1 lang/java/maven-plugin/src/test/resources/unit/protocol/pom.xml
  74. +69 −0 lang/java/maven-plugin/src/test/resources/unit/schema/pom-nonexistent-file.xml
  75. +70 −0 lang/java/maven-plugin/src/test/resources/unit/schema/pom-nonexistent-second-file.xml
  76. +1 −1 lang/java/maven-plugin/src/test/resources/unit/schema/pom.xml
  77. +2 −2 lang/java/perf/pom.xml
  78. +9 −9 lang/java/pom.xml
  79. +1 −1 lang/java/protobuf/pom.xml
  80. +1 −1 lang/java/thrift/pom.xml
  81. +1 −1 lang/java/tools/pom.xml
  82. +1 −1 lang/java/trevni/avro/pom.xml
  83. +1 −1 lang/java/trevni/core/pom.xml
  84. +1 −1 lang/java/trevni/doc/pom.xml
  85. +1 −1 lang/java/trevni/pom.xml
  86. +1 −0 lang/js/.gitignore
  87. +1 −1 lang/js/package-lock.json
  88. +1 −1 lang/js/package.json
  89. +4 −0 lang/py/avro/errors.py
  90. +80 −1 lang/py/avro/schema.py
  91. +244 −0 lang/py/avro/test/test_schema.py
  92. +10 −0 lang/py/build.sh
  93. +35 −0 lang/py/docs/Makefile
  94. +50 −0 lang/py/docs/make.bat
  95. 0 lang/py/docs/source/_static/.gitignore
  96. +54 −0 lang/py/docs/source/automodule.rst
  97. +47 −0 lang/py/docs/source/conf.py
  98. +31 −0 lang/py/docs/source/index.rst
  99. +29 −0 lang/py/docs/source/intro.rst
  100. +9 −0 lang/py/tox.ini
  101. +4 −2 lang/ruby/lib/avro/schema.rb
  102. +2 −0 lang/ruby/test/test_schema.rb
  103. +19 −0 lang/rust/.cargo-rdme.toml
  104. +470 −169 lang/rust/Cargo.lock
  105. +18 −0 lang/rust/Cargo.toml
  106. +1 −1 lang/rust/Makefile
  107. +27 −28 lang/rust/avro/Cargo.toml
  108. +22 −12 lang/rust/avro/README.md
  109. +8 −7 lang/rust/avro/src/codec.rs
  110. +52 −2 lang/rust/avro/src/de.rs
  111. +2 −0 lang/rust/avro/src/decode.rs
  112. +27 −37 lang/rust/avro/src/duration.rs
  113. +22 −14 lang/rust/avro/src/encode.rs
  114. +37 −3 lang/rust/avro/src/error.rs
  115. +45 −2 lang/rust/avro/src/lib.rs
  116. +10 −9 lang/rust/avro/src/rabin.rs
  117. +1 −1 lang/rust/avro/src/reader.rs
  118. +1,147 −62 lang/rust/avro/src/schema.rs
  119. +2 −2 lang/rust/avro/src/schema_compatibility.rs
  120. +6 −3 lang/rust/avro/src/ser.rs
  121. +155 −21 lang/rust/avro/src/types.rs
  122. +1 −1 lang/rust/avro/src/writer.rs
  123. +886 −0 lang/rust/avro/tests/avro-3786.rs
  124. +279 −0 lang/rust/avro/tests/avro-3787.rs
  125. +1 −1 lang/rust/avro/tests/io.rs
  126. +1,251 −6 lang/rust/avro/tests/schema.rs
  127. +7 −5 lang/rust/avro/tests/shared.rs
  128. +14 −14 lang/rust/avro_derive/Cargo.toml
  129. +2 −5 lang/rust/avro_derive/tests/derive.rs
  130. +11 −11 lang/rust/avro_test_helper/Cargo.toml
  131. +1 −1 lang/rust/fuzz/Cargo.toml
  132. +9 −13 lang/rust/wasm-demo/Cargo.toml
  133. +2 −2 pom.xml
  134. +1 −1 share/VERSION.txt
  135. +1 −1 share/docker/Dockerfile
2 changes: 1 addition & 1 deletion .github/workflows/codeql-csharp-analysis.yml
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
2 changes: 1 addition & 1 deletion .github/workflows/codeql-java-analysis.yml
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
2 changes: 1 addition & 1 deletion .github/workflows/codeql-js-analysis.yml
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
2 changes: 1 addition & 1 deletion .github/workflows/codeql-py-analysis.yml
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
62 changes: 62 additions & 0 deletions .github/workflows/java-publish-snapshot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.

name: "Publish Snapshot to Maven"
on:
workflow_dispatch:
push:
branches: [ master ]
paths:
- .github/workflows/java-publish-snapshot.yml
- lang/java/**
- pom.xml

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

defaults:
run:
working-directory: lang/java

jobs:
publish-snapshot:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: 8

- name: Deploy Maven snapshots
env:
ASF_USERNAME: ${{ secrets.NEXUS_USER }}
ASF_PASSWORD: ${{ secrets.NEXUS_PW }}
run: |
echo "<settings><servers><server><id>apache.snapshots.https</id><username>$ASF_USERNAME</username><password>$ASF_PASSWORD</password></server></servers></settings>" > settings.xml
mvn --settings settings.xml -U -B -e -fae -ntp -DskipTests deploy
2 changes: 1 addition & 1 deletion .github/workflows/maven4.yml
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@ jobs:
maven4:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v3
2 changes: 1 addition & 1 deletion .github/workflows/rat.yml
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ jobs:
rat:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v2
2 changes: 1 addition & 1 deletion .github/workflows/spotless.yml
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@ jobs:
spotless:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v2
2 changes: 1 addition & 1 deletion .github/workflows/test-lang-c++.yml
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Install Dependencies
run: sudo apt-get install -qqy cppcheck libboost-all-dev libsnappy-dev cmake
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-c.yml
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Install Dependencies
run: sudo apt-get install -qqy libjansson-dev libsnappy-dev
@@ -76,7 +76,7 @@ jobs:
interop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Install Dependencies
run: |
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-csharp.yml
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add libzstd
shell: bash
@@ -67,7 +67,7 @@ jobs:
interop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Add libzstd
shell: bash
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-java.yml
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@ jobs:
- '18'
- '19'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v2
@@ -87,7 +87,7 @@ jobs:
- '11'
- '17'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Cache Local Maven Repository
uses: actions/cache@v2
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-js.yml
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ jobs:
- 14
- 16
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v2
with:
@@ -72,7 +72,7 @@ jobs:
- 14
- 16
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v2
with:
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-perl.yml
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ jobs:
perl:
- '5.32'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- uses: shogo82148/actions-setup-perl@v1
with:
@@ -87,7 +87,7 @@ jobs:
perl:
- '5.32'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- uses: shogo82148/actions-setup-perl@v1
with:
10 changes: 5 additions & 5 deletions .github/workflows/test-lang-php.yml
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ jobs:
- '8.0'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -53,7 +53,7 @@ jobs:

- name: Get Composer Cache Directory
id: composer-cache
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- uses: actions/cache@v2
with:
@@ -79,7 +79,7 @@ jobs:
- '8.0'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -106,7 +106,7 @@ jobs:
working-directory: lang/java/avro
run: mvn -B -P interop-data-generate generate-resources

- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
repository: kjdev/php-ext-zstd
path: lang/php/php-ext-zstd
@@ -122,7 +122,7 @@ jobs:
echo "extension=zstd.so" | sudo tee -a /etc/php/${{ matrix.php }}/cli/conf.d/10-zstd.ini
php -m
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
repository: kjdev/php-ext-snappy
path: lang/php/php-ext-snappy
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-py.yml
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@ jobs:
- 'pypy-3.6'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v2
@@ -97,7 +97,7 @@ jobs:
- 'pypy-3.6'

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v2
4 changes: 2 additions & 2 deletions .github/workflows/test-lang-ruby.yml
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ jobs:
- '3.1'
- '3.2'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
@@ -86,7 +86,7 @@ jobs:
- '3.1'
- '3.2'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- uses: ruby/setup-ruby@v1
with:
14 changes: 7 additions & 7 deletions .github/workflows/test-lang-rust-audit.yml
Original file line number Diff line number Diff line change
@@ -27,6 +27,12 @@ on:
- lang/rust/Cargo.toml
- lang/rust/Cargo.lock

permissions:
contents: read

env:
RUSTFLAGS: -Dwarnings

defaults:
run:
working-directory: lang/rust
@@ -40,13 +46,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# Currently does not work. See https://github.com/actions-rs/audit-check/issues/194
#- name: Rust Audit
# uses: actions-rs/audit-check@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# Install it manually
uses: actions/checkout@v4
- name: Dependency Review
if: github.event_name == 'pull_request'
uses: actions/dependency-review-action@v3
Loading