1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-10-05 18:50:09 +02:00

Add "Changelog:" metadata field.

This commit is contained in:
Boris Kraut 2015-01-11 02:26:41 +01:00
parent d1cf1c37b4
commit b1ec8cc47a
6 changed files with 39 additions and 2 deletions

View File

@ -468,6 +468,7 @@ The following sections describe the fields recognised within the file.
* Web Site::
* Source Code::
* Issue Tracker::
* Changelog::
* Donate::
* FlattrID::
* Bitcoin::
@ -632,6 +633,16 @@ applications have one.
This is converted to (@code{<tracker>}) in the public index file.
@node Changelog
@section Changelog
@cindex Changelog
The URL for the application's changelog. Optional, since not all
applications have one.
This is converted to (@code{<changelog>}) in the public index file.
@node Donate
@section Donate

View File

@ -128,6 +128,7 @@ def main():
# Figure out what kind of project it is...
projecttype = None
issuetracker = None
changelog = None
license = None
website = url # by default, we might override it
if url.startswith('git://'):
@ -142,6 +143,7 @@ def main():
repotype = 'git'
sourcecode = url
issuetracker = url + '/issues'
changelog = url + '/commits'
elif url.startswith('https://gitlab.com/'):
projecttype = 'gitlab'
repo = url
@ -275,6 +277,8 @@ def main():
app['Source Code'] = sourcecode
if issuetracker:
app['Issue Tracker'] = issuetracker
if changelog:
app['Changelog'] = changelog
if license:
app['License'] = license
app['Repo Type'] = repotype

View File

@ -74,6 +74,14 @@ regex_warnings = {
(re.compile(r'.*[^sS]://gitorious\.org/.*'),
"gitorious URLs should always use https:// not http://"),
],
'Changelog': [
(re.compile(r'.*[^sS]://code\.google\.com/.*'),
"code.google.com URLs should always use https:// not http://"),
(re.compile(r'.*[^sS]://github\.com/.*'),
"github URLs should always use https:// not http://"),
(re.compile(r'.*[^sS]://gitorious\.org/.*'),
"gitorious URLs should always use https:// not http://"),
],
'License': [
(re.compile(r'^(|None|Unknown)$'),
"No license specified"),
@ -119,6 +127,10 @@ regex_pedantic = {
(re.compile(r'.*github\.com/[^/]+/[^/]+/issues/.*'),
"/issues is often enough on its own"),
],
'Changelog': [
(re.compile(r'.*commit.*', re.IGNORECASE),
"Not every commit log is suitable as change log"),
],
'Summary': [
(re.compile(r'.*\b(free software|open source)\b.*', re.IGNORECASE),
"No need to specify that the app is Free Software"),

View File

@ -48,6 +48,7 @@ app_defaults = OrderedDict([
('Web Site', ''),
('Source Code', ''),
('Issue Tracker', ''),
('Changelog', ''),
('Donate', None),
('FlattrID', None),
('Bitcoin', None),
@ -169,7 +170,7 @@ valuetypes = {
FieldValidator("HTTP link",
r'^http[s]?://', None,
["Web Site", "Source Code", "Issue Tracker", "Donate"], []),
["Web Site", "Source Code", "Issue Tracker", "Changelog", "Donate"], []),
FieldValidator("Bitcoin address",
r'^[a-zA-Z0-9]{27,34}$', None,
@ -826,6 +827,7 @@ def write_metadata(dest, app):
writefield('Web Site')
writefield('Source Code')
writefield('Issue Tracker')
writefield('Changelog')
writefield_nonempty('Donate')
writefield_nonempty('FlattrID')
writefield_nonempty('Bitcoin')

View File

@ -92,7 +92,7 @@ def update_wiki(apps, sortedids, apks):
if app['AntiFeatures']:
for af in app['AntiFeatures'].split(','):
wikidata += '{{AntiFeature|' + af + '}}\n'
wikidata += '{{App|id=%s|name=%s|added=%s|lastupdated=%s|source=%s|tracker=%s|web=%s|donate=%s|flattr=%s|bitcoin=%s|litecoin=%s|dogecoin=%s|license=%s|root=%s}}\n' % (
wikidata += '{{App|id=%s|name=%s|added=%s|lastupdated=%s|source=%s|tracker=%s|web=%s|changelog=%s|donate=%s|flattr=%s|bitcoin=%s|litecoin=%s|dogecoin=%s|license=%s|root=%s}}\n' % (
appid,
app['Name'],
time.strftime('%Y-%m-%d', app['added']) if 'added' in app else '',
@ -100,6 +100,7 @@ def update_wiki(apps, sortedids, apks):
app['Source Code'],
app['Issue Tracker'],
app['Web Site'],
app['Changelog'],
app['Donate'],
app['FlattrID'],
app['Bitcoin'],
@ -780,6 +781,7 @@ def make_index(apps, sortedids, apks, repodir, archive, categories):
addElement('web', app['Web Site'], doc, apel)
addElement('source', app['Source Code'], doc, apel)
addElement('tracker', app['Issue Tracker'], doc, apel)
addElement('changelog', app['Changelog'], doc, apel)
if app['Donate']:
addElement('donate', app['Donate'], doc, apel)
if app['Bitcoin']:
@ -1064,6 +1066,7 @@ def main():
f.write("Web Site:\n")
f.write("Source Code:\n")
f.write("Issue Tracker:\n")
f.write("Changelog:\n")
f.write("Summary:" + apk['name'] + "\n")
f.write("Description:\n")
f.write(apk['name'] + "\n")

View File

@ -284,6 +284,9 @@ class FDroid
case "tracker":
$issues=$el;
break;
case "changelog":
$changelog=$el;
break;
case "donate":
$donate=$el;
break;
@ -398,6 +401,8 @@ class FDroid
$out.='<b>Issue Tracker:</b> <a href="'.$issues.'">'.$issues.'</a><br />';
if(strlen($source)>0)
$out.='<b>Source Code:</b> <a href="'.$source.'">'.$source.'</a><br />';
if(strlen($changelog)>0)
$out.='<b>Changelog:</b> <a href="'.$changelog.'">'.$changelog.'</a><br />';
if(isset($donate) && strlen($donate)>0)
$out.='<b>Donate:</b> <a href="'.$donate.'">'.$donate.'</a><br />';
if(isset($flattr) && strlen($flattr)>0)