From xavier.shay at advatel.com.au Sun Oct 1 19:08:40 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Mon, 2 Oct 2006 09:08:40 +1000 Subject: [Rant] Import hierarchy structure Message-ID: > The structuring ideas here seem a bit > contradictory. Yes, it is. I hadn't noticed this. IMO, it makes sense to have only importable files in import/. This would see archive.rb moved into rant/archive.rb. "import 'archive'" does not currently cause an error, which it probably should. Should we be making a distinction between core rant files and import support files? Would make for easier comprehension of the source. Maybe a new folder - "import_lib?" Xavier > -----Original Message----- > From: make-cafe-bounces at rubyforge.org > [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder > Sent: Saturday, 30 September 2006 5:42 PM > To: Rant Users > Subject: [Rant] Import hierarchy structure > > The archive.rb import file is noted as being not an > importable file (use archive.tgz.rb, etc. instead). the > csharp.rb file on the other had has all it's non-importable > material in ../csharp. Is there a structuring rule here I am missing? > > Thanks. > > -- > Russel. > ==================================================== > Dr Russel Winder +44 20 7585 2200 > 41 Buckmaster Road +44 7770 465 077 > London SW11 1EN, UK russel at russel.org.uk > > From xavier.shay at advatel.com.au Sun Oct 1 19:17:17 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Mon, 2 Oct 2006 09:17:17 +1000 Subject: [Rant] A question of approach Message-ID: Could you have default steps, and then allow the customization through generator parameters? For example: gen Latex, :step1 => CustomStep1.new, :step2 => CustomStep2.new, :build_manager => CustomBuildManager.new If this does not address your problem, could you please rephrase it or give an example of what you would need? I'm not familiar with Latex transformation. If you can maybe post how you are calling one of you current generators (if you're allowed) and which part you would like to customize? > Are any of the current Rant generators structured like > this To a limited extent the csharp one is (I'm beginning to soung like a broken record...). I uses a CompilerAdapter to perform the actual compilation (in rant/csharp). You can specify your own by giving the compiler option. I use this in my own projects to support Csc1.1 compiling, eg: compiler11 = CscCompiler.new('path/to/csc/1.1') gen Csharp, 'outfile', :sources => sys["**/*.cs"], :compiler => compiler11 This approach could be extended to allow multiple build steps. Xavier > -----Original Message----- > From: make-cafe-bounces at rubyforge.org > [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder > Sent: Saturday, 30 September 2006 5:59 PM > To: Rant Users > Subject: [Rant] A question of approach > > The LaTeX tool chain has some serious oddities and many > possibilities for achieving any transformation from source to > target. SCons and Waf handle this by having "builders" that > are parameterized but in a way that is open to change by the > user. that I can use as paradigms for the LaTeX "builder" for Rant? > > (Currently, I have a number of functions in a module with no > parameterization -- just the commands I need -- but this > doesn't seem very Rant-like.) > > -- > Russel. > ==================================================== > Dr Russel Winder +44 20 7585 2200 > 41 Buckmaster Road +44 7770 465 077 > London SW11 1EN, UK russel at russel.org.uk > > From xavier.shay at advatel.com.au Sun Oct 1 19:23:33 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Mon, 2 Oct 2006 09:23:33 +1000 Subject: [Rant] Constructing dependency chains. Message-ID: I think I'm missing something here. Consider the following: file :a do |t| sys.touch "a" end file :b do |t| sys.touch "b" end file :c => [:b, :a] do |t| sys.touch "c" end For me, executing task c causes b then a to be called, in that order. If I reverse the dependency array, a is called before b. Could you please give a more detailed example of how to reproduce your problem? Cheers, Xavier > -----Original Message----- > From: make-cafe-bounces at rubyforge.org > [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder > Sent: Saturday, 30 September 2006 2:33 AM > To: Rant Users > Subject: [Rant] Constructing dependency chains. > > In SCons, you can build a dependency chain and on execution > SCons ensures that the dependencies are build in the correct > order to so intermediate generated files always exist when > they are needed. The building of the dependency tree happens > completely before the dependencies are analysed so dependency > tree building has no ordering property. > > In Rant, it appears that the ordering of the: > > file X => d1 > file X => d2 > > etc. lines is crucial, i.e. actions are enacted in the order > of the file lines independent of any dependency chain. This > was a complete surprise to me, I would have thought that the > transitive dependencies would have been taken into account as > they are in SCons. > > -- > Russel. > ==================================================== > Dr Russel Winder +44 20 7585 2200 > 41 Buckmaster Road +44 7770 465 077 > London SW11 1EN, UK russel at russel.org.uk > > From xavier.shay at advatel.com.au Sun Oct 1 19:26:57 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Mon, 2 Oct 2006 09:26:57 +1000 Subject: [Rant] Another subdirs issue Message-ID: > I ended up finding rant.tasks['subdir/sometask'] which gave > me a representation of nil when there was no such task and > something usable when there was. I guess the issue is which > of these ways of expressing things is the best idiom. Resolve would do things like transforming '@' and '..' (when we support it...), so it is the preferred way. Internally it refers to rant.tasks anyway. Xavier > -----Original Message----- > From: make-cafe-bounces at rubyforge.org > [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder > Sent: Friday, 29 September 2006 4:27 PM > To: Rant discussion > Subject: Re: [Rant] Another subdirs issue > > Stefan, > > On Thu, 2006-09-28 at 22:27 +0200, Stefan Lang wrote: > > On Thursday 28 September 2006 20:54, Russel Winder wrote: > > > I would like to be able to put dependencies on tasks from > sub.rant > > > in the rules in root.rant but I want to do it programatically. > > > This implies being able to ask the question "Is task X/Y > defined". > > > This must be doable but I guess my knowledge of the Rant > > > infrastructure isn't as much as I need to answer this question. > > > Either than or I failed to RTFM :-) > > > > No failure on your part. It's not documented. > > Phew, I am not going insane then ;-) > > > >From an Rantfile: > > > > rant.resolve("subdir/some-task") # => array of tasks > > > > The returned array is empty when no task with the given name is > > defined. > > > -- > Russel. > ==================================================== > Dr Russel Winder +44 20 7585 2200 > 41 Buckmaster Road +44 7770 465 077 > London SW11 1EN, UK russel at russel.org.uk > > From russel at russel.org.uk Mon Oct 2 03:34:27 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 08:34:27 +0100 Subject: [Rant] Constructing dependency chains. In-Reply-To: References: Message-ID: <1159774467.25434.152.camel@balin.russel.org.uk> On Mon, 2006-10-02 at 09:23 +1000, Xavier Shay wrote: > I think I'm missing something here. Consider the following: > > file :a do |t| > sys.touch "a" > end > > file :b do |t| > sys.touch "b" > end > > file :c => [:b, :a] do |t| > sys.touch "c" > end > > For me, executing task c causes b then a to be called, in that order. If > I reverse the dependency array, a is called before b. Could you please > give a more detailed example of how to reproduce your problem? I think the only way of progressing this is with an actual example. Attached is a tarball containing a directory with appropriate files etc. If you run: rant -f Rantfile_works whole.pdf then you get: Make Figures/a/aa.dia.eps from Figures/a/aa.dia Make Figures/a/aa.pdf from Figures/a/aa.dia.eps Make Figures/c/cc.dia.eps from Figures/c/cc.dia Make Figures/c/cc.pdf from Figures/c/cc.dia.eps Do LaTeX stuff on whole which is correct -- all the Dia processing happens before the LaTeX processing. However, by simply rearranging the order of the file statements a little then with: rant -f RantFile_fails whole.pdf you get: Do LaTeX stuff on whole Make Figures/a/aa.dia.eps from Figures/a/aa.dia Make Figures/a/aa.pdf from Figures/a/aa.dia.eps Make Figures/c/cc.dia.eps from Figures/c/cc.dia Make Figures/c/cc.pdf from Figures/c/cc.dia.eps which tries to execute LaTeX before the Dia file processing has happened. So although the dependency tree should be the same it isn't, actions on dependent files is happening before transitive dependencies have been made. So Rant dependency programming code is imperative where in SCons it is declarative. Presently, I beleive that SCons has this right since the program is supposed to be programming the dependency tree not the order of evaluation of the actions. Things get really weird though, if trying to process part files. Trying: rant -f Rantfile_works a.ltx gives: Make Figures/a/aa.dia.eps from Figures/a/aa.dia Make Figures/a/aa.pdf from Figures/a/aa.dia.eps Create temporary source. Create temporary source. Create temporary source. Do LaTeX stuff on __T__ Do LaTeX stuff on __T__ Make Figures/c/cc.dia.eps from Figures/c/cc.dia Make Figures/c/cc.pdf from Figures/c/cc.dia.eps Do LaTeX stuff on __T__ Copying __T__.pdf tp a.pdf which is wrong on so many fronts. Using Rantfile_fails gives the same wrongness *and* the incorrect ordering wrongness. This example seems to show that either I have completely misunderstood something about Rant from my experience of Rake and SCons, or there is a fundamental flaw in the way Rant is processing things. Or, of course, both :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: rant_test.tgz Type: application/x-compressed-tar Size: 1243 bytes Desc: not available Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/38cbc2a3/attachment.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/38cbc2a3/attachment-0001.bin From russel at russel.org.uk Mon Oct 2 03:38:25 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 08:38:25 +0100 Subject: [Rant] Import hierarchy structure In-Reply-To: References: Message-ID: <1159774705.25434.154.camel@balin.russel.org.uk> On Mon, 2006-10-02 at 09:08 +1000, Xavier Shay wrote: > > The structuring ideas here seem a bit > > contradictory. > Yes, it is. I hadn't noticed this. IMO, it makes sense to have only > importable files in import/. This would see archive.rb moved into > rant/archive.rb. "import 'archive'" does not currently cause an error, > which it probably should. > > Should we be making a distinction between core rant files and import > support files? Would make for easier comprehension of the source. Maybe > a new folder - "import_lib?" I think separating out the importable from the support would be sensible as long as the code that creates the distribution version of the Rantfile can create the closure over all the bits needed. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/33aa876d/attachment.bin From russel at russel.org.uk Mon Oct 2 03:46:16 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 08:46:16 +0100 Subject: [Rant] A question of approach In-Reply-To: References: Message-ID: <1159775176.25434.163.camel@balin.russel.org.uk> On Mon, 2006-10-02 at 09:17 +1000, Xavier Shay wrote: > Could you have default steps, and then allow the customization through > generator parameters? > For example: > > gen Latex, :step1 => CustomStep1.new, > :step2 => CustomStep2.new, > :build_manager => CustomBuildManager.new Fortunately, I think things are a bit more constrained so the above would be overkill. > compiler11 = CscCompiler.new('path/to/csc/1.1') > > gen Csharp, 'outfile', :sources => sys["**/*.cs"], :compiler => > compiler11 > > This approach could be extended to allow multiple build steps. This actually looks more like it could accommodate things. Waf and SCons use an environment to carry the parameters so you end up with env['LATEX_COMMAND'] env['LATEX_OPTIONS'] and things like that. This sommonality is not surprising since originally Waf was a fork of SCons (but they have no diverged beyond being similar generally). Rant doesn't have the idea of programmable environments in which dependencies and actions are programmed. However, the generator parameters hash can probably be coerced into doing the right thing. I guess I basically need to sort out the dependencies between the various parameters so as to express them for a generator. I shall mull further. Thanks for your input on this, most useful and helpful. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/d12bd4c0/attachment.bin From russel at russel.org.uk Mon Oct 2 03:52:13 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 08:52:13 +0100 Subject: [Rant] Another subdirs issue In-Reply-To: References: Message-ID: <1159775533.25434.167.camel@balin.russel.org.uk> On Mon, 2006-10-02 at 09:26 +1000, Xavier Shay wrote: > > I ended up finding rant.tasks['subdir/sometask'] which gave > > me a representation of nil when there was no such task and > > something usable when there was. I guess the issue is which > > of these ways of expressing things is the best idiom. > Resolve would do things like transforming '@' and '..' (when we support > it...), so it is the preferred way. Internally it refers to rant.tasks > anyway. OK, I will switch to using resolve, with yourself and Stefan both proposing it, I must be wrong :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/68f67db5/attachment.bin From russel at russel.org.uk Mon Oct 2 12:16:04 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 17:16:04 +0100 Subject: [Rant] Creating distributions Message-ID: <1159805764.25434.211.camel@balin.russel.org.uk> I am tinkering with Package::Tgz for building distribution tarballs. Two issues: 1. It seems the philosophy of creating a tarball is a centralist one, everything is specified in the top-level Rantfile. This leads to information replication. I wonder if the SCons approach where the Tar builder collects together information from all the SConscript files in all the subdirectories and then creates the tarball is a better one? Information about what goes into the tarball is then located in the subdirectory close to where is should be. 2. The standard way of doing subdirectory trees is documented to be something along the lines of: sys["{bin,lib,test}/**/*"] but this leads to information replication. I was wondering about having something along the lines of: SubDirectories.each { | directory | sys[ directory + '/**/*' ] } but this doesn't work. Hopefully, I am doing something trivially wrong, or have missed the correct trick. Thanks. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/68a479af/attachment-0001.bin From russel at russel.org.uk Mon Oct 2 13:39:37 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 18:39:37 +0100 Subject: [Rant] Weird or my poor understanding of Ruby? Message-ID: <1159810777.25434.225.camel@balin.russel.org.uk> As a strip down example of a Rantfile, I have: import 'package/tgz' Environment = {} Environment['NAME'] = 'fred' PackageName = Environment['NAME'] puts PackageName puts Environment['NAME'] gen Package::Tgz , PackageName , :version => "0.0.0" puts PackageName puts Environment['NAME'] when I execute it I get: |> rant fred fred fred-0.0.0 fred-0.0.0 tar zcf fred-0.0.0.tgz fred-0.0.0 which implies that the generator has not only changed the constant PackageName (which is bizarre, it is also changing the 'NAME' member of the hash, which is very weird. Even if I change the constant to be a variable the same thing happens. Is this expected? Is it supposed to be what happens? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/62a6e065/attachment.bin From DaveD at airg.com Mon Oct 2 15:01:10 2006 From: DaveD at airg.com (Dave Duchene) Date: Mon, 2 Oct 2006 12:01:10 -0700 Subject: [Rant] Weird or my poor understanding of Ruby? In-Reply-To: <1159810777.25434.225.camel@balin.russel.org.uk> Message-ID: <0B02E756F603CC409EB553879B090CC804D23E13@HPEXCHVS01.exchange.airg> I'm not sure what is supposed to happen here, but in Ruby it's important to distinguish between a constant variable and the object that it refers to. PackageName is a constant, but there's nothing stopping the other code from modifying the string that it refers to in-place, which is exactly what appears to be happening. Hope that helps, --Dave -----Original Message----- From: make-cafe-bounces at rubyforge.org [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder Sent: October 2, 2006 10:40 AM To: Rant Users Subject: [Rant] Weird or my poor understanding of Ruby? As a strip down example of a Rantfile, I have: import 'package/tgz' Environment = {} Environment['NAME'] = 'fred' PackageName = Environment['NAME'] puts PackageName puts Environment['NAME'] gen Package::Tgz , PackageName , :version => "0.0.0" puts PackageName puts Environment['NAME'] when I execute it I get: |> rant fred fred fred-0.0.0 fred-0.0.0 tar zcf fred-0.0.0.tgz fred-0.0.0 which implies that the generator has not only changed the constant PackageName (which is bizarre, it is also changing the 'NAME' member of the hash, which is very weird. Even if I change the constant to be a variable the same thing happens. Is this expected? Is it supposed to be what happens? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk From russel at russel.org.uk Mon Oct 2 15:39:57 2006 From: russel at russel.org.uk (Russel Winder) Date: Mon, 02 Oct 2006 20:39:57 +0100 Subject: [Rant] Problem with Package::Tgz ? Message-ID: <1159817997.25434.239.camel@balin.russel.org.uk> Using the returned value from the Package:Tgz generator indicates there may be a problem: package = gen Package::Tgz , PackageName , :version => Environment['Version'] , :files => [ 'AUTHORS' , 'ChangeLog' , 'COPYING' , 'NEWS' , 'README' , 'SConstruct' , 'wscript' , 'Rantfile' , 'VERSION' ] + SubDirectories.each { | directory | sys[ directory + '/**/*' ] } puts package.path results in the output gfontbrowser-0.1.3-0.1.3.tgz it appears that version is appended twice and not one to the path. This of course leads to problems as dependencies written using package.path are never met. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061002/74f4d807/attachment.bin From russel at russel.org.uk Tue Oct 3 01:50:21 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 03 Oct 2006 06:50:21 +0100 Subject: [Rant] Weird or my poor understanding of Ruby? In-Reply-To: <0B02E756F603CC409EB553879B090CC804D23E13@HPEXCHVS01.exchange.airg> References: <0B02E756F603CC409EB553879B090CC804D23E13@HPEXCHVS01.exchange.airg> Message-ID: <1159854621.25434.256.camel@balin.russel.org.uk> On Mon, 2006-10-02 at 12:01 -0700, Dave Duchene wrote: > I'm not sure what is supposed to happen here, but in Ruby it's important > to distinguish between a constant variable and the object that it refers > to. PackageName is a constant, but there's nothing stopping the other > code from modifying the string that it refers to in-place, which is > exactly what appears to be happening. Indeed, that was why I changed to having a local variable (i.e. make the name an initial lower case). I had expected that this should cause a copying rather than a referencing and yet Environment['Name'] still gets changed. This implies there is no cloning. I guess this is Ruby semantics -- surprising but if that is the way things are... The real issue is that the Rant Package::Tgz is trying to be helpful by amending the value sent in but there is a conflict between Ruby semantics, what Rant is doing and sane control of variables in a script. All the Rant examples use a literal for the name so it may be that this issue has never arisen before. > Hope that helps, Yes and no :-) I guess I need to find a way of forcing a cloning so that the original value remains unchanged. Your email has put me in the right direction... -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061003/396632ee/attachment.bin From russel at russel.org.uk Tue Oct 3 03:52:22 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 03 Oct 2006 08:52:22 +0100 Subject: [Rant] Weird or my poor understanding of Ruby? In-Reply-To: <1159854621.25434.256.camel@balin.russel.org.uk> References: <0B02E756F603CC409EB553879B090CC804D23E13@HPEXCHVS01.exchange.airg> <1159854621.25434.256.camel@balin.russel.org.uk> Message-ID: <1159861942.25434.335.camel@balin.russel.org.uk> On Tue, 2006-10-03 at 06:50 +0100, Russel Winder wrote: > I guess I need to find a way of forcing a cloning so that the original > value remains unchanged. Your email has put me in the right > direction... PackageName = Environment['Name'].clone does indeed do the needful, the Package::Tgz generator then amends the object referred to but the original is untouched. Moral of story: Remember that named values and constant references are different things :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061003/2b32e2ee/attachment.bin From DaveD at airg.com Tue Oct 3 12:44:52 2006 From: DaveD at airg.com (Dave Duchene) Date: Tue, 3 Oct 2006 09:44:52 -0700 Subject: [Rant] Weird or my poor understanding of Ruby? In-Reply-To: <1159861942.25434.335.camel@balin.russel.org.uk> Message-ID: <0B02E756F603CC409EB553879B090CC804DEED86@HPEXCHVS01.exchange.airg> Glad to hear it;-) But I wonder if you have the moral right. In Ruby, *every* variable is a reference, and there's no such thing as a named value, because there are no basic types at all. A const variable is just a reference that can't be changed to refer to something else. If you want a const *object*, you can freeze it. In practice this is rarely done, but perhaps it should be. Best, --Dave -----Original Message----- From: make-cafe-bounces at rubyforge.org [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Russel Winder Sent: October 3, 2006 12:52 AM To: Rant discussion Subject: Re: [Rant] Weird or my poor understanding of Ruby? On Tue, 2006-10-03 at 06:50 +0100, Russel Winder wrote: > I guess I need to find a way of forcing a cloning so that the original > value remains unchanged. Your email has put me in the right > direction... PackageName = Environment['Name'].clone does indeed do the needful, the Package::Tgz generator then amends the object referred to but the original is untouched. Moral of story: Remember that named values and constant references are different things :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk From russel at russel.org.uk Tue Oct 3 14:38:28 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 03 Oct 2006 19:38:28 +0100 Subject: [Rant] Weird or my poor understanding of Ruby? In-Reply-To: <0B02E756F603CC409EB553879B090CC804DEED86@HPEXCHVS01.exchange.airg> References: <0B02E756F603CC409EB553879B090CC804DEED86@HPEXCHVS01.exchange.airg> Message-ID: <1159900708.25434.433.camel@balin.russel.org.uk> On Tue, 2006-10-03 at 09:44 -0700, Dave Duchene wrote: > Glad to hear it;-) But I wonder if you have the moral right. In Ruby, > *every* variable is a reference, and there's no such thing as a named > value, because there are no basic types at all. A const variable is > just a reference that can't be changed to refer to something else. If > you want a const *object*, you can freeze it. In practice this is > rarely done, but perhaps it should be. Your paragraph strikes me as confirmation that the moral is exactly right, though I would take issue with you over your comments that in Ruby there is "no such thing as a named value" and "there are no basic types at all". But these are arguments over general semantics and should not be undertaken over a mail list but rather in a pub or restuarant with a bottle of wine :-) Each ;-) > Moral of story: Remember that named values and constant references are > different things :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061003/860e652f/attachment.bin From russel at russel.org.uk Fri Oct 6 15:09:10 2006 From: russel at russel.org.uk (Russel Winder) Date: Fri, 06 Oct 2006 20:09:10 +0100 Subject: [Rant] Is there ... Message-ID: <1160161750.25434.1112.camel@balin.russel.org.uk> ... any architecture / design documentation for Rant or just the source code? Thanks. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061006/f9f23edd/attachment.bin From xavier-list at noreality.net Fri Oct 6 20:10:06 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sat, 07 Oct 2006 10:10:06 +1000 Subject: [Rant] Is there ... In-Reply-To: <1160161750.25434.1112.camel@balin.russel.org.uk> References: <1160161750.25434.1112.camel@balin.russel.org.uk> Message-ID: <4526F05E.30602@noreality.net> > ... any architecture / design documentation for Rant or just the source > code? > > Thanks. AFAIK just the source code. Would like to be proven wrong. Xavier From xavier-list at noreality.net Fri Oct 6 20:10:10 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sat, 07 Oct 2006 10:10:10 +1000 Subject: [Rant] Is there ... In-Reply-To: <1160161750.25434.1112.camel@balin.russel.org.uk> References: <1160161750.25434.1112.camel@balin.russel.org.uk> Message-ID: <4526F062.1090502@noreality.net> > ... any architecture / design documentation for Rant or just the source > code? > > Thanks. AFAIK just the source code. Would like to be proven wrong. Xavier From xavier-list at noreality.net Sat Oct 7 00:19:44 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sat, 07 Oct 2006 14:19:44 +1000 Subject: [Rant] Is there ... In-Reply-To: <4526F05E.30602@noreality.net> References: <1160161750.25434.1112.camel@balin.russel.org.uk> <4526F05E.30602@noreality.net> Message-ID: <45272AE0.9020707@noreality.net> Urgh, double post :S Actually, check the "misc" folder in the distribution. From xavier-list at noreality.net Tue Oct 10 06:08:57 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Tue, 10 Oct 2006 20:08:57 +1000 Subject: [Rant] Configuration style Message-ID: <452B7139.5030402@noreality.net> gen MyGen, "taskname", do |t| t.prop = "rar" end # OR gen MyGen, "taskname", :prop => "rar" It's easy enough to support both (though none of my new code does...), but it would be good to have a unified style across our examples. My preference is for the latter, but some of the existing doc (RubyTest, for example) uses the former. I believe rake prefers the former also. I like the block solution for tasks that have a number of actions (a clean task), but think a hash is much better for just setting variables. Xavier http://rhnh.net From russel at russel.org.uk Tue Oct 10 06:49:08 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 11:49:08 +0100 Subject: [Rant] isuptodate? Message-ID: <1160477348.12259.12.camel@balin.russel.org.uk> Rake has a function isuptodate? which determines the `up-to-dateness' of a file compared to an array of files. Rant doesn't appear to have this function but I bet the functionality is there. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/3532a159/attachment.bin From russel at russel.org.uk Tue Oct 10 07:53:48 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 12:53:48 +0100 Subject: [Rant] My preciousssss....... :-) Message-ID: <1160481228.12259.26.camel@balin.russel.org.uk> Make has the idea of .PRECIOUS to stop files that are targets in rules being deleted automatically. Using the Rant AutoClean, is there a way of marking a file that is specified by a file rule not be deleted? Currently, a file I `wants to be my precioussss' :-) is being deleted and it would be good if it wasn't. Thanks. (I suspect this is probably an RTFM type question but...) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/3685c513/attachment.bin From russel at russel.org.uk Tue Oct 10 08:05:39 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 13:05:39 +0100 Subject: [Rant] Transitive dependencies Message-ID: <1160481939.12259.34.camel@balin.russel.org.uk> In a (LaTeX-related) Rantfile, I am creating dependencies on a file that doesn't necessarily exist but has to be created if it doesn't. Using simple dependencies and file rules handles this in Rake but in Rant, I just get: rant: [ERROR] in file `/home/users/russel/Checkouts/IPuP/trunk/Rantfile', line 69: No such file or directory - chapterData rant: [ERROR] Task `__temporary__programmingFundamentals.ltx' fail. The non-existence of the file chapterData is not triggering its creation, even though I have a file specification for it: file ChapterData => AllSources do make BookPdf end (capitalization is correct :-) So am I missing something about Rant regarding missing "file in the middle" dependencies? Thanks. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/37cf06ec/attachment.bin From kevin.burge at systemware.com Tue Oct 10 09:33:01 2006 From: kevin.burge at systemware.com (Kevin Burge) Date: Tue, 10 Oct 2006 07:33:01 -0600 Subject: [Rant] Configuration style In-Reply-To: <452B7139.5030402@noreality.net> References: <452B7139.5030402@noreality.net> Message-ID: <452BA10D.9050705@systemware.com> Xavier Shay wrote: > gen MyGen, "taskname", do |t| > t.prop = "rar" > end > > # OR > > gen MyGen, "taskname", :prop => "rar" > I've written many generators, most of which used the first form. One thing that I did not like about it: it broke the concept of the block being the body of the task, which I like, which lends me to prefer the latter form. But, with the complexity of the stuff I was doing, I don't know how I could possibly fit everything into a hash, unless I used many lambdas. And, it makes it difficult to take advantage of the generator without using a lambda, because the generator doesn't exist yet. So, in practice, the latter is more practical. Actually, now that I think of it, I ended up making the "property setters" (like t.prop) into methods so that they themselves could have their own code blocks and arguments, like: gen C::Application, "mycapp" do |prj| prj.exe_name "mycapp" prj.flags :c do %w( -I. ) + [ deps('somelib').include_dirs.to_include_flag, libs('somelib2').include_dirs.to_include_flag ] end prj.flags :link do [ deps('somelib').lib_dirs.to_link_flag, libs('somelib2').lib_dirs.to_link_flag ] end etc. for the rest of the compiler and linker/archive options end Side Note: the above code basically had the purpose of allowing me to "late bind" compiler options for libraries which could be downloaded on the fly from a remote binary repository into a local cache, so none of the directories were known when the tasks are created. Basically I created a C/C++ equivalent to Maven using Rant. We have quite a few third party libraries that we are rebuilding over and over on every developer machine, on every OS, and it takes a significant amount of time. It actually worked, but I got pulled onto other tasks. The weakest part was the actual compiler stuff for C/C++ code, which was basically borrowed from Jam (being fairly familiar with Jam's tasks). Unfortunately, it didn't have any of the cool stuff Rant offers like the Command stuff that remembers command line options. (Probably could be done fairly easily). http://www.systemware.com/ From russel at russel.org.uk Tue Oct 10 10:34:19 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 15:34:19 +0100 Subject: [Rant] Does Rant have a logo and/or mascot? Message-ID: <1160490859.12259.70.camel@balin.russel.org.uk> A guy I used to employ is a graphic designer and is not averse to creating logos etc. for the fame and the portfolio. Does Rant need a logo? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/886096be/attachment.bin From russel at russel.org.uk Tue Oct 10 10:35:28 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 15:35:28 +0100 Subject: [Rant] Subversion repository Message-ID: <1160490928.12259.73.camel@balin.russel.org.uk> It is not totally clear whether the Subversion repository on RubyForge or BerliOS is actually the primary working repository or are they just mirrors of each other? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/9ae15903/attachment.bin From russel at russel.org.uk Tue Oct 10 15:19:00 2006 From: russel at russel.org.uk (Russel Winder) Date: Tue, 10 Oct 2006 20:19:00 +0100 Subject: [Rant] Transitive dependencies In-Reply-To: <1160481939.12259.34.camel@balin.russel.org.uk> References: <1160481939.12259.34.camel@balin.russel.org.uk> Message-ID: <1160507940.12259.89.camel@balin.russel.org.uk> On Tue, 2006-10-10 at 13:05 +0100, Russel Winder wrote: > So am I missing something about Rant regarding missing "file in the > middle" dependencies? I was missing something, I had the dependency in the wrong place. It would help if I actually read my own Rantfile :-) -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061010/56b7df7c/attachment.bin From xavier.shay at advatel.com.au Tue Oct 10 18:08:44 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Wed, 11 Oct 2006 08:08:44 +1000 Subject: [Rant] Subversion repository Message-ID: > It is not totally clear whether the Subversion repository on > RubyForge or BerliOS is actually the primary working repository > or are they just mirrors of each other? RubyForge is current, BerliOS is out of date. The updated front page in subversion reflects this - I need to figure out how to actually deploy it... Xavier http://rhnh.net From xavier.shay at advatel.com.au Tue Oct 10 18:12:32 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Wed, 11 Oct 2006 08:12:32 +1000 Subject: [Rant] Does Rant have a logo and/or mascot? Message-ID: > A guy I used to employ is a graphic designer and is not averse to > creating logos etc. for the fame and the portfolio. Does Rant need a > logo? Rake doesn't have a logo, so it's another way we could stick it to 'em :) May need to change our home page to accommodate it, no big deal. Mascot - are we thinking animal? I want an elepharant. Kicks the pants off a tiny insect or garden tool :D Xavier http://rhnh.net From xavier.shay at advatel.com.au Tue Oct 10 18:16:40 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Wed, 11 Oct 2006 08:16:40 +1000 Subject: [Rant] My preciousssss....... :-) Message-ID: > Make has the idea of .PRECIOUS to stop files that are targets in rules being deleted automatically. Using the Rant > AutoClean, is there a way of marking a file that is specified by a file rule not be deleted? > Currently, a file I `wants to be my precioussss' :-) is being deleted and it would be good if it wasn't. Currently: gen AutoClean, :clean var[:clean].include "**/*.bak" Don't think an exclude option exists - if it does it ain't documented. Continuning from a previous post, I think I prefer: gen AutoClean, :clean, :include => sys["whatever"], :exclude => "precious" Would this be suitable? Shouldn't be a big deal, I'll check it out next time I'm home. Xavier http://rhnh.net From xavier.shay at advatel.com.au Tue Oct 10 18:20:57 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Wed, 11 Oct 2006 08:20:57 +1000 Subject: [Rant] isuptodate? Message-ID: > Rake has a function isuptodate? which determines the `up-to-dateness' of a file compared to an array of files. Rant > doesn't appear to have this function but I bet the functionality is there. The functionality is there - It's used for the file tasks, shouldn't be too big a deal to extend it to comparing against an arbitrary file. Just to be sure I understand what you want, something like this: # I'm making up method names here a.timestamp # => 2 days ago b.timestamp # => 3 days ago c.timestamp # => 4 days ago a.is_current?([b, c]) # => true b.is_current?([a, c]) # => false c.is_current?([a, b]) # => false a.is_current?(a) # => true Xavier http://rhnh.net From russel at russel.org.uk Wed Oct 11 01:26:08 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 06:26:08 +0100 Subject: [Rant] Subversion repository In-Reply-To: References: Message-ID: <1160544368.12259.102.camel@balin.russel.org.uk> On Wed, 2006-10-11 at 08:08 +1000, Xavier Shay wrote: > > It is not totally clear whether the Subversion repository on > > RubyForge or BerliOS is actually the primary working repository > > or are they just mirrors of each other? > RubyForge is current, BerliOS is out of date. The updated front page in > subversion reflects this - I need to figure out how to actually deploy > it... OK, so checking out from RubyForge is the right thing to do. Is the BerliOS repository jsut redundant in that case? Is there a rationale for having two repositories that I am missing? Unless the BerliOS repository is a mirror of RubyForge, it might be wise to update the Rant website front page to take people to RubyForge rather than BrerliOS. This would avoid the confusion that I got into. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/9051d4de/attachment-0001.bin From russel at russel.org.uk Wed Oct 11 01:39:27 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 06:39:27 +0100 Subject: [Rant] Does Rant have a logo and/or mascot? In-Reply-To: References: Message-ID: <1160545168.12259.114.camel@balin.russel.org.uk> On Wed, 2006-10-11 at 08:12 +1000, Xavier Shay wrote: > > A guy I used to employ is a graphic designer and is not averse to > > creating logos etc. for the fame and the portfolio. Does Rant need a > > logo? > Rake doesn't have a logo, so it's another way we could stick it to 'em > :) > May need to change our home page to accommodate it, no big deal. > > Mascot - are we thinking animal? I want an elepharant. Kicks the pants > off a tiny insect or garden tool :D We could combine logo and mascot by having a logo version of a working elephant SE Asia style hauling logs. Elephants are the symbols of memory, they are friendly, strong and have no enemies. Ideal really :-) (elephant.co.uk (insurance company) have a cutesy logo, elephant.org has a fighting elephant. elephant.com seems unowned and just a redirector.) Of course the only marketing downside for Rant is the term, Rant in English is all about negative feelings:you rant about something you find unacceptable and/or incomprehensible -- this is the aim of the www.rant.org site. It's a pity that domain is owned. The project could make use of this in a positive, constructive way by creating an association between Rant the product and ranting about "why should building things be so complicated -- use Rant and they are not". Or "Instead of sounding off about your build tool just use Rant.", There must be a whole collection of sentences that could be used to build this association. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/96c3754c/attachment.bin From russel at russel.org.uk Wed Oct 11 01:46:05 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 06:46:05 +0100 Subject: [Rant] My preciousssss....... :-) In-Reply-To: References: Message-ID: <1160545566.12259.122.camel@balin.russel.org.uk> On Wed, 2006-10-11 at 08:16 +1000, Xavier Shay wrote: > > Make has the idea of .PRECIOUS to stop files that are targets in rules > being deleted automatically. Using the Rant > > AutoClean, is there a way of marking a file that is specified by a > file rule not be deleted? > > Currently, a file I `wants to be my precioussss' :-) is being deleted > and it would be good if it wasn't. > > Currently: > gen AutoClean, :clean > var[:clean].include "**/*.bak" > > Don't think an exclude option exists - if it does it ain't documented. > Continuning from a previous post, I think I prefer: > gen AutoClean, :clean, :include => sys["whatever"], :exclude => > "precious" > > Would this be suitable? Shouldn't be a big deal, I'll check it out next > time I'm home. var[:clean].exclude( 'precious' ) executes so I guess there is such a method but it doesn't allow you to stop a file target being removed by AutoClean. So even with the above, when you have: file 'precious' => Dependents do . . . end then the file precious is always deleted. I have never tried this in SCons so it may be that SCons has the problem as well. I really need to find a way round this as I need to have a file that is build if it doesn't exist or is out of date but is left around. I guess a heavyweight answer would be to have a new rule: precious 'precious' => Dependents do . . . end which marked the tree such the AutoClean ignored the target. However this seems a bit overly agressive except that it would solve the problem more efficiently that having an exclude mechanism in the AutoClean generator. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/33489d1a/attachment.bin From russel at russel.org.uk Wed Oct 11 02:03:10 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 07:03:10 +0100 Subject: [Rant] isuptodate? In-Reply-To: References: Message-ID: <1160546590.12259.129.camel@balin.russel.org.uk> On Wed, 2006-10-11 at 08:20 +1000, Xavier Shay wrote: > The functionality is there - It's used for the file tasks, shouldn't be > too big a deal to extend it to comparing against an arbitrary file. Just > to be sure I understand what you want, something like this: The functionality had to be there somewhere, Rant relies on it internally :-) > # I'm making up method names here > a.timestamp # => 2 days ago > b.timestamp # => 3 days ago > c.timestamp # => 4 days ago I tend to use MD5 signatures but... > a.is_current?([b, c]) # => true > b.is_current?([a, c]) # => false > c.is_current?([a, b]) # => false > a.is_current?(a) # => true Basically yes. I should have said, uptodate? is a method in FileUtils that checks timestamps so can be used in Rantfiles as in Rakefiles but not when MD5 signature checking is the checking method. In the end I discovered that I could do: file A => :x do make :x end since task :x has as a side-effect the creation of A and make seems to force a task whereas task just adds it to the dependency tree. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/ebdc6375/attachment.bin From russel at russel.org.uk Wed Oct 11 02:08:11 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 07:08:11 +0100 Subject: [Rant] List response time Message-ID: <1160546891.12259.135.camel@balin.russel.org.uk> Is it just me or . . . I find that my submissions to this list take between 30 and 150 minutes to get into my email. This is not a problem at my end as I have my own SMTP server and IMAP server so email arriving here takes about 20s max (due to SpamAssassin). Also most other lists I am on seem to get me my copy within 2 mins. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/990e435b/attachment.bin From russel at russel.org.uk Wed Oct 11 12:00:37 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 11 Oct 2006 17:00:37 +0100 Subject: [Rant] MD5 module Message-ID: <1160582437.12259.183.camel@balin.russel.org.uk> I am wondering if there are known problems with the MD5 stuff. I have a Rant-based system that works entirely as expected without the md5 import. However, when I use the md5 import, I can make substantive changes to the file but this does not trigger a rebuild. It is as though the MD5 check is reporting no change, or worse is not happening. Basically I am wondering whether to invest the time trying to create a test case or not. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061011/b3d490c1/attachment.bin From xavier-list at noreality.net Wed Oct 11 20:07:10 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Thu, 12 Oct 2006 10:07:10 +1000 Subject: [Rant] Subversion repository In-Reply-To: <1160544368.12259.102.camel@balin.russel.org.uk> References: <1160544368.12259.102.camel@balin.russel.org.uk> Message-ID: <452D872E.6080809@noreality.net> Russel Winder wrote: > On Wed, 2006-10-11 at 08:08 +1000, Xavier Shay wrote: >>> It is not totally clear whether the Subversion repository on >>> RubyForge or BerliOS is actually the primary working repository >>> or are they just mirrors of each other? >> RubyForge is current, BerliOS is out of date. The updated front page in >> subversion reflects this - I need to figure out how to actually deploy >> it... > > OK, so checking out from RubyForge is the right thing to do. Is the > BerliOS repository jsut redundant in that case? Is there a rationale > for having two repositories that I am missing? Have only recently moved to rubyforge from berlios > Unless the BerliOS repository is a mirror of RubyForge, it might be wise > to update the Rant website front page to take people to RubyForge rather > than BrerliOS. This would avoid the confusion that I got into. >> The updated front page in >> subversion reflects this - I need to figure out how to actually >> deploy >> it... :) Am working on this today Xavier From xavier-list at noreality.net Wed Oct 11 20:24:21 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Thu, 12 Oct 2006 10:24:21 +1000 Subject: [Rant] MD5 module In-Reply-To: <1160582437.12259.183.camel@balin.russel.org.uk> References: <1160582437.12259.183.camel@balin.russel.org.uk> Message-ID: <452D8B35.3070305@noreality.net> Russel Winder wrote: > I am wondering if there are known problems with the MD5 stuff. I have a > Rant-based system that works entirely as expected without the md5 > import. However, when I use the md5 import, I can make substantive > changes to the file but this does not trigger a rebuild. It is as > though the MD5 check is reporting no change, or worse is not happening. > > Basically I am wondering whether to invest the time trying to create a > test case or not. Yes please. Current MD5 tests are in test/import/md5/test_md5.rb - doesn't look to be a whole lot there... Xavier From xavier-list at noreality.net Wed Oct 11 20:38:53 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Thu, 12 Oct 2006 10:38:53 +1000 Subject: [Rant] [ANN] Rant 0.5.7 Released Message-ID: <452D8E9D.90503@noreality.net> Fixes and minor improvements: * Fixed: Rules wouldn't work if the target file was specified by an absolute path. (Reported by Brendan Boesen.) * Fixed: Script files use env ruby (Russel Windir) New features: * The method Rant::Sys.absolute_path?. Read doc/sys.rdoc[link:files/doc/sys_rdoc.html] for documentation. * Added non-deprecated support for C#. Read doc/csharp.rdoc[link:files/doc/csharp_rdoc.html] for documentation. Xavier From russel at russel.org.uk Sat Oct 14 01:53:44 2006 From: russel at russel.org.uk (Russel Winder) Date: Sat, 14 Oct 2006 06:53:44 +0100 Subject: [Rant] Moving things along Message-ID: <1160805224.14190.267.camel@balin.russel.org.uk> I am assuming that everyone on this list is using Rant because, like me, you see it as superior to Rake. (And SCons?) The single biggest factor for me is the generators which provide a framework for creating high-level build constructs. Generators give Rant the high-level feel of SCons and Waf which Rake doesn't really have (unless I missed it). However, SCons and Waf are further down the road and have much more ready-made high-level stuff in place. Of course, Xavier is working on a C# compilation generator, and I am working on a LaTeX generator, so there is stuff happening. But I bet out there is a lot of good Rant stuff that really ought to be part of Rant so that there is a Ruby-based tool to "compete" with SCons and Waf. What do people have? Are there generators out there that would allow Rant to replace Autotools? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061014/2413f4cc/attachment.bin From xavier.shay at advatel.com.au Wed Oct 18 03:14:06 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Wed, 18 Oct 2006 17:14:06 +1000 Subject: [Rant] [ANN] Rant has moved to http://rant.rubyforge.org Message-ID: Rant is now based at http://rant.rubyforge.org I will be putting up a redirect and other niceties at http://make.rubyforge.org in the next few days. Please remember to svn switch --relocate if you are on trunk. Thanks to every one who helped make this happen - Russel, Stephano, Tom, Stefan. Xavier From russel at russel.org.uk Wed Oct 18 11:29:00 2006 From: russel at russel.org.uk (Russel Winder) Date: Wed, 18 Oct 2006 16:29:00 +0100 Subject: [Rant] [ANN] Rant has moved to http://rant.rubyforge.org In-Reply-To: References: Message-ID: <1161185340.29806.6.camel@balin.russel.org.uk> On Wed, 2006-10-18 at 17:14 +1000, Xavier Shay wrote: > Rant is now based at http://rant.rubyforge.org > I will be putting up a redirect and other niceties at > http://make.rubyforge.org in the next few days. > > Please remember to svn switch --relocate if you are on trunk. > > Thanks to every one who helped make this happen - Russel, Stephano, Tom, > Stefan. I am very pleased this is happening. It enables Rant to have a clear brand in terms of Web and RubyForge presence. The Subversion store seems to work fine in its new address. Is it going to be possible to move the project 615 history over or is this not worth the hassle? I guess the webpages need to be audited to ensure that all links point to the right place? I guess all project 615 references need to be made into project 207 references yet links left in to project 615 in case people want to get at the history. What is the best process for dealing with problems? Presumably, the mail list name will change? -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061018/c3ab8252/attachment-0001.bin From xavier.shay at advatel.com.au Wed Oct 18 18:17:42 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Thu, 19 Oct 2006 08:17:42 +1000 Subject: [Rant] [ANN] Rant has moved to http://rant.rubyforge.org Message-ID: > Is it going to be possible to move the project 615 history over or is this not worth the hassle? We have subversion history, I don't think it is worthwhile moving all our releases across - they are tagged (which reminds me I need to tag 0.5.7) > I guess the webpages need to be audited to ensure that all links point to the right place? I guess all project 615 > references need to be made into project 207 references yet links left in to project 615 in case people want to get at the > history. The home page is fixed - I just noticed an old link in the doc though. Find in Files here we come! > Presumably, the mail list name will change? Good thing you're on the ball, I forgot about this one. > What is the best process for dealing with problems? Dicussing them on list is probably the best way. If that isn't going to work, everyone has my email address, so I can coordinate any difficulties. Things I have to do smartly: 1) Fix old links in documentation, update contact information 2) Create new mailing list (announce change of address here) 3) Tag 0.5.7 release Xavier From ralph.amissah at gmail.com Fri Oct 20 00:50:29 2006 From: ralph.amissah at gmail.com (ralph.amissah at gmail.com) Date: Fri, 20 Oct 2006 05:50:29 +0100 Subject: [Rant] [rant] for the next release of rant please consider: Message-ID: <20061020045029.GA12744@amissah.com> (a) for ruby executables (./bin/rant ./bin/rant-import) please use the generic ruby environment bang: #!/usr/bin/env ruby (instead of #! /usr/local/bin/ruby ) (b) man pages: you may edit and include the attached man pages in the rant package, preferably in directory ./man/man1 ./man/man1/rant.1 ./man/man1/rant-import.1 They were for the debian package, but would preferably be maintained upstream within rant as they will be useful on all Unix/Gnu Linux distributions. (My name may be removed from the man page files). Ralph Amissah -------------- next part -------------- .\" Name: Rant .\" Program Author: Stefan Lang .\" Author: Ralph Amissah .\" Description: Flexible, Ruby based make .\" License: GNU Lesser General Public License (LGPL) .\" Notes: Process this file with .\" groff -man -Tascii rant.1 .\" nroff -man rant.1 | most .TH rant 1 "July 26, 2006" "version 0.5.6" "rant" .SH NAME .B Rant \- Flexible, Ruby based make .PP .SH SYNOPSIS Similar to make, the rant commandline tool reads a file called Rantfile, which contains task definitions. Unlike make, however, an Rantfile is just a valid script written in the Ruby programming language. Since Ruby comes with many useful libraries and is portable across many different operating systems, it's very easy to write portable Rantfiles. .PP .I rant \-\-help provides a list of options .PP .I rant \-T provides a list of tasks in an existing Rantfile .PP The rant program .PP For a short usage message and a list of options invoke rant with the \-\-help option: .PP % rant \-\-help .PP Usually you'll run rant by giving it the name of the task(s) to be invoked as argument(s). To get an overview for the project in the current working directory, run rant with the \-\-tasks (short form: \-T) option: .PP % rant \-T rant # => test rant package # Create packages for distribution. rant doc # Generate documentation. rant test # Run unit tests. rant cov # Run all tests and generate coverage with rcov. rant clean # Remove autogenerated files. rant publish\-docs # Publish html docs on RubyForge. # Note: scp will prompt for rubyforge password. .PP This lists the "public" tasks for the project. The first line always tells you the task(s) that will be invoked when no argument is given to rant, in the above example, this would be the test task. .PP When you invoke rant on the commandline it performs the following steps (roughly): .PP 1. Process commandline options and arguments. An option starts with two dashes or one for the single letter equivalent. Arguments of the form VAR=VAL set variables available in the Rantfile(s). All other arguments are names of tasks to be invoked. .PP 2. Load Rantfile in working directory. Rantfiles with the following names are recognized: .PP Rantfile rantfile root.rant .PP 3. Calculate task dependencies and invoke required tasks. If no task was given on the commandline, a task called "default" will be invoked. If the "default" task doesn't exist, the first task will be invoked. .PP Dry\-Run .PP If you run rant in dry\-run mode, it will print the actions it would execute instead of actually executing them. This can be useful in debugging your Rantfiles. To enable it, give the \-\-dry-run, option or its short form, \-n, on the commandline. .PP Example Rantfile: .PP import "command" .PP task :install => "foo" do sys.install "foo", "/usr/local/bin", :mode => 0755 end .PP gen Command, "foo", "foo.c", "cc \-o $(>) $(<)" .PP Running rant in dry\-run mode: .PP .\" preformatted text follows .nf % rant \-n Executing "foo" \- SHELL cc \-o foo foo.c Executing "install" - Ruby Proc at Rantfile:3 .fi Running rant in "normal" mode: .\" preformatted text follows .nf % rant cc \-o foo foo.c install \-c \-m 0755 foo /usr/local/bin .fi Running rant in dry\-run mode again: .\" preformatted text follows .nf % rant \-n Executing "install" \- Ruby Proc at Rantfile:3 .fi .\"%% Further Information .SH FURTHER INFORMATION .PP For more information on .I Rant see: .I .PP .I .PP .SH AUTHOR Rant is by Stefan Lang, updated by Xavier Shay and others .PP This package is maintained by Ralph Amissah .SH SEE .BR rant\-import(1) -------------- next part -------------- .\" Name: Rant .\" Program Author: Stefan Lang .\" Author: Ralph Amissah .\" Description: Flexible, Ruby based make .\" License: GNU Lesser General Public License (LGPL) .\" Notes: Process this file with .\" groff -man -Tascii rant.1 .\" nroff -man rant.1 | most .TH rant\-import 1 "July 26, 2006" "version 0.5.6" "rant\-import" .SH NAME .B Rant \- Flexible, Ruby based make .PP .SH SYNOPSIS The rant\-import command creates a monolithic rant script tailored to the needs of your project and thus removes the dependency on an Rant installation (but of course one person needs an Rant installation to run rant\-import). .PP Run the command with the \-\-help option to get a brief help message: .PP % rant-import \-\-help .PP Probably the easiest way to create your monolithic rant script is with the \-\-auto option: .PP % rant-import \-\-auto ant .PP This will write a monolithic rant script to the file ant in the current directory. To determine which plugins and imports your project is using, it performs step 2 of the rant command as described in doc/rant.rdoc, which means that it loads the Rantfile in the current directory. .PP That one command should be enough: .PP % ruby ant .PP This script has the same behaviour as the rant command. Distribute it with your project and nobody else but you needs an Rant installation. .PP .\"%% Further Information .SH FURTHER INFORMATION .PP For more information on .I Rant see: .I .PP .I .PP .SH AUTHOR Rant is by Stefan Lang, updated by Xavier Shay and others .PP This package is maintained by Ralph Amissah .SH SEE .BR rant(1) From xavier-list at noreality.net Sat Oct 21 22:14:39 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sun, 22 Oct 2006 12:14:39 +1000 Subject: [Rant] [rant] for the next release of rant please consider: In-Reply-To: <20061020045029.GA12744@amissah.com> References: <20061020045029.GA12744@amissah.com> Message-ID: <453AD40F.7090400@noreality.net> Ralph, > (a) for ruby executables (./bin/rant ./bin/rant-import) > please use the generic ruby environment bang: > (b) man pages: This has been added/fixed in trunk (r271), please review and if correct I'll publish it in the 0.5.8 release. What else needs to be done to keep the rant debian package up to date? I'm not familiar with the process. Cheers, Xavier From xavier-list at noreality.net Sat Oct 21 22:18:17 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sun, 22 Oct 2006 12:18:17 +1000 Subject: [Rant] Bash completion script In-Reply-To: <1159000046.32708.156.camel@balin.russel.org.uk> References: <1159000046.32708.156.camel@balin.russel.org.uk> Message-ID: <453AD4E9.6040608@noreality.net> > For anyone using Bash, I wrote a bash completion script for Rant -- see > http://www.russel.org.uk/rantBashCompletion.html Russel, I get a 403 trying to download this script (page is fine, script is not). Could you please commit it to ./ext/ (I think this is a good location?), email it to me or the list, or fix the link. Cheers, Xavier From xavier-list at noreality.net Sun Oct 22 01:50:39 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sun, 22 Oct 2006 15:50:39 +1000 Subject: [Rant] [ANN] Mailing list has moved Message-ID: <453B06AF.2080100@noreality.net> I have moved the mailing list to rant-cafe at rubyforge.org. Please update your subscription. Xavier From russel at russel.org.uk Sun Oct 22 03:30:02 2006 From: russel at russel.org.uk (Russel Winder) Date: Sun, 22 Oct 2006 08:30:02 +0100 Subject: [Rant] Bash completion script In-Reply-To: <453AD4E9.6040608@noreality.net> References: <1159000046.32708.156.camel@balin.russel.org.uk> <453AD4E9.6040608@noreality.net> Message-ID: <1161502202.2501.128.camel@balin.russel.org.uk> On Sun, 2006-10-22 at 12:18 +1000, Xavier Shay wrote: > > For anyone using Bash, I wrote a bash completion script for Rant -- see > > http://www.russel.org.uk/rantBashCompletion.html > > Russel, > I get a 403 trying to download this script (page is fine, script is > not). Could you please commit it to ./ext/ (I think this is a good > location?), email it to me or the list, or fix the link. Thanks for pointing that out. I had made a change to way the site was build and failed to test that bit :-( I need to look over Ralph's comments about where to put things like the Bash completion script. Though ./ext is probably not the right location. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061022/93471387/attachment.bin From russel at russel.org.uk Sun Oct 22 05:15:13 2006 From: russel at russel.org.uk (Russel Winder) Date: Sun, 22 Oct 2006 10:15:13 +0100 Subject: [Rant] [rant] for the next release of rant please consider: In-Reply-To: <453AD40F.7090400@noreality.net> References: <20061020045029.GA12744@amissah.com> <453AD40F.7090400@noreality.net> Message-ID: <1161508513.2501.136.camel@balin.russel.org.uk> On Sun, 2006-10-22 at 12:14 +1000, Xavier Shay wrote: > Ralph, > > (a) for ruby executables (./bin/rant ./bin/rant-import) > > please use the generic ruby environment bang: > > (b) man pages: > > This has been added/fixed in trunk (r271), please review and if correct > I'll publish it in the 0.5.8 release. Whilst it is great that Ralph wrote man pages for this, I think they need a bit of rewriting before we do a new release. I have done a bit on this but I cannot write into the Subversion store. Transmitting file data ..svn: Commit failed (details follow): svn: Can't create directory '/var/svn/rant/db/transactions/273-1.txn': SSAGES/subversion.mo The manual pages seem to have the date on them and the release version number. Filling these in should be automated. Does setup.rb do something with this or does it need to be added? Could be a job for ERB? Thanks. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061022/10f37573/attachment.bin From xavier-list at noreality.net Sun Oct 22 07:46:55 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Sun, 22 Oct 2006 21:46:55 +1000 Subject: [Rant] [rant] for the next release of rant please consider: In-Reply-To: <1161508513.2501.136.camel@balin.russel.org.uk> References: <20061020045029.GA12744@amissah.com> <453AD40F.7090400@noreality.net> <1161508513.2501.136.camel@balin.russel.org.uk> Message-ID: <453B5A2F.70804@noreality.net> > Whilst it is great that Ralph wrote man pages for this, I think they > need a bit of rewriting before we do a new release. I have done a bit > on this but I cannot write into the Subversion store. Forwarded to Tom Copeland (rubyforge guy), cc'ed you in. > The manual pages seem to have the date on them and the release version > number. Filling these in should be automated. Does setup.rb do > something with this or does it need to be added? Could be a job for > ERB? Currently done manually, needs to be added, ERB probably worth looking into. Does the rdoc -> html generation allow parameters at all? Will investigate. Xavier From russel at russel.org.uk Fri Oct 27 08:01:33 2006 From: russel at russel.org.uk (Russel Winder) Date: Fri, 27 Oct 2006 13:01:33 +0100 Subject: [Rant] Rant on Windows Message-ID: <1161950493.2501.635.camel@balin.russel.org.uk> Much as it pains me to have to boot any computer with Windows, there are times when it has to be done. Sad but true :-( I have a Rant build system which works fine on Ubuntu, Solaris, Windows +Cygwin and Windows+MSYS. However, there are no command.com batch files in the Rant store, so there is no rant command available. Does this imply that noone uses Rant on bare Windows? Or is it that there are batch files out there that could usefully be in the Rant store? Thanks. -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at devjavasoft.org -- Russel. ==================================================== Dr Russel Winder +44 20 7585 2200 41 Buckmaster Road +44 7770 465 077 London SW11 1EN, UK russel at russel.org.uk -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 191 bytes Desc: This is a digitally signed message part Url : http://rubyforge.org/pipermail/make-cafe/attachments/20061027/7e3e88e2/attachment.bin From xavier-list at noreality.net Mon Oct 30 02:27:19 2006 From: xavier-list at noreality.net (Xavier Shay) Date: Mon, 30 Oct 2006 18:27:19 +1100 Subject: [Rant] Rant on Windows In-Reply-To: <1161950493.2501.635.camel@balin.russel.org.uk> References: <1161950493.2501.635.camel@balin.russel.org.uk> Message-ID: <4545A957.1040501@noreality.net> Russel Winder wrote: > However, there are no command.com batch files > in the Rant store, so there is no rant command available. Does this > imply that noone uses Rant on bare Windows? Or is it that there are > batch files out there that could usefully be in the Rant store? I'm using rant at work on windows. I will check what .cmd files I have tomorrow and ensure they're in the repository. Xavier From xavier.shay at advatel.com.au Mon Oct 30 16:42:49 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Tue, 31 Oct 2006 08:42:49 +1100 Subject: [Rant] Rant on Windows Message-ID: My rant.cmd contains the following: @ruby c:\ruby\bin\rant %* Will have to add it to the repository. Xavier PS The new mailing list is online (rant-cafe at rubyforge.org), so we can move off this one. > -----Original Message----- > From: make-cafe-bounces at rubyforge.org > [mailto:make-cafe-bounces at rubyforge.org] On Behalf Of Xavier Shay > Sent: Monday, 30 October 2006 6:27 PM > To: Rant discussion > Subject: Re: [Rant] Rant on Windows > > Russel Winder wrote: > > However, there are no command.com batch files in the Rant store, so > > there is no rant command available. Does this imply that noone uses > > Rant on bare Windows? Or is it that there are batch files > out there > > that could usefully be in the Rant store? > > I'm using rant at work on windows. I will check what .cmd > files I have tomorrow and ensure they're in the repository. > > Xavier > _______________________________________________ > make-cafe mailing list > make-cafe at rubyforge.org > http://rubyforge.org/mailman/listinfo/make-cafe > > From xavier.shay at advatel.com.au Mon Oct 30 16:55:07 2006 From: xavier.shay at advatel.com.au (Xavier Shay) Date: Tue, 31 Oct 2006 08:55:07 +1100 Subject: [Rant] Rant on Windows Message-ID: > > However, there are no command.com batch files in the Rant store, so > > there is no rant command available. Does this imply that noone uses > > Rant on bare Windows? Or is it that there are batch files > out there > > that could usefully be in the Rant store? > I'm using rant at work on windows. I will check what .cmd > files I have tomorrow and ensure they're in the repository. Forget that, "rant install" creates an appropriate .cmd file for you. Xavier