Thanks, done.

https://issues.apache.org/jira/browse/INFRA-12301?jql=project%20%3D%20INFRA


> On Jul 15, 2016, at 6:31 PM, Mattmann, Chris A (3980) 
> <[email protected]> wrote:
> 
> Hey Matt,
> 
> Apache infra supports Travis CI - just file a ticket and they will
> set it up :)
> 
> Cheers,
> Chris
> 
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Chris Mattmann, Ph.D.
> Chief Architect
> Instrument Software and Science Data Systems Section (398)
> NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
> Office: 168-519, Mailstop: 168-527
> Email: [email protected]
> WWW:  http://sunset.usc.edu/~mattmann/
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Director, Information Retrieval and Data Science Group (IRDS)
> Adjunct Associate Professor, Computer Science Department
> University of Southern California, Los Angeles, CA 90089 USA
> WWW: http://irds.usc.edu/
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On 7/15/16, 2:05 PM, "Matt Post" <[email protected]> wrote:
> 
>> Question for Chris and/or Lewis:
>> 
>> So, Kellen and I took a look at this today, and it looks like a good 
>> solution. The problem is that it integrates with projects hosted on Github 
>> that you have write access to. In order to make use of this, we'd need to 
>> rearrange the setup we have.
>> 
>> Currently, we push to a repo at git.apache.org, and that is then pushed down 
>> to github.com/apache/incubator-joshua. This lets us use the Github repo for 
>> receiving things like pull requests and so on, but we do not have write 
>> access to it, so merges and so on have to be handled manually.
>> 
>> To use Travis-ci, we'd need to re-enginneer this. Apache would need to give 
>> us write access to github.com/apache/incubator-joshua, or we'd need to use 
>> another official host for Joshua. We'd then use git.apache.org as the 
>> mirror, instead of the other way around.
>> 
>> Is there any way that this could be done? I understand Apache's arguments 
>> about keeping discussions at home, since github may not last forever. 
>> However, it seems like we could do this if we use git.apache.org as the 
>> backup mirror, and continue to use JIRA for discussions and so on. In 
>> general, Github has a lot of tools that could help with development. It 
>> would be nice if we could make use of them while still checking off Apache's 
>> logging requirements.
>> 
>> matt
>> 
>> 
>> 
>>> On Jul 11, 2016, at 6:50 PM, kellen sunderland 
>>> <[email protected]> wrote:
>>> 
>>> Sorry should have provided the link to this page: https://travis-ci.org/ .
>>> If you scroll down a bit on that page there's a Pull Request flow section,
>>> it's the flow I'd be most in favour of.  There's also a decent (but rushed)
>>> demo here: https://www.youtube.com/watch?v=Uft5KBimzyk .  We actually don't
>>> need to do a lot of the work that he demos, i.e. no node or gulp
>>> configuration.  Our setup is close enough to default a default java project
>>> that we just have to tell it to build java 8 and then it runs maven
>>> properly.
>>> 
>>> Using a CI server would have some aspects that are similar to the branching
>>> document you mention, and some benefits that are a bit orthogonal.  Most of
>>> these benefits have to do with unit testing, which isn't covered in the doc.
>>> 
>>> First the orthogonal benefits:  The main benefit we would get from using CI
>>> is that we guarantee code in our repo is never broken.  That is to say
>>> tests always pass and it always builds correctly.  CI servers are really
>>> useful to prevent problems where one developer may have everything working
>>> properly on his/her machine, but when they later realize it's not working
>>> on another devs machine.  A good example of this is the class-based-lm-test
>>> we pushed recently.  It works fine for me locally but it would fail for
>>> anyone without kenlm.so.  There are many other examples (javadoc errors,
>>> code style, etc) but what will happen in these cases is we'll see a big
>>> obvious 'The build has problems' message in the PR page on Github.  If the
>>> CI server runs of all of our code quality checks and finds that everything
>>> is good we'll get a big 'This PR is ready to merge' message.
>>> 
>>> Now to the part that overlaps a bit with branching.  There are various
>>> branching strategies that we could adopt for the project.  The master / dev
>>> branch one is a possibility.  I'd suggest we try commit code strictly in
>>> PRs rather than pushing to git.  This would be the equivalent of feature
>>> branching from your link.  The reason I'd suggest that approach is that
>>> from what I've seen it'll be dead simple to get working with Github and
>>> Travis, and it gives us the same goal of having a stable master branch.
>>> 
>>> If you'd like we can walk through setting this up together on a forked
>>> version of our Github repo.  We could do a quick example of how code would
>>> be pushed and merged.  I should be available for a google hangout some time
>>> this week if that works for you?
>>> 
>>> -Kellen
>>> 
>>> 
>>> On Mon, Jul 11, 2016 at 10:51 PM, Mattmann, Chris A (3980) <
>>> [email protected]> wrote:
>>> 
>>>> CI = continuous integration :)
>>>> 
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> Chris Mattmann, Ph.D.
>>>> Chief Architect
>>>> Instrument Software and Science Data Systems Section (398)
>>>> NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
>>>> Office: 168-519, Mailstop: 168-527
>>>> Email: [email protected]
>>>> WWW:  http://sunset.usc.edu/~mattmann/
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> Director, Information Retrieval and Data Science Group (IRDS)
>>>> Adjunct Associate Professor, Computer Science Department
>>>> University of Southern California, Los Angeles, CA 90089 USA
>>>> WWW: http://irds.usc.edu/
>>>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On 7/11/16, 4:50 PM, "Matt Post" <[email protected]> wrote:
>>>> 
>>>>> This sounds fine to me. What does CI stand for?
>>>>> 
>>>>> Another thing we should do, which might be complementary to this, is just
>>>> be more formal about our process. I had been using this method for a while:
>>>>> 
>>>>>     http://nvie.com/posts/a-successful-git-branching-model/
>>>>> 
>>>>> Sort of informally, but that could be a good approach (I think someone
>>>> suggested it a while ago). In short:
>>>>> 
>>>>> - "master" is always stable and records official releases
>>>>> - development takes place on "develop"
>>>>> - if you need to make an important fix, you branch off master, fix it,
>>>> then merge that into both "master" (as a point release) and "develop"
>>>>> 
>>>>> I was using "release" for releases and "master" for develop, but we could
>>>> adopt anything.
>>>>> 
>>>>> Kellen, how does this fit with CI? It seems like we could set it up to do
>>>> testing on "master" and "develop" branches --- the first as a sanity check,
>>>> and the second as a test for when we could merge into master?
>>>>> 
>>>>> matt
>>>>> 
>>>>> 
>>>>>> On Jul 11, 2016, at 8:17 AM, kellen sunderland <
>>>> [email protected]> wrote:
>>>>>> 
>>>>>> We've made a lot of progress on moving the project over to Apache +
>>>> Maven.
>>>>>> I was wondering if now would be a good time to consider re-thinking how
>>>> we
>>>>>> merge changes into master.  The main goal would be to make sure we have
>>>> a
>>>>>> stable master branch that everyone can pull from.
>>>>>> 
>>>>>> What I'd suggest is that we only merge into master once CI has completed
>>>>>> testing.  This way we can codify style rules, best practices, and make
>>>> sure
>>>>>> builds succeed and tests pass.  We can develop new features create PRs
>>>> as
>>>>>> normal, and then get quick feedback if those PRs are mergable.  I'd also
>>>>>> suggest we dis-allow manual pushing to the master branch.
>>>>>> 
>>>>>> I'm not sure how much effort this would be with the existing CI server,
>>>> but
>>>>>> I could investigate this if someone could grant me admin permissions.
>>>> If
>>>>>> it's a Jenkins server I'm sure it's possible.
>>>>>> 
>>>>>> Another option is to use Travis CI.  I have taken a quick look at
>>>> Travis CI
>>>>>> and it seems like a quite polished solution.  It's free to use for open
>>>>>> source projects.  It supports automatically building + testing PRs.  The
>>>>>> interface is really clean.  It has email notifications and group
>>>>>> administration support.  It's got support for multiple (programming)
>>>>>> languages so we could in theory build kenlm as a build step and run
>>>> those
>>>>>> tests.
>>>>>> 
>>>>>> Here's some more info on what the workflow with Travis-CI and PRs would
>>>> be
>>>>>> https://docs.travis-ci.com/user/pull-requests
>>>>>> 
>>>>>> What do you guys think?  Is there a strong preference for using Jenkins
>>>>>> from the Apache community?  Would everyone be ok with avoiding direct
>>>>>> pushes to master?
>>>>>> 
>>>>>> -Kellen
>>>>> 
>>>> 
>> 

Reply via email to