>> With using puppet and i intend to start a fork of vmbuilder to unify all
>> these projects in making images of virtual machines. Since vmbuilder is
>> basically ubuntu only now with centos support floating about in github.
>> Boxgrinder is kind of gross to get setup because of ruby.

FYI, I'm most of the way through a proof-of-concept for a tool
(coincidentally - in Python) that supports the building of a certain VM in
multiple backends, with Boxgrinder and Kickstarter support right now, and
hopefully VMBuilder support without much difficulty. As I don't know much
about VMBuilder yet, would you perhaps want to collaborate on this? I'll be
posting a patch to BIGTOP-871 in a few days (the one that's there is
Boxgrinder-specific - I'm working on a much more modular approach).

Regarding the choice of language, I think I agree with both arguments so
far - might I suggest Jython? </onlyHalfJoking>. Groovy is already heavily
used within Bigtop, but it also requires more than just the JVM. I
personally prefer Python for these purposes - but I wouldn't strongly
object to anything - as long as it was a well-accepted standard so we don't
end up with a different language for every little project somebody
undertakes.



On Thu, Mar 28, 2013 at 8:04 AM, Philip Herron
<philip.her...@wandisco.com>wrote:

> On 27/03/13 15:37, Roman Shaposhnik wrote:
> > Hi Philip,
> >
> > first of all thanks a bunch for considering to lead with the code --
> that's
> > the best way to make progress. I have just started to look at your code
> > and haven finished reviewing it yet (in fact, I'd rather have somebody
> > on this list who appreciates Python doing that -- Steve?) but let me
> > quickly answer some of the points you've raised.
> >
> > My only metapoint here would be that since we're stuck with Java
> > because 90% of Bigtop components are implemented in it
> > and we've also chosen it as a platform for iTest -- any solution
> > that leverages Java tooling (Gradle, Groovy, etc) would get
> > more of my personal enthusiastic embrace than a solution
> > that introduces yet another platform to care about (Python,
> > Ruby, etc.).
>
> I understand your point here but i think python suits this project much
> better than a jvm based language because of the dependency of the jvm to
> me isn't scripting. Python gets by this because its much simpler and
> installed even in minimal environments of linux by default. And suits
> this work very well.
>
> At the moment we care about:
>
> Make/Bash/java/puppet/ruby/kickstart/ From all i can see at the moment,
> With python we can unify all of bigtop's functionality properly.
>
> With using puppet and i intend to start a fork of vmbuilder to unify all
> these projects in making images of virtual machines. Since vmbuilder is
> basically ubuntu only now with centos support floating about in github.
> Boxgrinder is kind of gross to get setup because of ruby.
>
> >
> > On Wed, Mar 27, 2013 at 6:54 AM, Philip Herron
> > <philip.her...@wandisco.com> wrote:
> >> 1 - Bigtop's logic is handled within gnu/make and bash which is
> >> detrimental for the long term maintainability of bigtop as it may turn
> >> away developers.
> >>
> >> 2 - Make is hard to debug in this way esp for the need of \ for line
> run-on.
> >
> > Could you, please, elaborate on what exact problem you were faced
> > with when you decided that Python is a better option than Make?
> > We all have preferences (for example mine is, honestly, make over
> > python) but of course if the current tooling is inadequate in some
> > respect it needs to be updated.
>
> Yeah I understand you like make i don't mind it but it doesn't have any
> real long term potential. Because i tend to think most people from java
> backgrounds will have next to no background with make. I come from a gcc
> developer/commiter background so i am used to it. But even then this
> isn't a valid use of make in my opinion and i am sure gnu/make
> developers would agree this isn't how make should be used.
>
> Take for example, the next latest and greatest component wants to be a
> *.{zip,tar.xz.tar.bz2,.xz,*.7z} this is a basic example but its still
> valid having the dynamic support for different archives how would we do
> this in python we could figure this out. In Bash were going to have to
> have more hooks and more obscure bash to do something like that.
>
> >
> >> 3 - This new directory structure feels more maintainable already with
> >> bigtop's main function to generate packages for hadoop stack's on
> >> different platforms. Other functions which (don't seem) to be actively
> >> maintained like bigtop-deploy and the test framework with regards to
> >> their documentation.
> >
> > Here's my very strong take on it -- without deployment and test Bigtop
> > might as well pack its stuff and go home. If we're reduced to a
> "framework
> > that builds packages" there's very little left in the project to keep me
> > interested in it.
>
> Deployment and test can still be done and there are 100% important i
> think if i come back with a more complete bigtop with these components
> my fork might be taken more seriously.
>
> >
> > We *all* should be investing pretty heavily in both. In fact, I hoped
> > to make Bigtop 0.6.0 about polishing our tests and deployment
> > code, but Hadoop 2.0.3 story changed that. Hopefully Bigtop 0.7.0
> > will be a release where we really do invest a lot of energy in
> > making both squeaky clean.
> >
>
> I understand this, it will be nice to see them.
>
> >> 5 - The bigtop.mk BOM file was difficult to read and find errors with
> >> eval and ?= as well as having archives set in Makefile and package.mk
> >> doing a lot of tricky bash to get things going.
> >
> > Could you, please elaborate? What exactly made it difficult? It is,
> > essentially, a bunch of key-value pairs (with $substitutions).
>
> Yes its key value you pairs but its horrible to read. Coupled with a
> $eval at the end of each component. I dunno this is a glorified config
> file and i tend to be very pragmatic about this and think this isn't
> what it should look like.
>
> >
> >> One thing to note is this isn't any extra dependency as this is just
> >> stock python code no need for pip install or easy_install of modules.
> >> And almost all distro's of linux/unix come with python so i think its
> fine.
> >
> > That's my biggest worry -- I had *terrible* luck with Python breaking
> > between different Linux distributions.
> >
> > Thanks,
> > Roman.
> >
>
> I understand your worry there, this code is pure python no extra depends
> for now. So that's good and if i get rid of my with usage i can make it
> python >= 2.4 and this is eliminate this worry dead.
>
> Java is by far worse for this problem. example:
> gcj/eclipse/openjdk/oracle...{5,6,7,8}?
>
> And how do you get a standard java version on each linux distro?
>
> I will come back with a more solid implementation with deployment and
> testing.
>
> --Phil
>

Reply via email to