[ 
https://issues.apache.org/jira/browse/AVRO-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16993066#comment-16993066
 ] 

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)

Reply via email to