[ https://issues.apache.org/jira/browse/AVRO-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16993067#comment-16993067 ]
ASF subversion and git services commented on AVRO-831: ------------------------------------------------------ Commit 9ab19ee49678e930beeb05d2f1c7fedbd663223d in avro's branch refs/heads/master from Michael A. Smith [ https://gitbox.apache.org/repos/asf?p=avro.git;h=9ab19ee ] AVRO-831 Refactor lang/py setup and test structure (#733) * AVRO-831: Pythonic Build * AVRO-831: Rework lang/py Setup Decouple python setup from ant and enable tests to run without it. * AVRO-831: Run Tests Normally * AVRO-831: Skip Java Tether if No JDK Make it easier to test on systems without Java * AVRO-831: Modern Exception Syntax * AVRO-831: Exterminate Ants * AVRO-831: Found One More Ant * AVRO-831: Remove pdb * AVRO-831: iSort Order * AVRO-831: Rename Build Subcommand * AVRO-831: Correct PYTHONPATH in Interop Tests * AVRO-831: Skip Test if JAR Not Found * AVRO-831: Set Package Version Correctly Fixes an error where the package metadata version is not used, causing setuptools to ignore it. Co-Authored-By: RyanSkraba <r...@skraba.com> * AVRO-831: Ignore More Files Created by Setup Adds additional files that are created during setup to .gitignore because they are generated and should not be in version control. * AVRO-831: Clean Directly from build.sh Python packaging is [moving away from embedding commands in setup.py][1]. It is difficult to maintain external commands in Python this way. Managing the dependencies needed to run commands from within setup.py is gnarly, because dependencies cannot be resolved so early. Furthermore, it's difficult to test code that happens at the point at which tests themselves are triggered, so that code needs to be very simple. A shell script is simple and more appropriate for this use case. At another time we should look to extract the lint command as well. [1][https://github.com/pypa/setuptools/issues/931] > Enhance the Python `distutils` control file `setup.py` to build Avro/Python > without a pre-processing step. > ---------------------------------------------------------------------------------------------------------- > > Key: AVRO-831 > URL: https://issues.apache.org/jira/browse/AVRO-831 > Project: Apache Avro > Issue Type: Improvement > Components: python > Environment: Operating environments supporting the Python programming > language. > Reporter: Joseph Koshy > Assignee: Michael A. Smith > Priority: Major > Labels: build, python > Attachments: setup.patch > > Original Estimate: 4h > Remaining Estimate: 4h > > Avro's build process for its Python bindings currently needs a set of > pre-processing steps that need to be executed before the build proper is > started. These pre-processing steps are executed by {{ant}}. > The attached patch folds these pre-processing steps into the {{setup.py}} > control script that is input to Python's {{distutils}} build tool kit. This > eliminates the dependency on {{ant}}. > In the patch: > * Source files that need keyword expansion are renamed to use a {{.in}} > extension. The build process will generate the appropriately transformed > {{.py}} files from these {{.in}} files. > * {{setup.py}} supports a new command {{make_interop_data}}, used to generate > test data for use with interoperability test code. -- This message was sent by Atlassian Jira (v8.3.4#803005)