pyd - continuous integration

2014-06-09 Thread Ellery Newcomer via Digitalmars-d
So pyd is at the point where it really needs some sort of test 
suite runner. It's kind of complicated since I need to test 
against


* multiple versions of dmd/ldc/gdc
* multiple versions of python (2.4 - 3.4, but I'm thinking of 
dropping 2.4 and 2.5 this year)

* redhat, ubuntu, osx, windows, etc

Does anyone have any suggestions on how or where to set this up? 
I had a peek at atlassian bamboo, but it looks like it only plays 
with ec2, which I don't know anything about.


Re: pyd - continuous integration

2014-06-09 Thread MattCoder via Digitalmars-d

On Monday, 9 June 2014 at 22:37:20 UTC, Ellery Newcomer wrote:
So pyd is at the point where it really needs some sort of test 
suite runner.
* multiple versions of python (2.4 - 3.4, but I'm thinking of 
dropping 2.4 and 2.5 this year)


Well done! -If you want a suggestion I think you should starting 
support for: +2.6!


Matheus.



Re: pyd - continuous integration

2014-06-09 Thread Kapps via Digitalmars-d

On Monday, 9 June 2014 at 22:37:20 UTC, Ellery Newcomer wrote:
So pyd is at the point where it really needs some sort of test 
suite runner. It's kind of complicated since I need to test 
against


* multiple versions of dmd/ldc/gdc
* multiple versions of python (2.4 - 3.4, but I'm thinking of 
dropping 2.4 and 2.5 this year)

* redhat, ubuntu, osx, windows, etc

Does anyone have any suggestions on how or where to set this 
up? I had a peek at atlassian bamboo, but it looks like it only 
plays with ec2, which I don't know anything about.


Bamboo can be hosted locally on your own machines without having 
to deal with EC2 in any way. It's just that if you want remote 
test runners (as well as not being free unless you can get an 
open source license from Atlassian), EC2 is one of the available 
options to run instances on.


I actually use Bamboo with a plugin I made 
(https://shardsoft.com/stash/projects/SHARD/repos/dubplug/browse) 
for my own stuff, but this plugin is far from being complete and 
doesn't really handle dependencies at all (as well as currently 
relying on the text format of test output with 'tested' not 
changing...). I have my instance running on my server, with the 
web interface at 
https://shardsoft.com/bamboo/browse/SHARD-SHTOOLS.


A very popular choice for D users is TravisCI, which I believe is 
free for open source and by default handles multiple platforms, 
something which Bamboo does not easily do in the $10 version.


Re: pyd - continuous integration

2014-06-10 Thread Russel Winder via Digitalmars-d
On Mon, 2014-06-09 at 22:37 +, Ellery Newcomer via Digitalmars-d
wrote:
> So pyd is at the point where it really needs some sort of test 
> suite runner. It's kind of complicated since I need to test 
> against
> 
> * multiple versions of dmd/ldc/gdc
> * multiple versions of python (2.4 - 3.4, but I'm thinking of 
> dropping 2.4 and 2.5 this year)

Unless there is an extant user base for 2.4 and 2.5, I would drop them
with immediate effect, which would allow to upgrade to a reasonable
Python code quality. There are very few people still stuck with 2.5 even
fewer with 2.4 and increasingly 2.6 is going away (but not totally
thanks to Red Hat :-(

I suggest ignoring 3.0, 3.1 and 3.2, and supporting only 3.3 and later.
This gives a much greater chance of having a single Python codebase
executable with either 2.7 or 3.3/3.4. So if you can drop 2.6 as well,
things get almost livable with.

Personally I only use 3.4, but there are those who will not upgrade and
insist on using 2.7.

> * redhat, ubuntu, osx, windows, etc

Fedora and Debian.

> Does anyone have any suggestions on how or where to set this up? 
> I had a peek at atlassian bamboo, but it looks like it only plays 
> with ec2, which I don't know anything about.

There is TeamCity, I am involved in a couple of projects using that.
Works well and (unsurprisingly) had excellent support in IntelliJ IDEA
and PyCharm.

Bamboo can be a bit of a pain, but once set up work well. I am using the
Codehaus instance because some of the project I work on are Codehaus
projects.

You could run Jenkins somewhere.

I guess the issue is being able to set up 9 or 10 virtual machines for
all the variants needed.

Perhaps a good solution would be to run Buildbot, have the server local
to you and ask for volunteers to offer slaves. This used to work very
well for me for a now dead project. It also used to work excellently for
the SCons project, but since the exit of the two main developers, there
has been a bit of hiatus. This is being fixed now, and a good Buildbot
set up being put in place.

-- 
Russel.
=
Dr Russel Winder  t: +44 20 7585 2200   voip: sip:russel.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder



Re: pyd - continuous integration

2014-06-10 Thread Jacob Carlborg via Digitalmars-d

On 10/06/14 00:37, Ellery Newcomer wrote:

So pyd is at the point where it really needs some sort of test suite
runner. It's kind of complicated since I need to test against

* multiple versions of dmd/ldc/gdc
* multiple versions of python (2.4 - 3.4, but I'm thinking of dropping
2.4 and 2.5 this year)
* redhat, ubuntu, osx, windows, etc

Does anyone have any suggestions on how or where to set this up? I had a
peek at atlassian bamboo, but it looks like it only plays with ec2,
which I don't know anything about.


Travis CI supports multi-platform, currently Linux (Ubuntu) and OS X. 
There's also a similar service which uses Windows.


--
/Jacob Carlborg


Re: pyd - continuous integration

2014-06-10 Thread David Gileadi via Digitalmars-d

On 6/10/14, 1:31 AM, Russel Winder via Digitalmars-d wrote:

On Mon, 2014-06-09 at 22:37 +, Ellery Newcomer via Digitalmars-d
wrote:

So pyd is at the point where it really needs some sort of test
suite runner. It's kind of complicated since I need to test
against

* multiple versions of dmd/ldc/gdc
* multiple versions of python (2.4 - 3.4, but I'm thinking of
dropping 2.4 and 2.5 this year)


Unless there is an extant user base for 2.4 and 2.5, I would drop them
with immediate effect, which would allow to upgrade to a reasonable
Python code quality. There are very few people still stuck with 2.5 even
fewer with 2.4 and increasingly 2.6 is going away (but not totally
thanks to Red Hat :-(

I suggest ignoring 3.0, 3.1 and 3.2, and supporting only 3.3 and later.
This gives a much greater chance of having a single Python codebase
executable with either 2.7 or 3.3/3.4. So if you can drop 2.6 as well,
things get almost livable with.

Personally I only use 3.4, but there are those who will not upgrade and
insist on using 2.7.


* redhat, ubuntu, osx, windows, etc


Fedora and Debian.


Does anyone have any suggestions on how or where to set this up?
I had a peek at atlassian bamboo, but it looks like it only plays
with ec2, which I don't know anything about.


There is TeamCity, I am involved in a couple of projects using that.
Works well and (unsurprisingly) had excellent support in IntelliJ IDEA
and PyCharm.

Bamboo can be a bit of a pain, but once set up work well. I am using the
Codehaus instance because some of the project I work on are Codehaus
projects.

You could run Jenkins somewhere.

I guess the issue is being able to set up 9 or 10 virtual machines for
all the variants needed.

Perhaps a good solution would be to run Buildbot, have the server local
to you and ask for volunteers to offer slaves. This used to work very
well for me for a now dead project. It also used to work excellently for
the SCons project, but since the exit of the two main developers, there
has been a bit of hiatus. This is being fixed now, and a good Buildbot
set up being put in place.


In regards to setting up virtual machines the folks at my work use 
Vagrant. I don't have experience with this but I thought I'd mention it 
in case it helps.


Re: pyd - continuous integration

2014-06-10 Thread Atila Neves via Digitalmars-d
If you can spare the time / HW resources, I'd probably go with 
Vagrant and Buildbot, but then again I would since I'm familiar 
with both.


Atila

On Tuesday, 10 June 2014 at 14:34:13 UTC, David Gileadi wrote:

On 6/10/14, 1:31 AM, Russel Winder via Digitalmars-d wrote:
On Mon, 2014-06-09 at 22:37 +, Ellery Newcomer via 
Digitalmars-d

wrote:

So pyd is at the point where it really needs some sort of test
suite runner. It's kind of complicated since I need to test
against

* multiple versions of dmd/ldc/gdc
* multiple versions of python (2.4 - 3.4, but I'm thinking of
dropping 2.4 and 2.5 this year)


Unless there is an extant user base for 2.4 and 2.5, I would 
drop them
with immediate effect, which would allow to upgrade to a 
reasonable
Python code quality. There are very few people still stuck 
with 2.5 even
fewer with 2.4 and increasingly 2.6 is going away (but not 
totally

thanks to Red Hat :-(

I suggest ignoring 3.0, 3.1 and 3.2, and supporting only 3.3 
and later.
This gives a much greater chance of having a single Python 
codebase
executable with either 2.7 or 3.3/3.4. So if you can drop 2.6 
as well,

things get almost livable with.

Personally I only use 3.4, but there are those who will not 
upgrade and

insist on using 2.7.


* redhat, ubuntu, osx, windows, etc


Fedora and Debian.

Does anyone have any suggestions on how or where to set this 
up?
I had a peek at atlassian bamboo, but it looks like it only 
plays

with ec2, which I don't know anything about.


There is TeamCity, I am involved in a couple of projects using 
that.
Works well and (unsurprisingly) had excellent support in 
IntelliJ IDEA

and PyCharm.

Bamboo can be a bit of a pain, but once set up work well. I am 
using the
Codehaus instance because some of the project I work on are 
Codehaus

projects.

You could run Jenkins somewhere.

I guess the issue is being able to set up 9 or 10 virtual 
machines for

all the variants needed.

Perhaps a good solution would be to run Buildbot, have the 
server local
to you and ask for volunteers to offer slaves. This used to 
work very
well for me for a now dead project. It also used to work 
excellently for
the SCons project, but since the exit of the two main 
developers, there
has been a bit of hiatus. This is being fixed now, and a good 
Buildbot

set up being put in place.


In regards to setting up virtual machines the folks at my work 
use Vagrant. I don't have experience with this but I thought 
I'd mention it in case it helps.




Re: pyd - continuous integration

2014-06-10 Thread Ellery Newcomer via Digitalmars-d

On Tuesday, 10 June 2014 at 14:39:25 UTC, Atila Neves wrote:
If you can spare the time / HW resources, I'd probably go with 
Vagrant and Buildbot, but then again I would since I'm familiar 
with both.


Atila


I stumbled on vagrant a few months ago but haven't had a chance 
to play with it yet. I take it you need a pretty beefy box to use 
it?


Another thing I was envisioning is a web page that shows test 
results for each combination so that it is easy for a casual user 
to determine pyd's status. Does buildbot have this sort of thing?


Re: pyd - continuous integration

2014-06-11 Thread Jacob Carlborg via Digitalmars-d

On 10/06/14 23:32, Ellery Newcomer wrote:


Another thing I was envisioning is a web page that shows test results
for each combination so that it is easy for a casual user to determine
pyd's status. Does buildbot have this sort of thing?


Travis CI does have that. But it currently doesn't support Windows.

--
/Jacob Carlborg