Changeset - d85b0948e539
[Not reviewed]
Marcin Kuzminski - 15 years ago 2010-11-11 15:03:40
marcin@python-works.com
fixed hooks broken symlink issue
fixed python2.5 crash.
fixed #58 missing graph.js bug
Fixed tests to remove the forked repository when building enviroment
version bump
8 files changed with 47 insertions and 21 deletions:
0 comments (0 inline, 0 general)
MANIFEST.in
Show inline comments
 
@@ -7,8 +7,9 @@ recursive-include rhodecode/i18n/ *
 
recursive-include rhodecode/public/css *
 
recursive-include rhodecode/public/images *
 
#js
 
include rhodecode/public/js/yui2.js
 
include rhodecode/public/js/excanvas.min.js
 
include rhodecode/public/js/yui.flot.js
 
include rhodecode/public/js/graph.js
 
#templates
 
recursive-include rhodecode/templates *
docs/changelog.rst
Show inline comments
 
.. _changelog:
 

	
 
Changelog
 
=========
 

	
 
1.0.2 (**2010-11-XX**)
 
----------------------
 

	
 
- fixed #59 missing graph.js
 
- fixed repo_size crash when repository had broken symlinks
 
- fixed python2.5 crashes.
 
- tested under python2.7
 
- bumped sqlalcehmy and celery versions
 

	
 
1.0.1 (**2010-11-10**)
 
----------------------
 

	
 
- fixed #53 python2.5 incompatible enumerate calls
 
- fixed #52 disable mercurial extension for web
rhodecode/__init__.py
Show inline comments
 
@@ -21,13 +21,13 @@
 
Created on April 9, 2010
 
RhodeCode, a web based repository management based on pylons
 
versioning implementation: http://semver.org/
 
@author: marcink
 
"""
 

	
 
VERSION = (1, 0, 1,)
 
VERSION = (1, 0, 2,)
 

	
 
__version__ = '.'.join((str(each) for each in VERSION[:4]))
 

	
 
def get_version():
 
    """
 
    Returns shorter version (digit parts only) as string.
rhodecode/lib/celerylib/__init__.py
Show inline comments
 
@@ -9,56 +9,63 @@ from hashlib import md5
 
import socket
 
log = logging.getLogger(__name__)
 

	
 
class ResultWrapper(object):
 
    def __init__(self, task):
 
        self.task = task
 
        
 

	
 
    @LazyProperty
 
    def result(self):
 
        return self.task
 

	
 
def run_task(task, *args, **kwargs):
 
    try:
 
        t = task.delay(*args, **kwargs)
 
        log.info('running task %s', t.task_id)
 
        return t
 
    except socket.error, e:
 
        if  e.errno == 111:
 

	
 
        try:
 
            conn_failed = e.errno == 111
 
        except AttributeError:
 
            conn_failed = False
 

	
 
        if  conn_failed:
 
            log.debug('Unable to connect to celeryd. Sync execution')
 
        else:
 
            log.error(traceback.format_exc())    
 
            log.debug('Unable to connect to celeryd. Sync execution')
 

	
 
    except KeyError, e:
 
            log.debug('Unable to connect to celeryd. Sync execution')
 
    except Exception, e:
 
        log.error(traceback.format_exc())
 
    
 

	
 
    return ResultWrapper(task(*args, **kwargs))
 

	
 

	
 
def locked_task(func):
 
    def __wrapper(func, *fargs, **fkwargs):
 
        params = list(fargs)
 
        params.extend(['%s-%s' % ar for ar in fkwargs.items()])
 
            
 

	
 
        lockkey = 'task_%s' % \
 
            md5(str(func.__name__) + '-' + \
 
                '-'.join(map(str, params))).hexdigest()
 
        log.info('running task with lockkey %s', lockkey)
 
        try:
 
            l = DaemonLock(lockkey)
 
            ret = func(*fargs, **fkwargs)
 
            l.release()
 
            return ret
 
        except LockHeld:
 
            log.info('LockHeld')
 
            return 'Task with key %s already running' % lockkey   
 
            return 'Task with key %s already running' % lockkey
 

	
 
    return decorator(__wrapper, func)      
 
            
 
    return decorator(__wrapper, func)
 

	
 

	
 

	
 
        
 
        
 
    
 
    
 
    
 
  
 

	
 

	
 

	
 

	
 

	
rhodecode/lib/hooks.py
Show inline comments
 
@@ -34,17 +34,23 @@ def repo_size(ui, repo, hooktype=None, *
 
    if hooktype != 'changegroup':
 
        return False
 
    size_hg, size_root = 0, 0
 
    for path, dirs, files in os.walk(repo.root):
 
        if path.find('.hg') != -1:
 
            for f in files:
 
                size_hg += os.path.getsize(os.path.join(path, f))
 
                try:
 
                    size_hg += os.path.getsize(os.path.join(path, f))
 
                except OSError:
 
                    pass
 
        else:
 
            for f in files:
 
                size_root += os.path.getsize(os.path.join(path, f))
 
                
 
                try:
 
                    size_root += os.path.getsize(os.path.join(path, f))
 
                except OSError:
 
                    pass
 

	
 
    size_hg_f = h.format_byte_size(size_hg)
 
    size_root_f = h.format_byte_size(size_root)
 
    size_total_f = h.format_byte_size(size_root + size_hg)
 
    sys.stdout.write('Repository size .hg:%s repo:%s total:%s\n' \
 
                     % (size_hg_f, size_root_f, size_total_f))
 
    
rhodecode/lib/utils.py
Show inline comments
 
@@ -462,13 +462,13 @@ def create_test_env(repos_test_path, con
 
    install test repository into tmp dir
 
    """
 
    from rhodecode.lib.db_manage import DbManage
 
    import tarfile
 
    import shutil
 
    from os.path import dirname as dn, join as jn, abspath
 
    from rhodecode.tests import REPO_PATH, NEW_REPO_PATH
 
    from rhodecode.tests import REPO_PATH, NEW_REPO_PATH, FORK_REPO_PATH
 

	
 
    log = logging.getLogger('TestEnvCreator')
 
    # create logger
 
    log.setLevel(logging.DEBUG)
 
    log.propagate = True
 
    # create console handler and set level to debug
 
@@ -502,11 +502,14 @@ def create_test_env(repos_test_path, con
 
    if os.path.isdir(REPO_PATH):
 
        log.debug('REMOVING %s', REPO_PATH)
 
        shutil.rmtree(REPO_PATH)
 
    if os.path.isdir(NEW_REPO_PATH):
 
        log.debug('REMOVING %s', NEW_REPO_PATH)
 
        shutil.rmtree(NEW_REPO_PATH)
 
    if os.path.isdir(FORK_REPO_PATH):
 
        log.debug('REMOVING %s', FORK_REPO_PATH)
 
        shutil.rmtree(FORK_REPO_PATH)
 

	
 
    cur_dir = dn(dn(abspath(__file__)))
 
    tar = tarfile.open(jn(cur_dir, 'tests', "vcs_test.tar.gz"))
 
    tar.extractall('/tmp')
 
    tar.close()
rhodecode/tests/__init__.py
Show inline comments
 
@@ -31,12 +31,13 @@ __all__ = ['environ', 'url', 'TestContro
 
#nosetests rhodecode.tests.functional.test_admin_settings:TestSettingsController.test_my_account
 

	
 
environ = {}
 
TEST_DIR = '/tmp'
 
REPO_PATH = os.path.join(TEST_DIR, 'vcs_test')
 
NEW_REPO_PATH = os.path.join(TEST_DIR, 'vcs_test_new')
 
FORK_REPO_PATH = os.path.join(TEST_DIR, 'vcs_test_fork')
 

	
 
class TestController(TestCase):
 

	
 
    def __init__(self, *args, **kwargs):
 
        wsgiapp = pylons.test.pylonsapp
 
        config = wsgiapp.config
setup.py
Show inline comments
 
from rhodecode import get_version
 
import sys
 
py_version = sys.version_info
 

	
 
requirements = [
 
        "Pylons>=1.0.0",
 
        "SQLAlchemy==0.6.4",
 
        "SQLAlchemy==0.6.5",
 
        "Mako>=0.3.2",
 
        "vcs==0.1.8",
 
        "pygments>=1.3.0",
 
        "mercurial==1.6.4",
 
        "whoosh==1.2.5",
 
        "celery==2.1.2",
 
        "celery==2.1.3",
 
        "py-bcrypt",
 
        "babel",
 
    ]
 

	
 
classifiers = ["Development Status :: 5 - Production/Stable",
 
                   'Environment :: Web Environment',
0 comments (0 inline, 0 general)