Skip to content
Using Gradle to build Python projects
Java Groovy Python
Branch: master
Clone or download

Latest commit

zvezdan and Release Manager CI Updating the to the next version.
[skip ci]
***NO_CI***
Latest commit 3e724f2 Mar 3, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Reverted logic that has flake8 run in different venv Nov 20, 2019
buildSrc Refactored IntegTest to become unit test. (#237) Jul 25, 2018
codequality Updates for review Aug 18, 2016
docs Rebase the isFat branch onto the rebased master Apr 19, 2019
examples Removing some output from console that's not needed Mar 8, 2018
gradle Update pygradle to gradle 5 Nov 11, 2019
pivy-importer Changed PyCoverageTask to use getters for coverage outputs Mar 3, 2020
pygradle-plugin Changed PyCoverageTask to use getters for coverage outputs Mar 3, 2020
.editorconfig Moved .editorconfig to the root of the repo Jun 21, 2016
.gitignore Working on making this more resilient to projects that want to use py… Feb 9, 2017
.release-manager.toml Move to circleci v2 May 11, 2018
.travis.yml Switch to openjdk for Travis checks. May 31, 2019
LICENSE Adding required material for open sourceing Jun 21, 2016
NOTICE Drop support for Python 2.6 Oct 29, 2018
README.md Update pygradle to gradle 5 Nov 11, 2019
appveyor.yml Fixing tests Jan 26, 2017
build.gradle Fixing CI (#243) Aug 6, 2018
gradle.properties Fixing CI (#243) Aug 6, 2018
gradlew Update Flake8 to not depend on venv for project. Jul 26, 2018
gradlew.bat Using gradle wrapper 3.0-all, added debug-in-intellij instructions Feb 27, 2017
settings.gradle Moving project into a more normal package Aug 5, 2016
version.properties Updating the to the next version. Mar 3, 2020

README.md

PyGradle

CircleCI Travis AppVeyor Bintray Linkedin license

PyGradle is an enterprise Python build system.

PyGradle leverages Gradle to empower Python's existing ecosystem to solve problems like dependency management, polyglot projects, and lots more. LinkedIn has been using PyGradle for several years to successfully manage thousands of Python dependencies.

PyGradle produces artifacts, e.g., source distributions, that are forward and backward compatible with artifacts produced by vanilla setuptools, so there is nothing stopping you from using PyGradle with one, two, or all of your Python projects right away!

As a general philosophy, we strive to enhance Python rather than replace it, thereby keeping open source Python development idiomatic and intuitive.

Usage

PyGradle does not include batteries: there are a few things that you're going to have to do to use PyGradle for things beyond our provided examples.

In particular, you're going to have to:

  • Decide how you want to host your artifacts.
  • Decide how you want to distribute a custom setuptools distribution class.
  • Author your build.gradle file.

These decisions and tasks shouldn't take too long for you finish, but they are required. A deeper dive into what it takes to get started, how you can use our demonstrative Artifactory instance, and a few project examples is available in our detailed getting started guide.

Although not required, if you've never used Gradle before, you might find reading Gradle's user guide helpful.

Plugins

PyGradle comes with several plugins available, for specific details on each plugin check the documentation specific to that plugin.

Plugin Usage
com.linkedin.python Extending PyGradle
com.linkedin.python-sdist Developing Source Distributions
com.linkedin.python-web-app Developing Flask/Gunicorn Web Applications
com.linkedin.python-cli Developing Command Line Applications
com.linkedin.python-flyer Developing Flyer (Flask + Ember) Applications
com.linkedin.python-pex Developing Pex Applications

Developers

We're actively maintaining PyGradle and accepting pull requests.

If you're interested in contributing code to PyGradle, please see our developers document to get started. This document covers how to build, test, and debug PyGradle, and kindly asks that you follow a few conventions when submitting pull requests.

Compatibility

Software

We support PyGradle on the following software versions.

Software Version
Java 8.0
Gradle 5.0

We're happy to review and merge pull requests that add additional support to future versions of software.

Platforms

PyGradle works on the following platforms.

Platform Support
Linux Full
OS X Full
Windows Partial

Additional compatibility notes are availabe here. We're happy to review and merge pull requests that add support for additional platforms.

You can’t perform that action at this time.