release: merge back stable branch into default

This commit is contained in:
Marcin Kuzminski 2019-03-11 11:57:20 +01:00
commit 604f7690b3
8 changed files with 64 additions and 29 deletions

View file

@ -0,0 +1,47 @@
|RCE| 4.16.1 |RNS|
------------------
Release Date
^^^^^^^^^^^^
- 2019-03-07
New Features
^^^^^^^^^^^^
General
^^^^^^^
- Docs: added missing reference for the user bookmarks feature.
Security
^^^^^^^^
- Comments: prevent from allowing to resolve TODO comments across projects. In certain
conditions users could resolve TODOs not belonging to the same project.
Performance
^^^^^^^^^^^
Fixes
^^^^^
- Downloads: fixed archive links from file tree view.
- Markdown: fixed sanitization of checkbox extensions that removed "checked" attribute.
- Upgrade: fixed upgrades from older versions of RhodeCode.
- Pull Requests: handle non-ascii branches from short branch selector via URL.
- Hooks: fixed again unicode problems with new pull request link generator.
Upgrade notes
^^^^^^^^^^^^^
- Scheduled release addressing problems in 4.16.X releases.

View file

@ -9,6 +9,7 @@ Release Notes
.. toctree::
:maxdepth: 1
release-notes-4.16.1.rst
release-notes-4.16.0.rst
release-notes-4.15.2.rst
release-notes-4.15.1.rst

View file

@ -70,7 +70,7 @@ markdown_attrs = {
"abbr": ["title"],
"acronym": ["title"],
"pre": ["lang"],
"input": ["type", "disabled"]
"input": ["type", "disabled", "checked"]
}
standard_styles = [

View file

@ -270,7 +270,7 @@ def post_push(extras):
# make lock is a tri state False, True, None. We only release lock on False
if extras.make_lock is False and not is_shadow_repo(extras):
Repository.unlock(Repository.get_by_repo_name(extras.repository))
msg = 'Released lock on repo `%s`\n' % extras.repository
msg = 'Released lock on repo `{}`\n'.format(safe_str(extras.repository))
output += msg
if extras.locked_by[0]:
@ -284,8 +284,8 @@ def post_push(extras):
output += _http_ret.title
if extras.new_refs:
tmpl = extras.server_url + '/' + extras.repository + \
"/pull-request/new?{ref_type}={ref_name}"
tmpl = '{}/{}/pull-request/new?{{ref_type}}={{ref_name}}'.format(
safe_str(extras.server_url), safe_str(extras.repository))
for branch_name in extras.new_refs['branches']:
output += 'RhodeCode: open pull request link: {}\n'.format(

View file

@ -18,26 +18,11 @@
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
import re
import markdown
from mdx_gfm import GithubFlavoredMarkdownExtension # pragma: no cover
class FlavoredCheckboxPostprocessor(markdown.postprocessors.Postprocessor):
"""
Adds `flavored_checkbox_list` class to list of checkboxes
"""
pattern = re.compile(r'^([*-]) \[([ x])\]')
def run(self, html):
before = '<ul>\n<li><input type="checkbox"'
after = '<ul class="flavored_checkbox_list">\n<li><input type="checkbox"'
return html.replace(before, after)
# Global Vars
URLIZE_RE = '(%s)' % '|'.join([
r'<(?:f|ht)tps?://[^>]*>',

View file

@ -26,7 +26,8 @@ log = logging.getLogger(__name__)
class UpgradeDb(BasePasterCommand):
"""Command used for paster to upgrade our database to newer version
"""
Command used for paster to upgrade our database to newer version
"""
max_args = 1
@ -41,7 +42,7 @@ class UpgradeDb(BasePasterCommand):
def command(self):
from rhodecode.lib.rc_commands import upgrade_db
upgrade_db.command(
self.path_to_ini_file, self.options.__dict__.get('force_ask'))
self.path_to_ini_file, self.options.__dict__.get('force_ask'), None)
def update_parser(self):
self.parser.add_option('--sql',

View file

@ -1420,8 +1420,8 @@ class PullRequestModel(BaseModel):
_ = translator or get_current_request().translate
commit_id = safe_str(commit_id) if commit_id else None
branch = safe_str(branch) if branch else None
bookmark = safe_str(bookmark) if bookmark else None
branch = safe_unicode(branch) if branch else None
bookmark = safe_unicode(bookmark) if bookmark else None
selected = None
@ -1439,10 +1439,11 @@ class PullRequestModel(BaseModel):
)
groups = []
for group_key, ref_list, group_name, match in sources:
group_refs = []
for ref_name, ref_id in ref_list:
ref_key = '%s:%s:%s' % (group_key, ref_name, ref_id)
ref_key = u'{}:{}:{}'.format(group_key, ref_name, ref_id)
group_refs.append((ref_key, ref_name))
if not selected:
@ -1456,11 +1457,11 @@ class PullRequestModel(BaseModel):
ref = commit_id or branch or bookmark
if ref:
raise CommitDoesNotExistError(
'No commit refs could be found matching: %s' % ref)
u'No commit refs could be found matching: {}'.format(ref))
elif repo.DEFAULT_BRANCH_NAME in repo.branches:
selected = 'branch:%s:%s' % (
repo.DEFAULT_BRANCH_NAME,
repo.branches[repo.DEFAULT_BRANCH_NAME]
selected = u'branch:{}:{}'.format(
safe_unicode(repo.DEFAULT_BRANCH_NAME),
safe_unicode(repo.branches[repo.DEFAULT_BRANCH_NAME])
)
elif repo.commit_ids:
# make the user select in this case

View file

@ -30,7 +30,7 @@
% if c.enable_downloads:
<% at_path = '{}.zip'.format(request.GET.get('at') or c.commit.raw_id[:6]) %>
<div title="${_('Download tree at {}').format(at_path)}" class="btn btn-default new-file">
<a href="${h.route_path('repo_archivefile',repo_name=c.repo_name, fname=c.commit.raw_id)}">
<a href="${h.route_path('repo_archivefile',repo_name=c.repo_name, fname='{}.zip'.format(c.commit.raw_id))}">
${_('Download tree at {}').format(at_path)}
</a>
</div>