Contributing to Rope
Rope was started because of the lack of good refactoring tools for
python. But after observing python IDE limitations we grew bigger
ideas in our heads.
If you want to have a more powerful python IDE and have big ideas
in your head, you are welcome to get involved.
How to Help Rope?
Rope mailing list: `rope-dev (at) googlegroups.com`_
* Use rope
* Send bugs reports and request features
* Submit patches for bugs or new features
* Discuss your ideas
.. _`rope-dev (at) googlegroups.com`: http://groups.google.com/group/rope-dev
If you're interested you are welcome to discuss your ideas in
`rope-dev (at) googlegroups.com`_ mailing list or send your patches.
Here is only a list of suggestions.
Getting Ready For Python 3.0
Checkout http://rope.sourceforge.net/hg/rope_py3k Mercurial_
repository. Contributions are welcome.
ropemacs can be enhanced very much and many of rope's features can be
added to it. Any help is welcome.
A New GUI
Right now rope uses Tkinter for its GUI. But Tkinter, as many have
complained about, looks very bad and is not suitable for writing an
IDE. The UI parts of rope, ie. `rope.ui` package, is a layer on top
of other core parts of rope. When I started rope I hoped that someday
the IDE and UI parts of rope (`rope.ui` and `rope.ide` packages) would
be developed by other developers and I still do hope so. So if you're
interested in working on GUI/IDE part of rope using something like
`pygtk` or `wxPython` you're welcome.
You can format python source code. This probably needs using ASTs and
This might include detecting unused variables and imports or
unreachable statements. `rope.base` can help, too. Currently rope
detects things like redefined elements and assignment to self.
Modules Without Source Code
Rope cannot know anything about python C extensions and modules
without matching source code. Some information can be gathered using
`inspect` module. But it's not safe; Yet better than nothing. This
requires a good knowledge of `rope.base`.
Rope package structure::
Have a look at ``__init__.py`` of packages for finding their
description. Also have a look at `library.txt`_ for a few
.. _`library.txt`: library.html
Rope uses Mercurial_ CMS:
* Rope main branch: http://rope.sourceforge.net/hg/rope
* Rope py3k branch: http://rope.sourceforge.net/hg/rope_py3k
Patches to rope's code are welcome.
* Follow :PEP:`8`.
* Use four spaces for indentation.
* Include good unit-tests if possible.
* Rope test suite should pass after patching (``python runtests.py``).
.. _Mercurial: http://selenic.com/mercurial