The Roadmap
-----------

This is a list of the changes that I would like to have made in the upcoming
versions, as of 2012-04-29. Unfortunately I can't give a good timeframe:

- Further modularization. This is to support enhancing the test suite by having
  clear boundaries between components and better-defined requirements for
  integration of those components.

- Make the changes necessary to build Qt 5.

- Reduced duplication. Remove support for "built-in" modules entirely, instead
  fallback to a kdesrc-buildrc hosted on KDE's git infrastructure if the user
  doesn't define one. The kdesrc-buildrc-setup should be able to use this
  fallback kdesrc-buildrc as well when offering options.

- Better documentation. Even if this means having a Markdown-to-DocBook
  converter, it would be much nicer to have documentation that was at least
  semi-consistent with the current state of building KDE software.

- Generate `.xsession`/`.bashrc`/`.bash_profile` entries. i.e. make it possible
  for the environment variables needed to _run_ the installed KDE software be
  automatically setup by kdesrc-build, either by generating the appropriate rc
  files or by using kdesrc-build as a trampoline (e.g. kdesrc-build --launch
  startkde)

- Test suite. Should be self-explanatory but the test suite can be far better
  than it is now. Probably should go Perl-style and split the large
  kdesrc-build-test.pl into a t/*.pl containing unit tests and whatever
  integration tests can be cooked up.  But then again, it's not like we're
  launching astronauts into space, so don't go overboard.

- Improved output. The current output, even in --verbose, is very noisy.
  Instead a "dashboard" approach would be better (for ncurses). It would be
  nice to support GUI output if a GUI is available but it should remain
  optional to support headless installs.

- "Network install". Right now kdesrc-build is a single-script install that
  tries to rely only on Perl 5.10 core modules + LWP. Instead the single script
  should be a shell that downloads Perl modules of kdesrc-build as needed from
  anongit.  We would need to investigate how to ensure this is
  cryptographically safe for users, or if this is already assured by the git
  SCM.

- Use CPAN. Although I've been trying to keep kdesrc-build a kind of
  hyper-documented Perl, this hasn't helped a great deal with code
  contribution. It would be nice to be able to use some CPAN modules but I
  don't want to require they be installed beforehand. Having a way to download
  from CPAN automatically and save to the kdesrc-build working directories
  would solve this but again would need to look into how to mark whether a
  given CPAN module has been tested by the KDE developers...

- System reporting tool for reporting bugs. Possibly even using XML-RPC to post bug
  to bugs.kde.org automatically (or at least launch the wizard right).

- A distro-specific "auto packager" script. I.e. some way to say "install the
  base dependencies that are expected to be provided by the system" and have it
  kept up-to-date by volunteers using each distro (not that I'd hold my breath,
  but it has to be better than what we have now)

- Continue porting code to standard Perl modules. Probably the biggest "problem
  child" to go next would be the process_arguments subroutine which really
  needs to be handled by a Getopt-alike.
