RhodeCode - issues: Issueshttps://issues.rhodecode.com/https://issues.rhodecode.com/favicon.ico?16960560042020-01-15T10:45:22ZRhodeCode - issues
Redmine RhodeCode Control - Feature #5582 (New): Add the version number of a PR in the HTTP APIhttps://issues.rhodecode.com/issues/55822020-01-15T10:45:22ZOlivier Renaud
<p>The JSON response of <code>get_pull_request</code> does not include the version number of the pull request (the one that gets incremented when a PR is updated with new commits). It would be a useful information to report in my use case (writing a bot that acts as a PR reviewer for TeamCity builds).</p>
<p>Using the Python api, I can find the version number with this code, but there is no workaround when working with the HTTP API.</p>
<pre><code class="python syntaxhl" data-language="python"><span class="n">pr</span> <span class="o">=</span> <span class="n">PullRequest</span><span class="p">.</span><span class="n">get</span><span class="p">(</span><span class="n">pr_id</span><span class="p">)</span>
<span class="n">pr_version</span> <span class="o">=</span> <span class="n">pr</span><span class="p">.</span><span class="n">versions</span><span class="p">.</span><span class="n">count</span><span class="p">()</span> <span class="o">+</span> <span class="mi">1</span>
</code></pre> RhodeCode Control - Bug #5535 (New): improper rollback on upgrade failurehttps://issues.rhodecode.com/issues/55352019-02-09T21:12:54ZCatalin Salgau
<p>Behaviour probably not strictly related to version, but for context. (I accept that those old versions are no longer supported.)<br>
Migrating a 2.1.0 instance to 2.2.8 hit an error relating to a package rename (pkg_resources.DistributionNotFound: rhodecodemomentum) and attempted rollback.<br>
<em>instancename/profile</em> symlink was rolled back, but not the rhodecode.ini file, resulting in the app egg still pointing to egg:rhodecodemomentum and the instance failing to restart.<br>
Manually renaming rhodecode.backup_2.1.0.ini back fixed the issue.</p>
RhodeCode Control - Feature #5534 (New): extract/preload subcommandhttps://issues.rhodecode.com/issues/55342019-02-09T20:22:48ZCatalin Salgau
<p>Per documentation, restoring an instance involves creating a new instance and replacing files.<br>
Assuming one is restoring their entire ~/.rccontrol folder, the issue, as I see it, comes down to not having the required files expanded under the NIX store, as symlinked from <em>instancename/profile</em>.<br>
I'd like to suggest an <em>rccontrol extract</em> command that downloads (if not in cache/offline) and extracts the proper files on restore/upgrade, without the intermediary new instance step.<br>
This would also simplify cleanup of the nix store on live instances.</p>
RhodeCode Tools - Bug #5531 (New): rhodecode-index: default cli opts overwrite given mapping filehttps://issues.rhodecode.com/issues/55312019-02-08T16:34:36ZPeter Colledge
<p>For example, if I provide a mapping file with</p>
<pre><code>[__DEFAULT__]
repo_limit = 1
</code></pre>
<p>I still get an unlimited limit, which is the default CLI param, until I explicitly use the CLI param <code>rhodecode-index... --repo-limit 1</code></p>
<p>See parse_opts in rhodecode_tools/commands/index.py </p>
<p>Version 756dd5c2d0b6 (v1.1.0) of cloned+venv'ed rhodecode-tools-ce.</p>
RhodeCode Control - Bug #5501 (New): rccontrol throwing rccontrol.lib.exceptions.SupervisorFailed...https://issues.rhodecode.com/issues/55012018-10-12T14:37:19Zdan m
<p>Attempting to run any command that invokes supervisord gives me the following STE:</p>
<p>$ rccontrol status community-1<br>
RHODECODE CONTROL VERSION: 1.19.2<br>
Starting supervisord.<br>
Traceback (most recent call last):<br>
File "/opt/rhodecode/store/i58g29lpsgfr7jxsirfx2xsjhddllrc5-python2.7-supervisor-3.3.4/bin/.supervisord-wrapped", line 12, in <br>
sys.exit(main())<br>
File "/opt/rhodecode/store/i58g29lpsgfr7jxsirfx2xsjhddllrc5-python2.7-supervisor-3.3.4/lib/python2.7/site-packages/supervisor/supervisord.py", line 357, in main<br>
go(options)<br>
File "/opt/rhodecode/store/i58g29lpsgfr7jxsirfx2xsjhddllrc5-python2.7-supervisor-3.3.4/lib/python2.7/site-packages/supervisor/supervisord.py", line 367, in go<br>
d.main()<br>
File "/opt/rhodecode/store/i58g29lpsgfr7jxsirfx2xsjhddllrc5-python2.7-supervisor-3.3.4/lib/python2.7/site-packages/supervisor/supervisord.py", line 67, in main<br>
self.options.set_rlimits_or_exit()<br>
File "/opt/rhodecode/store/i58g29lpsgfr7jxsirfx2xsjhddllrc5-python2.7-supervisor-3.3.4/lib/python2.7/site-packages/supervisor/options.py", line 1398, in set_rlimits_or_exit<br>
soft, hard = resource.getrlimit(res)<br>
resource.error: (38, 'Function not implemented')<br>
Supervisord did not start properly.<br>
Traceback (most recent call last):<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/bin/..rccontrol-wrapped-wrapped", line 12, in <br>
sys.exit(cmd())<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/main.py", line 54, in cmd<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 716, in <strong>call</strong><br>
return self.main(*args, **kwargs)<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 696, in main<br>
rv = self.invoke(ctx)<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 1060, in invoke<br>
return _process_result(sub_ctx.command.invoke(sub_ctx))<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 889, in invoke<br>
return ctx.invoke(self.callback, **ctx.params)<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 534, in invoke<br>
return callback(*args, **kwargs)<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/decorators.py", line 64, in new_func<br>
return ctx.invoke(f, obj, *args[1:], **kwargs)<br>
File "/opt/rhodecode/store/bbsdjfz28lj6g8s90wbj6i746nwxhh2s-python2.7-click-6.6/lib/python2.7/site-packages/click/core.py", line 534, in invoke<br>
return callback(*args, **kwargs)<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/status.py", line 21, in cmd<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/lib/utils.py", line 431, in wrapper<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/status.py", line 34, in main<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/lib/context.py", line 1951, in status<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/lib/context.py", line 1059, in get_process_status<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/lib/context.py", line 1049, in get_process_info<br>
File "/opt/rhodecode/store/hvmz2dqbl1ha75bnw4gh7kgy6wqk62jz-python2.7-rhodecode-control-1.19.2/lib/python2.7/site-packages/rccontrol/lib/context.py", line 1326, in xmlrpc<br>
rccontrol.lib.exceptions.SupervisorFailedToStart</p>
<p>RC version: 1.19.2<br>
What's installed: 1 CE instance, 1 VCSServer instance<br>
OS: CentOs 6.10 (updates current up to the past week or so)</p>
<p>Comments to follow</p>
RhodeCode Tools - Bug #5450 (New): rhodecode-api get_license_info no longer workshttps://issues.rhodecode.com/issues/54502018-03-19T18:16:55ZGildas Fargeasgildas.fargeas@nerd.nintendo.com
<p>I just noticed that but it seems the method get_license_info no longer works in the api.<br>
I get the same error using either a curl request or rhodecode-api bin. I also checked get_users and it works fine.<br>
Can you reproduce this error ?</p>
<pre><code>ERROR: Backend server at `http://127.0.0.1:10002/_admin/api` returned non 2XX http code (500). Please make sure it is running and accepting connections. Original response: <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Error - 500 Internal Server Error</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="robots" content="index, nofollow"/>
<link rel="icon" href="/_static/rhodecode/images/favicon.ico" sizes="16x16 32x32" type="image/png" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link rel="stylesheet" type="text/css" href="/_static/rhodecode/css/style.css" media="screen"/>
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="/_static/rhodecode/css/ie.css" media="screen"/>
<![endif]-->
<style>body { background:#eeeeee; }</style>
<script type="text/javascript">
// register templateContext to pass template variables to JS
var templateContext = {timeago: {}};
</script>
<script type="text/javascript" src="/_static/rhodecode/js/scripts.js"></script>
</head>
<body>
<div class="wrapper error_page">
<div class="sidebar">
<a href="/"><img class="error-page-logo" src="/_static/rhodecode/images/RhodeCode_Logo_Black.png" alt="RhodeCode"/></a>
</div>
<div class="main-content">
<h1>
<span class="error-branding">
RhodeCode
</span><br/>
500 Internal Server Error | <span class="error_message">The server has either erred or is incapable of performing the requested operation.</span>
</h1>
<div class="inner-column">
<h4>Possible Causes</h4>
<ul>
<li>Server is overloaded.</li>
<li>Server database connection is lost.</li>
<li>Server expected unhandled error.</li>
</ul>
</div>
<div class="inner-column">
<h4>Support</h4>
<p>For support, go to <a href="https://rhodecode.com/help/" target="_blank">Support</a>.
It may be useful to include your log file; see the log file locations <a href="https://rhodecode.com/r1/enterprise/docs/admin-system-overview/">here</a>.
</p>
</div>
<div class="inner-column">
<h4>Documentation</h4>
<p>For more information, see <a href="https://rhodecode.com/r1/enterprise/docs/">docs.rhodecode.com</a>.</p>
</div>
</div>
</div>
</body>
</html>
None
</code></pre> RhodeCode CE/EE - Task #5270 (New): Comments updateshttps://issues.rhodecode.com/issues/52702017-04-05T12:39:52ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>Think about emails sent out on on comments:</p>
<ul>
<li>maybe they shouldn’t be inside both </li>
<li>add more context (TODO resolution)</li>
<li>Maybe thread that would allow reading those ?</li>
</ul>
RhodeCode CE/EE - Task #4289 (New): [ce, ee] clean up pygments lexer functions + handlinghttps://issues.rhodecode.com/issues/42892016-10-21T14:40:28ZDaniel Ddaniel@rhodecode.com
<p>Currently there are a few lexer functions that seem duplicated/incoherent with each other. This seems to be also tied with the rc extensions which can define custom lexers/file extension mappings in example-ext.py:</p>
<pre><code>
# =============================================================================
# END OF UTILITY FUNCTIONS HERE
# =============================================================================
# Additional mappings that are not present in the pygments lexers
# used for building stats
# format is {'ext':['Names']} eg. {'py':['Python']} note: there can be
# more than one name for extension
# NOTE: that this will override any mappings in LANGUAGES_EXTENSIONS_MAP
# build by pygments
EXTRA_MAPPINGS = {}
# additional lexer definitions for custom files it's overrides pygments lexers,
# and uses defined name of lexer to colorize the files. Format is {'ext':
# 'lexer_name'} List of lexers can be printed running:
# >> python -c "import pprint;from pygments import lexers;
# pprint.pprint([(x[0], x[1]) for x in lexers.get_all_lexers()]);"
EXTRA_LEXERS = {}
</code></pre>
<p>Then there are the functions get_custom_lexer and the FileNode attributes <code>filenode.lexer</code> which don't seem to follow the same logic - the filenode lexer for example seems to prefer a lexer matching the filename instead of a defined custom lexer.</p>
<p>We should use a common base for getting a lexer - one that first returns custom lexer mappings (so that for example .html can be mapped to mako).</p>
<p>Extending on this it could be possible to make the file extension => lexer mapping a per repository setting, exposed via the ui, which would give the best usability in terms of letting each repo specify which lexer to prefer ... again for example <code>.html => mako</code> </p>
RhodeCode CE/EE - Bug #4256 (New): [ce, ee, ux] Source code highlight colors conflict with red/gr...https://issues.rhodecode.com/issues/42562016-10-03T05:00:14ZDaniel Ddaniel@rhodecode.com
<p>The CSS for pygments uses some green and red text which conflict with green/red blocks we use in diffs - have to change these to something else. </p>
RhodeCode CE/EE - Task #4246 (New): [ce, ee, vcs, git] add tests for annotated git tagshttps://issues.rhodecode.com/issues/42462016-09-27T15:46:51ZDaniel Ddaniel@rhodecode.com
<p>Need to add a test that makes sure annotated git tags are correctly dereferenced / peeled to the actual commit they point to.</p>
RhodeCode CE/EE - Feature #4232 (New): [ce, ee, pr, compare] redo diffs, support side by side dif...https://issues.rhodecode.com/issues/42322016-09-18T16:40:43ZDaniel Ddaniel@rhodecode.com
<p>One of the most requested features is side by side diffs for multiple files at the same time (eg. pull request & compare pages).</p>
<p>Currently we have side by side diffs implemented for a single files only using the javascript library mergely. This doesn't include inline comments and uses different syntax highlighting to the rest of Rhodecode. Copy paste of code also works differently between the pr page and the side/side view.</p>
<p>There is another javascript diff library: <a href="https://diff2html.xyz/demo" class="external">https://diff2html.xyz/demo</a>, which gives very good results, however integrating inline comments and context loading into this proved to be a lot of trouble, also the syntax highlighting doesn't support partial code blocks very well, eg:</p>
<pre><code>51 this is the end of a doc string
52 """
53 return True
</code></pre>
<p>will mark the <code>return True</code> part as a string.</p>
<p>Therefore the things we need in diffs are:</p>
<ul>
<li>Syntax highlighting based on the entire file, rather than the partial diff</li>
<li>Inline comments + all relevant functionality</li>
<li>Ajax file context loading (eg. click to load more lines of a file before/after the changed lines)</li>
<li>In the browser conversion between raw/unified/side diffs - using JS</li>
</ul>
<p>This will be exposed as a reusuable widget that can be used anywhere in Rhodecode, taking a diff reference as a sole argument.</p>
<p>The steps to create the diff are:</p>
<ol>
<li>Generate the diff chunks for each file</li>
<li>Get the old and new versions of the files, highlight using pygments</li>
<li>Use custom pygments renderer to generate the diff context:
<ol>
<li>Using the original highlighted file lines which will have proper syntax highlighting colors</li>
<li>Support both unified/sideside without modification</li>
<li>Use a table that is copypaste friendly</li>
<li>Add inline comments + functionality </li>
<li>Expose load more file lines context functionality markers</li>
</ol></li>
<li>Render this in the template</li>
<li>Apply javascript events lazily to avoid the overheads of adding events to every single element</li>
</ol>
<p>This will also require an endpoint to get the partial N-M lines context of a file @ revision via ajax</p>
RhodeCode CE/EE - Bug #4208 (New): [ce, ee] test errors get hidden by error pagehttps://issues.rhodecode.com/issues/42082016-08-30T18:42:32ZDaniel Ddaniel@rhodecode.com
<p>When running tests the traceback is excepted away by the error handler page, this makes it difficult to debug since eg</p>
<pre><code>app.get('/page_that_errors')
</code></pre>
<p>will return a 500 error page instead of a traceback.</p>
<p>OTOH making tests always raise errors will then break the page that checks if the pretty error page is working as it should.</p>
<p>Need to add a dynamic setting, eg settings['use_error_document'] = False - that can be turned on/off at will and will disable the pretty error page handler for running tests.</p>
RhodeCode CE/EE - Task #4197 (New): [ce, ee] get list of users with their permissions to a reposi...https://issues.rhodecode.com/issues/41972016-08-24T14:31:24ZDaniel Ddaniel@rhodecode.com
<p>Related to <a href="https://issues.rhodecode.com/issues/4150" class="external">https://issues.rhodecode.com/issues/4150</a></p>
<p>Need a way to get all users from a repository along with their permissions for that repo.</p>
<p>At the moment permissions are generated via a complex python object in rhodecode.lib.auth:AuthUser which calculates the tree for a single user, taking into account default user, repo settings (overriding globals or not), and usergroups.</p>
<p>Iterating over the entire list of users is much too slow, some preliminary benchmarks show that it will take 10seconds / 100users.</p>
<p>In order to do this quickly instead, we would have to generate permissions via sql - A simplish (not completely correct results) query shows it will take about 50ms on internal rhodecode db.</p>
<pre><code>
SELECT
users.username,
repositories.repo_name,
MIN(origin_sort || '-' || permission_name) as perm
FROM (
SELECT
'' as ug,
permissions.permission_name,
user_id,
repository_id,
'1-user' as origin_sort
FROM
repo_to_perm
JOIN
permissions ON
permissions.permission_id = repo_to_perm.permission_id
-- WHERE repository_id = 190
UNION ALL
SELECT
users_groups.users_group_name,
permissions.permission_name,
users_groups_members.user_id,
repository_id,
'2-usergroup-' || users_groups.users_group_name as origin_sort
FROM
users_group_repo_to_perm
JOIN
permissions ON
permissions.permission_id = users_group_repo_to_perm.permission_id
JOIN
users_groups_members
ON
users_groups_members.users_group_id = users_group_repo_to_perm.users_group_id
JOIN
users_groups
ON
users_group_repo_to_perm.users_group_id = users_groups.users_group_id
-- WHERE repository_id = 190
) tmp_user_and_usergroup_perms
JOIN users ON users.user_id = tmp_user_and_usergroup_perms.user_id
JOIN repositories ON repositories.repo_id = tmp_user_and_usergroup_perms.repository_id
GROUP BY users.username, repositories.repo_name
ORDER BY username, perm
;
</code></pre> RhodeCode CE/EE - Feature #4074 (New): Edit review commenthttps://issues.rhodecode.com/issues/40742016-07-06T16:50:33ZTamas Gemes
<p>Currently you can only create and delete your comments during a review.<br>
This is the same for in-code comments and global (commit or pull request) comments.</p>
<p>It would be nice to have an edit feature too.</p>
RhodeCode Tools - Task #3333 (New): Create rhodecode-tools backup command for backup of RhodeCode...https://issues.rhodecode.com/issues/33332016-03-17T12:43:52ZMarcin Kuzminski [CTO]marcin@rhodecode.com
<p>We should create a backup command that allows to backup instances.</p>
<ul>
<li>needs to be atomic for repositories so we don't catch a push in progress operation</li>
<li>needs to identify all required files to backup including configs, extra hooks, gists, databases etc</li>
</ul>