##// END OF EJS Templates
Removing .hgignore.
Brian Granger -
Show More
@@ -1,94 +1,94 b''
1 =============================
1 =============================
2 IPython module reorganization
2 IPython module reorganization
3 ============================='
3 =============================
4
4
5 Currently, IPython has many top-level modules that serve many different
5 Currently, IPython has many top-level modules that serve many different
6 purposes. The lack of organization make it very difficult for developers to
6 purposes. The lack of organization make it very difficult for developers to
7 work on IPython and understand its design. This document contains notes about
7 work on IPython and understand its design. This document contains notes about
8 how we will reorganize the modules into sub-packages.
8 how we will reorganize the modules into sub-packages.
9
9
10 .. warning::
10 .. warning::
11
11
12 This effort will possibly break third party packages that use IPython as
12 This effort will possibly break third party packages that use IPython as
13 a library or hack on the IPython internals.
13 a library or hack on the IPython internals.
14
14
15 .. warning::
15 .. warning::
16
16
17 This effort will result in the removal from IPython of certain modules
17 This effort will result in the removal from IPython of certain modules
18 that are not used anymore, don't currently work, are unmaintained, etc.
18 that are not used anymore, don't currently work, are unmaintained, etc.
19
19
20
20
21 Current subpackges
21 Current subpackges
22 ==================
22 ==================
23
23
24 IPython currently has the following sub-packages:
24 IPython currently has the following sub-packages:
25
25
26 * :mod:`IPython.config`
26 * :mod:`IPython.config`
27
27
28 * :mod:`IPython.Extensions`
28 * :mod:`IPython.Extensions`
29
29
30 * :mod:`IPython.external`
30 * :mod:`IPython.external`
31
31
32 * :mod:`IPython.frontend`
32 * :mod:`IPython.frontend`
33
33
34 * :mod:`IPython.gui`
34 * :mod:`IPython.gui`
35
35
36 * :mod:`IPython.kernel`
36 * :mod:`IPython.kernel`
37
37
38 * :mod:`IPython.testing`
38 * :mod:`IPython.testing`
39
39
40 * :mod:`IPython.tests`
40 * :mod:`IPython.tests`
41
41
42 * :mod:`IPython.tools`
42 * :mod:`IPython.tools`
43
43
44 * :mod:`IPython.UserConfig`
44 * :mod:`IPython.UserConfig`
45
45
46 New Subpackages to be created
46 New Subpackages to be created
47 =============================
47 =============================
48
48
49 We propose to create the following new sub-packages:
49 We propose to create the following new sub-packages:
50
50
51 * :mod:`IPython.core`. This sub-package will contain the core of the IPython
51 * :mod:`IPython.core`. This sub-package will contain the core of the IPython
52 interpreter, but none of its extended capabilities.
52 interpreter, but none of its extended capabilities.
53
53
54 * :mod:`IPython.lib`. IPython has many extended capabilities that are not part
54 * :mod:`IPython.lib`. IPython has many extended capabilities that are not part
55 of the IPython core. These things will go here.
55 of the IPython core. These things will go here.
56
56
57 * :mod:`IPython.utils`. This sub-package will contain anything that might
57 * :mod:`IPython.utils`. This sub-package will contain anything that might
58 eventually be found in the Python standard library, like things in
58 eventually be found in the Python standard library, like things in
59 :mod:`genutils`. Each sub-module in this sub-package should contain
59 :mod:`genutils`. Each sub-module in this sub-package should contain
60 functions and classes that serve a single purpose.
60 functions and classes that serve a single purpose.
61
61
62 * :mod:`IPython.deathrow`. This is for code that is untested and/or rotting
62 * :mod:`IPython.deathrow`. This is for code that is untested and/or rotting
63 and needs to be removed from IPython. Eventually all this code will either
63 and needs to be removed from IPython. Eventually all this code will either
64 i) be revived by someone willing to maintain it with tests and docs and
64 i) be revived by someone willing to maintain it with tests and docs and
65 re-included into IPython or 2) be removed from IPython proper, but put into
65 re-included into IPython or 2) be removed from IPython proper, but put into
66 a separate top-level (not IPython) package that we keep around. No new code
66 a separate top-level (not IPython) package that we keep around. No new code
67 will be allowed here.
67 will be allowed here.
68
68
69 * :mod:`IPython.quarantine`. This is for code that doesn't meet IPython's
69 * :mod:`IPython.quarantine`. This is for code that doesn't meet IPython's
70 standards, but that we plan on keeping. To be moved out of this sub-package
70 standards, but that we plan on keeping. To be moved out of this sub-package
71 a module needs to have a maintainer, tests and documentation.
71 a module needs to have a maintainer, tests and documentation.
72
72
73 Procedure
73 Procedure
74 =========
74 =========
75
75
76 1. Move the file to its new location with its new name.
76 1. Move the file to its new location with its new name.
77 2. Rename all import statements to reflect the change.
77 2. Rename all import statements to reflect the change.
78 3. Run PyFlakes on each changes module.
78 3. Run PyFlakes on each changes module.
79 3. Add tests/test_imports.py to test it.
79 3. Add tests/test_imports.py to test it.
80
80
81 Status
81 Status
82 ======
82 ======
83
83
84 The new subpackages have been created and the top-level modules have been
84 The new subpackages have been created and the top-level modules have been
85 moved and renamed. Import tests have been created for all of the moved and
85 moved and renamed. Import tests have been created for all of the moved and
86 renamed modules. The build infrastructure (setup.py and friends) have been
86 renamed modules. The build infrastructure (setup.py and friends) have been
87 updated and tested on Mac and Windows. Finally, a compatibility layer has been
87 updated and tested on Mac and Windows. Finally, a compatibility layer has been
88 added for iplib, ipapi and Shell. The follow things still need to be done::
88 added for iplib, ipapi and Shell. The follow things still need to be done::
89
89
90 * I need to modify iptests to properly skip modules that are no longer top
90 * I need to modify iptests to properly skip modules that are no longer top
91 level modules.
91 level modules.
92
92
93 * When running python setup.py sdist, the Sphinx API docs fail to build
93 * When running python setup.py sdist, the Sphinx API docs fail to build
94 because of something going on with IPython.core.fakemodule
94 because of something going on with IPython.core.fakemodule
1 NO CONTENT: file was removed
NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now