This repository has been archived by the owner on Aug 23, 2022. It is now read-only.
forked from Zaryob/inary
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ROADMAP.OLD
282 lines (272 loc) · 9.42 KB
/
ROADMAP.OLD
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
Inary TODO List
==============
A list of tasks to accomplish, organized into priority sections. This wasn't deleted because
i want to continue pisi project but now inary evolved a new package manager. its time to
change RoadMap.
Legend:
- Todo
? Not determined if/how we have to do
/ In progress
+ Accomplished
1. Pre-Alpha
+ reading spec file
+ writing
+ files
+ metadata
+ Actions API framework
+ sample api modules (example: autotools)
+ C Language Tools
- GoLang Tools
+ Python Language Tools
+ Ruby Language Tools
- Use gem agent
+ Perl Language Tools
+ CMake Tools
+ unit test
+ source building
+ Detailed build log file
+ package module
+ extraction
+ add file / compression
+ package creation
+ install database
+ package database
+ command line interface
+ inary-build
+ inary-install
+ inary-index
+ inary-updatedb
+ single repository index
+ simple dependency checking
+ Package/Files
+ Detailed inary logs into /var/log
2. Alpha
+ multi-package dependency analysis (eray)
+ design a package operation planner
+ install/remove operations (eray)
+ command line interface:
+ inary remove
+ svn-like CLI
+ configuration file
+ define the format of the configuration file
+ extend Config module (config.py) accordingly
+ define configuration keys (baris - meren)
+ query
+ list of installed packages (eray)
+ refactor actionsAPI (caglar)
+ fix xml indentation (meren)
+ define file types (doc, executable, conf, etc...) (baris - meren)
+ write specfile (eray)
+ file locking for database access [not tested!] (eray)
+ implement file uri
+ extend the modules dealing with files accordingly
+ ui module improvements
+ methods for interaction (yes, no questions, etc.)
+ implement source database (eray)
+ easy package preparation
? convert ebuild to inary
\ convert deb packages to inary
\ convert rpm packages to inary
+ Configuring system interface after installing
+ what do we need to specify in a package
+ package install: register script and configure system with it
+ package remove: unregister script and reconfigure systen with it (Zaryoh)
+ internet installation
+ support URI's whereever a filename is supported
+ http server
+ https server
+ ftp server
+ inary updatedb over internet
3. Beta
+ build cmd: install build deps
+ improve url support, it's a little dumb at the moment
+ devise a File class that works with URLs
+ add URL support to autoxml
+ info cmd: reverse dependencies of a package
+ a helper script for finding dependencies (eray)
+ autoxml: automated xml processing (eray)
+ design
+ basic types
+ list type
+ class type
+ localtext/text types (localtext.... Ummm?.... )
+ write meaningful localtext datas
+ return meaningful localtext summaries and descriptions
+ revised interface
+ Error handling
+ improved error handling, check routines, hooks, format/print routines
+ write a meaningful traceback output
+ xmlfile support (read/write)
+ string member, in addition to tag/attribute members
+ replace specfile with new specfile using autoxml
+ autoxmlize: metadata, index, dependency and related code paths
+ inheritance support
+ revise writing, error reporting, tests
+ components (eray)
+ requirementsu
+ xml format, add to PSPEC
+ index component.xml's and make use of them in build
+ a database of components:
+ query components by name
+ query list of packages in a component
+ index: update component database(s)
+ bug fixing
+ install/remove/upgrade components
+ safety switch: preserve system.base, install system.devel for build, etc.
+ info <component>
+ started documentation
+ component dependencies
+ multiple package repository (eray)
+ decide how to implement
+ support repo order
- file conflict checker
+ refactor xml support and implement multiple backends
+ ciksemel based modules rewrite with xml.dom.minidom (Zaryob)
+ partial caching and automatic resume for file download (meren)
+ use a '.part' extension
+ resume file downloading (pycurl) (Zaryob)
+ search-file command (eray)
+ exception handling (eray)
+ uniform exception hierarchy
+ proper handling
+ API: we even have application users (eray)
+ a facade module inary.api (eray)
+ clean unuseful inary.api functions
+ a library init command (eray)
+ high-level package ops, index (eray)
+ info/util commands (eray)
+ build commands (baris)
+ documentation
+ actionsAPI documentation, unittests (caglar - meren)
+ versioning information document (eray - baris)
+ UI
- INARYMAT
/ Automatic dependency finder
/ read pkgconfig files and find dependencies (Zaryob)
- find cycle dependencies (Zaryob)
- Automatic build upgrader
/ creating pspec files from shell script type
- pykde & pygtk GUI (cartman)
+ pykde interface (used package-manager)
+ improve interface (eray)
+ refactor UI, reintroduce base class
+ add an ack interface, start cleaning up a bit
+ cli (eray)
+ ask alternatives to choose from
+ eliminate \n's from infos, what's the point?
+ metaclass coolness for CLI command framework (eray)
+ i18n support
+ translations and correct language for summary, description (packagers)
+ make inary messages translatable (eray)
+ .pot support for dist script (gurer)
/ translate messages mesajların çevirisinin yapılması (inary tr.po)
- az
+ de
+ en
+ es
+ fr
- hr
+ hu
+ it
- nl
- pl
- pt_BR
+ ru
- sv
+ tr
- uk
+ proper unicode handling in code - tons of fixes (eray - baris)
/ configure-pending (eray) (should return which packages configured)
- report scom scripts problems to developers
+ configure pendings (Zaryob)
+ proper commar connection (baris - gurer)
+ ignore-deps (eray)
+ more robust upgrade (eray)
+ query (eray)
+ find package by name, display summary/description
+ info --files option (like rpm -ql, but better of course)
+ implement missing unit tests
+ sourcedb
+ package (baris)
+ configuration file (baris)
+ upgrade (eray)
+ upgrade operation
+ test upgrade op
+ system-wide upgrade (upgrade-all) komutu
+ incremental build (eray)
+ generate binary release number by comparing MD5s (eray)
+ keep track of successfully completed configure, make, install steps
(necessary for large-scale builds?) (meren)
+ database locking bugs (eray)
+ SHOULD WORKING UNDER FIXME PARTS
4. Release
* high priority
+ transaction stuff for database (eray)
+ database version file
* low priority
+ search command: (eray)
+ implement an inverted index
+ search in summary and description
5. Post Release
* high priority
- refactoring
sort of match the refactoring of inary-2.x series and improve it
+ accelerate search
/ package signing
/ an embebed package signer.(Zaryob)
+ a flag to sign package after building
+ code to check if the package has a valid signature
- cli improvements
- non interactive mode (similar to --auto in urpmi)
/ high-level build commands
+ an emerge command, just for fun
+ make use of binary repo to satisfy dependencies in emerge
/ build command enhancements:
+ aware of repo sources
? full dependency analysis like install/upgrade etc.
? build-all (or build-distro) command, or as a separate tool
+ make a package and sourcedb for each repo
+ packagedb
+ sourceb
? improve url support: consider adding "other" protocols
- removable media: media://
- ftp support
* medium priority
- UI impl: non-interactive use that selects defaults and logs output
- UI impl: a general purpose Qt or GTK UI
/ multi-architecture support
+ design decisions
+ extend XML specs to support that
- cross-platform building support
+ incremental build/fetch for repository index (inary-index.xml)
/ xdelta support (caglar)
- diffsets
- a command (check-repo) to check if repos are consistent wrt dep relations
- component improvements (optional)
- maintain a list of components each component has
- maintain a list of packages
- more support for categories:
- put categories into a database
- fast search for categories
* low priority
/ overhaul installdb (try to merge its use with packagedb) (eray)
/ verify metodlari
+ SpecFile
+ MetaData
+ Files
/ Index (somebody should write one :} )
- autoxml:
- revise error checking, printing and tests
- uri type
- date type
- enum type
- make autoxml dependent on only xmlext and xmlfile interfaces
- search command: (eray)
+ search components
- english stemming
- turkish stemming
- phonetic/syntactic fault tolerance (whichever works!)
- in particular evaluate soundex and metaphone
- research if there are language independent phonetic encodings
- implement as an option (or make it possible to turn it off if it works well :))
- fault tolerant search in package names (somehow)