File: TODO

package info (click to toggle)
pybaz 1.5pre1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 8,644 kB
  • ctags: 3,289
  • sloc: python: 8,386; makefile: 89; sh: 15; lisp: 12
file content (109 lines) | stat: -rw-r--r-- 3,803 bytes parent folder | download
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
These are the changes in plan to introduce in PyBaz. There is a lot of cruft
and crack in this code base, so many disruptive changes will be necessary to
clean up the mess.

If you are unhappy with these changes because they will make your life harder
or because you think they are just more crack, please notify me and I'll try to
find a solution to make you happy.

David Allouche <ddaa@ddaa.net>
ddaa in #arch on irc.freenode.net

* Plans for PyBaz 1.3

   - Remove deprecations present in 1.1

      All functions, methods and properties marked as deprecated in PyBaz 1.1
   will be removed in PyBaz 1.3.

   - Deprecate SourceTree

      SourceTree is used as a (quite useless) abstract base class for all
   source tree classes, and a factory that magically instanciate WorkingTree,
   LibraryTree or ForeignTree instance.

      The magic factory behaviour will be deprecated.

   - Deprecate ForeignTree and LibraryTree

      Theses classes serve no useful purpose.

   - New type testing features for source trees

      New properties will be introduced to provide a transition path before the
   simplification of the source tree hierarchy.

      ArchSourceTree.is_reference_tree: True if the tree is a pristine or a
   revision library entry and cannot be used to create WorkingTree. False if
   the tree may be modified.

      pybaz.is_tree_root(dirname): True if dirname is the root of an Arch
   source tree and may be used to create an ArchSourceTree or WorkingTree.

   - Deprecate ArchSourceTree.inventory

      In favour of the iter_inventory method.

   - Deprecate ArchSourceTree.get_tree_version()
   - Deprecate WorkingTree.set_tree_version(V)

      In favour of the tree_version property.

   - Deprecate ArchSourceTree.get_tagging_method()
   - Deprecate WorkingTree.set_tagging_method()

      In favour of the tagging_method property.

   - Deprecate ArchSourceTree.get_tree()

      Obscure legacy function.

   - WorkingTree.add_log_version()

      This method serves no use case. The log-version should be create on
   import when necessary. In all other cases, log versions are already created
   as needed, and empty log versions are useless.

   - WorkingTree.add_pristine()

      This is generally immediately followed by find_pristine. The
   functionality will be folded into find_pristine with a create=True keyword
   argument.

   - Revision.library_add()

      This is generally immediately followed by library_find. The functionality
   will be folded into library_find with a create=True keyword argument.

   - Deprecate methods inherited from DirName in SourceTree and Changeset

      SourceTree and Changeset should have a "has a" (inclusion) relationship
   to DirName, instead of a "is a" (derivation) relationship. All methods
   inherited from DirName will emit deprecation warnings. A new "path" property
   will give the associated DirName instance.

   - Redesign the output parsing subsystem

      It is expected that baz incremental output will change in such a way as
   to require a major redesign of the output parsing classes.

      In any case, the current design relies on the client to use "isinstance"
   to classify the various output lines. That is bad design.

   - Redesign NameParser

      The NameParser interface is awkyard and broken. It shoud also undergo
   many deprecations to become more convenient and more consistent with other
   classes.

* Plans for PyBaz 1.4

   - Remove SourceTree, ForeignTree and LibraryTree

   - Remove methods deprecated in PyBaz 1.3

   - Remove subclass relationship between DirName, SourceTree and Changeset

      That will break code that relies on the fact that SourceTree and
   Changeset instances are also instances of str, but there is no way to
   provide a deprecation path.