[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