[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Mingw-cross-env-list] new tool: patch-tool-mingw
From: |
Volker Grabsch |
Subject: |
Re: [Mingw-cross-env-list] new tool: patch-tool-mingw |
Date: |
Sat, 2 Oct 2010 01:32:11 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Mark Brand <address@hidden> schrieb:
> I have checked in a script to make it easy to convert between patch
> files and short-lived git repos. This version is newer than the one I
> already shared with some of you.
>
> http://hg.savannah.gnu.org/hgweb/mingw-cross-env/rev/5d51efc6e43a
>
> There's room for improvement, so feel free to criticize, improve,
> rename, etc.
I see fundamental design flaw in the tool, and in the idea of
having a bunch of shell scripts in a "tools/" folder.
1) We already have a convenient interface that covers lots of
small tools. This interface is "make [args]". Why inventing
another interface "sh tools/action [args]"?
2) Although not everyone likes GNU Make's macros, they at least
provide _some_ means of abstraction. Doing that in Bash is
almost impossible. So the choice of language is far from
optimal.
3) The main Makefile provides lots of helpers for the package
files (src/*.mk, src/*.patch, ...). Not using them means
having to parse those files "by hand", and this is what
quite a big part of your shell script does.
4) The script uses Git for no good reason. That is, it doesn't
use any of the advanced Git features. Everyone who uses the
development version of Mingw-cross-env already has Mercurial.
Why requiring them to install yet another tool for the same
job?
5) Separate shell scripts may automate some tasks, but still
require a quite cumbersome workflow. Why not thinking about
the workflow _first_? For instance, why not creating a mode /
command that does a normal build, and if one packages fails,
creates an ad-hoc repository automatically, filled with the
already exported patches? When calling "make" or "make PKG"
after that, the patches could be recreated from the repository
automatically before the build starts.
Greets,
Volker
--
Volker Grabsch
---<<(())>>---