2013-04-05 22:30:12 +02:00
|
|
|
===============
|
|
|
|
Hacking on hy
|
|
|
|
===============
|
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
.. highlight:: bash
|
|
|
|
|
2013-04-05 22:30:12 +02:00
|
|
|
Join our hyve!
|
|
|
|
==============
|
|
|
|
|
|
|
|
Please come hack on hy!
|
|
|
|
|
|
|
|
Please come hang out with us on ``#hy`` on ``irc.freenode.net``!
|
|
|
|
|
|
|
|
Please talk about it on Twitter with the ``#hy`` hashtag!
|
|
|
|
|
|
|
|
Please blog about it!
|
|
|
|
|
2013-04-05 22:34:25 +02:00
|
|
|
Please don't spraypaint it on your neighbor's fence (without asking nicely)!
|
2013-04-05 22:30:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
Hack!
|
|
|
|
=====
|
|
|
|
|
|
|
|
Do this:
|
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
1. create a `virtual environment
|
|
|
|
<https://pypi.python.org/pypi/virtualenv>`_::
|
|
|
|
|
|
|
|
$ virtualenv venv
|
|
|
|
|
|
|
|
and activate it::
|
|
|
|
|
|
|
|
$ . venv/bin/activate
|
2013-10-09 11:36:35 +02:00
|
|
|
|
|
|
|
or use `virtualenvwrapper <http://virtualenvwrapper.readthedocs.org/en/latest/#introduction>`_
|
|
|
|
to create and manage your virtual environment::
|
|
|
|
|
2013-10-10 23:17:43 +02:00
|
|
|
$ mkvirtualenv hy
|
|
|
|
$ workon hy
|
2013-10-09 11:36:35 +02:00
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
2. get the source code::
|
|
|
|
|
|
|
|
$ git clone https://github.com/hylang/hy.git
|
2013-04-05 22:30:12 +02:00
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
or use your fork::
|
2013-04-05 22:30:12 +02:00
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
$ git clone git@github.com:<YOUR_USERNAME>/hy.git
|
|
|
|
3. install for hacking::
|
2013-04-05 22:30:12 +02:00
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
$ cd hy/
|
|
|
|
$ pip install -e .
|
2013-04-05 22:30:12 +02:00
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
4. install other develop-y requirements::
|
2013-04-05 22:30:12 +02:00
|
|
|
|
|
|
|
$ pip install -r requirements-dev.txt
|
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
5. do awesome things; make someone shriek in delight/disgust at what
|
|
|
|
you have wrought.
|
2013-04-05 22:30:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
Test!
|
|
|
|
=====
|
|
|
|
|
|
|
|
Tests are located in ``tests/``. We use `nose
|
|
|
|
<https://nose.readthedocs.org/en/latest/>`_.
|
|
|
|
|
|
|
|
To run the tests::
|
|
|
|
|
|
|
|
$ nosetests
|
|
|
|
|
|
|
|
Write tests---tests are good!
|
|
|
|
|
2013-12-02 12:07:05 +01:00
|
|
|
Also, it is good to run the tests for all the platforms supported and for pep8 compliant code.
|
|
|
|
You can do so by running tox::
|
|
|
|
|
|
|
|
$ tox
|
2013-04-05 22:30:12 +02:00
|
|
|
|
|
|
|
Document!
|
|
|
|
=========
|
|
|
|
|
|
|
|
Documentation is located in ``docs/``. We use `Sphinx
|
|
|
|
<http://sphinx-doc.org/>`_.
|
|
|
|
|
2013-10-08 04:16:31 +02:00
|
|
|
To build the docs in HTML::
|
2013-04-05 22:30:12 +02:00
|
|
|
|
|
|
|
$ cd docs
|
|
|
|
$ make html
|
|
|
|
|
|
|
|
Write docs---docs are good! Even this doc!
|
2013-12-01 18:56:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
Core Development Rules
|
|
|
|
======================
|
|
|
|
|
|
|
|
All incoming changes need to be acked by 2 different members of Hylang's
|
|
|
|
core team. Additional review is clearly welcome, but we need a minimum of
|
|
|
|
2 signoffs for any change.
|
|
|
|
|
|
|
|
If a core member is sending in a PR, please find 2 core members that don't
|
|
|
|
include them PR submitter. The idea here is that one can work with the PR
|
|
|
|
author, and a second acks the entire change set.
|