Version française
Home     About     Download     Resources     Contact us    
Browse thread
The OCaml Community (aka back from the Developer Days)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Sylvain Le Gall <sylvain@l...>
Subject: Re: The OCaml Community (aka back from the Developer Days)
On 29-01-2008, Markus Mottl <markus.mottl@gmail.com> wrote:
> However, the other roles are much worse off.  It seems one design
> decision of Godi was to separate software developers and package
> maintainers.  In practice, however, package maintainers are usually
> also the developers, and they are most often also package users.  If I
> want to roll out and work with an updated Godi-package, I have to jump
> through several hoops before I can do so: upload my updated tarball to
> my webserver, update the package metadata in the Godi SVN-repository,
> point my browser to the Godi website to update the Godi distribution,
> go to my local Godi-installation, update and recompile the package,
> and finally, when I try to use it, I may find out that I had made a
> mistake somewhere and have to start all over.  The build system used
> by Godi, which is based on NetBSD's package management, is arcane to
> say the least.  I still don't quite understand how to e.g. correctly
> make packages check for C-library dependencies, etc.

I do think separation between software developers and package
maintainers are a good point. Because, if you consider that there is a
lot of distribution (talking about Linux), you will also have a lot of
different ways to do package. If you are the developper and the package
maintainer, most of the time pieces of information are only available
in the packaging metadata, because it will allow you to build as you do
in Debian/Fedora/Suse... Unfortunately, this kind of information will
automatically be missing for other distribution.

The best software developper can do about this is to provide a way to
build their package the best they can (and accept patches from
packagers). Then it would be easy to package for every distribution.

>
> As a software developer and package maintainer, I'd ideally like to be
> able to work on a source tree containing the complete code of all
> packages (and their dependencies), make changes wherever I want (fix
> bugs, add features, add new libraries, etc.), share patches or full
> versions with other maintainers, and all of this with a minimum amount
> of overhead.  Since Godi only tracks dependencies between packages, it
> is not possible to just update code and let the build system figure
> out what needs to be recompiled.  One needs to build new packages
> instead, which is way too much effort.  As installation administrator
> I'd like to be able to use a straightforward user interface and easily
> add 3rd party libraries without having to manually make sure that
> dependencies are not violated.
>

I think you have a good point of improvement here, that should not be
too complicated:
* make GODI use a directory containing uncompressed software
* prevents using a particular VCS (just consider GODI package as
 metadata)
* allow GODI to track fine changes into packages

The last point is probably the most complicated one, since we are not
yet able to do it in Debian. But i really think that this is feasable.

Using uncompressed software + GODI metadata should allow you to have a
full source tree uncompressed on your local computer. This should, maybe,
solve some of your issues.

> It is still a point of discussion at our company how to replace Godi,
> and also how we could find a solution that would integrate well with
> the OCaml-community.  We have developed a fair amount of
> infrastructure to improve our team productivity (we have around 20
> full time developers now working in three different locations) by
> lowering turnaround times associated with code changes.  The use of
> distributed version control, compile daemons and omake has made it
> very easy for us to share code that is guaranteed to compile and
> allows making modifications quickly with a minimum amount of time
> required for recompilations.
>

It would be a pity. GODI is the most advanced PM for OCaml. Contributing
to its development is something that can leverage a lot of things. I
think this should shorten the delay of creating 

> It seems likely that focusing on a high degree of standardization
> around the usage of software development tools (which version control
> to use, how to guarantee compilability, what build tools to use,
> standards enforcing easy combination and modularity of build
> processes) would lower development barriers and thus boost the
> productivity of the OCaml community.  But it seems rather unlikely to
> most of us that Godi will be a suitable foundation for moving forward.
>  We greatly appreciate Gerd's tireless efforts to contribute tools
> like Godi, which is a lot of hard work that nobody else wanted to do
> before.  We have certainly benefited from it in the past and hope that
> a new approach will alleviate the problems that Godi-developers often
> run into.
>

Talking about standardization around the usage of software development
tools will just lead to a boost of FLAMEWARE productivity. There is no
best way to do things. We should just accept any proposition and try to
make things work in most case. Believing that everybody will accept to
use the same way of developping software, is just a dream (but you are
allowed to dream).

Regards,
Sylvain Le Gall