Clone wiki

kallithea / Home


See - especially


Join the mailing list or #kallithea on freenode and help defining the project.

Kallithea is currently primarily a scratch-your-own-itch project where we help each other by contributing our changes. Some sys admin skills and Python experience will be required for installing and maintaining a system. We encourage consultants to make a business out of installing and developing Kallithea for custom needs ... and contribute back.

Road map

Several of the main developers agree that we want the following. We encourage each other and everybody else to work on:

Suggested future roadmap/goals:

  • kill the last bits of YUI - would be very nice to get ASAP
  • model cleanup
  • URL cleanup
  • SSH
  • BDD testing
  • thorough cleanup of pending PRs and open bug tracker issues - many things either need a collective effort to fix/land, or a collective decision to reject


Here are some ideas of places we might want to go - contributions in these areas are also very welcome:

  • Front end:
    • kill the last YUI - more jQuery
    • remove other dependencies - especially the embedded cut'n'pasted ones
    • remove hardcoded styling in templates, make markup more semantic while moving all styling to css
    • switch to bootstrap or some other modern UI library and cleanup of style.css and contextbar.css
    • new fancy front end styling that looks good
  • testing (see TestingImprovements)
    • better test coverage with the existing high level test framework
    • better use of pytest
    • test even more high level and javascript - selenium/robot and splinter seems like the top candidates
    • more unit testing
  • code cleanup
    • move code from templates to controllers and from controllers to libs or models
    • more best practice for web apps and the frameworks
    • cleanup/rationalize URLs
    • cleanup database layout (models)
  • features
    • relax dependency version requirements after thorough testing
    • support for evolve
    • updates of PRs ... while preserving history and comment context
    • auto pr merge/rebase
    • ssh (in progress)
    • bitbucket compatible wiki
    • realtime preview / wysiwyg when editing comments and files
    • make journal more useful - filtering on branches and files
    • community mode with self registration and personal space
  • improve documentation
    • general improvement
    • user-level usage of Kallithea, including pull request concept
    • installation for unix/win/win_old contains duplicate info that could be centralized
  • specific improvements waiting for an adopter
    • (currently nothing defined)
  • code quality
    • determine what type of import statements should be used (from foo import bar vs. import foo; in the former case also absolute vs. relative imports (from . import foo)
    • determine some minimal initial pep8 we want to be compliant with and let new code follow it; consider using flake8 to check these selected items
    • similar to flake8, there is pylint. We can start with just one checker, fix the code, and then extend to a second checker and so on. To run with such a whitelist of checkers: pylint --disable=all --enable=unused-import kallithea. For this example of unused imports, there are some false positives in e.g. helpers/compat/utils where A imports an 'unused import' from helpers/compat/utils instead of directly. In case of helpers and compat this is intentional. For utils I'm not sure if it's correct. Such false positives can be marked to pylint with a specific comment.