some helper code:

x = {"PruneComplex", "CohomCalg", "Topcom", "ReflexivePolytopesDB", "AbstractToricVarieties", "TestIdeals", "AlgebraicSplines", "TriangularSets", "Chordal", "Tropical", "SymbolicPowers", "Complexes", "GroebnerWalk", "RandomMonomialIdeals", "Matroids", "NumericalImplicitization"}
y = for i in x list needsPackage i
getName = x -> (new OptionTable from x).Name
commaAnd = x -> concatenate (
     if #x > 2 then (between (", ", drop(x,1)), ", and ", x#-1)
     else between (" and ", x))
for i in y do (
     << ///	       	    LI { TO "///
	  << i
	  << ///::///
	  << i
	  << ///", ", a package by ///
          << commaAnd (for a in (options i).Authors list getName a)
	  << /// for ///
	  << (options i).Headline
	  << ///, has been added." },/// 
	  << endl
     )
