]> git.donarmstrong.com Git - debbugs.git/commitdiff
- Indicate what message number a message is (closes: #462653,#454248)
authorDon Armstrong <don@donarmstrong.com>
Wed, 20 Feb 2008 08:21:59 +0000 (00:21 -0800)
committerDon Armstrong <don@donarmstrong.com>
Wed, 20 Feb 2008 08:21:59 +0000 (00:21 -0800)
  - Add the ability to return source/package mapping (closes: #465332)

Debbugs/Packages.pm
Debbugs/SOAP.pm
debian/changelog

index 39e5ed82ae246d5b2a274de3d3703571ed6c5b7b..30ca114c2007fdbaca719492c54ccb20a50ebcc8 100644 (file)
@@ -232,10 +232,10 @@ sub getversions {
 
 =head2 get_versions
 
-     get_version(package=>'foopkg',
-                 dist => 'unstable',
-                 arch => 'i386',
-                );
+     get_versions(package=>'foopkg',
+                  dist => 'unstable',
+                  arch => 'i386',
+                 );
 
 Returns a list of the versions of package in the distributions and
 architectures listed. This routine only returns unique values.
@@ -264,6 +264,10 @@ architectures are at which versions.
 
 =back
 
+When called in scalar context, this function will return hashrefs or
+arrayrefs as appropriate, in list context, it will return paired lists
+or unpaired lists as appropriate.
+
 =cut
 
 our %_versions;
@@ -340,13 +344,10 @@ sub get_versions{
               }
          }
      }
-     if ($param{time}) {
-         return %versions;
-     }
-     elsif ($param{return_archs}) {
-         return %versions;
+     if ($param{time} or $param{return_archs}) {
+         return wantarray?%versions :\%versions;
      }
-     return keys %versions;
+     return wantarray?keys %versions :[keys %versions];
 }
 
 
index e389906964da1d0462b58ef7bf8dab6d585c6a26..9aacda401adce4ba9b221702c5e6622f803bc551 100644 (file)
@@ -255,6 +255,89 @@ sub get_bug_log{
      return \@messages;
 }
 
+=head2 binary_to_source
+
+     binary_to_source($binary_name,$binary_version,$binary_architecture)
+
+Returns a reference to the source package name and version pair
+corresponding to a given binary package name, version, and
+architecture. If undef is passed as the architecture, returns a list
+of references to all possible pairs of source package names and
+versions for all architectures, with any duplicates removed.
+
+(This function corresponds to L<Debbugs::Packages::binarytosource>)
+
+=cut
+
+sub binary_to_source{
+     my $VERSION = __populate_version(pop);
+
+     return [binarytosource(@_)];
+}
+
+=head2 source_to_binary
+
+     source_to_binary($source_name,$source_version);
+
+Returns a reference to an array of references to binary package name,
+version, and architecture corresponding to a given source package name
+and version. In the case that the given name and version cannot be
+found, the unversioned package to source map is consulted, and the
+architecture is not returned.
+
+(This function corresponds to L<Debbugs::Packages::sourcetobinary>)
+
+=cut
+
+sub source_to_binary {
+     my $VERSION = __populate_version(pop);
+
+     return [source_to_binary(@_)];
+}
+
+=head2 get_versions
+
+     get_version(package=>'foopkg',
+                 dist => 'unstable',
+                 arch => 'i386',
+                );
+
+Returns a list of the versions of package in the distributions and
+architectures listed. This routine only returns unique values.
+
+=over
+
+=item package -- package to return list of versions
+
+=item dist -- distribution (unstable, stable, testing); can be an
+arrayref
+
+=item arch -- architecture (i386, source, ...); can be an arrayref
+
+=item time -- returns a version=>time hash at which the newest package
+matching this version was uploaded
+
+=item source -- returns source/version instead of just versions
+
+=item no_source_arch -- discards the source architecture when arch is
+not passed. [Used for finding the versions of binary packages only.]
+Defaults to 0, which does not discard the source architecture. (This
+may change in the future, so if you care, please code accordingly.)
+
+=item return_archs -- returns a version=>[archs] hash indicating which
+architectures are at which versions.
+
+=back
+
+This function correponds to L<Debbugs::Packages::get_versions>
+
+=cut
+
+sub get_versions{
+     my $VERSION = __populate_version(pop);
+
+     return scalar get_versions(@_);
+}
 
 =head1 VERSION COMPATIBILITY
 
index 4bf13da600bc18f89f9954a99b0b74f981ee004b..d6682aef0f9e7a4991948a9e3b18092d14a359f8 100644 (file)
@@ -205,11 +205,12 @@ debbugs (2.4.2) UNRELEASED; urgency=low
     - Make notfound/notfixed log verbiage more clear (closes: #434953)
     - Verify submitter is a valid email according to RFC822
       (closes: #182419)
-    - Indicate what message number a message is (closes: #462653)
+    - Indicate what message number a message is (closes: #462653,#454248)
     - Fix casing of versions (closes: #441022)
     - Output last-modified in bugreport.cgi (closes: #459709)
     - Fix various html syntax errors in pkgreport.cgi (closes: #462322)
     - Make search case insensitive (closes: #448861)
+    - Add the ability to return source/package mapping (closes: #465332)
 
   
  -- Colin Watson <cjwatson@debian.org>  Fri, 20 Jun 2003 18:57:25 +0100