About as easy as getting Travis set up, at least to start up the first few 
builds. If your package has binary dependencies, then how are you enforcing 
that those dependencies are available and in an expected location across 
all platforms? If you're currently using BinDeps to download the necessary 
precompiled libraries for Windows users, then AppVeyor is a good way to 
test if that process "just works" from scratch in a controlled environment 
without needing a Windows machine to test on yourself.

If you don't have BinDeps set up in a transparent way yet, then a CI 
environment isn't the ideal place to put it together. A local VM, or trying 
to find a Windows-knowledgeable developer with enough time or a Windows 
user with enough expertise to help out would be more effective.

For anything with a POSIX-y build system (like Julia itself, needing gmake 
and bash), I generally go for installing Cygwin or MSYS. In the case of 
libgit2 you can install cmake from Chocolatey (which is pre-set up on the 
AppVeyor VM's) http://chocolatey.org/packages/cmake, if there are no binary 
downloads available and if it's feasible to build the library from source 
quickly enough for a CI setting.

The WinRPM.jl package is quite effective for those binary dependencies 
currently available as cross-compiles from the OpenSuse build server, but 
it doesn't have everything there yet. Putting together cross-compile 
packages for your favorite library is probably the best long-term way for 
Windows users to get up and running without having a full build system 
installed.

-Tony


On Tuesday, March 11, 2014 1:55:17 PM UTC-7, Jake Bolewski wrote:
>
> This is really great.  As someone who has gone most of his life without 
> using Windows, how easy is this to set up if you are not a knowledgeable 
> window's developer?  I'm thinking about sometimes hard to build library 
> dependencies, like libgit2 or an opencl vendor implementation.  I would try 
> this but I'm sure it's painful to debug build errors if you don't have 
> access to a window's machine setup similar to the CI environment. 
>
> Jake
>
> On Tuesday, March 11, 2014 4:06:02 PM UTC-4, Ivar Nesje wrote:
>>
>> This is Great! There is an unfortunate correlation between being a open 
>> source contributor and not using the most popular operating system among 
>> users.
>>
>> You should post this to the julia-dev list. I would assume that fewer 
>> people skip posts on the lower traffic list, and when this is up and 
>> running I think that would be quite a milestone for the community.
>>
>> Ivar
>>
>> kl. 18:24:28 UTC+1 tirsdag 11. mars 2014 skrev Tony Kelman følgende:
>>>
>>> I want to make a bit of an announcement for people who don't browse the 
>>> Github issues list. I've been working on setting up continuous integration, 
>>> a la Travis, but for Windows using AppVeyor - 
>>> http://blog.appveyor.com/2014/02/19/appveyor-20-dedicated-build-vms-parallel-testing-nuget-deployment.
>>>  
>>> I have a WIP PR for Julia itself here 
>>> https://github.com/JuliaLang/julia/pull/6028 with some discussion, but 
>>> there are some remaining problems I have to solve to get it working for the 
>>> main Julia codebase.
>>>
>>> What does work now, and I encourage package maintainers who've been 
>>> looking for cross-platform testing to set up, is using AppVeyor for Julia 
>>> packages. Like Travis, it's free for open source projects, but currently 
>>> only allows one concurrent build at a time on the free plan, time limit 30 
>>> minutes per build. I have a very simple example configuration file set up 
>>> here https://github.com/tkelman/JSON.jl/blob/master/appveyor.yml and 
>>> you can see what the build result looks like here 
>>> https://ci-beta.appveyor.com/project/tkelman/json-jl/build/1.0.31. Not 
>>> much to look at since JSON.jl is a simple self-contained package, but you 
>>> can see how similar the appveyor.yml configuration file is to the existing 
>>> travis.yml. I'm using the Julia binary installer instead of the apt-get 
>>> PPA's, and creating a symlink in Windows requires admin rights so I had to 
>>> change `ln -s` to `cp -r` (there may be a way to elevate permissions in 
>>> AppVeyor but I'm not sure how).
>>>
>>> I think this can be a valuable service to identify Windows bugs faster, 
>>> since the number of Julia developers who use Windows on a regular basis is 
>>> understandably limited. AppVeyor's developer/founder has been in touch and 
>>> would be excited to see more users of the tool he's put together, and he's 
>>> been very responsive to troubleshooting and feature requests.
>>>
>>> -Tony
>>>
>>

Reply via email to