Rope's main goal is being a good refactoring tool for python. It also provides some IDE helpers. If you would like to contribute, you're welcome to!
Rope's development happens in python-rope's Github.
Use python-rope's Github Issue Tracker to discuss development-related issues:
- Send bug reports and request features
- Submit patches for bugs or new features
Use python-rope's Github Discussion for other discussions, such as:
- Help using rope
- Help integrating rope with text editors/tools
- Discuss your ideas
- Engage with the rope community
You are welcome to make pull requests in python-rope's Github Issue Tracker.
Here is a list of suggestions.
If this is your first time contributing in rope and you don't know where to start, tickets labeled good first issue is a good place start.
The unresolved issues list in Github is the latest todo list.
There is also a rather outdated list in dev/issues.rst. There is a section called "unresolved issues"; it contains almost every kind of task. This file will need some cleanup, thoughts, and discussions.
Pickup whichever you are most interested in. If you have ideas or questions about them, don't hesitate to create a Github ticket for it.
See ropemacs, ropevim, eric4 and ropeide.
Rope package structure:
- rope.base: the base part of rope
- rope.refactor: refactorings and tools used in them
- rope.contrib: IDE helpers
Have a look at __init__.py
of these packages or library.rst for
more information.
Rope uses GitHub. The repository exists at `https://github.com/python-rope/rope`_.
Pull requests are welcome.
Follow the instructions on GitHub on how to setup Git and fork the python-rope/rope repository. Once your changes are ready, send a pull request for review.
- Follow black codestyle
- Follow PEP 8.
- Use four spaces for indentation.
- Include good unit-tests when appropriate.
- Rope test suite should pass after patching
Rope uses pytest as a test runner per default (although the tests are strictly unittest-based), so running:
pytest -v
runs all tests. Make sure to have complete test suite passing and add new tests for the changes you are providing with each new submission.
All required packages for development could be installed with:
pip install -e .[dev]