Re: [VOTE] Buildr 1.4.21 release

2014-11-28 Thread Pepijn Van Eeckhoudt
Since you're doing small incremental improvements, Antoine integrated a 
PR for Antwrap that gets rid of deprecation warnings when used with 
Juby. Buildr under JRuby also prints these warnings every time it's run. 
Might be nice to bump the Antwrap dependency to resolve this.


Pepijn

On 28/11/14 14:11, Peter Donald wrote:

Hi,

This release does not really include anything other than small incremental
improvements but I thought it would be good to get a another release out.
FWIW the tests are all green [1] and I have tested it with all our our
local builds.

[1] https://travis-ci.org/apache/buildr

On Sat, Nov 29, 2014 at 12:09 AM, Peter Donald pe...@realityforge.org
wrote:


We're voting on the source distributions available here:
http://people.apache.org/~donaldp/buildr/1.4.21/dist/

Specifically:
http://people.apache.org/~donaldp/buildr/1.4.21/dist/buildr-1.4.21.tgz
http://people.apache.org/~donaldp/buildr/1.4.21/dist/buildr-1.4.21.zip

The documentation generated for this release is available here:
http://people.apache.org/~donaldp/buildr/1.4.21/site/
http://people.apache.org/~donaldp/buildr/1.4.21/site/buildr.pdf

The following changes were made since 1.4.20:

   * Change: Update the gwt addon to add the validation dependencies
required for GWT
 compiles without requiring that the user specify the
dependency.
   * Change: Update ipr.add_gwt_configuration method to support GWT 2.7
configuration
 parameters and IDEA 14 parameters.
   * Change: Upgrade jacoco to 0.7.2. Submitted by neher.
   * Change: Update checkstyle addon to use Checkstyle 6.0.
   * Added:  Updated the gwt addon to support the upcoming GWT 2.7.x
release.
   * Change: Enhance ipr.add_glassfish_configuration to support the ability
to
 define the version of GlassFish in uses. Change the default to
4.1.0
 as that is the latest supported variant.
   * Fixed:  Change the name of the GlassFish install in
ipr.add_glassfish_configuration
 to use the same convention that IDEA uses by default. i.e.
Name the
 installation GlassFish 4.1.0 rather than Glassfish 4.1.0.
   * Change: Change the default version of the jdk in IDEA project files to
1.7.
   * Change: Change the default version of the IDEA project files created
to the
 current release version 13. To revert to the older versions
specify
 ipr.version = '12' in your buildfile.
   * Added:  Enhance the IdeaFile class to easily support mixing in of
custom
 components from either the filesystem or from an artifact.
   * Change: Update rjb to version 1.5.1.
   * Added:  Update checkstyle addon to support downloading checkstyle
checks
 as an artifact.
   * Added:  Update checkstyle addon to supply checkstyle.config.dir
property.
   * Added:  Update pmd addon to support downloading rule files as an
artifact.
   * Change: Update pmd addon to use pmd version 5.1.3.
   * Fixed:  BUILDR-702 - Retain Unix permission flags when merging
 zip files into another zip or tar archive. Submitted by Pepijn
Van Eeckhoudt.








Re: [VOTE] Buildr 1.4.20 release

2014-08-26 Thread Pepijn Van Eeckhoudt

On 2014-08-25 23:14, Peter Donald wrote:

I merged in that pull request, tested it locally and pushed a new
release candidate up. If you could verify the package works as
expected that would be great..

Works perfectly for my projects.

Pepijn

On Mon, Aug 25, 2014 at 9:35 PM, Pepijn Van Eeckhoudt
pep...@vaneeckhoudt.net wrote:

Hi Peter,

Is it too late to sneak https://github.com/apache/buildr/pull/14 in?

Thanks,

Pepijn


On 2014-08-23 06:33, Peter Donald wrote:

Hi,

I would like to get this release out as soon as possible as the
previous release has problems with the latest version of jruby which
seems to have impacted a few people. I am also going offline after
next Thursday and if possible it would be great to get a release out
before then or have someone else pick up the release instead.

Our CI builds [1] are looking much better and all green. But it would
still be good to have people test this particular build across a
number of environments.

Thanks!

[1] https://travis-ci.org/apache/buildr/builds/33342231


On Sat, Aug 23, 2014 at 2:29 PM, Peter Donald pe...@realityforge.org
wrote:

We're voting on the source distributions available here:
http://people.apache.org/~donaldp/buildr/1.4.20/dist/

Specifically:
http://people.apache.org/~donaldp/buildr/1.4.20/dist/buildr-1.4.20.tgz
http://people.apache.org/~donaldp/buildr/1.4.20/dist/buildr-1.4.20.zip

The documentation generated for this release is available here:
http://people.apache.org/~donaldp/buildr/1.4.20/site/
http://people.apache.org/~donaldp/buildr/1.4.20/site/buildr.pdf

The following changes were made since 1.4.19:

* Fixed : Work around bug/feature of jruby 1.7.13 that caches
Gem::Version
  objects based on constructor parameters that causes issues
with
  Buildr as we mutate the version objects through monkey
patching.
* Change: Upgrade rjb dependency to 1.4.9.
* Change: BUILDR-701 - Update to JUnit 4.11. Submitted by
Jean-Philippe Caruana.
* Added:  Support the 'report_level' property on findbugs addon.
* Change: Update the findbugs addon to use the 3.0.0 version of
Findbugs.
* Change: Update the findbugs addon to use the built-in findbugs
stylesheet
  to generate the html report.
* Fixed:  Ensure that the 'source_paths' and 'extra_dependencies'
properties
  in the findbugs addon does not contain arrays or nils.
* Fixed:  Ensure that the 'single_intermediate_layout' addon removes
the top
  level target and reports directories during 'clean' phase.
* Added:  Enhance idea project generation of ejb facet by looking for
ejb
  descriptors in location compatible with ejb-jars.
* Fixed:  Ensure that the 'source_paths' property in the pmd addon
does not
  contain arrays or nils.

--
Cheers,

Peter Donald










Re: [VOTE] Buildr 1.4.20 release

2014-08-25 Thread Pepijn Van Eeckhoudt

Hi Peter,

Is it too late to sneak https://github.com/apache/buildr/pull/14 in?

Thanks,

Pepijn

On 2014-08-23 06:33, Peter Donald wrote:

Hi,

I would like to get this release out as soon as possible as the
previous release has problems with the latest version of jruby which
seems to have impacted a few people. I am also going offline after
next Thursday and if possible it would be great to get a release out
before then or have someone else pick up the release instead.

Our CI builds [1] are looking much better and all green. But it would
still be good to have people test this particular build across a
number of environments.

Thanks!

[1] https://travis-ci.org/apache/buildr/builds/33342231


On Sat, Aug 23, 2014 at 2:29 PM, Peter Donald pe...@realityforge.org wrote:

We're voting on the source distributions available here:
http://people.apache.org/~donaldp/buildr/1.4.20/dist/

Specifically:
http://people.apache.org/~donaldp/buildr/1.4.20/dist/buildr-1.4.20.tgz
http://people.apache.org/~donaldp/buildr/1.4.20/dist/buildr-1.4.20.zip

The documentation generated for this release is available here:
http://people.apache.org/~donaldp/buildr/1.4.20/site/
http://people.apache.org/~donaldp/buildr/1.4.20/site/buildr.pdf

The following changes were made since 1.4.19:

   * Fixed : Work around bug/feature of jruby 1.7.13 that caches Gem::Version
 objects based on constructor parameters that causes issues with
 Buildr as we mutate the version objects through monkey patching.
   * Change: Upgrade rjb dependency to 1.4.9.
   * Change: BUILDR-701 - Update to JUnit 4.11. Submitted by
Jean-Philippe Caruana.
   * Added:  Support the 'report_level' property on findbugs addon.
   * Change: Update the findbugs addon to use the 3.0.0 version of Findbugs.
   * Change: Update the findbugs addon to use the built-in findbugs stylesheet
 to generate the html report.
   * Fixed:  Ensure that the 'source_paths' and 'extra_dependencies' properties
 in the findbugs addon does not contain arrays or nils.
   * Fixed:  Ensure that the 'single_intermediate_layout' addon removes the top
 level target and reports directories during 'clean' phase.
   * Added:  Enhance idea project generation of ejb facet by looking for ejb
 descriptors in location compatible with ejb-jars.
   * Fixed:  Ensure that the 'source_paths' property in the pmd addon does not
 contain arrays or nils.

--
Cheers,

Peter Donald







JRuby specific system in core/util.rb

2012-03-02 Thread Pepijn Van Eeckhoudt
Does anyone remember why the jruby specific system workaround using FFI 
was done in core/util.rb? This has the annoying side effect on windows 
of bringing up a new console window for the subprocess everytime it is 
run. Seems to work fine with the non-jruby specific variant as well.


Pepijn


JMock in java/tests.rb

2012-02-27 Thread Pepijn Van Eeckhoudt
The JUnit and TestNG support automatically pull in JMock without an 
option to disable this. Any idea why this is done? It seems rather 
arbitrary to pull in one specific testing library.


This is causing problems in my builds because jmock pulls in hamcrest 
1.1 while my unit tests depend on hamcrest 1.2.


Anyone against removing this or at least making it optional?

Pepijn


Re: Releasing 1.4.7 -- was: [VOTE] Buildr 1.4.7 RC1

2012-02-09 Thread Pepijn Van Eeckhoudt

On 08/02/2012 17:56, Antoine Toulme wrote:

Please go ahead. Our son showed up last week and I'm busy changing diapers
for the foreseeable future.
Congratulations. I know the feeling. OS contributions grind to a halt 
when newborns arrive :)

Pepijn:  can you file an issue with the JRuby/Rubygems warning you're
seeing?  Just to make sure I can reproduce the same and address the issue.
The cause of the warning was the usage of deprecated rubygems API. Peter 
Donald resolved this already as part of BUILDR-601/602. 
Application#listed_gems is using the non-deprecated API now.


Pepijn


Android extension (WIP)

2011-08-08 Thread Pepijn Van Eeckhoudt
Hi all,

I've made a buildr extension that provides an 'apk' package type that can be 
used for Android development. It's built on top of the standard Android SDK 
command line tools and supports (I think at least) most of what the Android Ant 
stuff supports. So far I've only tested it with my own limited set of projects 
though.

Is there any interest in this? If so, would anyone care to review what I have 
so far? I would be happy to contribute this for integration in Buildr.

Regards,

Pepijn

Re: Packaging with sources

2010-07-16 Thread Pepijn Van Eeckhoudt
I would handle that by making a new package type. You can do that by 
implementing a package_as_type method. This method can create a preconfigured 
JarTask that includes both the clj source files and the class files by 
including both the target and source of the compile task. 
buildr/java/packaging.rb contains the package_as_jar implementation. That's 
probably the closest to what you want.

Pepijn
 

On 16 Jul 2010, at 08:20, Chris Dean ctd...@sokitomi.com wrote:

 I'm working on adding Clojure support and have a question about
 packaging. 
 
 One common way to package up Clojure projects is put both the Clojure
 .clj source files and all the .class files in a single jar file.  Can
 someone give me some pointers on how to do that?
 
 Cheers,
 Chris Dean


Re: Functional testing of RC4

2010-06-14 Thread Pepijn Van Eeckhoudt
Could you guys review this patch? This seems to solve both cases. I'll 
attach it to the relvant issue if this is considered a good fix.


The patch adds a defined? method to Project. The post condition of 
Project.project then becomes that Project.defined? will return true. A 
project is considered defined if it's definition has been executed. What 
is not guaranteed is that the definition of each sub project has been 
executed. AFAICT this shouldn't be a problem and is most likely what we 
want in the first place.


Pepijn

On 13/6/2010 19:14, Rhett Sutphin wrote:

Hi Pepijn,

On Jun 13, 2010, at 5:34 AM, Pepijn Van Eeckhoudt wrote:


I haven't checked yet but it seems as if project() is checking that all 
projects in the hierarchy are defined (i.e., the define task has been invoked).


In a way -- it is invoking the associated rake task for each referenced 
project.  The project rake task executes #define and rake prevents any given 
task from being executed more than once.


Wouldn't it be sufficient to only ensure the leaf of the path is defined and 
ignore the state of any parents? That would solve the problem you're describing.


It would solve the particular example I laid out in the message, yes.  It would not solve 
the example in BUILDR-454, unless you also change the way buildr ensure[s] the leaf 
of the path is defined.

Rhett




Pepijn

Op 13-jun-2010 om 05:12 heeft Rhett Sutphinrh...@detailedbalance.net  het 
volgende geschreven:\


Hi,

(Note: very long.  Buildr committers: before you tl;dr, please consider the 
section after the  at the end.)

On Jun 12, 2010, at 2:26 PM, Pepijn Van Eeckhoudt wrote:


I suspected 399 might have something to do with the cycle stuff that's been 
popping up. I still think the fix for 399 itself is correct though; the only 
difference is cycles are now being correctly detected where they previously 
might not have been.


I guess it depends on how you define correctly.  The way buildr 1.4.0 
behaves, it is more awkward/less clear to use subprojects as namespaces: you can't 
express sibling dependencies by qualified name.  The example I gave in BUILDR-454 was the 
minimal one I could reproduce, but this alternative example might show better why this is 
undesirable:

define psc do
define authentication do
   define plugin-api do
   end

   define cas-plugin do
 compile.with project(authentication:plugin-api)
   end
end

define web do
   compile.with project(authentication:plugin-api)
end
end

1.4.0 fails on loading this buildfile where 1.3.5 does not:

RuntimeError : Circular dependency detected: TOP =  psc =  psc:authentication = 
 psc:authentication:local-plugin =  psc:authentication

There isn't actually a dependency from psc:authentication:local-plugin to 
psc:authentication, though.  psc:authentication doesn't even have any packages 
or tasks, so it's nonsense (and therefore frustrating) for buildr to claim that 
there is a circular dependency there.

As I indicated in the ticket for BUILDR-454, you can work around this by using 
project.parent.project('plugin-api'), but that's awkward.  You can also work 
around it by defining cas-plugin like so:

define cas-plugin do
compile.with project(plugin-api)
end

which is less awkward (though still potentially unclear: what if there are 
several plugin APIs in my project?), but it doesn't make sense that one works 
and the other one doesn't.  After all, they both resolve to the same project.


This could come across as a regression to a user of buildr though. Any idea how 
to fix it?


Between BUILDR-454, BUILDR-320, and the problems Antoine referred to earlier in 
the thread, it seems like buildr's circular dependency detection is flawed[1].  
Last time I looked into it, it seemed like it was inherited from rake.  Perhaps 
its a mistake to have the projects themselves defined as separate rake tasks?

The alternative I've come up with is also flawed, but I'll describe it in case 
if gives someone a better idea:

Instead of using rake tasks for #defines, build up a graph of project 
instances.  When a define is encountered:

* Add a disconnected node for it to the graph
* Evaluate its body (but not any included defines), turning #project references 
into edges in the graph
   - If the referenced project exists in the graph, return it
   - If it doesn't, return a lazy proxy
* Perform a topological sort of the graph at this point to determine if any 
cycles exist.  (RGL[2] has an implementation.)
* If there are no cycles, recurse into the child defines and evaluate them the 
same way

(Note in particular that the parent-child relationship does not become a graph edge in this scheme, 
unless there's an explicit dependency from one to the other.  However, that relationship would 
still need to be separately maintained in order for things like project.projects(foo, 
bar) to work.)

I see one flaw in this approach: it precludes meaningful[3] forward references 
in #define.  However, buildr already has problems

Re: Functional testing of RC4

2010-06-14 Thread Pepijn Van Eeckhoudt
Please disregard the first patch. I accidently attached my first attempt 
at a fix which wasn't quite correct. Here's the correct patch that 
actually matches what I described below. Sorry for the mixup.


Pepijn

On 14/6/2010 10:50, Pepijn Van Eeckhoudt wrote:

Could you guys review this patch? This seems to solve both cases. I'll
attach it to the relvant issue if this is considered a good fix.

The patch adds a defined? method to Project. The post condition of
Project.project then becomes that Project.defined? will return true. A
project is considered defined if it's definition has been executed. What
is not guaranteed is that the definition of each sub project has been
executed. AFAICT this shouldn't be a problem and is most likely what we
want in the first place.

Pepijn
Index: lib/buildr/core/project.rb
===
--- lib/buildr/core/project.rb  (revision 946877)
+++ lib/buildr/core/project.rb  (revision )
@@ -224,6 +224,11 @@
   # Enhance the project using the definition block.
   project.enhance { project.instance_exec project, block } if block
 
+  # Mark the project as defined
+  project.enhance do |project|
+project.send :defined
+  end
+
   # Top-level project? Invoke the project definition. Sub-project? We 
don't invoke
   # the project definiton yet (allow project calls to establish order 
of evaluation),
   # but must do so before the parent project's definition is done.
@@ -254,7 +259,7 @@
 end
 project ||= @projects[name] # Not found in scope.
 raise No such project #{name} unless project
-project.invoke
+project.invoke unless project.defined?
 project
   end
 
@@ -598,8 +603,16 @@
   @calledback ||= {}
 end
 
+def defined?
+  @defined
+end
+
   protected
+def defined
+  @defined = true
+end
-
+
+
 # :call-seq:
 #   base_dir = dir
 #
Index: spec/core/project_spec.rb
===
--- spec/core/project_spec.rb   (revision 919303)
+++ spec/core/project_spec.rb   (revision )
@@ -83,8 +83,18 @@
 Buildr.define('foo') { define('bar') { project('baz:bar') } }
 lambda { project('foo') }.should raise_error(RuntimeError, /Circular 
dependency/)
   end
+
+  it 'should handle non-circular dependencies' do
+Buildr.define root do
+  define child do
+puts project('root')._('foo.resource')
-end
+  end
+end
 
+lambda { project('root') }.should_not raise_error
+  end
+end
+
 describe Project, ' property' do
   it 'should be set if passed as argument' do
 define 'foo', 'version'='1.1'


Re: Functional testing of RC4

2010-06-13 Thread Pepijn Van Eeckhoudt
I haven't checked yet but it seems as if project() is checking that  
all projects in the hierarchy are defined (i.e., the define task has  
been invoked).
Wouldn't it be sufficient to only ensure the leaf of the path is  
defined and ignore the state of any parents? That would solve the  
problem you're describing.


Pepijn

Op 13-jun-2010 om 05:12 heeft Rhett Sutphin  
rh...@detailedbalance.net het volgende geschreven:\



Hi,

(Note: very long.  Buildr committers: before you tl;dr, please  
consider the section after the  at the end.)


On Jun 12, 2010, at 2:26 PM, Pepijn Van Eeckhoudt wrote:

I suspected 399 might have something to do with the cycle stuff  
that's been popping up. I still think the fix for 399 itself is  
correct though; the only difference is cycles are now being  
correctly detected where they previously might not have been.


I guess it depends on how you define correctly.  The way buildr  
1.4.0 behaves, it is more awkward/less clear to use subprojects as  
namespaces: you can't express sibling dependencies by qualified  
name.  The example I gave in BUILDR-454 was the minimal one I could  
reproduce, but this alternative example might show better why this  
is undesirable:


define psc do
 define authentication do
   define plugin-api do
   end

   define cas-plugin do
 compile.with project(authentication:plugin-api)
   end
 end

 define web do
   compile.with project(authentication:plugin-api)
 end
end

1.4.0 fails on loading this buildfile where 1.3.5 does not:

RuntimeError : Circular dependency detected: TOP = psc =  
psc:authentication = psc:authentication:local-plugin =  
psc:authentication


There isn't actually a dependency from psc:authentication:local- 
plugin to psc:authentication, though.  psc:authentication doesn't  
even have any packages or tasks, so it's nonsense (and therefore  
frustrating) for buildr to claim that there is a circular dependency  
there.


As I indicated in the ticket for BUILDR-454, you can work around  
this by using project.parent.project('plugin-api'), but that's  
awkward.  You can also work around it by defining cas-plugin like so:


define cas-plugin do
 compile.with project(plugin-api)
end

which is less awkward (though still potentially unclear: what if  
there are several plugin APIs in my project?), but it doesn't make  
sense that one works and the other one doesn't.  After all, they  
both resolve to the same project.


This could come across as a regression to a user of buildr though.  
Any idea how to fix it?


Between BUILDR-454, BUILDR-320, and the problems Antoine referred to  
earlier in the thread, it seems like buildr's circular dependency  
detection is flawed[1].  Last time I looked into it, it seemed like  
it was inherited from rake.  Perhaps its a mistake to have the  
projects themselves defined as separate rake tasks?


The alternative I've come up with is also flawed, but I'll describe  
it in case if gives someone a better idea:


Instead of using rake tasks for #defines, build up a graph of  
project instances.  When a define is encountered:


 * Add a disconnected node for it to the graph
 * Evaluate its body (but not any included defines), turning  
#project references into edges in the graph

   - If the referenced project exists in the graph, return it
   - If it doesn't, return a lazy proxy
 * Perform a topological sort of the graph at this point to  
determine if any cycles exist.  (RGL[2] has an implementation.)
 * If there are no cycles, recurse into the child defines and  
evaluate them the same way


(Note in particular that the parent-child relationship does not  
become a graph edge in this scheme, unless there's an explicit  
dependency from one to the other.  However, that relationship would  
still need to be separately maintained in order for things like  
project.projects(foo, bar) to work.)


I see one flaw in this approach: it precludes meaningful[3] forward  
references in #define.  However, buildr already has problems with  
those (see BUILDR-320) and no one but me is complaining, so maybe no  
one uses them.


I haven't evaluated buildr itself to determine how hard this would  
be to implement.




Now, having gone on at length about possible solutions, I'd like to  
emphatically request that this not be solved before the next version  
of buildr is released.  Buildr has not worked with the current  
version of rubygems for the last four months.  As the developer of a  
two public java projects that use buildr, it is difficult enough for  
me to explain to people who want to compile them that there are  
build tools other than ant/maven/eclipse.  Since February, there's  
been the additional complexity that I have to carefully explain to  
them how to install ruby but not the current version of rubygems.   
(And I'm not even mentioning the baroque RVM setup I have going  
personally so I can use rubygems 1.3.7 with my ruby projects while  
still using a released version of buildr

Re: Build failed in Hudson: Buildr-ci-build #11

2010-06-09 Thread Pepijn Van Eeckhoudt
/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb:103:in
`run'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb:23:in
`run'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb:22:in
`each'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb:22:in
`run'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/runner/options.rb:151:in
`run_examples'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/lib/spec/runner/command_line.rb:9:in
`run'
/home/toulmean/buildr-gems/gems/rspec-1.2.9/bin/spec:5:

Finished in 218.251337 seconds

1906 examples, 4 failures
rake aborted!
Command /usr/bin/ruby1.8 -Ilib
  /home/toulmean/buildr-gems/gems/rspec-1.2.9/bin/spec
spec/groovy/bdd_spec.rb spec/groovy/compiler_spec.rb
spec/addon/drb_spec.rb spec/java/commands_spec.rb
spec/java/packaging_spec.rb spec/java/tests_spec.rb
spec/java/bdd_spec.rb spec/java/emma_spec.rb spec/java/ant_spec.rb
spec/java/cobertura_spec.rb spec/java/compiler_spec.rb
spec/java/java_spec.rb spec/core/compile_spec.rb
spec/core/common_spec.rb spec/core/cc_spec.rb
spec/core/project_spec.rb spec/core/generate_spec.rb
spec/core/checks_spec.rb spec/core/application_spec.rb
spec/core/util_spec.rb spec/core/extension_spec.rb
spec/core/transport_spec.rb spec/core/test_spec.rb
spec/core/build_spec.rb spec/ide/idea7x_spec.rb
spec/ide/eclipse_spec.rb spec/packaging/artifact_spec.rb
spec/packaging/artifact_namespace_spec.rb
spec/packaging/packaging_spec.rb spec/packaging/archive_spec.rb
spec/version_requirement_spec.rb spec/scala/tests_spec.rb
spec/scala/bdd_spec.rb spec/scala/compiler_spec.rb --format specdoc
--format failing_examples:failed --format html:_reports/specs.html
--backtrace failed

(See full trace by running task with --trace)







--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 11
3001 Leuven | Belgium | www.luciad.com



Re: Build failed in Hudson: Buildr-ci-build #11

2010-06-09 Thread Pepijn Van Eeckhoudt
Fantastic news. So we're good to go for a 1.4 release? Or would you 
prefer another RC first just to be sure?


Pepijn

On 9/6/2010 17:36, Alex Boisvert wrote:

Great!  Glad to be back to 100% green.

alex


On Wed, Jun 9, 2010 at 7:51 AM, Antoine Toulme anto...@lunar-ocean.com
mailto:anto...@lunar-ocean.com wrote:

I also coded something right before bed time, and need to test it this
morning before committing it.

There was a SVN hiccup yesterday, but it looks like all builds are
now green
! I fixed all the issues by:
-using Dir.rmdir instead of File.delete for a folder
-moved to Jruby 1.5.1 for bdd.



On Wed, Jun 9, 2010 at 01:06, Pepijn Van Eeckhoudt 
pepijn.vaneeckho...@luciad.com
mailto:pepijn.vaneeckho...@luciad.com wrote:

  Antoine,
 
  I'm not getting through to the apache jira instance right now, so
I can't
  attach this patch just yet. It works for me locally, could you
give this a
  try as well?
 
  Pepijn
 
 
  On 9/6/2010 08:54, Antoine Toulme wrote:
 
  Here goes:
  https://issues.apache.org/jira/browse/BUILDR-453
 
  On Tue, Jun 8, 2010 at 23:51, Antoine
Toulmeanto...@lunar-ocean.com mailto:anto...@lunar-ocean.com
  wrote:
 
   Oh yes! I wanted to file a bug to track this.
 
 
  On Tue, Jun 8, 2010 at 23:50, Pepijn Van Eeckhoudt
  pepijn.vaneeckho...@luciad.com
mailto:pepijn.vaneeckho...@luciad.com  wrote:
 
   Antoine,
 
  Would it be possible to get ci_reporter output from rspec on
this box?
  That would make it a bit easier to go through the tests.
 
  Pepijn
 
 
  On 9/6/2010 08:05, Antoine Toulme wrote:
 
   OK, we now have a CI build with MRI.
 
  We have 4 failures... we need to fix them before we take it
further.
 
  On Tue, Jun 8, 2010 at 22:51, Apache Hudson Server
  hud...@hudson.zones.apache.org
mailto:hud...@hudson.zones.apache.org   wrote:
 
 
  Seehttp://hudson.zones.apache.org/hudson/job/Buildr-ci-build/11/
 
 
  --
  [...truncated 2843 lines...]
 
   ARG_0 = 
  ARG_1 =  [0m
 
[31m  at
  org.scalatest.prop.Checkers$class.check(Checkers.scala:241)
  [0m
   [31m  at StringSuite.check(StringSuite.scala:6) [0m
   [31m  at
org.scalatest.prop.Checkers$class.check(Checkers.scala:304)
  [0m
   [31m  at StringSuite.check(StringSuite.scala:6) [0m
   [31m  at
org.scalatest.prop.Checkers$class.check(Checkers.scala:115)
  [0m
   [31m  at StringSuite.check(StringSuite.scala:6) [0m
   [31m  at StringSuite$$anonfun$3.apply(StringSuite.scala:17) [0m
   [31m  at StringSuite$$anonfun$3.apply(StringSuite.scala:17) [0m
   [31m  at
org.scalatest.FunSuite$$anon$2.apply(FunSuite.scala:1158)
  [0m
   [31m  at
org.scalatest.Suite$class.withFixture(Suite.scala:1509) [0m
   [31m  at StringSuite.withFixture(StringSuite.scala:6) [0m
   [31m  at
org.scalatest.FunSuite$class.runTest(FunSuite.scala:1155)
  [0m
   [31m  at StringSuite.runTest(StringSuite.scala:6) [0m
   [31m  at
 
org.scalatest.FunSuite$$anonfun$runTests$1.apply(FunSuite.scala:1264)
  [0m
   [31m  at
 
org.scalatest.FunSuite$$anonfun$runTests$1.apply(FunSuite.scala:1255)
  [0m
   [31m  at scala.List.foreach(List.scala:841) [0m
   [31m  at
org.scalatest.FunSuite$class.runTests(FunSuite.scala:1255)
  [0m
   [31m  at StringSuite.runTests(StringSuite.scala:6) [0m
   [31m  at org.scalatest.Suite$class.run(Suite.scala:1804) [0m
   [31m  at
 
StringSuite.org$scalatest$FunSuite$$super$run(StringSuite.scala:6) [0m
   [31m  at
org.scalatest.FunSuite$class.run(FunSuite.scala:1304) [0m
   [31m  at StringSuite.run(StringSuite.scala:6) [0m
   [31m  at
org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:59)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$$anonfun$doRunRunRunADoRunRun$3.apply(Runner.scala:1523)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$$anonfun$doRunRunRunADoRunRun$3.apply(Runner.scala:1520)
  [0m
   [31m  at scala.List.foreach(List.scala:841) [0m
   [31m  at
 
org.scalatest.tools.Runner$.doRunRunRunADoRunRun(Runner.scala:1520)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:616)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:615)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:1564)
  [0m
   [31m  at
 
 
 

org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:614

Re: Windows issues

2010-06-02 Thread Pepijn Van Eeckhoudt
After some further investigation I've backtracked on my first fix 
attempt. I had assumed that utime to a time in the past was not working 
but in actuality it was utime on directories that was simply not working 
at all. I patched JRuby to fix this and have restarted my testing effort 
from scratch.


I first wrote some specs to check that utime works on files, 
directories, in the past and in the future. Once those were working I 
reran all the specs and hooray most of them worked immediately.


I've fixed a number of misc other things to get the remaining failing 
ones to work:
- Disabled ZipTask:'should preserve file permissions' on windows as this 
cannot be implemented correctly yet.
- Added URI.escape() around all file:// URLs in the specs to make sure 
directories with spaces are handled correctly
- Patched FILE#real_path to return an unescaped version of the path so 
that we don't get %20 directories on the local FS
- Allowed mode flags to be passed to Buildr#read. Due to CRLF to LF 
conversion the signature validation spec was failing. This spec now uses 
'rb' as mode flags


I'll attach all this stuff as a new patch to BUILDR-499. Antoine, could 
you revert the previous patch and apply the new one and then retest please?


Regards,

Pepijn

On 1/6/2010 17:20, Pepijn Van Eeckhoudt wrote:

JRUBY-4837

Op 1-jun-2010 om 17:13 heeft Antoine Toulme anto...@lunar-ocean.com
het volgende geschreven:\


I'll give it a try today. We might be lucky and have your patch
accepted for
1.5.1 - I'll chat with the JRuby team about it.
Do you have the bug number ?

On Tue, Jun 1, 2010 at 07:45, Pepijn Van Eeckhoudt
pep...@vaneeckhoudt.netwrote:


I've traced the directory utime issue back to the jnr-posix project
which
is used by JRuby. I've patched the bug and submitted the patch back
to the
JRuby guys. This means we'll have to wait for a new JRuby build
before this
can be resolved from a buildr point of view. Should this block the
buildr
1.4 release or not?

I've also created a bug in the buildr jira project with the spec patches
attached. Could someone else give these a try?

Pepijn




--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 11
3001 Leuven | Belgium | www.luciad.com



Re: Windows issues

2010-06-01 Thread Pepijn Van Eeckhoudt

JRUBY-4837

Op 1-jun-2010 om 17:13 heeft Antoine Toulme anto...@lunar-ocean.com  
het volgende geschreven:\


I'll give it a try today. We might be lucky and have your patch  
accepted for

1.5.1 - I'll chat with the JRuby team about it.
Do you have the bug number ?

On Tue, Jun 1, 2010 at 07:45, Pepijn Van Eeckhoudt
pep...@vaneeckhoudt.netwrote:

I've traced the directory utime issue back to the jnr-posix project  
which
is used by JRuby. I've patched the bug and submitted the patch back  
to the
JRuby guys. This means we'll have to wait for a new JRuby build  
before this
can be resolved from a buildr point of view. Should this block the  
buildr

1.4 release or not?

I've also created a bug in the buildr jira project with the spec  
patches

attached. Could someone else give these a try?

Pepijn



Fixing the specs on Windows

2010-05-31 Thread Pepijn Van Eeckhoudt
I've been going through the specs and up until now all failures are 
related to utime not behaving as expected on windows. I'm changing the 
specs so that they don't rely on utime but use sleeps instead. This 
makes the specs much more reliable (se linux doesn't allow mtime to be 
set in the past either IIRC), at the cost of slightly slower execution 
due to the sleeps. Is this acceptable?


Pepijn


Windows/JRuby 1.5.0 spec fixes

2010-05-31 Thread Pepijn Van Eeckhoudt
I've been able to get the number of failing specs down to 11. The ones 
that still fail fall into two categories:
- FileUtils.touch is not updating the mtime of directories correctly. 
I've reported this as JRUBY-4837 with an included spec.
- File permission checking does not work on Windows. This causes the 
'manifest 644' and 'ziptask should preserve permission' specs to fail


I'm not sure how the second category can be resolved. I had a look at 
Ant's zip and tar tasks to see how it's supported there. Those tasks 
extend FileSet by allowing explicit uid,gid and perm values to be 
specified. Similar options should probably be added to the 
ArchiveTask#include methods. That way the perms in the final archive and 
the perms on the fs could be decoupled. Any thoughts on this?


Pepijn


Re: Build failed in Hudson: Buildr CI on Windows #6

2010-05-28 Thread Pepijn Van Eeckhoudt
Ok. I've run the specs and I'm getting 31 failures now on Windows XP. 
I'll have a look at them next week.


Pepijn

On 28/5/2010 18:46, Antoine Toulme wrote:

Win XP or Win 7 have failures. How much they overlap is yet to be
determined... but if you get to fix _anything_ on Windows, that's a
great step.

We're not far from having everything in check.

On Fri, May 28, 2010 at 09:41, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com mailto:pepijn.vaneeckho...@luciad.com
wrote:

Still specific to Windows 7 or just Windows in general?

Pepijn


On 28/5/2010 18:01, Antoine Toulme wrote:

I will install Scala on the Windows machine and will change the
message to
get the full build log.

On Fri, May 28, 2010 at 00:08,anto...@lunar-ocean.com
mailto:anto...@lunar-ocean.com  wrote:


Seehttp://192.168.1.42:/job/Buildr%20CI%20on%20Windows/6/changes

Changes:

[toulmean] partial fix for BUILDR-445: relax rspec dependency

--
[...truncated 3862 lines...]
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:629:in
`invoke_with_call_chain'
c:/intalio/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:622:in
`invoke_with_call_chain'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:617:in `invoke'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:325:in `local_task'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:350:in `[]'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:350:in
`local_projects'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:350:in `each'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:350:in
`local_projects'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/project.rb:323:in `local_task'
c:/intalio/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
`call'
c:/intalio/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in
`execute_without_a_record'
c:/intalio/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`each'
c:/intalio/ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in
`execute_without_a_record'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/spec/spec_helpers.rb:144:in `execute'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:636:in
`invoke_with_call_chain'
c:/intalio/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:622:in
`invoke_with_call_chain'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/lib/buildr/core/application.rb:617:in `invoke'
./spec/packaging/packaging_spec.rb:646:
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/spec/spec_helpers.rb:155:in `call'
D:/Documents and Settings/Administrator/.hudson/jobs/Buildr
CI on
Windows/workspace/spec/spec_helpers.rb:155:in `matches?'

c:/intalio/ruby/lib/ruby/gems/1.8/gems/rspec-1.2.9/lib/spec/expectations/handler.rb:11:in
`handle_matcher'

c:/intalio/ruby/lib/ruby/gems/1.8/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb:27:in
`should'
./spec/packaging/packaging_spec.rb:646:

c:/intalio/ruby/lib/ruby/gems/1.8/gems/rspec-1.2.9/lib/spec/example/example_methods.rb:40:in
`instance_eval'

c:/intalio/ruby/lib/ruby/gems/1.8/gems/rspec-1.2.9/lib/spec/example/example_methods.rb:40:in
`execute'
c:/intalio/ruby/lib/ruby/1.8/timeout.rb:53

spec 'should not touch target directory unless running'?

2010-05-28 Thread Pepijn Van Eeckhoudt

First failure I checked was this one:

it 'should not touch target directory unless running' do
mkpath 'target' ; File.utime @early, @early, 'target'
@filter.from('src').into('target').exclude('*').run
File.mtime('target').should be_close(@early, 10)
end

Can this ever work? On many systems you're not allowed to set the mtime 
of a file/dir to a time in the past. The pickaxe even states that utime 
does not work on all systems. It's probably safer to read the mtime, 
sleep, run the filter and then check the mtime again. How do you do 
java.lang.Thread#sleep in ruby?


Pepijn


Re: 1.4, Windows 7, and a few news

2010-05-20 Thread Pepijn Van Eeckhoudt
On 20 May 2010, at 17:41, Charles Oliver Nutter wrote:
 On Thu, May 20, 2010 at 8:41 AM, Pepijn Van Eeckhoudt
 pepijn.vaneeckho...@luciad.com wrote:
 I've only used buildr on JRuby myself so sorry if this comes across as
 ignorant. What kind of issues are you guys getting with RJB? I glanced
 through the code quickly and it seems to basically consist of the necessary
 JNI calls to call into the JVM from ruby. I don't think the JVM gives you
 any alternatives to this, so I would expect any other approach to have the
 same set of limitations as RJB.
 
 You'll never be able to get the level of integration with Java you can
 get with JRuby through any wrapper. You might be able to make a nicer
 wrapper (for some definition of nicer) but actually running on the
 JVM is the way to go.
I completely agree with you on this, but there seems to be some reluctance to 
drop MRI support. If you take MRI as a given, do you see any other options than 
starting a JVM via JNI and making calls into it via JNI. AFAIK, there aren't 
any other options.
Since this seems to be exactly what RJB does, I was wondering what the 
limitations of this approach were from a buildr perspective. Does buildr 
currently do more than instantiate Java objects and call methods on them? 
What's missing in RJB that would make it 'nicer'?

Pepijn

invoke_with_call_chain not restoring call chain correctly

2010-03-15 Thread Pepijn Van Eeckhoudt
I'm bumping into unpredictable behaviour related to the call chain 
handling. It seems invoke_with_call_chain doesn't restore the call chain 
correctly after calling invoke. Since this is in the core of buildr I 
wanted to just check with you guys before creating an issue in jira.


invoke_with_call_chain currently does
begin
  old_chain, Thread.current[:rake_chain] = Thread.current[:rake_chain], 
new_chain

  execute(task_args) if needed?
ensure
  Thread.current[:rake_chain] = nil
end

The ensure block seems obviously incorrect. Shouldn't this be 
Thread.current[:rake_chain] = old_chain?


The following spec shows when this causes things to go wrong:
describe Buildr do
  it 'should restore call chain when invoke is called' do
task1 = Rake::Task.define_task('task1') do
end

task2 = Rake::Task.define_task('task2') do
  chain1 = Thread.current[:rake_chain]
  task1.invoke
  chain2 = Thread.current[:rake_chain]
  chain2.should == chain1
end

task2.invoke
  end
end

So is this an issue or intentional?

Regards,

Pepijn


Re: Next release

2010-03-01 Thread Pepijn Van Eeckhoudt
Aha, that confirms what I suspected. I was about to check the JRuby 
source code, so thanks for saving me some digging :)


Adding
ffi_lib c
before the attach_function does the trick. map_library_name maps this to 
Platform::LIBC and then the attach works correctly.


Pepijn

On 1/3/2010 17:50, Antoine Toulme wrote:

See my comment on BUILDR-348.

On Mon, Mar 1, 2010 at 08:49, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com  wrote:

   

Just tested that; nothing happens. I don't see the vim output and jirb is
no longer responding to input.

Pepijn


On 1/3/2010 17:37, Alex Boisvert wrote:

 

They may have fixed system() such that using FFI directly wouldn't be
necessary anymore.  A simple test such as system 'vim' from jirb on
Windows would confirm.

alex

On Mon, Mar 1, 2010 at 8:16 AM, Antoine Toulmeanto...@lunar-ocean.com
   

wrote:
 



   

I can contact the jruby folks and see if a jruby update would help - JFFI
is
now 1.0 btw, while it was 0.4 in 1.4.0.

On Mon, Mar 1, 2010 at 08:12, Alex Boisvertalex.boisv...@gmail.com
wrote:



 

On Mon, Mar 1, 2010 at 3:00 AM, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com   wrote:



   

It would be nice if BUILDR-348 could be resolved for 1.4.0. We are


 

planning


   

on using buildr as internally running on jruby 1.4. Right now this


 

issue
   


 

means I will either have to maintain a custom buildr build or have
   


 

every
   


 

developer patch the buildr installation by hand.
   

Any idea on the root cause of this problem? Does commenting out that


 

one
   


 

line have any other side effects?
   



 

The issue is that JRuby use{s,d} the JVM's System.exec() call to spawn
external processes, which isn't 100% equivalent to Unix system() call.


   

  For


 

instance, if you spawned a process like 'vim' or a language shell like
'scala' or 'irb', then you wouldn't be able to interact with the
sub-process
correctly due to incomplete redirection of all terminal capabilities.

To solve this, we override the system() call to circumvent the JRuby's
system call and directly call the native system() using FFI.

I don't know what's the state of things on JRuby 1.4.0 + Windows but
some
internals seem to have changed which is why we're getting the error
described in BUILDR-348.  Somebody needs to investigate what


   

works/doesn't


 

work on Windows -- the workaround I provided on BUILDR-348 simply
reverts
to
using the standard system() implementation, which works for most things


   

but


 

not shelling out to interactive apps.

alex



   


 


   


--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com



 
   



--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com




Re: Next release

2010-03-01 Thread Pepijn Van Eeckhoudt
Any ideas on how to test this thoroughly? I can't imagine this causing a 
regression as the debugger now shows system is being loaded from msvcrt 
which is exactly the method you want to load.


Pepijn

On 1/3/2010 18:17, Daniel Spiewak wrote:

Fix committed in r917597.  Note that this only applies when
Buildr::Util::win_os? is true.

Daniel

On Mon, Mar 1, 2010 at 11:13 AM, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com  wrote:

   

Or better yet just use LIBC directly instead :)
So ffi_lib FFI::Platform::LIBC

I'll add this as a comment to BUILDR-348

Pepijn


On 1/3/2010 18:05, Pepijn Van Eeckhoudt wrote:

 

Aha, that confirms what I suspected. I was about to check the JRuby source
code, so thanks for saving me some digging :)

Adding
ffi_lib c
before the attach_function does the trick. map_library_name maps this to
Platform::LIBC and then the attach works correctly.

Pepijn

On 1/3/2010 17:50, Antoine Toulme wrote:

   

See my comment on BUILDR-348.

On Mon, Mar 1, 2010 at 08:49, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com   wrote:

  Just tested that; nothing happens. I don't see the vim output and jirb
 

is
no longer responding to input.

Pepijn


On 1/3/2010 17:37, Alex Boisvert wrote:

  They may have fixed system() such that using FFI directly wouldn't be
   

necessary anymore.  A simple test such as system 'vim' from jirb on
Windows would confirm.

alex

On Mon, Mar 1, 2010 at 8:16 AM, Antoine Toulmeanto...@lunar-ocean.com

 

wrote:

   


  I can contact the jruby folks and see if a jruby update would help -
 

JFFI
is
now 1.0 btw, while it was 0.4 in 1.4.0.

On Mon, Mar 1, 2010 at 08:12, Alex Boisvertalex.boisv...@gmail.com
wrote:



  On Mon, Mar 1, 2010 at 3:00 AM, Pepijn Van Eeckhoudt
   

pepijn.vaneeckho...@luciad.comwrote:



  It would be nice if BUILDR-348 could be resolved for 1.4.0. We are
 


  planning
   


  on using buildr as internally running on jruby 1.4. Right now this
 


  issue
   
 

  means I will either have to maintain a custom buildr build or have
   
 

  every
   
 

  developer patch the buildr installation by hand.
   
 

Any idea on the root cause of this problem? Does commenting out that


  one
   
 

  line have any other side effects?
   
 


  The issue is that JRuby use{s,d} the JVM's System.exec() call to
   

spawn
external processes, which isn't 100% equivalent to Unix system()
call.


   For
 


  instance, if you spawned a process like 'vim' or a language shell
   

like
'scala' or 'irb', then you wouldn't be able to interact with the
sub-process
correctly due to incomplete redirection of all terminal capabilities.

To solve this, we override the system() call to circumvent the
JRuby's
system call and directly call the native system() using FFI.

I don't know what's the state of things on JRuby 1.4.0 + Windows but
some
internals seem to have changed which is why we're getting the error
described in BUILDR-348.  Somebody needs to investigate what


  works/doesn't
 


  work on Windows -- the workaround I provided on BUILDR-348 simply
   

reverts
to
using the standard system() implementation, which works for most
things


  but
 


  not shelling out to interactive apps.
   

alex




 
   
 

--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com




   


   

--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com



 
   



--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com




Re: Improved Maven repository handling

2010-02-25 Thread Pepijn Van Eeckhoudt

On 24/2/2010 19:08, Alex Boisvert wrote:

No easy answer here;  you could parse the Ivy/Maven metadata to retrieve the
information needed to bootstrap, or assume Ivy/Ant are already installed, or
do like Ivy4r as you suggested.
   
Partially parsing the ivy settings file to initialise 
repositories.remote and repositories.local is what I hand in mind as 
well; maybe I'll give that a go next. Ivy does allow a lot of 
flexibility so I'm a bit concerned I'll end up having to duplicate a lot 
of Ivy stuff (e.g., all the different types of resolvers, the different 
local caching options, ...)


Pepijn


Improved Maven repository handling

2010-02-17 Thread Pepijn Van Eeckhoudt

Hi,

I'm investigating how I can make build a better behaved citizen when it 
comes to uploading stuff to a maven repository. Specifically I would 
like to improve the handling of snapshot uploads. Right now these don't 
seem to get any special treatment. Instead I would like to make buildr 
upload timestamped builds and update the maven-metadata.xml file.
I've been looking at different solutions and currently have the 
following list of options:
- Derive the logic from the Maven source code and implement a work-alike 
in Ruby

- Integrate the Maven ant tasks
- Investigate if ivy4r can be used to provide this functionality

The ivy4r route turned out to be a dead end as ivy doesn't seem to 
handle maven-metadata on uploads. By default it doesn't upload a pom.xml 
either.
That leaves me with the first two options. I would like to get some more 
seasoned developer's opinion on this before I really start developing 
this. What would the 'preferred' implementation be? Are there any plans 
on the table to tackle this already?


Regards,

Pepijn


POM uploaded multiple times for attached artifacts

2010-02-11 Thread Pepijn Van Eeckhoudt
When executing 'buildr upload' on a simple java project with the 
following buildfile, the pom gets uploaded twice; once for each package


define 'attachedartifacts' do
  project.group = attached
  project.version = 1.0

  package(:jar)
  package(:sources)
end

This doesn't work when uploading to a 'release' maven2 repository as 
these often don't allow updating of files. In practice I'm trying to 
upload to a release repository on a Nexus server.


Is this intentional behavior of buildr or is this a bug? Any idea how to 
work around this problem?


If you guys can give me some pointers, I can work on a patch for this. I 
think to correct this the upload operation for each artifact should be a 
task itself as well. This would ensure upload is only invoked once for 
each pom.


Pepijn


Re: POM uploaded multiple times for attached artifacts

2010-02-11 Thread Pepijn Van Eeckhoudt

How does this look?

I've been programming Java for 9 years now, so there might be some 
java-isms in there...


Pepijn

On 11/2/2010 10:15, Antoine Toulme wrote:

That's a bug.

Look line 163 of artifact.rb.

Instead of calling the upload method, you could encapsulate in a task and
add it as a prerequisite, I guess. Make sure to use a task name that would
work on the project.

On Thu, Feb 11, 2010 at 01:09, Pepijn Van Eeckhoudt
pepijn.vaneeckho...@luciad.com  wrote:


When executing 'buildr upload' on a simple java project with the following
buildfile, the pom gets uploaded twice; once for each package

define 'attachedartifacts' do
  project.group = attached
  project.version = 1.0

  package(:jar)
  package(:sources)
end

This doesn't work when uploading to a 'release' maven2 repository as these
often don't allow updating of files. In practice I'm trying to upload to a
release repository on a Nexus server.

Is this intentional behavior of buildr or is this a bug? Any idea how to
work around this problem?

If you guys can give me some pointers, I can work on a patch for this. I
think to correct this the upload operation for each artifact should be a
task itself as well. This would ensure upload is only invoked once for each
pom.

Pepijn






--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com



uploadtask.patch
Description: application/itunes-itlp


PackageGemTask methods not called

2010-02-10 Thread Pepijn Van Eeckhoudt

Hi,

I'm trying to package a buildr extension as a gem so I can distribute it 
more easily. It seems the PackageGemTask#install method is never called 
though.


I'm kind of new to Ruby so I'm not 100% sure what's going on, but I 
think line 173 in buildr/packaging/package.rb ('package.extend 
ActsAsArtifact') is to blame. By extending the package object with 
ActsAsArtifact, the install, uninstall and upload methods get overridden 
and so the Gem specific variants are never invoked.


I would like to patch this, but I'm not sure what would be the best way 
would be to resolve this? Is there some Ruby idiom that would allow this?


Regards,

Pepijn Van Eeckhoudt


Re: PackageGemTask methods not called

2010-02-10 Thread Pepijn Van Eeckhoudt

Hi Antoine,

Rereadig my mail, I realize that I should have provided a bit more 
context (and sorry for the double message BTW).


My buildfile essentially contains something like this:

define 'my-extension' do
  package(:gem)
end

package will call pacakge_as_gem which in turn will create a 
PackageGemTask. PackageGemTask has it's own install/uninstall/upload 
implementations. package then takes the PackageGemTask instance and 
extends it with ActsAsArtifact which overrides install/uninstall/upload 
from PackageGemTask. The net effect of this is that 
PackageGemTask#install is never called.


Given that observation I was wondering how to fix this and if it is 
possible in the first place. In other words, it is possible for a 
package to provide it's own versions of the methods defined in 
ActsAsArtifact.


Regards,

Pepijn

On 10/2/2010 18:15, Antoine Toulme wrote:

Hi Pepjin,

to package a buildr extension you typically don't need to use Buildr itself.
You can create a .gemspec file, then do:

gem build gem.gemspec
gem push gem-1.0.gem

I might be missing something, but really the line you point at is not
related to gem building and is very important in Buildr - it helps Buildr
know how to handle packages as artifacts, so where to upload them for
example.

Thanks,

Antoine


On Wed, Feb 10, 2010 at 01:54, Pepijn Van Eeckhoudtpep...@vaneeckhoudt.net

wrote:



Hi,

I'm trying to package a buildr extension as a gem so I can distribute it
more easily. It seems the PackageGemTask#install method is never called
though.

I'm kind of new to Ruby so I'm not 100% sure what's going on, but I think
line 173 in buildr/packaging/package.rb ('package.extend ActsAsArtifact') is
to blame. By extending the package object with ActsAsArtifact, the install,
uninstall and upload methods get overridden and so the Gem specific variants
are never invoked.

I would like to patch this, but I'm not sure what would be the best way
would be to resolve this? Is there some Ruby idiom that would allow this?

Regards,

Pepijn Van Eeckhoudt






--
Pepijn Van Eeckhoudt - Project Leader
T +32 16 23 95 91
F +32 16 29 34 22 | pepijn.vaneeckho...@luciad.com

LUCIAD - high performance visualization
Wetenschapspark Arenberg | Gaston Geenslaan 9
3001 Leuven | Belgium | www.luciad.com