incubator-heron icon indicating copy to clipboard operation
incubator-heron copied to clipboard

Upgrade pex in Heron

Open billonahill opened this issue 8 years ago • 5 comments

Ideally we would fetch a pex binary at build time, but for now the code is committed and aging. This ticket is to upgrade pex to the latest release. In my tests this has worked fine, but we need to get this change merged into pex first: https://github.com/pantsbuild/pex/pull/277

billonahill avatar Jun 07 '16 23:06 billonahill

Curious the motivation to choose PEX. why not use the Bazel py_binary, which could make the building process easier?

huijunwu avatar Jul 08 '20 16:07 huijunwu

Following up from the conversation on Slack to keep others aware. I believe that at the time the core development in Heron was happening pi_binary rules did not exist. It would probably be easier to migrate to the pi_binary rules moving forward.

joshfischer1108 avatar Jul 16 '20 01:07 joshfischer1108

It seems there are two locations that are relevant to the PEX discussion. Are there any I'm missing? What changes would be needed to use the output of py_binary build task? Would this be easier or harder for analytics developers? I'm currently looking to use {Py}Gradle and the LinkedIn PEX plugin to package my analytics. It would not be ideal if we forced analytic developers to only use Bazel.

  1. Heron Executor: Runs a pyton binary with the pex file as an argument (per component) https://github.com/apache/incubator-heron/blob/e1dda9acfded22ac1de86d73981118488d7a3b19/heron/executor/src/python/heron_executor.py#L724
  2. Heron CLI checks for pex extension: https://github.com/apache/incubator-heron/blob/e1dda9acfded22ac1de86d73981118488d7a3b19/heron/tools/cli/src/python/submit.py#L439
  3. Heron CLI: Uses pex_loader library to load the Topology class at submit time. https://github.com/apache/incubator-heron/blob/e1dda9acfded22ac1de86d73981118488d7a3b19/heron/tools/cli/src/python/execute.py#L124

nicknezis avatar Jul 17 '20 05:07 nicknezis

Could you describe what an analytic developer is?

joshfischer1108 avatar Jul 17 '20 11:07 joshfischer1108

A developer writing a Heron topology to run in a managed instance of Heron.

nicknezis avatar Jul 17 '20 23:07 nicknezis