[Debtags-commits] [svn] r1092 - branches/bigmerge/debtags

Enrico Zini enrico at costa.debian.org
Fri Aug 5 15:24:17 UTC 2005


Author: enrico
Date: Fri Aug  5 15:24:16 2005
New Revision: 1092

Removed:
   branches/bigmerge/debtags/README.libdebtags
Modified:
   branches/bigmerge/debtags/DONE
   branches/bigmerge/debtags/README
Log:
Merged READMEs

Modified: branches/bigmerge/debtags/DONE
==============================================================================
--- branches/bigmerge/debtags/DONE	(original)
+++ branches/bigmerge/debtags/DONE	Fri Aug  5 15:24:16 2005
@@ -5,6 +5,13 @@
 
 *** Done in the old debtags package
 
+ * Done in version 1.2
+
+ + Added 'search' option
+ + Updated manpage
+ + Perfected debian postinst handling
+
+
  * Done in version 1.0
 
  + Implemented 'facetcoll' function
@@ -172,6 +179,48 @@
 
 *** Done in the old libdebtags1 package
 
+ * Done in version 1.0.7
+
+ + Don't read /usr/share/debtags/vocabulary on update: after a restructuring,
+   it might bring in obsolete tags.  That file can best be used as copied in the
+   APT download cache before debtags update on postinst.
+ + Do the download in /var/cache/debtags/partial instead of libapt's default
+ + Simplified downloader code
+ 
+
+ * Done in version 1.0.5
+
+ + Transition to gcc4
+
+ 
+ * Done in version 1.0.5
+
+ + Removed some segfault in Debtags::Package operations
+ 
+ 
+ * Done in version 1.0.3
+
+ + Remove Environment.{h,cc}
+ + Remove Maintainer.{h,cc}
+ + Generalise everything on the package type, allowing to use both a string and
+	a Package
+ + PackageDB returns a pkgSection with pointers to some memory that gets
+	deallocated at the end of the called function; the whole thing now works
+	just because that memory is only copied inside a Package, and very fast
+ + Possible implementation for Package (and Tag and Facet): keep only the full
+	data record and a pkgTagSection to access it
+
+ * Done in version 1.0.1
+
+ + Added DebtagsTODO and DebtagsFilters
+
+
+ * Done in version 1.0
+ 
+ + Package name change
+    ! API change
+ + Introduced simplified interface in new class Debtags
+ + Environment can now output packages to a TagcollConsumer
  * Done in version 1.0.1
 
  + Added DebtagsTODO and DebtagsFilters

Modified: branches/bigmerge/debtags/README
==============================================================================
--- branches/bigmerge/debtags/README	(original)
+++ branches/bigmerge/debtags/README	Fri Aug  5 15:24:16 2005
@@ -4,6 +4,25 @@
 Functionality
 -------------
 
+The library finally builds some API documentation using doxygen.  Not much of
+the source code has useful comments yets, but since doxygen support is in
+place, this situation is going to improve rapidly.
+
+Usage examples of libdebtags can be found in the tests, in the source of the
+``debtags`` tool and in the documentation.  More code using libdebtags1 can be
+found in ``debtags-edit``.
+
+The ``debtags`` tool is especially suited as an example because most of its
+complexity resides in the library itself and it uses it in a very
+straightforward way.
+
+I'd still like to discuss design issues with interested people, and until when
+the library will be used by a wider range of applications and will prove to be
+sound enough for general use, the API is subject to changes.
+
+Please get in touch with me if you start using libdebtags in some projects:
+I would like to involve library users in design discussions and API changes.
+
 debtags is the commandline maintenance and query tool for Debtags.  It can be
 used to download up-to-date tag database and vocabulary, to query them, to edit
 the categorization and to submit the changes to the central repository.
@@ -12,8 +31,8 @@
 What is in this release
 -----------------------
 
-debtags has been ported to libdebtags1 1.0.3 and most uses of Package have been
-replaced with uses of std::string, with a noticeable performance increse.
+debtags and libdebtags1 have been merged in a single source package to make
+maintainance easier.
 
 
 Compiling from the subversion repository
@@ -68,9 +87,12 @@
 
 Development will now proceed by:
 
- * Keeping pace with libdebtags1 development, to keep having an up-to-date
-   front-end to the library functions
- * Providing more and improvement statistics
+ * Slowly getting rid of the Package class, which should be handled by better
+   libraries such as libapt-front
+ * Making the library more generic, with more use of templates
+ * Trying to find better data structure and algorithms to improve the
+   efficiency of the various features provided by libdebtags1
+ * Implementing more and improved statistics in ``debtags``
 
 
 TODO-list items completed so far
@@ -78,10 +100,8 @@
 
 These are the TODO-list items completed so far::
 
---- Done in 1.2
- + Added 'search' option
- + Updated manpage
- + Perfected debian postinst handling
+ + Merged debtags and libdebtags1 source packages
+   Big thanks to Benjamin Mesing for doing a good deal of the work.
 
 (older completed items are archived in the DONE file)
 
@@ -92,6 +112,41 @@
 
 These are the TODO-list items currently being worked on::
 
+ - Use pkgIterator instead of the buffer, to see if it stops segfaulting
+ 
+ - Allow to have ~/.debtags/vocabulary merged in
+ 
+ - Try to get rid of the Singleton Environment
+
+ - Remove throw declarations altogether except when the function obviously
+	isn't throwing and won't be throwing anything.
+
+ - perl bindings crash at shutdown: it looks like #186104: check what it was,
+	and check how it has been corrected
+	 - Does not seem to be the case:
+	   TDBReadonlyDiskIndex's destructor reports garbage in the size of
+		newItems, even if nothing has been ending up on it (that is,
+		~/.debtags/patch has been moved aside).
+
+ - Remove all PackageDB-related functions: libapt-front should be used for
+	that.  PackageDB itself probably needs to stay for the APTFilter in Update.
+
+ - Impossible now to detect out-of-space errors because TagcollSerializer isn't
+	checking the return code of fprintf (changing it would break libtagcoll
+	binary compatibility)
+	(fixed in libtagcoll, should handle it appropriately in libdebtags)
+
+ - Sending mail to central database aborts if the mailserver fails
+
+ - See if mor standard c++ features can be used
+
+   use of functors (``operator()``)
+
+   The Debtags::Matcher is a good candidate for this one, having the same
+   implementation like the match function. With this the code in
+   TagSet::getFiltered could be implemented using a the copy_if() algorithm.
+   Uhh... the above is hard to read. I mean the operator() could be added to
+   the Debtags::Matcher() - where it could be used in std algorithms.
  - todoreport should mention that the number of packages has been limited
 
  - specials: given a facet A, for all other facets Bn generate a list of
@@ -139,6 +194,24 @@
 
 These are the TODO-list items that are to be addressed in the future::
 
+ - Try wrapping with http://www.boost.org/libs/python/doc/index.html
+
+ - Make a small LRU cache of Facets and Tags in Vocabulary, so that some
+	TagImpl and FacetImpl are reused
+
+ - Update doesn't really merge different tag sources
+   (need more info) (seems to work for me: where does this come from?)
+
+ - Implement failover strategies in case the vocabulary (or other files) are
+	not present
+
+ - Create new tags / facets
+ - Save a vocabulary patch
+
+ - Make a more efficient collection container than InputMerger for the
+	operations performed by libdebtags
+
+ - port foundation libraries to libboost when possible
  - Merging different tag sources
     - Scenario: I want to edit tags when I have multiple tag sources, submitting
       appropriate, separate tag patches to the tag sources which are in charge of
@@ -215,6 +288,41 @@
    non-free.  Don't show the application, instead.
    [chlunde is working on it]
    (old note, fixed since long time on debtags-edit)
+ = Consider implementing version information in Package, allowing more
+	Package-s with the same name but with different versions in PackageGroups
+	(can do by changing Package's comparison operators)
+	 - Consider then doing dependency computations, like
+	   PackageGroup PackageGroup::getDepends();
+	   PackageGroup PackageGroup::getRecommends();
+	   PackageGroup PackageGroup::getSuggests();
+	   PackageGroup PackageGroup::getConflicts();
+		...
+ = Allow more flexibility in Package representations
+	 - Make PackageImpl somehow more public, so that people can subclass it and
+		write Package-like classes with more informations (as you can't subclass
+		Package, being it a smart pointer)
+	 - Make PackageSet a template, to which you can pass Package or something else
+	 - Rename Package into BasicPackage
+	 - Make a Package virtual interface
+
+ = Bring in dependency info from synaptic (rpackage.h)
+   Subversion: https://oops.kerneljanitors.org/repos/synaptic/trunk
+	PackageSet Package::getDepends()
+	PackageSet Package::getSuggests()
+	PackageSet Package::getRecommends()
+	PackageSet PackageSet::getDepends()
+	PackageSet PackageSet::getSuggests()
+	PackageSet PackageSet::getRecommends()
+	(no: leave that to libapt-front)
+ = Environment: accept the filter as const
+ = Implement filters, searches and consumers also for MaintainerSet
+ = Find out how to efficiently search a std::set<Package> given the package
+	name, though: #include<algorithm> could come useful, hopefully, as it would
+	come useful to see what operators are supported by the set iterator (it
+	would be wonderful if it had tree operations...)
+ = See how it is possible to be a base for libcapture
+ = Integrate Maintainer info with Echelon data (from Debian LDAP database)
+ = Do popcon researches as well
 
 (older discarded items are archived in the DONE file)
 



More information about the Debtags-commits mailing list