Agree with Luke here. "Just git clone and go" is a big part of it.

But also the answer to "I simply don't know what one would put in a Python
repo than, other than a bare setup.py that lists a dependency on
apache_beam" is answered by David's initial email and his repo, namely:

 - GitHub Actions configuration
 - README.md
 - example that already runs
 - LICENSE (notably you've got it as MIT but to be part of Apache software
it needs to be ASL2)

Kenn

On Fri, Jan 14, 2022 at 2:34 PM Luke Cwik <lc...@google.com> wrote:

> I think for consistency it makes sense to users to be told to checkout
> this git repo for the language of your choice and run. Some repos will have
> more/less than others when it comes to setup necessary.
>
> On Fri, Jan 14, 2022 at 2:26 PM Robert Bradshaw <rober...@google.com>
> wrote:
>
>> +1 for doing this for Java, as setting up a project there is quite
>> complicated. I simply don't know what one would put in a Python repo
>> than, other than a bare setup.py that lists a dependency on
>> apache_beam. We don't have recommendations on file layout, etc. more
>> than that (though there's plenty of generic advice to be found out
>> there on the topic). I have a hunch go is similar, and javascript
>> would be as well (npm install apache-beam and your package.json file
>> gets updated).
>>
>> On Fri, Jan 14, 2022 at 2:17 PM Luke Cwik <lc...@google.com> wrote:
>> >
>> > There are several examples already within the Beam repo found in:
>> > https://github.com/apache/beam/tree/master/examples
>> > https://github.com/apache/beam/tree/master/sdks/go/examples
>> >
>> https://github.com/apache/beam/tree/master/sdks/python/apache_beam/examples
>> >
>> >
>> > On Fri, Jan 14, 2022 at 11:07 AM Sachin Agarwal <sachi...@google.com>
>> wrote:
>> >>
>> >> I'd love to do something other than Wordcount just for
>> novelty/freshness but agreed with the suggestion that having an example in
>> each quickstart would be ideal.
>> >>
>> >> On Fri, Jan 14, 2022 at 11:06 AM David Huntsperger <
>> dhuntsper...@google.com> wrote:
>> >>>
>> >>> + 1 to a separate repo for each language.
>> >>>
>> >>> Would it make sense to include the Wordcount example in each repo? I
>> know that makes the repos less minimal, but we could rewrite the
>> quickstarts around these repos instead of the current Wordcount examples.
>> Or maybe we don't need to use the Wordcount example in the quickstarts...
>> >>>
>> >>> On Wed, Jan 12, 2022 at 1:54 PM David Cavazos <dcava...@google.com>
>> wrote:
>> >>>>
>> >>>> I agree with dropping the archetypes. Less maintenance is
>> preferable, and the github repos are more flexible and maintainable.
>> >>>>
>> >>>> How about we create:
>> >>>>
>> >>>> apache/beam-starter-java
>> >>>> apache/beam-starter-python
>> >>>> apache/beam-starter-go
>> >>>>
>> >>>> During our OKR planning, +Keith Malvetti would prefer having repos
>> for all languages. It makes sense for consistency as well.
>> >>>>
>> >>>> On Mon, Jan 10, 2022 at 5:14 PM Luke Cwik <lc...@google.com> wrote:
>> >>>>>
>> >>>>> As long as we have tags so that people can pull out a specific
>> version of the examples that coincides with a specific SDK version then we
>> could drop the archetypes.
>> >>>>>
>> >>>>> On Mon, Jan 10, 2022 at 4:09 PM Brian Hulette <bhule...@google.com>
>> wrote:
>> >>>>>>
>> >>>>>> > Being such minimal examples, I don't expect them to break
>> commonly, but I think it would be good to make sure tests aren't failing
>> when a release is published.
>> >>>>>>
>> >>>>>> Yeah it would be very unfortunate if we discovered a breakage
>> after the release. Agree we should verify RCs (document as part of the
>> release process), or even better, add automation to verify the repo against
>> snapshots. The automation could be nice to have anyway since it provides an
>> example for users to follow if they want to test against snapshots and
>> report issues to us sooner.
>> >>>>>>
>> >>>>>>
>> >>>>>> If we move forward with this can we drop the archetype?
>> >>>>>>
>> >>>>>> On Fri, Jan 7, 2022 at 3:54 PM Luke Cwik <lc...@google.com> wrote:
>> >>>>>>>
>> >>>>>>> Sounds reasonable.
>> >>>>>>>
>> >>>>>>> On Wed, Jan 5, 2022 at 12:47 PM David Cavazos <
>> dcava...@google.com> wrote:
>> >>>>>>>>
>> >>>>>>>> I personally like the idea of a separate repo since we can see
>> how a true minimal project looks like. Having it in the main repo would
>> inherit build file configurations and other settings that would be
>> different from a clean project, so it could be non-trivial to adapt. Also
>> as its own repo, it's easier to clone and modify, or create an instance of
>> the template.
>> >>>>>>>>
>> >>>>>>>> Dependabot can take care of updating the Beam version and other
>> dependencies automatically. Testing is already set up via GitHub actions
>> for every pull request, so it would automatically be tested as soon as
>> there is a new dependency version available.
>> >>>>>>>>
>> >>>>>>>> Being such minimal examples, I don't expect them to break
>> commonly, but I think it would be good to make sure tests aren't failing
>> when a release is published.
>> >>>>>>>>
>> >>>>>>>> I'm okay with having one repo per language, and having all the
>> build systems we want to support for them. As long as we document which
>> files are for which build system. That way there are less repos to maintain.
>> >>>>>>>>
>> >>>>>>>> On Mon, Dec 13, 2021 at 9:25 AM Luke Cwik <lc...@google.com>
>> wrote:
>> >>>>>>>>>
>> >>>>>>>>> The github repo is definitely more flexible then the archetypes
>> but the archetypes have a few conveniences since they are integrated with
>> apache/beam repo. For example, updates/testing are done at the same time a
>> corresponding change to the main repo is done (like library version
>> updates), they are released when the SDK is released.
>> >>>>>>>>>
>> >>>>>>>>> Should these be part of the main repo, or a single starter repo
>> containing all the starters or one per language or one per build system?
>> >>>>>>>>>
>> >>>>>>>>> When should updates to the starter happen?
>> >>>>>>>>> How as a community do we get them to happen (e.g. release
>> manager owns it)?
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> On Sun, Dec 12, 2021 at 4:06 PM David Cavazos <
>> dcava...@google.com> wrote:
>> >>>>>>>>>>
>> >>>>>>>>>> We could do the Maven archetype, but that wouldn't work very
>> well for Gradle and SBT users. I think a GitHub template might be the more
>> flexible option, and we could have something similar for other languages as
>> well. Having said that, we could still create a Maven archetype. If someone
>> is familiar with that process, please let me know since I'm not too
>> familiar with Maven and its ecosystem.
>> >>>>>>>>>>
>> >>>>>>>>>> @Ahmet Altay I think right now we only need to pin down the
>> name of the repo, create it, and move the code there. I was thinking either
>> `apache/beam-java-template` or `apache/beam-java-starter`. What do you
>> think?
>> >>>>>>>>>>
>> >>>>>>>>>> What would be the next steps on creating the repo?
>> >>>>>>>>>>
>> >>>>>>>>>> On Thu, Dec 9, 2021 at 11:09 AM Ahmet Altay <al...@google.com>
>> wrote:
>> >>>>>>>>>>>
>> >>>>>>>>>>> This is great David. Was there any progress on this? Do you
>> need help?
>> >>>>>>>>>>>
>> >>>>>>>>>>> On Wed, Dec 1, 2021 at 3:54 PM Brian Hulette <
>> bhule...@google.com> wrote:
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> This is cool, thanks!
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> We do have a template in apache/beam already, built with
>> Maven Archetype [1]. It's what powers the Java quickstart [2]. Could we
>> de-dupe these (e.g. reference the GitHub template in the quickstart, or
>> co-locate the archetype with the GitHub template)?
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> As far as creating an Apache repo, would we put this
>> somewhere like apache/beam-java-template? I think apache repositories like
>> beam-* are allowed.
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Brian
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> [1] https://maven.apache.org/archetype/index.html
>> >>>>>>>>>>>> [2]
>> https://beam.apache.org/get-started/quickstart-java/#get-the-example-code
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> On Wed, Dec 1, 2021 at 11:30 AM David Cavazos <
>> dcava...@google.com> wrote:
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> +Ahmet Altay
>> >>>>>>>>>>>>> +Valentyn Tymofieiev
>> >>>>>>>>>>>>> +Kenneth Knowles
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Please feel free to include anyone else!
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> On Mon, Oct 25, 2021 at 11:31 AM David Cavazos <
>> dcava...@google.com> wrote:
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> Hi Beam community!
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> To make it easier to create a new Beam Java project, I've
>> been working on a GitHub template containing a minimal Beam Java pipeline
>> for people to start with.
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> Link to the GitHub template:
>> https://github.com/davidcavazos/beam-java
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> So far, here's what the template contains:
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> Minimal "Hello World" Beam pipeline
>> >>>>>>>>>>>>>> Minimal test file
>> >>>>>>>>>>>>>> Build files for Gradle, sbt, and Maven (Direct runner)
>> >>>>>>>>>>>>>> Continuous integration via GitHub actions (around 1-2
>> minutes to run)
>> >>>>>>>>>>>>>> README with instructions on how to build, run, test, and
>> add other runners
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> It's easy to create a new GitHub repo from a template.
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> Next steps
>> >>>>>>>>>>>>>>
>> >>>>>>>>>>>>>> Some reviewers to make sure everyone is happy with it 🙂
>> >>>>>>>>>>>>>> Right now it lives in my personal GitHub account, so we
>> need to create an Apache repo to host it
>> >>>>>>>>>>>>>> Update/create docs with instructions on how to create a
>> new Beam Java pipeline
>>
>

Reply via email to