Files @ 953047e8c88a
Branch filter:

Location: kallithea/scripts/generate-ini.py

Thomas De Schampheleire
setup: restrict TurboGears2 version to 2.3.x

In TurboGears2 2.3.12, the latest version in the 2.3.x range, the WebOb
dependency requirement is [1]
WebOb >= 1.2, < 1.8.0

In TurboGears2 2.4.0 (which is in pre-release state at the time of this
commit), this becomes [2]:
WebOb >= 1.8.0, < 1.10.0

In the Kallithea dependency list, we have matched our WebOb version
requirements to that of TurboGears2 and use:
WebOb >= 1.7, < 1.8

while our TurboGears2 requirement was liberal and accepted anything in the
2.x range:
TurboGears2 >= 2.3.10, < 3

To avoid new Kallithea installations failing with conflicting WebOb version
requirements after TurboGears2 2.4.0 is released, restrict the version of
TurboGears2 to 2.3.x on the stable branch.

For the default branch, the update to TurboGears2 2.4.0 can be considered
once it's released.

[1] https://github.com/TurboGears/tg2/blob/tg2.3.12/setup.py#L54
[2] https://github.com/TurboGears/tg2/blob/ed89788c3f5dab5a182a938543c9ee4ec14dd7ef/setup.py#L41
#!/usr/bin/env python2
"""
Based on kallithea/lib/paster_commands/template.ini.mako, generate development.ini
"""

import re

from kallithea.lib import inifile

# files to be generated from the mako template
ini_files = [
    ('development.ini',
        {
            '[server:main]': {
                'host': '0.0.0.0',
            },
            '[app:main]': {
                'debug': 'true',
                'app_instance_uuid': 'development-not-secret',
                'beaker.session.secret': 'development-not-secret',
            },
            '[handler_console]': {
                'formatter': 'color_formatter',
            },
            '[handler_console_sql]': {
                'formatter': 'color_formatter_sql',
            },
            '[logger_routes]': {
                'level': 'DEBUG',
            },
            '[logger_beaker]': {
                'level': 'DEBUG',
            },
            '[logger_templates]': {
                'level': 'INFO',
            },
            '[logger_kallithea]': {
                'level': 'DEBUG',
            },
            '[logger_tg]': {
                'level': 'DEBUG',
            },
            '[logger_gearbox]': {
                'level': 'DEBUG',
            },
            '[logger_whoosh_indexer]': {
                'level': 'DEBUG',
            },
        },
    ),
]


def main():
    # make sure all mako lines starting with '#' (the '##' comments) are marked up as <text>
    makofile = inifile.template_file
    print 'reading:', makofile
    mako_org = open(makofile).read()
    mako_no_text_markup = re.sub(r'</?%text>', '', mako_org)
    mako_marked_up = re.sub(r'\n(##.*)', r'\n<%text>\1</%text>', mako_no_text_markup, flags=re.MULTILINE)
    if mako_marked_up != mako_org:
        print 'writing:', makofile
        open(makofile, 'w').write(mako_marked_up)

    # create ini files
    for fn, settings in ini_files:
        print 'updating:', fn
        inifile.create(fn, None, settings)


if __name__ == '__main__':
    main()