I have rarely* "pointed at a tarball and installed" but used `pip install
<package expression>` which I understand is implemented as you describe,
but with some naive version logic. Maybe just personal style, I just can't
go back from package management, even if it lacks real dependency
resolution. I do know that pip is flexible enough that it is very easy to
install from a custom directory/prefix, since like Maven it really is just
a directory. I rolled this a couple times so internal-only packages had the
same install story as public code. We could use this to set things up in a
temp prefix.

Kenn

*I have more Python experience than Java ;-) though it is stale by ~3.5
years

On Fri, Mar 9, 2018 at 1:47 PM Robert Bradshaw <rober...@google.com> wrote:

> Python development isn't generally like Java in this sense--you just point
> people at a tarball that they install. Granted, this doesn't work as well
> when one has a set of 100 tarballs that all should be installed together,
> but again that's not the Python way to release a project.
>
> I did find https://test.pypi.org/project/apache-beam/#files which seems
> the
> closest thing to this. They're marked with the release candidate name
> because (again unlike java) it's considered bad practice to release an
> artifact under one name, and then push a new "version" of that artifact
> (the way we do with https://dist.apache.org/repos/dist/dev/beam/2.4.0/
> where the binary blobs there are whatever was push last).
>
>
> On Fri, Mar 9, 2018 at 1:27 PM Kenneth Knowles <k...@google.com> wrote:
>
> > I think the thing is just that you can point a user env at it to test
> like a user. Like you can do this with
> https://repository.apache.org/content/repositories/orgapachebeam-1030/ but
> not https://dist.apache.org/repos/dist/dev/beam/2.4.0/
>
> > On Wed, Mar 7, 2018 at 5:03 PM Ahmet Altay <al...@google.com> wrote:
>
> >> I do not know what is the best practice. For practical purposes it makes
> sense to stage to the same svn repo, so that we can test it as part of the
> release process.
>
> >> On Wed, Mar 7, 2018 at 4:22 PM, Robert Bradshaw <rober...@google.com>
> wrote:
>
> >>> Yes, we should. There's a bit of an open question of where these
> release artifacts should be staged. (Eventually, of course, they'll be
> published to PyPi). Should they be placed alongside the source artifacts in
> the svn repository?
>
>
> >>> On Wed, Mar 7, 2018 at 3:00 PM Ahmet Altay <al...@google.com> wrote:
>
> >>>> Are we planning to do this for the 2.4.0 release? I am asking, because
> they were not part of RC1 artifacts.
>
> >>>> On Tue, Feb 13, 2018 at 9:18 AM, Robert Bradshaw <rober...@google.com
> >
> wrote:
>
> >>>>> On Tue, Feb 13, 2018 at 8:31 AM, Nima Mousavi <
> nima.mous...@gmail.com>
> wrote:
> >>>>> > Related question:
> >>>>> >
> >>>>> > How can we tell if the docker image of our binary contains the
> cython
> >>>>> > optimized beam or the slower codepath?
> >>>>> > The image was built on Google cloud (using gcloud container builds
> submit).
>
> >>>>> There are certain modules (corresponding to the pyx files) that are
> >>>>> only built if Cython is present. We can (1) make sure Cython is
> >>>>> installed before installing apache beam into the container, and (2)
> >>>>> assert as part of the build process that these modules exist.
>
> >>>>> > On Mon, Feb 12, 2018 at 9:32 PM, Ahmet Altay <al...@google.com>
> wrote:
> >>>>> >>
> >>>>> >> +1 to wheels. The main effort for this would be updating the
> release
> >>>>> >> guide, and adding support for other platforms in Jenkins for
> building and
> >>>>> >> testing wheels.  In light of this, maybe we can prioritize having
> test
> >>>>> >> infrastructure for other platforms.
> >>>>> >>
> >>>>> >> On Mon, Feb 12, 2018 at 1:47 PM, Ismaël Mejía <ieme...@gmail.com>
> wrote:
> >>>>> >>>
> >>>>> >>> +1 for wheels, they are the standard binary distribution format
> so it
> >>>>> >>> makes sense. Also wheels support packaging python 2 and 3 on
> universal
> >>>>> >>> packages so they are future proof.
> >>>>> >>>
> >>>>> >>> On Mon, Feb 12, 2018 at 10:26 PM, Robert Bradshaw <
> rober...@google.com>
> >>>>> >>> wrote:
> >>>>> >>> > +1, is it too late to try to release these as part of the 2.3
> release
> >>>>> >>> > (to get familiar with the process, no code changes should be
> needed)?
> >>>>> >>
> >>>>> >>
> >>>>> >> It would be nice to have this for the current release. How can we
> build
> >>>>> >> and test these binaries? I think it will be prudent to waIt until
> we have
> >>>>> >> infrastructure.
> >>>>> >>
> >>>>> >>>
> >>>>> >>> >
> >>>>> >>> > The wheels are advantageous when running locally (e.g. during
> testing
> >>>>> >>> > and development) where requiring containers will probably be
> overkill.
> >>>>> >>> > This will become especially relevant with the switch to use the
> >>>>> >>> > FnApiRunner.
> >>>>> >>> >
> >>>>> >>> > On Mon, Feb 12, 2018 at 1:22 PM, Lukasz Cwik <lc...@google.com
> >
> wrote:
> >>>>> >>> >> If we want all our code related to pipeline execution to be in
> a
> >>>>> >>> >> container,
> >>>>> >>> >> what value does building wheel distributions provide?
> >>>>> >>> >>
> >>>>> >>> >>
> >>>>> >>> >> On Mon, Feb 12, 2018 at 1:18 PM, Kenneth Knowles <
> k...@google.com>
> >>>>> >>> >> wrote:
> >>>>> >>> >>>
> >>>>> >>> >>> +1
> >>>>> >>> >>>
> >>>>> >>> >>> On Mon, Feb 12, 2018 at 1:04 PM, Charles Chen <
> c...@google.com>
> wrote:
> >>>>> >>> >>>>
> >>>>> >>> >>>> Currently, Apache Beam distributes Python packages through
> pip and
> >>>>> >>> >>>> PyPI.
> >>>>> >>> >>>> On PyPI, developers can release either source tarballs, and
> / or
> >>>>> >>> >>>> precompiled
> >>>>> >>> >>>> "wheel" distributions for each platform, which would be used
> if
> >>>>> >>> >>>> available
> >>>>> >>> >>>> for a particular platform.  Currently, we only distribute
> the source
> >>>>> >>> >>>> tarballs, so any user who installs Beam using "pip install
> >>>>> >>> >>>> apache_beam" has
> >>>>> >>> >>>> to have a compiler and toolchain installed to take advantage
> of
> >>>>> >>> >>>> Cython
> >>>>> >>> >>>> optimizations in Beam (which require compiled C code).  If
> such a
> >>>>> >>> >>>> compiler
> >>>>> >>> >>>> is not available, Beam is currently configured to install
> anyway,
> >>>>> >>> >>>> but will
> >>>>> >>> >>>> use slower Python codepaths instead of the more optimized
> ones (for
> >>>>> >>> >>>> example,
> >>>>> >>> >>>> for Coder encoding / decoding).
> >>>>> >>> >>>>
> >>>>> >>> >>>> I would like to propose that we start distributing binary
> wheel
> >>>>> >>> >>>> distributions for our releases, for common platforms like
> Windows /
> >>>>> >>> >>>> Mac /
> >>>>> >>> >>>> Linux.  We could potentially use a method similar to this
> one
> >>>>> >>> >>>> (https://github.com/MacPython/cython-wheels) for building
> these
> >>>>> >>> >>>> wheel
> >>>>> >>> >>>> distributions.  Thoughts?
> >>>>> >>> >>>>
> >>>>> >>> >>>> Best,
> >>>>> >>> >>>> Charles
> >>>>> >>> >>>
> >>>>> >>> >>>
> >>>>> >>> >>
> >>>>> >>
> >>>>> >>
> >>>>> >
>

Reply via email to