TODO list for dput-ng
=====================

Important issues
================

Allow sane --force behavior for DM permissions if the key isn't in the ring
for some reason.

end important issues
====================


prime hacks neededing to be done

  $ grep -E "(TODO|XXX)" . -r

09:18 < daemonkeeper> If you're bored crossing the continent I think having a
                      critic look at checkers is more worthwhile. at least my
                      todos with checkers are a major construction site. We've
                      a stub file in there which either needs refactoring or a
                      removal, a broken checker, and a checker which only
                      exists as a quotation by me.


 [22:18] <daemonkeeper> Oh, I know another feature I want. for -2 upload,
                        I want # to check whether the orig checksum matches
                        the -1 upload.

dirt
----

  borked, needs user-facing cleanup (args, switches, etc, very confusing tool)

  implement me properly

  dput-config ftp-master --global --enable-checker 'gpg'
  dput-config localhost --local --enable-processor 'tweet'
  dput-config ftp-master --get fqdn
  dput-config ftp-master --blame


dput-bugreport
--------------

  implement me.

  dump all stuff we need to properly grok issues. dump targets, last run
  information, full blame, etc. Hook it up with debbugs and ubuntu's voodoo.

bin/dput
--------

  - implement --force switch (bypass all checker, ignore .upload file?)

config loader
-------------

* make sure schema, scripts and other non-configs won't be attempted to be
  loaded :)

* Make it possible to pass dcut commands our profile. That's a bit of a tricky
  situation, see the comment in dput/command.py for details. Once that's done
  refactor the command classes which currently load the profile in their
  validate() methods.

* **MARK** Implement something similar to dput meta profiles for dcut. We need a dcut
  "profile" which enableѕ or disables the command registries of actual dcut
  sub-commands at runtime, depending on a configurable key. Then we could define
  sub-commands which should (not) be enabled by default.

tests/*
-------

  - get 80% coverage
  - test ftp / sftp w/mockers (pyftpdlib)

uploader
--------

  - A progress bar

feature requests
----------------

  - real upload progress
     (also ensure local buffer checks for ftp don't throw it off)
  - ftp control connections die without a keepalive, ensure that's right
  - check for ppa for uploads to !(ppa)
  - upload to more then one ppa
  - sftp upload bar

processors
----------

  - implement the dinstall switch as a processor (possibly!)

dput-info
---------

  - Implement various switches (/-p/-v/-V) (from dput originally)

schema validation
-----------------

   - make fqdn a required key again, once we can ignore schema validation for
     DEFAULT.json

Paul's Wishlist
---------------

Python 3.x support.
