Development

Pythonect is under active development, and contributors are welcome.

If you have a feature request, suggestion, or bug report, please open a new issue on GitHub. To submit patches, please send a pull request on GitHub.

If you’d like to contribute, there’s plenty to do. Here’s a short todo list.

  • Add “Embedding Pythonect” Section to Documentation
  • Add “Writing Domain-Specific Languages with Pythonect” Section to Documentation
  • Add FAQ Page to Documentation
  • Add Small Code Example for each New Change in the ChangeLog
  • Modify Pythonect to use logging.getLogger() instead of logging.debug() and etc.
  • Add REST Support for Remote Call Power Feature
  • Add SOAP Support for Remote Call Power Feature
  • Improve Visual Programming by Recognizing Flowchart Symbols (See Fig. 1 at http://cnx.org/content/m27193/latest/)
  • Improve Visual Programming by Parsing Text on Lines as Control Flow Conditions (See Fig. 3 at http://cnx.org/content/m27193/latest/)
  • Add Support for GraphML (via NetworkX) + Find Editor + Document
  • Add Support for YAML (via NetworkX) + Find Editor + Document
  • Add Support for JSON (via NetworkX) + Find Editor + Document
  • Add Support for GEXF (via NetworkX) + Find Editor + Document
  • Add Support for GML (via NetworkX) + Find Editor + Document
  • Forward False if Next Operation Explicitly Reference It
  • Add More Code Examples
  • Add More Unit Tests
  • Add Support for Python3k
  • Add Support for IronPython
  • Add Support for Stackless Python
  • Reduce Multiple locals_ and globals_ to Single Copy
  • Add Support for GPU?
  • Add Support for Grouping (e.g. [x -> y]@foobar will equal [x@foobar -> y@foobar])
  • Python Plugin for Dia to run Diagram within Dia
  • Plugin for Eclipse to run Workflow within Eclipse

Source Control

Pythonect source is controlled with Git, the lean, mean, distributed source control machine.

The repository is publicly accessible.

git clone git://github.com/ikotler/pythonect.git

The project is hosted on GitHub:

Git Branch Structure

Feature / Hotfix / Release branches follow a Successful Git Branching Model. Git-Flow is a great tool for managing the repository. I highly recommend it.

develop
The “next release” branch. Likely unstable.
master
Current production release (0.7) on PyPi.

Each release is tagged.

When submitting patches, please place your feature/change in its own branch prior to opening a pull request on GitHub.

Testing Pythonect

Testing is crucial to Pythonect’s stability. When developing a new feature for Pythonect, be sure to write proper tests for it as well.

The easiest way to test your changes for potential issues is to simply run the test suite directly:

$ python setup.py nosetests

Don’t have nose installed? Installing nose is simple:

$ pip install nose

Continuous Integration

Every commit made to the develop branch is automatically tested and inspected upon receipt with Travis CI. If you have access to the main repository and broke the build, you will receive an email accordingly.

Anyone may view the build status and history at any time:

Building the Docs

Documentation is written in the powerful, flexible, and standard Python documentation format, reStructured Text. Documentation builds are powered by the powerful Pocoo project, Sphinx. The API Documentation is mostly documented inline throughout the module.

The Docs live in pythonect/doc. In order to build them, you will first need to install Sphinx:

$ pip install sphinx

Then, to build an HTML version of the docs, simply run the following from the doc directory:

$ make html

Your doc/_build/html directory will then contain an HTML representation of the documentation, ready for publication on most web servers.

You can also generate the documentation in epub, latex, and json.

Questions? Comments?

comments powered by Disqus