imgSeekNet code

UI code

All dialogs are created using wxGlade. The main .wxg file is isnLib/gui/isn.wxg. After generating the gui code using it, you need to run isnLib/gui/fixForms.sh, in order to fix the full path of the included bitmaps. wxGlade is inflexible in this matter, so we need to make sure the GUI code points to a path where our install util knows about. ($INSTALL_PREFIX/share/imgSeekNet/)

Coding standards

They are based on Twisted Matrix Coding Standards, but i'll mention the important ones here.

Whitespace

Indentation is 4 spaces per indent. Tabs are not allowed. It is preferred that every block appear on a new line, so that control structure indentation is always visible.

Modules

Check the modules/packages architecture here.

Name case

Mostly camelCase, likeThisVar, or like this statement: peerManager.savePeerCache(force = 1)

Misc.

Methods for persisting object data to disk are called persist, which should return stringable data, and summon, which reads data and init internal vars into a working state.

CVS

SourceForge anonymous cvs seems to be lagged by 24 hours. In order to checkout the cvs code, see instructions here.

On a fresh cvs checkout, before running imgSeek, you should build the c++ module and place it on isnLib/img/, so you can start it from your cvs work dir, without having to install it after every change:

 ~/work/imgseeknet/ $ python setup.py build
 ~/work/imgseeknet/ $ cp build/lib.linux-i686-2.2/isnLib/gui/_imgdb.so isnLib/gui/
 ~/work/imgseeknet/ $ ./imgSeekNet

(note that the above commands are now done by the compile script)

Releases and packaging

Source tarballs for distribution are built using distutils' sdist command. A script for generating tgz and bz2 files is on imgseeknet/mksdist.sh. Generated tarballs can be found on the dist/ dir.

Before each release, the version number must be changed at isnLib/__init__.py. This version number is used by distutils when naming dist tarballs.

Please refer to this FAQ entry on how to build RPM's.

Development tools/environment

I use emacs 21.3.1, so the ChangeLog file will have the format generated by M-x add-changelog-entry & friends.

Also note that there is currently only one changelog file, on the root dir.

Current versions used on development:

For diagrams and misc. documentation, Graphviz, umbrello and Dia are used.