From c240b05369ba74d6add3fc6cfce748ad78e7f783 Mon Sep 17 00:00:00 2001 From: Nathan Chan Date: Fri, 8 Dec 2017 11:37:28 -0800 Subject: [PATCH] Sort controllers so that builds are reproducible. Ordering of controllers in routes.go and main.go is unstable in successive runs of revel build. This change will assure that the ordering is stable. --- harness/build.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/harness/build.go b/harness/build.go index d2b92d7..9edd2ca 100755 --- a/harness/build.go +++ b/harness/build.go @@ -42,6 +42,10 @@ func Build(buildFlags ...string) (app *App, compileError *revel.Error) { sourceInfo.InitImportPaths = append(sourceInfo.InitImportPaths, strings.Split(dbImportPath,",")...) } + // Sort controllers so that file generation is reproducible + controllers := sourceInfo.ControllerSpecs() + sort.SliceStable(controllers, func(i, j int) bool { return controllers[i].String() < controllers[j].String() }) + // Generate two source files. templateArgs := map[string]interface{}{ "Controllers": sourceInfo.ControllerSpecs(),