This is a repository of research files related to the PINABH project. PINABH stands for Programmer Information Needs and Better Help. Okay, the name is a work in progress.
To view the notes:
brew install npm # install npm
npm install -g harp # install harp, the Markdown server
cd notes
./runserver.sh # this creates a documentation index and runs the server
Then go to http://localhost:9000
in your browser.
The directories you find here contain different types of research artifacts:
eval/
: evaluations, or tests run to collect observations or evaluate hypothesesproto/
: prototypes, systems we build that aren't big enough to be standalonerel/
: related work, plans and findings from reviewing literaturevis/
: vision documents, where we plan out next steps for the projectsnotes/
: notes written up to document the research process for evaluations, prototypes, related work, and vision documents.
When possible, documentation is written in Markdown. This improves the maintainability of the documentation and makes it editable in a variety of editors.
In general, you should be able to cd
into the directory for an evaluation or prototype.
Then download the dependencies specific to that project.
pip install -r reqs.txt
See the experimental notes for that evaluation for how to run it.
- Create a new branch for doing your work:
git checkout -b <branchname>
- Do your local work and commit. All new features or bug fixes should be accompanied by tests.
- Run the test suite to make sure everything still passes
- Push your branch
- Submit a pull request to merge into master (see here). Assign the pull request to someone else on the team who should verify the style and design choices of your code.
- Respond to any comments you get from reviewers
- Once your pull request is accepted, merge your pull request into master
- Check out the master branch and verify that all tests still pass
Develop with a virtual environment when possible. You should have a separate virtual environment for each prototype or evaluation. When you commit your work, save the requirements for others to install later:
pip freeze > reqs.txt
In general, to improve the readability of your code, write it according to some standard.
Your Python code should be checked with flake8
, with a line length of 100 characters.
You can run the flake8
check on all code in the current directory and its sub-directories like so:
pip install flake8
flake8 --max-line-length=100 .
Run this check before you push your feature or your reviewer will ask you to when they review.
- Andrew Head
<andrewhead@eecs.berkeley.edu>
- Austin Le
<austinhle@berkeley.edu>