Replace build date with Git hash and commit date

The usage of a build date prevents reproducible builds.
This commit is contained in:
Sebastian Huber 2019-01-04 11:02:45 +01:00
parent c1d296ae96
commit 3202e319a1
3 changed files with 39 additions and 47 deletions

View File

@ -1,26 +1,3 @@
import datetime
def build_date():
now = datetime.date.today()
m = now.strftime('%B')
y = now.strftime('%Y')
if now.day == 11:
s = 'th'
elif now.day % 10 == 1:
s = 'st'
elif now.day == 12:
s = 'th'
elif now.day % 10 == 2:
s = 'nd'
elif now.day == 13:
s = 'th'
elif now.day == 3:
s = 'rd'
else:
s = 'th'
d = '%2d%s' % (now.day, s)
return '%s %s %s' % (d, m, y)
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.coverage",
@ -47,7 +24,7 @@ master_doc = 'index'
# General information about the project.
project = u'RTEMS Documentation Project'
copyright = u'2018, RTEMS Project (built %s)' % (build_date())
copyright = u'2018, RTEMS Project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the

View File

@ -17,24 +17,8 @@ import latex
sphinx_min_version = (1, 3)
def build_date():
import datetime
now = datetime.date.today()
m = now.strftime('%B')
y = now.strftime('%Y')
if now.day % 10 == 1:
s = 'st'
elif now.day % 10 == 2:
s = 'nd'
elif now.day == 3:
s = 'rd'
else:
s = 'th'
d = '%2d%s' % (now.day, s)
return '%s %s %s' % (d, m, y)
def version_cmdline(ctx):
return '-Drelease="%s" -Dversion="%s"' % (ctx.env.VERSION, ctx.env.VERSION)
return '-Drelease="%s" -Dversion="%s"' % (ctx.env.RELEASE, ctx.env.VERSION)
def sphinx_cmdline(ctx, build_type, conf_dir, doctrees,
source_dir, output_dir, configs = []):
@ -207,8 +191,6 @@ def check_sphinx_extension(ctx, extension):
def cmd_configure(ctx):
check_sphinx = not ctx.env.BIN_SPHINX_BUILD
if check_sphinx:
ctx.msg('Checking version', ctx.env.VERSION)
ctx.find_program("sphinx-build", var="BIN_SPHINX_BUILD", mandatory = True)
ctx.find_program("aspell", var = "BIN_ASPELL", mandatory = False)
@ -502,7 +484,7 @@ def xml_catalogue(ctx, building):
cat = xml.Document()
root = cat.createElement('rtems-docs')
root.setAttribute('date', build_date())
root.setAttribute('date', ctx.env.DATE)
cat.appendChild(root)
heading = cat.createElement('catalogue')

39
wscript
View File

@ -9,8 +9,6 @@ path.append(abspath('common'))
import waflib
import waf as docs_waf
version = '5.0.0 (master)'
build_all = ['user',
'rsb',
'c-user',
@ -31,7 +29,6 @@ def options(opt):
docs_waf.cmd_options(opt)
def configure(conf):
conf.env.VERSION = version
for b in building:
conf.recurse(b)
conf.env['BUILD_FROM_TOP'] = 'yes'
@ -53,7 +50,43 @@ def coverpage_js(ctx):
with open(ctx.outputs[0].abspath(), 'w') as o:
o.write(js.replace('@CATALOGUE', xml))
def pretty_day(day):
if day == 3:
s = 'rd'
elif day == 11:
s = 'th'
elif day == 12:
s = 'th'
elif day == 13:
s = 'th'
elif day % 10 == 1:
s = 'st'
elif day % 10 == 2:
s = 'nd'
else:
s = 'th'
return str(day) + s
def build(ctx):
#
# Get date and version from Git
#
version = '5.0.0'
if ctx.exec_command(['git', 'diff-index', '--quiet', 'HEAD']) == 0:
modified = ''
else:
modified = '-modified'
try:
out = ctx.cmd_and_log(['git', 'log', '-1', '--format=%H,%cd', '--date=format:%e,%B,%Y'])
f = out.strip('\n').split(',')
version = version + '.' + f[0] + modified
date = pretty_day(int(f[1])) + ' ' + f[2] + ' ' + f[3]
except waflib.Build.Errors.WafError:
date = 'unknown date'
ctx.env.DATE = date
ctx.env.RELEASE = version + ' (' + date + ')'
ctx.env.VERSION = version
#
# Generate any PlantUML images if enabled.
#