forked from pyrus/Pyrus
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
105 lines (68 loc) · 4.11 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
TODO:
Make default bin_dir for plugins inside the plugins_dir
[X] Add support for channel aliases to remote-list
[X] Add validation of packages to install against installed packages that depend on them,
and add this to pre-download dependency resolution
Add dependencies listing to info command
Enhance files list for installed packages to show full path
fix exception handler to not show trace unless verbose >= 5
fix error message if unknown channel is chosen
[X] fix error message if no releases within stability/dependencies to be MUCH clearer
[X] If a path is explicit to find Config, don't cascade include_path.
[X] Implement --optionaldeps
[X] Implement displaying of optional deps and dep groups not installed if --optionaldeps isn't specified,
by aggregating all of them and displaying all at once prior to install
[X] Implement custom validation support for role files
Implement deploy as a creation of a local copy of the remote repository that can be rsync/copied as the user
sees fit
[X] Implement Registry transactions, either based on database transactions (sqlite3) or on AtomicFileTransaction
(pear1, xml)
[X] Re-factor upgrade and install so the sequence is:
- begin registry transaction
- uninstall old packages [upgrade only]
- check for file conflicts in new packages
- begin file transaction
- install files for new packages
- install packages in registry
- commit file transaction
- commit registry transaction
- remove file backups
This will eliminate the need for subpackage deps completely and make it even safer to do an install
[X] Implement array access for registry so you can use isset($reg['pear.php.net/Validate']), or
$info = $reg['pear.php.net/Validate'];
[X] implement channel-specific config vars like user/password, add ability to do this in custom config vars
[X] Declare dependencies on PEAR2_HTTP_Request, PEAR2_Autoload, PEAR2_Exception - add to package.xml
[X] implement --packagingroot option
[X] Add doc.php.net as default channel
[idea works, relaxation successful here, but not at Brett's]
Package-2.0 and 2.1 xsd needs to be relaxed a bit to allow flexible ordering of elements.
Some ideas - change sequence to choice and enumerate the possible sequences within the choice,
this will make a very large xsd, but may work. Something we need to try out.
Try out the how the Pyrus_Config::locateLocalSettingsDirectory handles if a settings dir is changed
this will mostly be a test of what approach in COM will suit us best
[X] Sync OSGuess from pear to pyrus
Rewrite it ? [no]
[X] Update Sqlite3 to use the new exception mode, and to use bindValue() instead of bindParam()
[X] Implement subject/observer for Log
[X] Add log integration to scriptfrontend
[X] Move $options from PEAR2_Pyrus_Installer to PEAR2_Pyrus, move $downloadClass from all others to Pyrus
Add PEAR 1.x configuration parsing to Pear1 registry, in order to use these values for PEAR 1.x packages.
Decide how to handle the conflict, especially with php_dir being different, as it will be "php" for
all PEAR 1.x packages.
[X] Fully implement plugin system for custom roles, tasks and commands
plugin_dir config variable already exists, we need to create a plugin-specific
Sqlite3 registry, which extends the Sqlite3 registry and adds the plugin
tables, and then have a check at load-in for plugins to load as needed.
[X] Fully implement and test post-install scripts
[X] Implement PECL package install
Unlike PEAR, we will install PECL packages and implement these new commands:
build - compile the extension and install it (this is implicit with "install/upgrade")
[not needed] clean - equivalent to "make clean" which iterates over the source directory and cleans all
files not in package.xml
This will allow much easier debugging of broken pecl compiles
[X] Finish implementing remote channel REST iteration for maintainers/categories
[X] DOWNLOAD PROGRESS BAR IN PEAR2_HTTP_REQUEST!!!!
Interactive CLI frontend (menus, etc.)
Web frontend
Gtk2 frontend
[X] Move CLI frontend to better format