HLearn icon indicating copy to clipboard operation
HLearn copied to clipboard

adding CI support

Open mwotton opened this issue 10 years ago • 17 comments

simple config for travisci. you can see the build records at https://travis-ci.org/mwotton/HLearn/ now.

mwotton avatar Nov 29 '14 14:11 mwotton

Sorry for waiting on this. I definitely plan to get travisci support now, I'm just doing some reorganization of the repo into a cleaner state first.

mikeizbicki avatar Dec 23 '14 01:12 mikeizbicki

No worries. My only interest is getting it consistently buildable so I can junk my crappy solution.

Mike Izbicki [email protected] wrote:

Sorryforwaitingonthis.Idefinitelyplantogettraviscisupportnow,I'mjustdoingsomereorganizationoftherepointoacleanerstatefirst.ReplytothisemaildirectlyorviewitonGitHub.

mwotton avatar Dec 28 '14 08:12 mwotton

Hi Mike - any movement on this? Happy to put some work into getting a consistent CI system set up, but only if you're at a stage where it would actually be useful.

mwotton avatar May 19 '15 09:05 mwotton

Hi Mark. Thanks for following up!

Yes, I'm still interested in this. But I don't think it quite makes sense for this repo yet. There's a lot of changes still underway over the next month or two that are likely to entail some major restructuring still.

The subhask repo is probably at a place though where it would make sense. I'd be interested in gettng the CI support integrated into the ghc7.10 branch.

mikeizbicki avatar May 19 '15 14:05 mikeizbicki

I've finally gotten around to getting Travis working. But it turns out they don't yet support GHC 7.10, so we can't use it.

mikeizbicki avatar Jun 17 '15 22:06 mikeizbicki

Hvr has a method for doing it that lets you choose 7.10 - I'll have a look in a week, travelling atm.

On Thu, 18 Jun 2015 5:16 am Mike Izbicki [email protected] wrote:

I've finally gotten around to getting Travis working. But it turns out they don't yet support GHC 7.10, so we can't use it.

— Reply to this email directly or view it on GitHub https://github.com/mikeizbicki/HLearn/pull/45#issuecomment-112967914.

mwotton avatar Jun 17 '15 23:06 mwotton

I think I've figured it out. I should be pushing out the changes in a bit.

mikeizbicki avatar Jun 19 '15 06:06 mikeizbicki

I've finally got Travis working on the subhask repo. (See https://travis-ci.org/mikeizbicki/subhask) But there's two things I haven't figured out to my satisfaction:

  1. GHC 7.10 requires llvm 3.5, which isn't available on Travis. My current solution is to download the source and compile it. This isn't ideal because of the huge build time overhead. But at least it works.
  2. One of the errors I'm most scared of is performance regressions. I'm not sure the best way to catch these errors. Criterion gives us a good way to measure performance by hand, but not a good way to automate testing to see if performance has worsened. On my local machine, what I've been doing is outputting all the criterion benchmarks to a csv file, then checking if any value in the csv file has changed by more than 20%. I'm not sure how to do something similar on Travis, however, because I don't know what their architecture is like.

mikeizbicki avatar Jun 22 '15 23:06 mikeizbicki

Once I've figured out if there's solutions to these problems I'll add travis to hlearn as well.

mikeizbicki avatar Jun 22 '15 23:06 mikeizbicki

I think you'd want to use travis artifacts

http://blog.travis-ci.com/2012-12-18-travis-artifacts/

mark

On Mon, Jun 22, 2015 at 6:15 PM Mike Izbicki [email protected] wrote:

I've finally got Travis working on the subhask repo. (See https://travis-ci.org/mikeizbicki/subhask) But there's two things I haven't figured out to my satisfaction:

GHC 7.10 requires llvm 3.5, which isn't available on Travis. My current solution is to download the source and compile it. This isn't ideal because of the huge build time overhead. But at least it works. 2.

One of the errors I'm most scared of is performance regressions. I'm not sure the best way to catch these errors. Criterion gives us a good way to measure performance by hand, but not a good way to automate testing to see if performance has worsened. On my local machine, what I've been doing is outputting all the criterion benchmarks to a csv file, then checking if any value in the csv file has changed by more than 20%. I'm not sure how to do something similar on Travis, however, because I don't know what their architecture is like.

— Reply to this email directly or view it on GitHub https://github.com/mikeizbicki/HLearn/pull/45#issuecomment-114299426.

mwotton avatar Jun 22 '15 23:06 mwotton

Criterion gives us a good way to measure performance by hand, but not a good way to automate testing to see if performance has worsened.

Assuming you're most worried mostly about gross degradations - O(n) -> O(n^2) say - you can always wrap the benchmark in a test and log an error on unacceptable performance. One trick is to measure performance on n=100 and n=1000 say, then have the test guess the order.

tonyday567 avatar Jun 23 '15 01:06 tonyday567

I'm really interested inconstant factor performance. I want to catch the scenario where a function that used to take 300ns goes up to 350ns on the same input.

mikeizbicki avatar Jun 23 '15 03:06 mikeizbicki

I've completely redone the testing interface, so it's much improved. Thanks for the push in this direction :)

Unfortunately, Travis builds sometimes fail due to GHC using too much memory. I think the best way to get around this is to disable optimizations on the travis build, but I haven't figured out how to do this. So basically everything is working, but I can't but the build-passing button on the README file yet due to this problem.

mikeizbicki avatar Jul 22 '15 15:07 mikeizbicki

Great to hear it, looking forward to having the chance to play with HLearn a bit more seriously:)

mwotton avatar Jul 22 '15 20:07 mwotton

(would cabal configure --disable-optimization be what you're looking for?)

mwotton avatar Jul 22 '15 20:07 mwotton

I thought so too, but it doesn't seem to actually do anything for me.

mikeizbicki avatar Jul 23 '15 06:07 mikeizbicki

Is this PR still relevant? It seems that master has a .travis.yml file already

thomasdziedzic avatar Oct 26 '16 04:10 thomasdziedzic