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:
-
python 2.3.2
-
wxPython 2.4.0.7
-
wxGTK 2.4.0
-
wxGlade 0.3
-
gcc 3.2.3
-
swig 1.3.10
-
pychecker 0.8.12
For diagrams and misc. documentation, Graphviz, umbrello and Dia are used.