{"id":13701219,"url":"https://github.com/linkedin/pygradle","last_synced_at":"2025-04-12T22:29:17.875Z","repository":{"id":10462804,"uuid":"61583938","full_name":"linkedin/pygradle","owner":"linkedin","description":"Using Gradle to build Python projects","archived":false,"fork":false,"pushed_at":"2023-07-07T13:23:17.000Z","size":2151,"stargazers_count":597,"open_issues_count":92,"forks_count":145,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-04-04T01:34:47.533Z","etag":null,"topics":["gradle","linkedin","python"],"latest_commit_sha":null,"homepage":"https://github.com/linkedin/pygradle","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linkedin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2016-06-20T22:12:38.000Z","updated_at":"2025-03-07T13:47:33.000Z","dependencies_parsed_at":"2024-04-08T11:45:19.045Z","dependency_job_id":null,"html_url":"https://github.com/linkedin/pygradle","commit_stats":null,"previous_names":[],"tags_count":155,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkedin%2Fpygradle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkedin%2Fpygradle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkedin%2Fpygradle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linkedin%2Fpygradle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linkedin","download_url":"https://codeload.github.com/linkedin/pygradle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248639396,"owners_count":21137840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","linkedin","python"],"created_at":"2024-08-02T20:01:22.742Z","updated_at":"2025-04-12T22:29:17.856Z","avatar_url":"https://github.com/linkedin.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"# PyGradle\n\n[![CircleCI](https://img.shields.io/circleci/project/github/linkedin/pygradle.svg?style=flat-square)](https://circleci.com/gh/linkedin/pygradle)\n[![Travis](https://img.shields.io/travis/linkedin/pygradle.svg?style=flat-square)](https://travis-ci.org/linkedin/pygradle)\n[![AppVeyor](https://img.shields.io/appveyor/ci/ethankhall/pygradle.svg?style=flat-square)](https://ci.appveyor.com/project/ethankhall/pygradle)\n[![Bintray](https://img.shields.io/bintray/v/linkedin/maven/pygradle-plugin.svg?style=flat-square)](https://bintray.com/linkedin/maven/pygradle-plugin)\n[![Linkedin](https://img.shields.io/badge/opensource-linkedin-blue.svg?style=flat-square)](https://engineering.linkedin.com/)\n[![license](https://img.shields.io/github/license/linkedin/pygradle.svg?style=flat-square)](LICENSE)\n\nPyGradle is an enterprise Python build system.\n\nPyGradle leverages [Gradle](https://gradle.org/) to empower Python's existing\necosystem to solve problems like dependency management, polyglot projects, and\n[lots more](https://engineering.linkedin.com/blog/2016/08/introducing--py-gradle--an-open-source-python-plugin-for-gradle).\nLinkedIn has been using PyGradle for several years to successfully manage\nthousands of Python dependencies.\n\nPyGradle produces artifacts, e.g., source distributions, that are forward and\nbackward compatible with artifacts produced by vanilla\n[setuptools](https://setuptools.readthedocs.io/en/latest/), so there is nothing\nstopping you from using PyGradle with one, two, or all of your Python projects\nright away!\n\nAs a general philosophy, we strive to enhance Python rather than replace it,\nthereby keeping open source Python development idiomatic and intuitive.\n\n# Usage\n\nPyGradle does not include batteries: there are a few things that you're going\nto have to do to use PyGradle for things beyond our provided [examples](examples).\n\nIn particular, you're going to have to:\n\n- Decide how you want to host your artifacts.\n- Decide how you want to distribute a custom setuptools distribution class.\n- Author your build.gradle file.\n\nThese decisions and tasks shouldn't take too long for you finish, but they are\nrequired. A deeper dive into what it takes to get started, how you can use our\ndemonstrative Artifactory instance, and a few project examples is available in\nour detailed [getting started](docs/getting-started.md) guide.\n\nAlthough not required, if you've never used Gradle before, you might\nfind reading Gradle's [user guide](https://docs.gradle.org/current/userguide/userguide.html)\nhelpful.\n\n## Plugins\n\nPyGradle comes with several plugins available, for specific details on each\nplugin check the documentation specific to that plugin.\n\n| Plugin                                                        | Usage                                         |\n|---------------------------------------------------------------|-----------------------------------------------|\n| [com.linkedin.python](docs/plugins/python.md)                 | Extending PyGradle                            |\n| [com.linkedin.python-sdist](docs/plugins/python-sdist.md)     | Developing Source Distributions               |\n| [com.linkedin.python-web-app](docs/plugins/python-web-app.md) | Developing Flask/Gunicorn Web Applications    |\n| [com.linkedin.python-cli](docs/plugins/python-cli.md)         | Developing Command Line Applications          |\n| [com.linkedin.python-flyer](docs/plugins/python-flyer.md)     | Developing Flyer (Flask + Ember) Applications |\n| [com.linkedin.python-pex](docs/plugins/python-pex.md)         | Developing Pex Applications                   |\n\n# Developers\n\nWe're actively maintaining PyGradle and accepting pull requests.\n\nIf you're interested in contributing code to PyGradle, please see our\n[developers](docs/developers.md) document to get started. This document covers\nhow to build, test, and debug PyGradle, and kindly asks that you follow a few\nconventions when submitting pull requests.\n\n# Compatibility\n\n## Software\n\nWe support PyGradle on the following software versions.\n\n| Software | Version |\n|----------|---------|\n| Java     | 8.0     |\n| Gradle   | 5.0     |\n\nWe're happy to review and merge pull requests that add additional support to\nfuture versions of software.\n\n## Platforms\n\nPyGradle works on the following platforms.\n\n| Platform  | Support    |\n|-----------|------------|\n| Linux     | Full       |\n| OS X      | Full       |\n| Windows   | Partial    |\n\nAdditional compatibility notes are availabe [here](docs/compatibility.md).\nWe're happy to review and merge pull requests that add support for additional\nplatforms.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkedin%2Fpygradle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinkedin%2Fpygradle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinkedin%2Fpygradle/lists"}