The only concern is that we somewhat regularly have changed those classes,
and I think we didn't want to have to support them as a stable interface.

On Thu, Aug 1, 2019 at 5:23 PM Pablo Estrada <pabl...@google.com> wrote:

> I've started making the change in https://github.com/apache/beam/pull/9206,
> but I'm having some trouble with Api Surface tests. Some odd NPE.
> I'll try to debug further and see.
> Best
> -P.
>
> On Wed, Jul 31, 2019 at 7:46 PM Kenneth Knowles <k...@apache.org> wrote:
>
>> Publishing the "-tests" jar does not work for this purpose. The "test"
>> classifier means "these are tests". The classifier does not mean "this is
>> test related stuff". This is because "test" scope does not have transitive
>> dependencies resolved in the same way and does not work for shipping a
>> library to be used, at least with maven. (technically, you can make up any
>> classifier and it is the scoping of the deps that breaks things). To
>> publish test-related code for re-use as a library, you put it in the main/
>> section of an artifact, which you could name for testing if you like.
>>
>> The reason I know this in such detail is that Beam has done it the wrong
>> way multiple times.
>>
>> Kenn
>>
>> On Wed, Jul 31, 2019 at 1:12 AM Ryan Skraba <r...@skraba.com> wrote:
>>
>>> Hello!  No objection to the move :/  But what do you think about
>>> publishing the test jar created in google-cloud-platform to be reused
>>> without moving the code to the main artifact jar?
>>>
>>> I admit that I'm familiar with this technique with maven, and not at
>>> all with gradle, but it's described here:
>>> https://maven.apache.org/guides/mini/guide-attached-tests.html  It
>>> relies on the classifier to distinguish between test classes and main
>>> classes.  Is this possible and/or easy with gradle?
>>>
>>> I've used this in the past to create "re-usable test artifacts" that
>>> remain independent from "real" code but tightly associated with the
>>> main artifact.
>>>
>>> I noticed that elasticsearch publishes main artifacts with `-test` in
>>> the artifact name as an alternative strategy (i.e. a separate
>>> project).
>>>
>>> All my best, Ryan
>>>
>>> On Wed, Jul 31, 2019 at 5:55 AM Mikhail Gryzykhin
>>> <gryzykhin.mikh...@gmail.com> wrote:
>>> >
>>> > +1
>>> > It is completely worth it.
>>> >
>>> > On Tue, Jul 30, 2019 at 8:50 PM Rui Wang <ruw...@google.com> wrote:
>>> >>
>>> >> +1.
>>> >>
>>> >> I did something similar before: move TestBoundedTable to BeamSQL main
>>> to allow another module tests use it.
>>> >>
>>> >>
>>> >> -Rui
>>> >>
>>> >> On Tue, Jul 30, 2019 at 6:13 PM Pablo Estrada <pabl...@google.com>
>>> wrote:
>>> >>>
>>> >>> Hello all,
>>> >>> I found some test utilities that we use to write unit tests for
>>> transforms that read/write to/from BigQuery. These are all the
>>> non-(*IT.java/*Test.java) classes in [1].
>>> >>>
>>> >>> I believe that users may want to write tests for their own pipelines
>>> that may rely on complex DynamicDestination logic (imagine streaming, or
>>> side inputs for on-the-fly schema computation, or other tricky issues).
>>> >>>
>>> >>> I think it makes sense to move these classes to
>>> org.apache.beam.io.gcp.bigquery.testing, and publish them in the release.
>>> Thoughts?
>>> >>>
>>> >>> -P.
>>> >>>
>>> >>> [1]
>>> https://github.com/apache/beam/tree/master/sdks/java/io/google-cloud-platform/src/test/java/org/apache/beam/sdk/io/gcp/bigquery
>>>
>>

Reply via email to