* Web Site::
* Source Code::
* Issue Tracker::
+* Changelog::
* Donate::
* FlattrID::
* Bitcoin::
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
# 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://'):
repotype = 'git'
sourcecode = url
issuetracker = url + '/issues'
+ changelog = url + '/commits'
elif url.startswith('https://gitlab.com/'):
projecttype = 'gitlab'
repo = url
app['Source Code'] = sourcecode
if issuetracker:
app['Issue Tracker'] = issuetracker
+ if changelog:
+ app['Changelog'] = changelog
if license:
app['License'] = license
app['Repo Type'] = repotype
(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"),
(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"),
('Web Site', ''),
('Source Code', ''),
('Issue Tracker', ''),
+ ('Changelog', ''),
('Donate', None),
('FlattrID', None),
('Bitcoin', None),
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,
writefield('Web Site')
writefield('Source Code')
writefield('Issue Tracker')
+ writefield('Changelog')
writefield_nonempty('Donate')
writefield_nonempty('FlattrID')
writefield_nonempty('Bitcoin')
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 '',
app['Source Code'],
app['Issue Tracker'],
app['Web Site'],
+ app['Changelog'],
app['Donate'],
app['FlattrID'],
app['Bitcoin'],
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']:
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")
case "tracker":
$issues=$el;
break;
+ case "changelog":
+ $changelog=$el;
+ break;
case "donate":
$donate=$el;
break;
$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)