This page is to help organize or brainstorm ideas for future development. It's intended mostly for use by developers, but users are welcome to pitch in also. Think of this page as an ongoing blueprint for what tovid is becoming.
Please use the talk page for discussing the plans.
Are we lost?
During the last couple of years, development of tovid has become rather stagnant. This is mostly due to me (wapcaplet) being preoccupied with being a daddy, not having much motivation to maintain a bunch of shell scripts, and otherwise being distracted from the project. The user community has carried on admirably, but tovid is slowly slipping into the abyss of abandonware.
I don't want to see this happen, and I think tovid has potential to remain relevant and useful for many years to come. But I think we're going to have to face some hard choices about how to proceed.
Here are some of the flaws I perceive in the tovid codebase:
- Too many dependencies. It would be nice to have only a handful of solid, reliable programs to depend upon. We should keep the essential ones, and move away from those that don't contribute much value.
- Too many installed executables. This clutters up the /usr/*/bin folder and makes some distros not like us very much. Ideally, there would be only a single installed script (naturally called 'tovid') which would have commands to perform all the necessary functions.
- Too many (and too long) shell scripts. Shell scripts are not terribly well suited to the tasks at hand. They have their rightful place, but they should not be abused in the way that tovid abuses them. A proper general-purpose programming language like Python would be much better, and easier to maintain.
- Feature creep. There's a ginormous number of command-line options to tovid and todisc. We need to decide what should stay, and what we can do without.
We can't solve all the problems at once, but I have a plan for how to approach the next few releases:
- 0.32: It has been way over 2 years since the last release of tovid (0.31). The first item of business should be to put out a release, whether it works or not. We can follow up with another release that fixes any major bugs that are discovered.
- 0.33: Fix any major bugs that appear in 0.32.
- 0.34: Start phasing out or deprecating features that we don't plan to keep in future releases. Some candidates include (S)VCD functionality, and perhaps a few of the more obscure scripts such as tovid-interactive and postproc (some culling was already done in 0.32, including removal of the wx GUI and the merger of the main shell scripts into a single script and manual page). If possible, we should do some user polling to determine what features are seldom used. Cut back on dependencies.
- 0.35: Begin moving decisively toward Python-based alternatives to the existing shell scripts. Build on the unified frontend to gradually substitute the "id", "dvd", "menu", "mpg" and other commands with modular, library-style Pythonic versions instead of bash scripts.
- 0.36: The future is not set. There is no fate but what we make for ourselves.