Development History
Versions of the Package

The first version, `GraphGpd` 1.001, formed part of Emma Moore's thesis in December 2000, but was not made generally available.

Version 1.002 of `GraphGpd` was prepared to run under &GAP; 4.4 in January 2004; was submitted to the &GAP; council to be considered as an accepted package; but suggestions from the referee were not followed up.

In April 2006 the manual was converted to `GAPDoc` format. Variables Star, Costar and CoveringGroup were found to conflict with usage in other packages, and were renamed VertexStar, VertexCostar and CoveringGroupOfGroupoid respectively. Similarly, the Vertices and Arcs of an FpWeightedDigraph were changed from attributes to record components.

In the spring of 2006 the package was extensively rewritten and renamed &gpd;. Version 1.01 was submitted as a deposited package in June 2006. Version 1.03, of October 2007, fixed some file protections, and introduced the test file gpd_manual.tst.
What needs to be done next?

Computationally, there are three types of connected groupoid: those with identical object groups, those with object groups conjugate in some supergroup, those with object groups which are simply isomorphic.

GraphGpd
attempted to implement the second case, while &gpd; 1.01 and 1.03 considered only the first case, and &gpd; 1.04 will extend 1.03 to the second case.

Here are some other immediate requirements: Automorphism group of a groupoid. normal subgroupoids and quotient groupoids; more methods for morphisms of groupoids, particularly when the range is not connected; ImageElm and ImagesSource for the cases of groupoid morphisms not yet covered; Enumerator for IsHomsetCosetsRep; free groupoid on a graph; methods for FreeProductWithAmalgamation and HnnEntension for pc-groups; convert GraphOfGroupsRewritingSystem to the category IsRewritingSystem; in `XMod`, implement crossed modules over groupoids.