* Updated Italian translation
[pacman.git] / TODO.dan
blob57e59baaa07502382a801bf4d812fe0052bcfe4b
1 TODO.dan
2 ========
4 This is my personal TODO list. No guarantees if it is out of date and things no
5 longer apply. If you want to help out with any of it, send me an email.
7 Documentation- look into moving man page format to a more portable source
8 format to make translation easier to keep up-to-date (something like txt2tags,
9 docbook, asciidoc) This will need some research.
11 Port the libdownload (libfetch) manpage from BSD style to Linux style, or at
12 very least change references to BSD.
14 Pacman 3.1:
15 ===========
17 Updated cache cleaning functionality in pacman - keep installed version, choose
18 number to keep, etc. Good python script in the forums that we should try to
19 emulate, perhaps.
21 Downgrade feature - allow users to see cached packages and downgrade to
22 (previous or any?) available options.
24 Extreme similarity between some of the sync and add code...we have to be able
25 to abstract more away from sync actions and add actions to just 'actions'
26 (example: sync,c, add.c, and deptest.c all contain a switch on PM_DEP_MOD_*).
27 Merge update, add, and sync code when possible, so we reduce duplication.
29 Review progress /transaction event subsystem. (from TODO)
31 Add Doxygen comments to every function in libalpm including private functions.
32 Ensure functions are doing exactly their purpose and nothing more. Find
33 functions that perform duplicate behavior and merge them. Combine and refactor
34 others. Delete unnecessary functions. Stop keeping everything clustered in
35 little add/sync/remove parts, allow transactions to share code.
37 Go through options list. Decide if namings are good, all options are still
38 relevant, etc. Ideas for -Re (#6273), changing meaning of -c (has two meanings,
39 another FS bug), etc. Remove the -A flag and possibly -D, -T, and -Y (-Y is
40 killed now in favor of vercmp binary) if they can be done by other actions.
41 Possible switch of -U --> -I (#5571).
43 Rewrite _alpm_sortbydeps to use Topological Sort. Should work using a standard
44 topo sort algorithm, once the crazy types can be fixed up a bit. Include a
45 cycle check - print a big error message if this happens.
46   -- http://en.wikipedia.org/wiki/Topological_sort
47   -- http://everything2.com/?node_id=556079
49 Review display and logging functions. There seems to be an abundance of them.
50 Make it extensible to use color, review what verbose/debug means. Perhaps
51 separate logging functionality- Pacman has its normal log, and alpm backend
52 keeps a very simple log file - listing only adds (including syncs) and removes.
53 This way a consistency list can be kept of what is currently installed and what
54 isn't, without all the logging junk from the front end.
56 If we stick with autotools, add more defines to configure.in, including
57 CACHEDIR, PKGEXT, so these can be specified at configure time for ease of use
58 by other distributions which may want to change the defaults. Also, review what
59 needs to be in config.h and what does not. There may be excess #depends which
60 are hard coded into the sources. (from TODO.autoconf)
62 Profile the code. Find the functions that are being called a lot, and see what
63 can be done about it. Find out if all these calls are necessary (e.g. excessive
64 alpm_list_count calls), and maybe think about changing data structures to speed
65 operations up (e.g. a 'count' field). NOTE: already found two huge issues with
66 quick profiling- excessive setlocale calls, and extremely excessive strcmp
67 calls.
69 Localize the date display done in --info output. Also, fix other localized
70 issues- use non-printf when necessary, make sure all two line printed messages
71 (especially usage instructions) are printed using one print statement.
73 Other ideas:
74 ============
76 unsigned int vs. unsigned- determine a standard and stick with it
78 Possibly split utilities/extras from pacman package
80 Rewrite gensync/updatesync
82 FS #4185 - move where message is logged, perhaps?
84 ideas mentioned here- http://bbs.archlinux.org/viewtopic.php?id=29450- add a
85 .install message about mirrors, maybe comment whole file, encourage rankmirrors
86 usage
88 Update copyrights (2007)
90 Update pacman website, and add/finish pacman coding style page
92 Make .indent.pro file for GNU indent (started, but didn't finish)
94 Pacman 3 packaging - perhaps include pacman2.static in case something goes
95 terribly wrong, which I hope it won't
97 autogen.sh / autoclean.sh - these seem messy. Can we clean this up?
99 Refine makepkg error codes. Each kind of failure could have its own code:
100   --package already built
101   --failed integ checks
102   --failed build
103   --etc.
105 Add utility function to either frontend or backend to convert sizes: e.g. bytes
106 to KB, MB, GB.
108 Revamp the downloadprog function a bit. Seems kind of messy.
110 Add localized pkgdesc variables to makepkg.