On Wed, Apr 15, 2009 at 3:28 PM, Vincent Siveton
<[email protected]>wrote:

> 2009/4/15 Chris Chabot <[email protected]>:
> >> I spoke yesterday with Chris about the make-release.sh: this script
> >> won't work on my ubuntu box :(
> >
> >
> > Vincent I thought the fix was simple enough:
>
> Yes yes the fix was working perfectly :)
>
> > Saying that "it won't work on ubuntu" is a slight over-exaggeration in my
> > opinion :)
>
> Sorry if I offend you, my point was that the out-of-box script needs
> to be changed depending the platform used for the compilation.
>

No worries, no offense of any kind is involved! I'm merely trying to say
that a sh shell is by far more pervasive then a java & maven combo, perhaps
I should've framed that differently :)

The problem is that 'bash' isn't defined by the FHS (Filesystem Hierarchy
Standard) on linux, the solution is to, instead of depending on a fixed path
(#!/bin/bash), I should either a) change it to #!`which bash`, which will
expand to the location of bash, or b) change the script to use #!/bin/sh,
which is present on pretty much any *nix platform we care about (*bsd,
linux, mac, solaris, etc); So I'm likely to pick option b here.

However sh will be installed on pretty much anywhere (except for win, who'd
have to install cygwin) and the same can't be said for java and maven, which
won't be present on most of the boxes that will be running php-shindig....
after all, if they had a complete java stack and maven installed that would
imply their likely a java shop and they would thus more likely be using
java-shindig :)


> > (i did make a mental note I should probably use /bin/sh though since
> > according to the FHS that should always be available, but i'll have to
> > validate that the script works the same on sh first before i can switch
> that
> > over)
> >
> > Using Maven will be more platform independent, but Chris underlines me
> >> that the Maven assembly generates a different layout than the
> >> make-release.sh.
> >> So I modified the Maven files in r765148 to be align with this script.
> >>
> >> @Chris, could you review the generated and confirm that it is the wanted
> >> layout?
> >>
> >
> >
> > I also commented that I think this is a "When you have a hammer,
> everything
> > looks like a nail" type of solution.
> >
> > Most people who use PHP probably won't have a lot of java and maven
> > knowledge, and are even likely not to even have a working java binary
> > installed, let alone feeling like installing maven and downloading many
> Mb's
> > of dependencies and we really shouldn't force that down people's throats,
> > not if those tens of megabytes, and different-environment dependencies
> are
> > just to solve something that can also be done with 20 lines of shell
> script.
> > That just sounds like a solution looking for a problem :)
> >
> > Keep in mind that this script could be used to create a
> release-type-layout
> > of the directory structure and configuration files by anyone who uses
> > php-shindig, so the usage of it is far wider then just once to generate a
> > release tarbal, as such the whole java / mvn dep could only be worth it
> from
> > a php perspective if it offered significant benefits over shell script
> (or
> > even php based) one..
>
> I guess only Shindig devs could use this script to make a release and
> (I hope) everybody here has a minimum knowledge of java/maven :)
> If someone want to make a fork of PHP Shindig, he will probably create
> its own script to make its release.
>
> The script file works perfectly but it is platform dependent which is
> IMHO bad.


I can't agree with that argumentation. the sh shell is part of *every* unix
like instalation, where as maven is something people will have to download
the correct latest version of and install by hand; The statement that a
shell script using sh is platform dependent goes against decades of history
(sh has been a standard part and default shell of most unix systems since
it's inception in 1977)

The only thing that somehow gave you that impression is that ubuntu (and
probably debian too by extend) have their bash shell in the /usr/bin dir,
and not in /bin... thats the *only* thing, and that can very easily be fixed
by using either `which bash` or using sh instead of bash.

The nice thing of having a standard script is that if some OSS project
includes php-shindig (which quite a few do already), they can use that
standard script to wrangle the svn checkout to a standard layout that they
can include (and without the whole java tree). Depending on java + maven is
as un-natural to them as using a PHP tool for java packaging would be :)



> We need 2 release managers to create artifacts, and I dont
> think it is the way to go.
> If Maven is too bigger, WDYT to use ant? It will be easy to integrate
> it in the release process.


I think the whole premise of using a java packaging tool for php is akin to
the hammer -> nail analogy... I see no problems with a release manager
running one shell script to create the php-shindig tar&zip archives, and I
think most everybody here would be comfortable with that, right?


> Do we want to centralize build under Maven, for all languages
> supported and for making release?
>

Pros:
1) Unified release procedure for both languages
(I'm not including 'platform independence here, since to me introducing
java+maven deps into the php world is a much bigger restriction then
depending on the sh shell)

Cons:
1) Unmaintainable by the php dev's
2) Un-usable for 3rd party projects who don't have java/maven/etc but want
to do svn snapshots
3) Using an overly complex solution for something that has a simple solution
available already

So far based on the above +/- list my preference so far is to use the shell
script

Reply via email to