summaryrefslogtreecommitdiff
path: root/prepareRelease.go
diff options
context:
space:
mode:
Diffstat (limited to 'prepareRelease.go')
-rw-r--r--prepareRelease.go128
1 files changed, 128 insertions, 0 deletions
diff --git a/prepareRelease.go b/prepareRelease.go
new file mode 100644
index 0000000..bd8d433
--- /dev/null
+++ b/prepareRelease.go
@@ -0,0 +1,128 @@
+package main
+
+import (
+ "os"
+
+ "go.wit.com/log"
+)
+
+func makePrepareRelease() {
+ me.Disable()
+ me.release.box.Disable()
+ defer me.Enable()
+
+ if setAllBranchesToMaster() {
+ // if it succeeds, disable this button
+ me.setBranchesToMasterB.Disable()
+ me.release.box.Enable()
+ PrintReleaseReport("", "")
+ } else {
+ log.Info("setAllBranchesToMaster() failed")
+ }
+
+ // first reset all the target versions back to the current version
+ // incase there was a partial release process running that
+ // did not finish
+ loop := me.repos.View.ReposSortByName()
+ for loop.Scan() {
+ repo := loop.Repo()
+
+ // find the gitpb.Repo
+ check := me.forge.Repos.FindByGoPath(repo.GoPath())
+ if check == nil {
+ log.Info("boo, you didn't git clone", repo.GoPath())
+ os.Exit(-1)
+ }
+
+ // set the target version to the current master version
+ curver := repo.Status.GetMasterVersion()
+ check.SetTargetVersion(curver)
+ }
+
+ // on startup, run fixGoDeps() on every go.sum that didn't match
+ if argv.Fix {
+ loop = me.repos.View.ReposSortByName()
+ for loop.Scan() {
+ repo := loop.Repo()
+ // find the gitpb.Repo
+ check := me.forge.Repos.FindByGoPath(repo.GoPath())
+ if check == nil {
+ log.Info("boo, you didn't git clone", repo.GoPath())
+ os.Exit(-1)
+ }
+ if !me.forge.FinalGoDepsCheckOk(check) {
+ fixGodeps(check)
+ }
+ }
+ }
+
+ // now figure out what to release and increment the version
+ loop = me.repos.View.ReposSortByName()
+ for loop.Scan() {
+ repo := loop.Repo()
+ // find the gitpb.Repo
+ check := me.forge.Repos.FindByGoPath(repo.GoPath())
+ if check == nil {
+ log.Info("boo, you didn't git clone", repo.GoPath())
+ os.Exit(-1)
+ }
+
+ // if check.GetGoPath() == "go.wit.com/dev/alexflint/arg" {
+ if check.GetGoPath() == "go.wit.com/gui" {
+ log.Info("arg", check.GetGoPath(), check.GetMasterVersion(), check.GoPrimitive)
+ if me.forge.FinalGoDepsCheckOk(check) {
+ log.Info("arg final check true", check.GetGoPath())
+ } else {
+ log.Info("arg final check false", check.GetGoPath())
+ // os.Exit(-1)
+ }
+ // see if there is a new version
+ master := repo.Status.GetMasterVersion()
+ lastTag := repo.Status.LastTag()
+ log.Info("arg ", master, lastTag)
+ // os.Exit(-1)
+ }
+ // check if the package dependancies changed, if so, re-publish
+ if !check.GoPrimitive {
+ if me.forge.FinalGoDepsCheckOk(check) {
+ log.Printf("go.sum is perfect! %s\n", check.GetGoPath())
+ } else {
+ log.Printf("dependancy checks indicate a new release is needed for %s\n", check.GetGoPath())
+ repo.Status.IncrementRevisionVersion("godeps changed")
+ target := repo.Status.GetTargetVersion()
+ check.SetTargetVersion(target)
+ }
+ }
+
+ // see if there is a new version
+ master := repo.Status.GetMasterVersion()
+ lastTag := repo.Status.LastTag()
+ if master == lastTag {
+ repo.Status.SetTargetVersion(master)
+ } else {
+ repo.Status.IncrementRevisionVersion("Nov 2024 test")
+ target := repo.Status.GetTargetVersion()
+ check.SetTargetVersion(target)
+ }
+ // if check.GetGoPath() == "go.wit.com/dev/alexflint/arg" {
+ // if check.GetGoPath() == "go.wit.com/gui" {
+ if check.GetGoPath() == "go.wit.com/dev/davecgh/spew" {
+ log.Info(repo.StandardReleaseHeader())
+ log.Info(me.forge.StandardReleaseHeader(check, repo.State()))
+ log.Info("arg", check.GetGoPath(), check.GetMasterVersion(), check.GoPrimitive)
+ if me.forge.FinalGoDepsCheckOk(check) {
+ log.Info("go.sum is perfect")
+ } else {
+ log.Info("go.sum check false")
+ }
+ // see if there is a new version
+ master := repo.Status.GetMasterVersion()
+ lastTag := repo.Status.LastTag()
+ log.Info("arg ", master, lastTag)
+ if master != lastTag {
+ os.Exit(-1)
+ }
+ }
+ }
+ findNext()
+}