diff --git a/.bumpversion.cfg b/.bumpversion.cfg --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,6 +1,5 @@ [bumpversion] -current_version = 4.23.2 +current_version = 4.24.0 message = release: Bump version {current_version} to {new_version} [bumpversion:file:vcsserver/VERSION] - diff --git a/.release.cfg b/.release.cfg --- a/.release.cfg +++ b/.release.cfg @@ -5,12 +5,10 @@ done = false done = true [task:fixes_on_stable] -done = true [task:pip2nix_generated] -done = true [release] -state = prepared -version = 4.23.2 +state = in_progress +version = 4.24.0 diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -1,28 +1,45 @@ - -.PHONY: clean test test-clean test-only generate-pkgs pip-packages +.DEFAULT_GOAL := help # set by: PATH_TO_OUTDATED_PACKAGES=/some/path/outdated_packages.py OUTDATED_PACKAGES = ${PATH_TO_OUTDATED_PACKAGES} -clean: +.PHONY: clean +clean: ## full clean make test-clean find . -type f \( -iname '*.c' -o -iname '*.pyc' -o -iname '*.so' -o -iname '*.orig' \) -exec rm '{}' ';' -test: + +.PHONY: test +test: ## run test-clean and tests make test-clean make test-only -test-clean: + +.PHONY:test-clean +test-clean: ## run test-clean and tests rm -rf coverage.xml htmlcov junit.xml pylint.log result find . -type d -name "__pycache__" -prune -exec rm -rf '{}' ';' + find . -type f \( -iname '.coverage.*' \) -exec rm '{}' ';' -test-only: + +.PHONY: test-only +test-only: ## run tests PYTHONHASHSEED=random \ py.test -x -vv -r xw -p no:sugar \ - --cov=vcsserver --cov-report=term-missing --cov-report=html vcsserver + --cov=vcsserver --cov-report=term-missing --cov-report=html \ + vcsserver -generate-pkgs: + +.PHONY: generate-pkgs +generate-pkgs: ## generate new python packages nix-shell pkgs/shell-generate.nix --command "pip2nix generate --licenses" -pip-packages: + +.PHONY: pip-packages +pip-packages: ## show outdated packages python ${OUTDATED_PACKAGES} + + +.PHONY: help +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-24s\033[0m %s\n", $$1, $$2}' diff --git a/pkgs/python-packages.nix b/pkgs/python-packages.nix --- a/pkgs/python-packages.nix +++ b/pkgs/python-packages.nix @@ -762,11 +762,11 @@ self: super: { }; }; "redis" = super.buildPythonPackage { - name = "redis-3.4.1"; + name = "redis-3.5.3"; doCheck = false; src = fetchurl { - url = "https://files.pythonhosted.org/packages/ef/2e/2c0f59891db7db087a7eeaa79bc7c7f2c039e71a2b5b0a41391e9d462926/redis-3.4.1.tar.gz"; - sha256 = "07yaj0j9fs7xdkg5bg926fa990khyigjbp31si8ai20vj8sv7kqd"; + url = "https://files.pythonhosted.org/packages/b3/17/1e567ff78c83854e16b98694411fe6e08c3426af866ad11397cddceb80d3/redis-3.5.3.tar.gz"; + sha256 = "0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2"; }; meta = { license = [ pkgs.lib.licenses.mit ]; @@ -784,7 +784,7 @@ self: super: { }; }; "rhodecode-vcsserver" = super.buildPythonPackage { - name = "rhodecode-vcsserver-4.23.2"; + name = "rhodecode-vcsserver-4.24.0"; buildInputs = [ self."pytest" self."py" diff --git a/requirements.txt b/requirements.txt --- a/requirements.txt +++ b/requirements.txt @@ -20,7 +20,7 @@ pyramid-mako==1.1.0 pygit2==0.28.2 repoze.lru==0.7 -redis==3.4.1 +redis==3.5.3 simplejson==3.16.0 subprocess32==3.5.4 subvertpy==0.10.1 diff --git a/vcsserver/VERSION b/vcsserver/VERSION --- a/vcsserver/VERSION +++ b/vcsserver/VERSION @@ -1,1 +1,1 @@ -4.23.2 \ No newline at end of file +4.24.0 \ No newline at end of file diff --git a/vcsserver/http_main.py b/vcsserver/http_main.py --- a/vcsserver/http_main.py +++ b/vcsserver/http_main.py @@ -25,6 +25,7 @@ import wsgiref.util import traceback import tempfile import resource +import psutil from itertools import chain from cStringIO import StringIO @@ -117,14 +118,21 @@ def _string_setting(settings, name, defa return settings[name] +def log_max_fd(): + try: + maxfd = psutil.Process().rlimit(psutil.RLIMIT_NOFILE)[1] + log.info('Max file descriptors value: %s', maxfd) + except Exception: + pass + + class VCS(object): def __init__(self, locale_conf=None, cache_config=None): self.locale = locale_conf self.cache_config = cache_config self._configure_locale() - maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1] - log.info('Max file descriptors value: %s', maxfd) + log_max_fd() if GitFactory and GitRemote: git_factory = GitFactory() diff --git a/vcsserver/svn.py b/vcsserver/svn.py --- a/vcsserver/svn.py +++ b/vcsserver/svn.py @@ -498,15 +498,15 @@ class SvnRemote(RemoteBase): return ''.join(p), ''.join(p.error) except (EnvironmentError, OSError) as err: - cmd = ' '.join(cmd) # human friendly CMD - tb_err = ("Couldn't run svn command (%s).\n" - "Original error was:%s\n" - "Call options:%s\n" - % (cmd, err, _opts)) - log.exception(tb_err) if safe_call: return '', err else: + cmd = ' '.join(cmd) # human friendly CMD + tb_err = ("Couldn't run svn command (%s).\n" + "Original error was:%s\n" + "Call options:%s\n" + % (cmd, err, _opts)) + log.exception(tb_err) raise exceptions.VcsException()(tb_err) @reraise_safe_exceptions