[fpc-devel] FPCUnit as a separate project from FPC?

Joost van der Sluis joost at cnoc.nl
Tue May 22 12:55:00 CEST 2007

On Tue, 2007-05-22 at 12:29 +0200, Graeme Geldenhuys wrote:
> Darius Blaszijk, Vincent Snijders and myself had a discussion off the
> mailing list about the possibility of moving FPCUnit out of FPC as a
> separate project.  I thought it to be important that we get the
> opinions of others as well.
> In summary:
>   Darius is all for it.
>   Vincent is against it.
>   I'm on the wire, but leaning towards the move.  :-)

I think that most fpc-core developers aggree with Vincent. (On exactly
the same reasons, but I could be wrong)

> Some points that where raised in our discussion (please add more if I
> left some out):
> * As it stands now, FPCUnit is split between two repositories. The FPC
> one and the Lazarus one. This make it really hard to submit updates.
> The FPC one must be done first otherwise it breaks the Lazarus GUI
> TestRunner (or Console TestRunner).

This is the same for all of the LCL. Clearest example is maybe the DB-
components. But it holds for all of the LCL, which depends on the FCL
and RTL. The LCL is full of version-checks to avoid problems with
different fpc-releases.

Second there's no problem if FPCUnit is broken in svn. Those are
_development_ versions. If people have problems with them, because they
do not update enough (fpc or lazarus), that's their problem.

> * FPC versions are a issue as the release cycles is very different for
> the FPC and Lazarus projects. Apparently the FPCUnit is broken in the
> previous release of Lazarus, due to this.

Which holds dor the complete LCL. That's why there are ifdefs all over
the place, see above.

> * Vincent likes the idea of the testing framework being part of FPC.
> One simple checkout. I think this point is moot because SubVersion
> support Externals Definitions for exactly this purpose and I think
> will actually work better than the current setup. We can link FPCUnit
> to FPC as an external link - and even link it to a specific revision
> of FPCUnit to always guarantee it pulls in a stable version of FPCUnit
> for use in FPC's test cases.

You don't want to pull in any LCL-dependencies to test the FCL or other
fpc-things. So you still need to keep them separate.
Besides, I see the graphical-features of fpcunit as a nice add-on, but I
don't use them. You can use FPCUnit as it's provided by fpc, without the
tools in Lazarus. I think there are a lot of ppl who actually do that.
(Just like you can use the db-unit without the db-components from

> * FPCUnit could move to the same repository as the other 3rdParty FPC
> tools like LNet. I can't remember the exact SubVersion URL now.  It
> will still be close to FPC, just not live in the same repository.

What will become a real maintenance-nightmare, is if we split everything
up in it's own repository. Release-management is an horror already as it
is now...

And while this looks developer-friendly at start, it's user-unfriendly:
'Ah, you want to use Lazarus! Great, first you have to download+install
fpc, and thereafter Lazarus. But if you want to use DB-controls, install
the DB-controls from svn-XXX. If you need tests, install the FPCUnit-
package, which you can find here ... . etc. etc. Maybe the new
packaging-system can help here, though....


More information about the fpc-devel mailing list