blob: 40b90abae0dd86db2eea6026829d97f540ea8005 [file] [log] [blame]
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.108.0"><link rel=canonical type=text/html href=/1.12.0-SNAPSHOT/project/><link rel=alternate type=application/rss+xml href=/1.12.0-SNAPSHOT/project/index.xml><meta name=robots content="noindex, nofollow"><link rel=apple-touch-icon sizes=57x57 href=https://apache.org/favicons/apple-touch-icon-57x57.png><link rel=apple-touch-icon sizes=60x60 href=https://apache.org/favicons/apple-touch-icon-60x60.png><link rel=apple-touch-icon sizes=72x72 href=https://apache.org/favicons/apple-touch-icon-72x72.png><link rel=apple-touch-icon sizes=76x76 href=https://apache.org/favicons/apple-touch-icon-76x76.png><link rel=apple-touch-icon sizes=114x114 href=https://apache.org/favicons/apple-touch-icon-114x114.png><link rel=apple-touch-icon sizes=120x120 href=https://apache.org/favicons/apple-touch-icon-120x120.png><link rel=apple-touch-icon sizes=144x144 href=https://apache.org/favicons/apple-touch-icon-144x144.png><link rel=apple-touch-icon sizes=152x152 href=https://apache.org/favicons/apple-touch-icon-152x152.png><link rel=apple-touch-icon sizes=180x180 href=https://apache.org/favicons/apple-touch-icon-180x180.png><link rel=icon type=image/png href=https://apache.org/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=https://apache.org/favicons/favicon-194x194.png sizes=194x194><link rel=icon type=image/png href=https://apache.org/favicons/favicon-96x96.png sizes=96x96><link rel=icon type=image/png href=https://apache.org/favicons/android-chrome-192x192.png sizes=192x192><link rel=icon type=image/png href=https://apache.org/favicons/favicon-16x16.png sizes=16x16><link rel=manifest href=https://apache.org/favicons/manifest.json><link rel="shortcut icon" href=https://apache.org/favicons/favicon.ico><title>Project | Apache Avro</title><meta name=description content><meta property="og:title" content="Project"><meta property="og:description" content><meta property="og:type" content="website"><meta property="og:url" content="/1.12.0-SNAPSHOT/project/"><meta property="og:site_name" content="Apache Avro"><meta itemprop=name content="Project"><meta itemprop=description content><meta name=twitter:card content="summary"><meta name=twitter:title content="Project"><meta name=twitter:description content><link rel=preload href=/1.12.0-SNAPSHOT/scss/main.min.684eb0cd22df50aecbf451c663d3d8c9ac800994b5ab5ab89fbb53a9fe09ee9d.css as=style><link href=/1.12.0-SNAPSHOT/scss/main.min.684eb0cd22df50aecbf451c663d3d8c9ac800994b5ab5ab89fbb53a9fe09ee9d.css rel=stylesheet integrity><script src=https://code.jquery.com/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=/css/prism.css></head><body class=td-section><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/1.12.0-SNAPSHOT/><span class=navbar-logo><img src=./docs/++version++/logo.svg width=100 height=30 style="margin:0 10px"></span><span class="text-uppercase font-weight-bold">Apache Avro</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class="nav-link active" href=/1.12.0-SNAPSHOT/project/><span class=active>Project</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/1.12.0-SNAPSHOT/blog/><span>Blog</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/1.12.0-SNAPSHOT/community/><span>Community</span></a></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>Documentation</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/docs/++version++/>++version++ (Current)</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.11.0/>1.11.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.10.2/>1.10.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.10.1/>1.10.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.10.0/>1.10.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.9.2/>1.9.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.9.1/>1.9.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.9.0/>1.9.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.8.2/>1.8.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.8.1/>1.8.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.8.0/>1.8.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.7/>1.7.7</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.6/>1.7.6</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.5/>1.7.5</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.4/>1.7.4</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.3/>1.7.3</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.2/>1.7.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.1/>1.7.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.7.0/>1.7.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.6.3/>1.6.3</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.6.2/>1.6.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.6.1/>1.6.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.6.0/>1.6.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.5.4/>1.5.4</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.5.3/>1.5.3</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.5.2/>1.5.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.5.1/>1.5.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.5.0/>1.5.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.4.1/>1.4.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.4.0/>1.4.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.3.3/>1.3.3</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.3.2/>1.3.2</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.3.1/>1.3.1</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.3.0/>1.3.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.2.0/>1.2.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.1.0/>1.1.0</a>
<a class=dropdown-item href=https://avro.apache.org/docs/1.0.0/>1.0.0</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>ASF links</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=http://www.apache.org/ target=_blank>ASF Web Site</a>
<a class=dropdown-item href=http://www.apache.org/licenses/ target=_blank>License</a>
<a class=dropdown-item href=http://www.apache.org/foundation/sponsorship.html target=_blank>Donate</a>
<a class=dropdown-item href=http://www.apache.org/foundation/thanks.html target=_blank>Thanks</a>
<a class=dropdown-item href=http://www.apache.org/security/ target=_blank>Security</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"></div></nav></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-xl-nowrap"><div class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"></div><div class="d-none d-xl-block col-xl-2 td-toc d-print-none"></div><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><div class=td-content><div class="pageinfo pageinfo-primary d-print-none"><p>This is the multi-page printable view of this section.
<a href=# onclick="return print(),!1">Click here to print</a>.</p><p><a href=/1.12.0-SNAPSHOT/project/>Return to the regular view of this page</a>.</p></div><h1 class=title>Project</h1><ul><li>1: <a href=#pg-012e680f6242537b069eff18d686a674>Download</a></li><ul></ul><li>2: <a href=#pg-b08f161257be4031dd69d279dafb245d>Credits</a></li><ul></ul><li>3: <a href=#pg-24675057bcd6c8b266448b2d875c1bd0>How to contribute</a></li><ul></ul><li>4: <a href=#pg-200654b0ff5d29c0f16045724bbf40cc>License</a></li><ul></ul><li>5: <a href=#pg-2b814fdab87b77e27bbe970e4d2415dd>Privacy policy</a></li><ul></ul><li>6: <a href=#pg-d7feecbc8c835017ffc6e5b4f4f6cc1c>Security</a></li><ul></ul><li>7: <a href=#pg-db9f7bea0d60535461a9ded5188e7bef>Events</a></li><ul></ul><li>8: <a href=#pg-daa926aa961e2ed947801fb956063660>Donate</a></li><ul></ul><li>9: <a href=#pg-067bedbc98e98c9cb8e5c7676e38b28e>Thanks</a></li><ul></ul></ul><div class=content><p>Apache Avro project is a member of the Apache Software Foundation!</p></div></div><div class=td-content><h1 id=pg-012e680f6242537b069eff18d686a674>1 - Download</h1><h2 id=download>Download</h2><p>Releases may be downloaded from Apache mirrors: <a href=https://www.apache.org/dyn/closer.cgi/avro/>Download</a></p><p>The latest release is: Avro ++version++ (3.4M, source, <a href=https://downloads.apache.org/avro/avro-++version++/avro-src-++version++.tar.gz.asc>pgp</a>, <a href=https://downloads.apache.org/avro/avro-++version++/avro-src-++version++.tar.gz.sha512>sha512</a>)</p><ul><li>C#: <a href=https://www.nuget.org/packages/Apache.Avro/++version++>https://www.nuget.org/packages/Apache.Avro/++version++</a></li><li>Java: from Maven Central,</li><li>Javascript: <a href=https://www.npmjs.com/package/avro-js/v/++version++>https://www.npmjs.com/package/avro-js/v/++version++</a></li><li>Perl: <a href=https://metacpan.org/release/Avro>https://metacpan.org/release/Avro</a></li><li>Python 3: <a href=https://pypi.org/project/avro/++version++>https://pypi.org/project/avro/++version++</a></li><li>Ruby: <a href=https://rubygems.org/gems/avro/versions/++version++>https://rubygems.org/gems/avro/versions/++version++</a></li></ul><h2 id=release-notes>Release Notes</h2><p>Release notes for Avro releases are available in <a href="https://issues.apache.org/jira/browse/AVRO?report=com.atlassian.jira.plugin.system.project:changelog-panel#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel">Jira</a></p><p>##Verifying a release
It is essential that you verify the integrity of the downloaded files using the PGP signatures or SHA512 checksums. Please read <a href=https://www.apache.org/info/verification.html>How to verify downloaded</a> files for more information on why you should verify our releases.</p><p>The PGP signatures can be verified using PGP or GPG. First download the <a href=https://downloads.apache.org/avro/KEYS>KEYS</a> file as well as the .asc signature files for the relevant release packages. Make sure you get these files from the main distribution directory, rather than from a mirror. Then verify the signatures using:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>% gpg --import KEYS
</span></span><span style=display:flex><span>% gpg --verify downloaded_file.asc downloaded_file
</span></span></code></pre></div><p>or</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>% pgpk -a KEYS
</span></span><span style=display:flex><span>% pgpv downloaded_file.asc
</span></span></code></pre></div><p>or</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>% pgp -ka KEYS
</span></span><span style=display:flex><span>% pgp downloaded_file.asc
</span></span></code></pre></div><p>Alternatively, you can verify the hash on the file.</p><p>Hashes can be calculated using GPG:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>% gpg --print-md SHA256 downloaded_file
</span></span></code></pre></div><p>The output should be compared with the contents of the SHA256 file. Similarly for other hashes (SHA512, SHA1, MD5 etc) which may be provided.</p><p>Windows 7 and later systems should all now have certUtil:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>% certUtil -hashfile pathToFileToCheck
</span></span></code></pre></div><p>HashAlgorithm choices: <em>MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512</em></p><p>Unix-like systems (and macOS) will have a utility called <em>md5</em>, <em>md5sum</em> or <em>shasum</em>.</p></div><div class=td-content style=page-break-before:always><h1 id=pg-b08f161257be4031dd69d279dafb245d>2 - Credits</h1><h2 id=apache-avro-credits>Apache Avro credits</h2><h3 id=committers>Committers</h3><p>Apache Avro&rsquo;s active committers are:</p><table><thead><tr><th style=text-align:left><strong>username</strong></th><th style=text-align:left><strong>name</strong></th><th style=text-align:left><strong>organization</strong></th><th style=text-align:center><strong>roles</strong></th><th style=text-align:center><strong>timezone</strong></th></tr></thead><tbody><tr><td style=text-align:left>blue</td><td style=text-align:left>Ryan Blue</td><td style=text-align:left>Netflix</td><td style=text-align:center>spec, java, ruby</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>brucem</td><td style=text-align:left>Bruce Mitchener</td><td style=text-align:left>Army of Bruce</td><td style=text-align:center>c</td><td style=text-align:center>+7</td></tr><tr><td style=text-align:left>busbey</td><td style=text-align:left>Sean Busbey</td><td style=text-align:left>Cloudera</td><td style=text-align:center>java, ruby</td><td style=text-align:center>-6</td></tr><tr><td style=text-align:left>cutting</td><td style=text-align:left>Doug Cutting</td><td style=text-align:left>Cloudera</td><td style=text-align:center>spec, java</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>dcreager</td><td style=text-align:left>Douglas Creager</td><td style=text-align:left>RedJack, LLC</td><td style=text-align:center>c</td><td style=text-align:center>-5</td></tr><tr><td style=text-align:left>hammer</td><td style=text-align:left>Jeff Hammerbacher</td><td style=text-align:left>Cloudera</td><td style=text-align:center>python</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>iemejia</td><td style=text-align:left>Ismaël Mejía</td><td style=text-align:left>Talend</td><td style=text-align:center>java, docker</td><td style=text-align:center>+1</td></tr><tr><td style=text-align:left>kojiromike</td><td style=text-align:left>Michael A. Smith</td><td style=text-align:left>Independent</td><td style=text-align:center>python, docker</td><td style=text-align:center>-5</td></tr><tr><td style=text-align:left>massie</td><td style=text-align:left>Matt Massie</td><td style=text-align:left>UC Berkeley</td><td style=text-align:center>c</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>martinkl</td><td style=text-align:left>Martin Kleppmann</td><td style=text-align:left>University of Cambridge</td><td style=text-align:center>c, ruby</td><td style=text-align:center>0</td></tr><tr><td style=text-align:left>mgrigorov</td><td style=text-align:left>Martin Grigorov</td><td style=text-align:left>Huawei</td><td style=text-align:center>rust</td><td style=text-align:center>+2</td></tr><tr><td style=text-align:left>nielsbasjes</td><td style=text-align:left>Niels Basjes</td><td style=text-align:left>Bol.com</td><td style=text-align:center>java, docker</td><td style=text-align:center>+1</td></tr><tr><td style=text-align:left>philz</td><td style=text-align:left>Philip Zeyliger</td><td style=text-align:left>Cloudera</td><td style=text-align:center>java</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>rskraba</td><td style=text-align:left>Ryan Skraba</td><td style=text-align:left>Talend</td><td style=text-align:center>java, docker</td><td style=text-align:center>+1</td></tr><tr><td style=text-align:left>sbanacho</td><td style=text-align:left>Scott Banachowski</td><td style=text-align:left>Microsoft</td><td style=text-align:center>c++</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>scottcarey</td><td style=text-align:left>Scott Carey</td><td style=text-align:left>RichRelevance</td><td style=text-align:center>java</td><td style=text-align:center>-8</td></tr><tr><td style=text-align:left>sekikn</td><td style=text-align:left>Kengo Seki</td><td style=text-align:left>NTT Data</td><td style=text-align:center>perl, interoperability</td><td style=text-align:center>+9</td></tr><tr><td style=text-align:left>sharadag</td><td style=text-align:left>Sharad Agarwal</td><td style=text-align:left>InMobi</td><td style=text-align:center>python</td><td style=text-align:center>+5.5</td></tr><tr><td style=text-align:left>thiru</td><td style=text-align:left>Thiruvalluvan M. G.</td><td style=text-align:left>VertiCloud</td><td style=text-align:center>java</td><td style=text-align:center>+5.5</td></tr><tr><td style=text-align:left>tomwhite</td><td style=text-align:left>Tom White</td><td style=text-align:left>Cloudera</td><td style=text-align:center>java</td><td style=text-align:center>0</td></tr></tbody></table><hr><h3 id=contributors>Contributors</h3><p>A list of Avro contributors and their contributions is available from <a href=http://s.apache.org/AvroFixed>Jira</a></p><h3 id=emeriti>Emeriti</h3><p>Contributors who are no longer active on Avro are:</p><ul><li>None</li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-24675057bcd6c8b266448b2d875c1bd0>3 - How to contribute</h1><h2 id=getting-the-source-code>Getting the source code</h2><p>First of all, you need the Avro source code.</p><p>The easiest way is to clone or fork the GitHub mirror:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>git clone https://github.com/apache/avro.git -o github
</span></span></code></pre></div><h2 id=making-changes>Making Changes</h2><p>Before you start, file an issue in <a href=https://issues.apache.org/jira/browse/AVRO>JIRA</a> or discuss your ideas on the <a href=http://avro.apache.org/mailing_lists.html>Avro developer mailing list</a>. Describe your proposed changes and check that they fit in with what others are doing and have planned for the project. Be patient, it may take folks a while to understand your requirements.</p><p>Modify the source code and add some (very) nice features using your favorite IDE.</p><p>But take care about the following points</p><p><strong>All Languages</strong></p><ul><li>Contributions should pass existing unit tests.</li><li>Contributions should document public facing APIs.</li><li>Contributions should add new tests to demonstrate bug fixes or test new features.</li></ul><p><strong>Java</strong></p><ul><li>All public classes and methods should have informative <a href=https://www.oracle.com/fr/technical-resources/articles/java/javadoc-tool.html>Javadoc comments</a>.</li><li>Do not use @author tags.</li><li>Java code should be formatted according to <a href=https://www.oracle.com/java/technologies/javase/codeconventions-introduction.html>Oracle&rsquo;s conventions</a>, with one exception:<ul><li>Indent two spaces per level, not four.</li></ul></li><li><a href=http://www.junit.org/>JUnit</a> is our test framework:</li><li>You must implement a class whose class name starts with Test.</li><li>Define methods within your class and tag them with the @Test annotation. Call JUnit&rsquo;s many assert methods to verify conditions; these methods will be executed when you run mvn test.</li><li>By default, do not let tests write any temporary files to /tmp. Instead, the tests should write to the location specified by the test.dir system property.</li><li>Place your class in the src/test/java/ tree.</li><li>You can run all the unit tests with the command mvn test, or you can run a specific unit test with the command mvn -Dtest=&lt;class name, fully qualified or short name> test (for example mvn -Dtest=TestFoo test)</li></ul><h2 id=code-style-autoformatting>Code Style (Autoformatting)</h2><p>For Java code we use <a href=https://github.com/diffplug/spotless/>Spotless</a> to format the code to comply with Avro&rsquo;s code style conventions (see above). Automatic formatting relies on <a href=https://github.com/apache/avro/blob/master/lang/java/eclipse-java-formatter.xml>Avro&rsquo;s Eclipse JDT formatter definition</a>. You can use the same definition to auto format from Eclipse or from IntelliJ configuring the Eclipse formatter plugin.</p><p>If you use maven code styles issues are checked at the compile phase. If your code breaks because of bad formatting, you can format it automatically by running the command:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>mvn spotless:apply
</span></span></code></pre></div><h2 id=unit-tests>Unit Tests</h2><p>Please make sure that all unit tests succeed before constructing your patch and that no new compiler warnings are introduced by your patch. Each language has its own directory and test process.</p><details><summary>Java</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/java
</span></span><span style=display:flex><span>mvn clean <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>Python</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/py
</span></span><span style=display:flex><span>./setup.py build <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary><a href=https://www.rust-lang.org/>Rust</a></summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/rust
</span></span><span style=display:flex><span>./build.sh clean <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>C#</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/csharp
</span></span><span style=display:flex><span>./build.sh clean <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>C</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/c
</span></span><span style=display:flex><span>./build.sh clean
</span></span><span style=display:flex><span>./build.sh <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>C++</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/c++
</span></span><span style=display:flex><span>./build.sh clean <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>Ruby</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/ruby
</span></span><span style=display:flex><span>gem install echoe
</span></span><span style=display:flex><span>rake clean <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><details><summary>PHP</summary><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span><span style=color:#204a87>cd</span> avro-trunk/lang/php
</span></span><span style=display:flex><span>./build.sh clean
</span></span><span style=display:flex><span>./build.sh <span style=color:#204a87>test</span>
</span></span></code></pre></div></details><h2 id=contributing-your-code>Contributing your code</h2><p>Contribution can be made directly via github with a Pull Request, or via a patch.</p><p><strong>Via Github</strong></p><p>Method is to create a <a href=https://help.github.com/articles/using-pull-requests/>pull request</a>.</p><p>On your fork, create a branch named with JIRA (avro-1234_fixNpe for example)
On source, go to it</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>git pull
</span></span><span style=display:flex><span>git switch avro-1234_fixNpe
</span></span></code></pre></div><p>code your changes (following preceding recommendations)</p><p>check and add updated sources</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>git status
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#8f5902;font-style:italic># Add any new or changed files with:</span>
</span></span><span style=display:flex><span>git add src/.../MyNewClass.java
</span></span><span style=display:flex><span>git add src/.../TestMyNewClass.java
</span></span></code></pre></div><p>Finally, create a commit with your changes and a good log message, and push it:</p><div class=highlight><pre tabindex=0 style=background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>git commit -m <span style=color:#4e9a06>&#34;AVRO-1234: Fix NPE by adding check to ...&#34;</span>
</span></span><span style=display:flex><span>git push
</span></span></code></pre></div><p>On your github fork site, a button will propose you to build the Pull Request.
Click on it, fill Conversation form, and create it.
Link this PR to the corresponding JIRA ticket (on JIRA ticket, add PR to &ldquo;Issue Links&rdquo; chapter, and add label &lsquo;pull-request-available&rsquo; to it .</p><h2 id=jira-guidelines>Jira Guidelines</h2><p>Please comment on issues in <a href=https://issues.apache.org/jira/projects/AVRO/issues>Jira</a>, making your concerns known. Please also vote for issues that are a high priority for you.</p><p>Please refrain from editing descriptions and comments if possible, as edits spam the mailing list and clutter Jira&rsquo;s &ldquo;All&rdquo; display, which is otherwise very useful. Instead, preview descriptions and comments using the preview button (on the right) before posting them. Keep descriptions brief and save more elaborate proposals for comments, since descriptions are included in Jira&rsquo;s automatically sent messages. If you change your mind, note this in a new comment, rather than editing an older comment. The issue should preserve this history of the discussion.</p><h2 id=stay-involved>Stay involved</h2><p>Contributors should join the Avro mailing lists. In particular, the commit list (to see changes as they are made), the dev list (to join discussions of changes) and the user list (to help others).</p><h2 id=see-also>See Also</h2><ul><li><a href=http://www.apache.org/dev/contributors.html>Apache contributor documentation</a></li><li><a href=http://www.apache.org/foundation/voting.html>Apache voting documentation</a></li></ul></div><div class=td-content style=page-break-before:always><h1 id=pg-200654b0ff5d29c0f16045724bbf40cc>4 - License</h1><p>Apache Avro project is licensed under <a href=https://www.apache.org/licenses/LICENSE-2.0>Apache Software License 2.0</a></p></div><div class=td-content style=page-break-before:always><h1 id=pg-2b814fdab87b77e27bbe970e4d2415dd>5 - Privacy policy</h1><p>Apache Avro project shares the same privacy policy as the <a href=https://hadoop.apache.org/privacy_policy.html>Apache Software Foundation</a></p></div><div class=td-content style=page-break-before:always><h1 id=pg-d7feecbc8c835017ffc6e5b4f4f6cc1c>6 - Security</h1><p>Apache Avro project shares the same security policy as the <a href=https://www.apache.org/security/>Apache Software Foundation</a></p></div><div class=td-content style=page-break-before:always><h1 id=pg-db9f7bea0d60535461a9ded5188e7bef>7 - Events</h1><p>Apache Avro members often participate in events organized by the <a href=https://www.apache.org/events/current-event.html>Apache Software Foundation</a></p></div><div class=td-content style=page-break-before:always><h1 id=pg-daa926aa961e2ed947801fb956063660>8 - Donate</h1><p>If you would like to donate please see the Apache Software Foundation <a href=https://www.apache.org/foundation/sponsorship.html>donation program</a></p></div><div class=td-content style=page-break-before:always><h1 id=pg-067bedbc98e98c9cb8e5c7676e38b28e>9 - Thanks</h1><p>Apache Avro project could not exist without the continued generous support from the community! We would like to take this opportunity to thank the ASF <a href=https://www.apache.org/foundation/thanks.html>Sponsors</a>.</p></div></main></div></div><footer class="bg-dark py-5 row d-print-none"><div class="container-fluid mx-sm-5"><div class=row><div class="col-4 col-sm-3 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="User mailing list" aria-label="User mailing list"><a class=text-white target=_blank rel=noopener href=mailto:user@avro.apache.org aria-label="User mailing list"><i class="fa fa-envelope"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Twitter aria-label=Twitter><a class=text-white target=_blank rel=noopener href=https://twitter.com/ApacheAvro aria-label=Twitter><i class="fab fa-twitter"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Stack Overflow" aria-label="Stack Overflow"><a class=text-white target=_blank rel=noopener href=https://stackoverflow.com/questions/tagged/avro aria-label="Stack Overflow"><i class="fab fa-stack-overflow"></i></a></li></ul></div><div class="col-4 col-sm-3 text-right text-xs-center order-sm-3"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel=noopener href=https://github.com/apache/avro aria-label=GitHub><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Issues aria-label=Issues><a class=text-white target=_blank rel=noopener href=https://issues.apache.org/jira/projects/AVRO/issues aria-label=Issues><i class="fab fa-jira"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Chat with other project developers at Slack" aria-label="Chat with other project developers at Slack"><a class=text-white target=_blank rel=noopener href=https://the-asf.slack.com/ aria-label="Chat with other project developers at Slack"><i class="fab fa-slack"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title="Developer mailing list" aria-label="Developer mailing list"><a class=text-white target=_blank rel=noopener href=mailto:dev@avro.apache.org aria-label="Developer mailing list"><i class="fa fa-envelope"></i></a></li></ul></div><div class="col-10 col-sm-3 text-center py-2 order-sm-2"><a href=https://www.apache.org/><small class=text-white>&copy; 2022 The Apache Software Foundation </small></a><small class=text-white>All Rights Reserved</small><p><small class=text-white>Apache Avro, Avro&trade;, Apache&reg;, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</small></p></div><div class="col-5 col-sm-3 order-sm-2"><a href=https://www.apache.org/events/current-event.html><img src=https://www.apache.org/events/current-event-234x60.png></a></div></div></div></footer></div><script src=https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js integrity=sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin=anonymous></script>
<script src=/js/tabpane-persist.js></script>
<script src=/1.12.0-SNAPSHOT/js/main.min.6d90a8f579da2dffcd2046bac4cb27ce3dca90af26be8885e51f3a7f4a0eb1ff.js integrity="sha256-bZCo9XnaLf/NIEa6xMsnzj3KkK8mvoiF5R86f0oOsf8=" crossorigin=anonymous></script>
<script src=/js/prism.js></script></body></html>