Hmmm. Another Continuous Integration tool? What is that, the millionth
one?
Yup, pretty much, but we're taking a different approach than the others - in
a way, back to the basics. Here's our motto:
Easy to install, pleasant to use and simple to hack
What kind of good stuff does that mean?
- download and get building in 5-10 minutes (maybe 15 if you stop to read
the manual)
- little to no configuration (seriously, just tell it your Subversion URL)
- works for Ruby, Java, .NET ... anything that you can invoke from the
command line
- aesthetic beauty (not bad for a build tool)
Hi,
Is there any reason you don't have it parse the XML output of svn, it
would probably be much easier.
···
On 3/12/07, Alexey Verkhovsky <alexey.verkhovsky@gmail.com> wrote:
Hmmm. Another Continuous Integration tool? What is that, the millionth
one?
Yup, pretty much, but we're taking a different approach than the others - in
a way, back to the basics. Here's our motto:
Easy to install, pleasant to use and simple to hack
What kind of good stuff does that mean?
- download and get building in 5-10 minutes (maybe 15 if you stop to read
the manual)
- little to no configuration (seriously, just tell it your Subversion URL)
- works for Ruby, Java, .NET ... anything that you can invoke from the
command line
- aesthetic beauty (not bad for a build tool)
I tried running CC.rb on Solaris and got this after calling ./cruise add ... :
FAILED: Unknown OS: solaris2.8
I added this to lib/platform.rb:
when /solaris/ then 'solaris'
I'm hoping that the platform makes a difference only if it is Windows.
I'm having other issues with SVN at the moment, so I can't tell if
things work or not (things seem to work since ./cruise add ...
finishes without complaints now).
I have a feeling this is going to sound like a stupid question, but
why does anyone need a continuous integration tool for a dynamic
language like Ruby? In other words, what exactly in my subversion
repository is it going to "build"?
When I used to work with .NET, it was helpful to have daily binaries
from source, so that we could run the test suite, or be able to
install the latest build on a test machine somewhere.
But with Rails, for example, I run my tests *before* I commit to
subversion - it was pretty easy to write a rake task to run the tests,
and then commit the code automatically if all of the tests passed.
The same could be said for any Ruby project, not just Rails.
Maybe I'm thinking in a narrow way, based on my limited experience
with Ruby and Rails projects so far. So I'm just curious, and to
expand my own horizons a bit - what are some examples of when a Ruby
developer would need a continuous integration tool?
Thanks!
Jeff
···
On Mar 12, 11:27 pm, "Alexey Verkhovsky" <alexey.verkhov...@gmail.com> wrote:
Hmmm. Another Continuous Integration tool? What is that, the millionth
one?
Other than "we didn't know that Subversion talks in XML until last Sunday"?
No.
it would probably be much easier.
Probably.
The downside is that it's not very human readable, which hinders
troubleshooting. On the other hand, XML apparently solves localization
problem for some people with non-english Subversion installations. So, it
definitely deserves a serious look.
Alex
···
On 3/13/07, Chris Carter <cdcarter@gmail.com> wrote:
Is there any reason you don't have it parse the XML output of svn,
It's not stupid, bu the answer is, to integrate. Yes it doesn't build
really, but if you have 10 people working on a project it's useful to
make sure it's all still working together, tests run properly etc.
With the .net developers where I work it's easy to see that, even if
it wasn't a compiled language, they'd need the CI to keep things
running smoothly.
Admittedly when it's one developer, or developers working on
distinctly separate modules it's not as important.
> Hmmm. Another Continuous Integration tool? What is that, the millionth
> one?
I have a feeling this is going to sound like a stupid question, but
why does anyone need a continuous integration tool for a dynamic
language like Ruby? In other words, what exactly in my subversion
repository is it going to "build"?
When I used to work with .NET, it was helpful to have daily binaries
from source, so that we could run the test suite, or be able to
install the latest build on a test machine somewhere.
I actually plan on using this FOR .NET development. While CC.Net is useful,
it isn't going to help me with my linux based Mono builds. This could be an
extremely useful tool for those of us building cross platform software, and
wanting a simple CI tool to use for multiple languages.
But with Rails, for example, I run my tests *before* I commit to
···
On 3/14/07, Jeff <cohen.jeff@gmail.com> wrote:
On Mar 12, 11:27 pm, "Alexey Verkhovsky" <alexey.verkhov...@gmail.com> > wrote:
subversion - it was pretty easy to write a rake task to run the tests,
and then commit the code automatically if all of the tests passed.
The same could be said for any Ruby project, not just Rails.
Maybe I'm thinking in a narrow way, based on my limited experience
with Ruby and Rails projects so far. So I'm just curious, and to
expand my own horizons a bit - what are some examples of when a Ruby
developer would need a continuous integration tool?
I have a feeling this is going to sound like a stupid question, but
why does anyone need a continuous integration tool for a dynamic
language like Ruby? In other words, what exactly in my subversion
repository is it going to "build"?
<snip>
What I would like is for Ruby itself to use CI. That way the core team
isn't relying on bug reports from preview releases.
I figure Linux is covered since that's what Matz develops on. If we
could get folks to give the core team access to Windows, OS X, AIX and
HP-UX boxes (and various versions of each), we would have much greater
confidence with each release.
Regards,
Dan
PS - I've got a Solaris 10 laptop and Windows XP Pro desktop the core
team can use for CI if they wish.
···
On Mar 14, 1:15 pm, "Jeff" <cohen.j...@gmail.com> wrote:
When it's one developer, no. Multiple developers working on distinctly
separate modules, on the other hand? If these modules need to talk to each
other at all, CI is sweet.
Or consider the Ruby on Rails framework. It has to work on multiple
databases and operating systems. You won't set them all up on your
development box and run all tests every time you check something in. Until
there was a continuous integration rig that ran unit tests against Oracle
and SQLServer, unit tests for those databases were perpetually broken.
Alex
···
On 3/14/07, Kyle Schmitt <kyleaschmitt@gmail.com> wrote:
Admittedly when it's one developer, or developers working on
distinctly separate modules it's not as important.
At my job we use Cerberus for CI. We have different programmers
working on different parts of a large application in a complex domain,
including a DSL and a parser. Breaking other people's stuff is easy.
You check something in, Cerberus runs the tests automatically. Any
project with more than a few people on it can benefit from CI.
There's been a lot of talk about CruiseControl in the last couple
days, by the way, including a rumor that it'll become the official CI
tool of Rails.
For starters I'd vote they just run against Ruby's builtin test suite.
However, CI would (or could, I presume) also smoke out issues during
the configure/make process, which seems to be one of the major issues
that comes up in the preview releases, especially for Solaris and AIX
it seems.
Regards,
Dan
···
On Mar 15, 12:10 pm, Bil Kleb <Bil.K...@NASA.gov> wrote:
Daniel Berger wrote:
> What I would like is for Ruby itself to use CI. That way the core team
> isn't relying on bug reports from preview releases.
+1
But don't we need something like Rubicon, aka rubytests?
Just a side note, but I finally got around to trying out
CruiseControl.rb today and I'm really impressed. We were already using
CruiseControl (CruiseControl.java?) to manage the builds of about
seven Java-based projects. The only thing I had to add to get stuff
working under CC.rb was to tell the configuration file
(cruise_config.rb) for each project what command it should use to
build that project, i.e.
Project.configure do |project|
project.build_command = "ant clean; ant deploy"
end
and it was off to the races. I think I had everything up and running
in *maybe* twenty minutes, as opposed to, well, a much longer time
when I first set up CruiseControl. Very nice indeed.
The only thing I'm missing at the moment is some kind of plugin for
viewing the JUnit test results report. Maybe I should get to work on
that.
···
On 3/14/07, Giles Bowkett <gilesb@gmail.com> wrote:
There's been a lot of talk about CruiseControl in the last couple
days, by the way, including a rumor that it'll become the official CI
tool of Rails.
> What I would like is for Ruby itself to use CI. That way the core team
> isn't relying on bug reports from preview releases.
Once we get Rails well covered on our yet-to-be-built CI rig, we can
certainly think about adding Ruby to the same rig, too.
Question to Matz or anyone else from Ruby-core: do you think that you need
something like this?