Thanks for working on bpython!
On the GitHub issue tracker some issues are labeled bite-size - these are particularly good ones to start out with.
See our section about the :ref:`community` for a list of resources.
#bpython on freenode is particularly useful, but you might have to wait for a while to get a question answered depending on the time of day.
bpython supports Python 2.6, 2.7, 3.3 and 3.4. The code is written in Python 2 and transformed for Python 3 with 2to3. This means that it's easier to work on bpython with Python 2 because it's you can use python setup.py develop (development mode installs by linking to the bpython source instead of copying it over) in a more straightforward way to have your changes immediately reflected by your bpython installation and the bpython, bpython-curtsies, and bpython-urwid commands.
Using a virtual environment is probably a good idea. Create a virtual environment with
$ virtualenv bpython-dev # determines Python version used
$ source bpython-dev/bin/activate # necssary every time you work on bpythonFork bpython in the GitHub web interface, then clone the repo:
$ git clone git@github.com:YOUR_GITHUB_USERNAME/bpython.git
$ # or "git clone https://github.com/YOUR_GITHUB_USERNAME/bpython.git"Next install the dependencies and install your development copy of bpython:
$ pip install pygments requests # install required dependencies
$ pip install curtsies greenlet watchdog urwid # install optional dependencies
$ pip install sphinx mock nosetests # development dependencies
$ cd bpython
$ python setup.py develop
<modify a file in some way>
$ bpython-curtsies # this runs your modified copy of bpython!As a first dev task, I recommend getting bpython to print your name every time you hit a specific key.
To run tests from the bpython directory:
$ nosetestsThe documentation is included in the bpython repository. After checking out the bpython repository and installing sphinx as described in the previous step, you can run the following command in your checkout of the repository to build the documentation:
$ make -C doc/sphinx htmlAfterwards you can point your browser to doc/sphinx/build/html/index.html. Don't forget to recreate the HTML after you make changes.
The site (and its theme as well) is stored in a separate repository and built using pelican. To start hacking on the site you need to start out with a checkout and probably a virtual environment:
$ virtualenv bpython-site-dev
$ source bpython-site-dev/bin/activate
$ pip install pelicanFork bsite and bsite-theme in the GitHub web interface, then clone the repositories:
$ git clone git@github.com:YOUR_GITHUB_USERNAME/bsite.git
$ git clone git@github.com:YOUR_GITHUB_USERNAME/bsite-theme.gitNext you can fiddle around in the source files. If you want to build the site you activate your virtualenv and tell pelican to generate the site with the included configuration file.
$ source bpython-site-dev/bin/activate
$ cd bsite # if you want to fiddle on the text of the site otherwise go into bsite-theme
$ pelican -t ../bsite-theme -s pelicanconf.py # if you checked out the theme in a different place, use that pathAfter this you can open the output/index.html in your favourite browser and see if your changes had an effect.