Based on discussion on https://issues.apache.org/jira/browse/LEGAL-601 I
think it will be simplest to license it under ASL2 and include a NOTICE
file. The user will be free to "clone and go".

I would bring these points back to the dev list:

 - ASL2 is what people expect from an ASF project, so it is "least surprise"
 - Dual-licensing is possible (but I think not worthwhile due to its impact
on contributor license agreements)
 - ASL2 says "You must cause any modified files to carry prominent notices
stating that You changed the files" which won't apply to the user's code
and I would guess they simply won't bother with for files in the template.
Or maybe there is a clever way to phrase the header so it is already good
to go.
 - ASL2 says if the work includes a NOTICE file, you have to includes the
attributions from it. The NOTICE file is required by ASF policy. We can
easily set it up to be a noop for the user.

So my overall take is that we should go ahead with ASL2 and a simple NOTICE
file. Check the Jira for details.

Kenn

On Mon, Feb 7, 2022 at 10:47 AM Kenneth Knowles <k...@apache.org> wrote:

> And I've created the repos just now.
>
> Kenn
>
> On Mon, Feb 7, 2022 at 10:39 AM Kenneth Knowles <k...@apache.org> wrote:
>
>> Legal question asked at https://issues.apache.org/jira/browse/LEGAL-601
>>
>> Kenn
>>
>> On Fri, Feb 4, 2022 at 7:58 AM Danny McCormick <dannymccorm...@google.com>
>> wrote:
>>
>>> Sure - I'm happy to help out with the Actions setup (and/or with the Go
>>> template). I will say though, the Actions config should be pretty darn
>>> simple for these examples -
>>> https://github.com/davidcavazos/beam-java/blob/main/.github/workflows/test.yaml
>>> seems right, for each language configuration we're targeting we basically
>>> just want a job with:
>>>
>>>    - checkout
>>>    - setup-<language>
>>>    - inlined script to run tests
>>>
>>> Always happy to help with or consult on any actions issues 🙂
>>>
>>> Thanks,
>>> Danny
>>>
>>> On Fri, Feb 4, 2022 at 10:21 AM Kerry Donny-Clark <kerr...@google.com>
>>> wrote:
>>>
>>>> Danny has extensive experience with GitHub actions, and may be able to
>>>> help out.
>>>> Kerry
>>>>
>>>> On Thu, Feb 3, 2022, 11:47 PM Kenneth Knowles <k...@apache.org> wrote:
>>>>
>>>>> I'm convinced on all points. My main motivation was to keep it simple.
>>>>> But of course we should keep it simple for users, not us :-)
>>>>>
>>>>> I can take on the task of asking about MIT license and requesting the
>>>>> repos be created. Not sure if it needs my level of privileges but I'm 
>>>>> happy
>>>>> to do it anyhow.
>>>>>
>>>>> Kenn
>>>>>
>>>>> On Wed, Feb 2, 2022 at 10:30 AM Robert Bradshaw <rober...@google.com>
>>>>> wrote:
>>>>>
>>>>>> On Wed, Feb 2, 2022 at 10:12 AM David Cavazos <dcava...@google.com>
>>>>>> wrote:
>>>>>> >
>>>>>> > MIT is much more permissive, but I also don't have any problems
>>>>>> changing it to Apache license. In any case, how about we create the
>>>>>> following repos?
>>>>>>
>>>>>> For these starter projects, we don't want to encumber any users of
>>>>>> these templates with any particular licensing requirements (right?)
>>>>>> and we don't even care about attribution. We want these to be pretty
>>>>>> much as close to public domain as possible. That's not what the Apache
>>>>>> licence does. (If it's even relevant, a good argument could likely be
>>>>>> made for de minis or fair use, but I think it's best to be explicit
>>>>>> about this. Perhaps this'd be a good question for apache legal?
>>>>>>
>>>>>> > apache/beam-starter-java
>>>>>> > apache/beam-starter-python
>>>>>> > apache/beam-starter-go
>>>>>> > apache/beam-starter-kotlin
>>>>>> > apache/beam-starter-scala
>>>>>> >
>>>>>> > We'll start by populating the Java one which is the most pressing
>>>>>> one and the one that is ready, but the rest should be simpler.
>>>>>> >
>>>>>> > +David Huntsperger, tldr; these are minimal starter projects for
>>>>>> every language. Once we have Java, Python and Go, it might be a good idea
>>>>>> to change the quickstarts to use these instead of the word count. There 
>>>>>> is
>>>>>> already a dedicated word count walkthrough so I think that is already
>>>>>> covered.
>>>>>> >
>>>>>> > If we all agree on the repo names, who can help us create them?
>>>>>> >
>>>>>> > On Thu, Jan 27, 2022 at 12:58 PM Robert Bradshaw <
>>>>>> rober...@google.com> wrote:
>>>>>> >>
>>>>>> >> 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
>>>>>> >>
>>>>>> >> OK, fair enough.
>>>>>> >>
>>>>>> >> >  - LICENSE (notably you've got it as MIT but to be part of
>>>>>> Apache software it needs to be ASL2)
>>>>>> >>
>>>>>> >> On the topic of licence, it's a bit tricky because one doesn't
>>>>>> want to
>>>>>> >> bind the users of such a template as being a derivative work of a
>>>>>> >> too-restrictive licence. The licence of the template itself should
>>>>>> >> generally be very permissive.
>>>>>> >>
>>>>>> >> > 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