I want to clarify one thing: I am not certain the requirement of ASL2 applies to example code snippets. I am also not sure if it makes a material difference to users. I _am_ sure we would need to deal with some process to use something other than ASL2, so I'd rather not.
Kenn On Tue, Jan 18, 2022 at 6:17 AM Kenneth Knowles <k...@apache.org> wrote: > 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 >>> >>