Dear Wiki user, You have subscribed to a wiki page or wiki category on "Hadoop Wiki" for change notification.
The "Hive/HowToContribute" page has been changed by JohnSichi. http://wiki.apache.org/hadoop/Hive/HowToContribute?action=diff&rev1=13&rev2=14 -------------------------------------------------- == Generating Code == - Some portions of the metastore code are generated by [[http://incubator.apache.org/thrift/|thrift]]. For most Hive changes, you don't need to worry about this, but if you end up needing to change the file metastore/if/hive_metastore.thrift, then you'll also need to regenerate these files and submit their updated versions as part of your patch. + Some portions of the metastore code are generated by [[http://incubator.apache.org/thrift/|thrift]]. For most Hive changes, you don't need to worry about this, but if you end up needing to change the file {{{metastore/if/hive_metastore.thrift}}}, then you'll also need to regenerate these files and submit their updated versions as part of your patch. Steps: + 1. Don't make any changes to {{{hive_metastore.thrift}}} until instructed below. 1. Use the approved version of thrift. This is currently {{{thrift-instant-r790732}}}, which you can obtain from http://instant.thrift-rpc.org. 1. Build the thrift compiler from its sources, then install it: 1. {{{cd /path/to/thrift-instant-rXYZ}}} 1. {{{./configure --without-csharp --without-ruby}}} 1. {{{make}}} 1. {{{sudo make install}}} - 1. Now verify that {{{which thrift}}} returns the build of thrift you just installed (typically {{{/usr/local/bin}}} on Linux); if not, edit your PATH before proceeding and repeat the verification. + 1. Before proceeding, verify that {{{which thrift}}} returns the build of thrift you just installed (typically {{{/usr/local/bin}}} on Linux); if not, edit your PATH and repeat the verification. + 1. Now you can run the thrift compiler to generate code: 1. {{{cd /path/to/hive-trunk/metastore}}} 1. {{{ant thriftif}}} - 1. Use {{{svn status}}} and {{{svn diff}}} to verify that the regenerated code corresponds only to the changes you made to hive_metastore.thrift. You may also need {{{svn add}}} if new files were generated (and {{{svn remove}}} if files have been obsoleted). If you see spurious noise in the changes, you probably used the wrong version of thrift. If you can't figure out what is going wrong, ask for help from a committer. + 1. Use {{{svn status}}} to verify that the code generation was a no-op, which should be the case if you have the correct thrift version and everyone has been following these instructions. If you can't figure out what is going wrong, ask for help from a committer. + 1. Now make your changes to {{{hive_metastore.thrift}}}, and then run the compiler again: + 1. {{{ant thriftif}}} + 1. Now use {{{svn status}}} and {{{svn diff}}} to verify that the regenerated code corresponds only to the changes you made to {{{hive_metastore.thrift}}}. You may also need {{{svn add}}} if new files were generated (and {{{svn remove}}} if files have been obsoleted). 1. {{{cd /path/to/hive-trunk}}} 1. {{{ant clean package}}} 1. Verify that hive is still working correctly