/ok-client

A Python client for the OK autograding system

Primary LanguagePythonApache License 2.0Apache-2.0

ok client

The ok client script (written in Python) supports programming projects by running tests, tracking progress, and assisting in debugging.

Visit http://okpy.org to use our hosted service for your course.

The ok client software was developed for CS 61A at UC Berkeley.

Build Status PyPI Version

Developer Instructions

Installation

  1. Clone this repo

  2. Install virtualenv

  3. Create a virtual environment:

     virtualenv -p python3 env
    
  4. Activate the virtual environment:

     source env/bin/activate
    
  5. Install requirements and set up development environment:

     pip install -r requirements.txt
     python3 setup.py develop
    

Contributing

Every time you begin, you should activate the virtual environment:

source env/bin/activate

All code for the client is found in the client/ directory.

There is an executable called ok in the virtualenv path that will run your code locally. You can use the example assignments in the demo/ directory to play around:

cd demo/ok_test
ok -q q2

The tests/ directory mirrors the directory structure of the client/ directory. Every component of the client should have plenty of tests. To run all tests, use the following command:

nosetests tests

Releasing an ok-client version

First make sure that

  • Your virtualenv is activated and you are on the master branch.
  • Your ~/.pypirc contains okpy's PyPI credentials.
  • A file .github-token contains a GitHub access token with the "repo" scope.

To deploy a new version of ok-client, change to the master branch and run

./release.py vX.X.X

where vX.X.X is the new version. This will: