+1

On Tue, 18 Dec 2018 at 11:13, Josh Fischer <j...@joshfischer.io> wrote:

> Hey Oliver,
>
> Thanks for looking into this.  I apologize for my bad choice of words
> describing how the rule was used.. I think you are correct, it looks as the
> rule was copy and pasted.
>
> I would prefer to change as little as possible for the Bazel upgrade.   I
> really wanted someone with more Python experience to point my in the right
> direction (which I think you have done)..
>
> Maybe the first thing to do is swap out the parts we need to update the
> rule.. If that doesn't work then we can investigate moving away from PEX.
> Everyone ok with that?
>
> -Josh
>
> On Tue, Dec 18, 2018 at 11:10 AM Ning Wang <wangnin...@gmail.com> wrote:
>
> > Thanks for the work!
> >
> > I feel moving away from pex might be ok, as long as the final output can
> > run in the same way. There are quite a few modules in Python: python API,
> > cli, executor, tracker, UI, etc.
> >
> > It seems this is a blocker to the bazel upgrade? In that case maybe we
> > should focus on python package first. Does any bazel has internal python
> > packaging support?
> >
> >
> >
> > On Tue, Dec 18, 2018 at 8:58 AM Oliver Bristow <
> oli...@oliverbristow.co.uk
> > >
> > wrote:
> >
> > > Hey Josh,
> > >
> > > I had a look into this/pex/subpar a bit more:
> > >
> > >    - external pex rules aren't used (e.g. benley/bazel_rules_pex
> > >    <https://github.com/benley/bazel_rules_pex> - although it looks
> like
> > > the
> > >    heron tools/rules/pex/pex_rules.bzl
> > >    <
> > >
> >
> https://github.com/apache/incubator-heron/blob/master/tools/rules/pex/pex_rules.bzl
> > > >
> > >    was copied+pasted from the same source at some point - the earliest
> > > copy in
> > >    heron doesn't appear in the remote repo so I guess with changes).
> > > Although
> > >    the public repo hasn't been touched in months, there isn't an issue
> > > (yet?)
> > >    for bazel 0.20.0
> > >    - content of pex files are imported from by the pex_loader module
> > >    maintained in heron - I couldn't find the code via google, but maybe
> > > it's
> > >    something that could live in pex
> > >    <https://github.com/pantsbuild/pex/tree/master/pex> - the pex
> format
> > >    appears stable (or inactive?) so hopefully we'll be ok for now
> > >    - pex's design documentation <
> > > https://www.pantsbuild.org/pex_design.html>
> > >    doesn't list subpar as an alternative - I made an issue for
> > > clarification
> > >    <https://github.com/pantsbuild/pantsbuild.github.io/issues/10>
> > >
> > >
> > > I'm under the impression that switching out pex for par would be quite
> a
> > > bit of work (and not sure yet if it introduces more limitations),
> > including
> > > a making a par_loader and also deciding on maintaining both for a while
> > or
> > > dropping pex. Moving away from the loaders may be nice so we aren't
> tied
> > to
> > > a language if possible, but I haven't looked into the how it is used, I
> > > think elsewhere the interface is a program argument/flag and protobuf
> so
> > > that might be an option.
> > >
> > > I don't know if there's any required customisation within the heron
> copy
> > of
> > > pex_rules.bzl (I hope not), so it may be worth trying to drop in the
> > public
> > > rules and using those, then at least the rules should be easy to update
> > and
> > > there's a better shot at community support.
> > >
> > > Does using bazel_pex_rules repo sound passable?
> > >
> > > Thanks,
> > > Oliver
> > >
> > > On Sat, 8 Dec 2018 at 13:43, Josh Fischer <j...@joshfischer.io> wrote:
> > >
> > > > I'm open to any suggestions.. I'm not much of a python developer, so
> my
> > > > knowledge is limited in this part of the project.  I appreciate the
> > > > thoughts and ideas.  Thanks Oliver.  Let us know what you come up
> with.
> > > >
> > > > On Sat, Dec 8, 2018 at 1:34 PM Oliver Bristow <
> > > oli...@oliverbristow.co.uk>
> > > > wrote:
> > > >
> > > > > Google's subpar may be an option as a replacement for .pex - I
> > imagine
> > > > it'd
> > > > > have better support in Bazel/generally. Has anyone got any thoughts
> > on
> > > > > pex/subpar? I can ponder more and look up stuff next week
> > > > >
> > > > > On Sat, 8 Dec 2018, 12:57 Josh Fischer <j...@joshfischer.io wrote:
> > > > >
> > > > > > Hey All,
> > > > > >
> > > > > > I've spent little bit of time over the past day or two working to
> > > allow
> > > > > > Heron to be built with newer versions of Bazel (at this time
> > > v-0.20.0).
> > > > > > I've  managed to restructure certain files within the Heron to
> > > project
> > > > to
> > > > > > comply with what Bazel is expecting.. I think I have most of it
> > > worked
> > > > > out
> > > > > > with one big exception (I think) of the python pex rules that
> were
> > > > > written
> > > > > > by the community and seem to be several months old. I do not know
> > > > enough
> > > > > > about PEX to update this custom rule and verify it works as
> > > expected..
> > > > I
> > > > > am
> > > > > > afraid that if we don't address this issue soon will be stuck
> with
> > an
> > > > > older
> > > > > > version of Bazel moving forward..   Another thought I had: "is it
> > > > > required
> > > > > > that we use pex"?  Is there a way we could get away from it and
> > just
> > > > use
> > > > > > supported official Bazel rules if this issue is too hard to fix
> or
> > > > > > maintain?
> > > > > >
> > > > > > Here is my output when building
> > > > > >
> > > > > > bazel build  --config=darwin heron/...
> > > > > > --incompatible_remove_native_http_archive=false
> > > > > >
> > > > > > INFO: Invocation ID: 372ad837-104a-4aef-9e35-5069e5e76ded
> > > > > >
> > > > > > INFO: Build options have changed, discarding analysis cache.
> > > > > >
> > > > > > ERROR:
> > > > > >
> > > >
> > /Users/joshfischer/Source/heron/heron/statemgrs/tests/python/BUILD:22:1:
> > > > > > in eggs attribute of pex_binary rule
> > > > > > //heron/statemgrs/tests/python:zkstatemanager_unittest_runner:
> > > > > > '@pytest_whl//file:file' does not produce any pex_binary eggs
> files
> > > > > > (expected .egg or .whl). Since this rule was created by the macro
> > > > > > 'pex_pytest', the error might have been caused by the macro
> > > > > implementation
> > > > > > in
> > > /Users/joshfischer/Source/heron/tools/rules/pex/pex_rules.bzl:462:14
> > > > > >
> > > > > > ERROR:
> > > > > >
> > > >
> > /Users/joshfischer/Source/heron/heron/statemgrs/tests/python/BUILD:22:1:
> > > > > > in eggs attribute of pex_binary rule
> > > > > > //heron/statemgrs/tests/python:zkstatemanager_unittest_runner:
> > > > > > '@py_whl//file:file' does not produce any pex_binary eggs files
> > > > (expected
> > > > > > .egg or .whl). Since this rule was created by the macro
> > 'pex_pytest',
> > > > the
> > > > > > error might have been caused by the macro implementation in
> > > > > >
> > /Users/joshfischer/Source/heron/tools/rules/pex/pex_rules.bzl:462:14
> > > > > >
> > > > > > ERROR: Analysis of target
> > > > > > '//heron/statemgrs/tests/python:zkstatemanager_unittest_runner'
> > > failed;
> > > > > > build aborted: Analysis of target
> > > > > > '//heron/statemgrs/tests/python:zkstatemanager_unittest_runner'
> > > failed;
> > > > > > build aborted
> > > > > >
> > > > > > ignore the flag --incompatible_remove_native_http_archive=false
> > I'm
> > > > > using
> > > > > > that ignore a warning with http_archive targets temporarily
> while I
> > > > work
> > > > > > through this python issue.  I have a fork of heron at
> > > > > > *https://github.com/joshfischer1108/incubator-heron
> > > > > > <https://github.com/joshfischer1108/incubator-heron>.  *The
> > branch I
> > > > am
> > > > > > working off of within that repo is support-bazel-0.20.0
> > > > > > <
> > > > > >
> > > > >
> > > >
> > >
> >
> https://github.com/joshfischer1108/incubator-heron/tree/support-bazel-0.20.0
> > > > > > >.
> > > > > > If anyone has any experience with python and could possibly look
> > over
> > > > > this
> > > > > > and help me get Heron up to speed with the most recent version of
> > > > Bazel I
> > > > > > would greatly appreciate it.. Just a FYI, as this is still a work
> > in
> > > > > > progress you'll notice I have some duplicate folder structures
> and
> > > > files
> > > > > in
> > > > > > the repo right now.. This on purpose.. Bazel has made some
> changes
> > > that
> > > > > > were breaking..
> > > > > >
> > > > > >
> > > > > > Thanks,
> > > > > >
> > > > > > Josh
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to