summaryrefslogtreecommitdiff
path: root/releaseBox.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-02-18 15:09:04 -0600
committerJeff Carr <[email protected]>2024-02-18 15:09:04 -0600
commit08c7765cc70bae20479ad0aa1897b6a4cfc3613a (patch)
treedacc65539b521cd3fc285579712bd2ef7bd8a486 /releaseBox.go
parentbbc78159fe11c78ae33cc8026887f62888003630 (diff)
guireleaser builds again
Diffstat (limited to 'releaseBox.go')
-rw-r--r--releaseBox.go238
1 files changed, 91 insertions, 147 deletions
diff --git a/releaseBox.go b/releaseBox.go
index c3e90c8..27581b5 100644
--- a/releaseBox.go
+++ b/releaseBox.go
@@ -10,12 +10,13 @@ import (
"go.wit.com/log"
"go.wit.com/lib/gadgets"
+ "go.wit.com/lib/gui/repolist"
)
var release releaseStruct
type releaseStruct struct {
- current *repo
+ current *repolist.Repo
box *gui.Node
group *gui.Node
@@ -40,11 +41,11 @@ type releaseStruct struct {
makeRedomodB *gui.Node
sendVersionB *gui.Node
checkSafeB *gui.Node
- whitelist map[string]*repo
+ whitelist map[string]*repolist.Repo
// store myself here. use myself to
// do garbage go get tests and other potential junk
- guireleaser *repo
+ guireleaser *repolist.Repo
}
func (w *autoType) Disable() {
@@ -75,16 +76,18 @@ func createReleaseBox(box *gui.Node) {
me.Enable()
})
release.grid.NewButton("findNextDirty()", func() {
- me.Disable()
- defer me.Enable()
- if findNextDirty("PRIMATIVE") {
- log.Info("findNextDirty() found a repo")
- return
- }
- if findNextDirty("") {
- log.Info("findNextDirty() found a repo")
- return
- }
+ /*
+ me.Disable()
+ defer me.Enable()
+ if findNextDirty("PRIMATIVE") {
+ log.Info("findNextDirty() found a repo")
+ return
+ }
+ if findNextDirty("") {
+ log.Info("findNextDirty() found a repo")
+ return
+ }
+ */
})
release.releaseVersionB = release.grid.NewButton("release version", func() {
@@ -98,7 +101,7 @@ func createReleaseBox(box *gui.Node) {
})
release.openrepo = release.grid.NewButton("open repo", func() {
- release.current.status.Toggle()
+ release.current.Status.Toggle()
})
release.openrepo.Disable()
@@ -134,22 +137,22 @@ func createReleaseBox(box *gui.Node) {
release.grid.NewButton("Check Ready", func() {
buttonDisable()
defer buttonEnable()
- goSumS := release.current.getGoSumStatus()
- dirtyS := release.current.dirtyLabel.String()
- lastS := release.current.status.GetLastTagVersion()
+ goSumS := release.current.GoState()
+ dirtyS := release.current.State()
+ lastS := release.current.LastTag()
if CheckReady() {
- log.Info("repo is ready", release.current.String(), goSumS, dirtyS, lastS)
+ log.Info("repo is ready", release.current.Name(), goSumS, dirtyS, lastS)
return
} else {
- log.Info("\trepo is not ready", release.current.String(), goSumS, dirtyS, lastS)
+ log.Info("\trepo is not ready", release.current.Name(), goSumS, dirtyS, lastS)
}
})
release.grid.NewButton("set ignore", func() {
- tmp := release.current.getGoSumStatus()
+ tmp := release.current.GoState()
log.Info("trying to set repo IGNORE is now =", tmp)
- release.current.setGoSumStatus("IGNORE")
- release.whitelist[release.current.String()] = release.current
+ release.current.SetGoState("IGNORE")
+ release.whitelist[release.current.GoPath()] = release.current
})
release.checkSafeB = release.grid.NewButton("fullDoubleCheckFix()", func() {
@@ -165,18 +168,18 @@ func createReleaseBox(box *gui.Node) {
release.checkGoSumB = release.grid.NewButton("CheckGoSum()", func() {
buttonDisable()
- if ok, _ := release.current.status.CheckGoSum(); ok {
+ if ok, _ := release.current.Status.CheckGoSum(); ok {
log.Info("repo has go.sum requirements that are clean")
// release.current.setGoSumStatus("CLEAN")
- release.status.SetValue("GOOD")
- release.notes.SetValue("CheckGoSum() does not seem to lie")
+ release.status.SetText("GOOD")
+ release.notes.SetText("CheckGoSum() does not seem to lie")
}
buttonEnable()
})
release.makeRedomodB = release.grid.NewButton("make redomod", func() {
buttonDisable()
- if release.current.status.MakeRedomod() {
+ if release.current.Status.MakeRedomod() {
} else {
log.Info("This is bad. stop here")
}
@@ -198,8 +201,8 @@ func createReleaseBox(box *gui.Node) {
buttonDisable()
// rather than loop forever, at least limit this to the number of repos
// incase something, somewhere, goes wrong
- duration := timeFunction(func() {
- for n := 0; n <= len(me.allrepos); n++ {
+ duration := repolist.TimeFunction(func() {
+ for n := 0; n <= len(me.repos.View.AllRepos()); n++ {
if doRelease() {
log.Info("doRelease() worked")
} else {
@@ -222,18 +225,18 @@ func createReleaseBox(box *gui.Node) {
}
func fullDoubleCheckFix() bool {
- release.current.status.CheckSafeGoSumRemake()
- if !release.current.status.MakeRedomod() {
+ release.current.Status.CheckSafeGoSumRemake()
+ if !release.current.Status.MakeRedomod() {
log.Info("go mod failed")
return false
}
- if ok, _ := release.current.status.CheckGoSum(); ok {
+ if ok, _ := release.current.Status.CheckGoSum(); ok {
log.Info("go.sum is clean")
} else {
log.Info("repo go.sum FAILED")
return false
}
- if ok, _ := release.current.status.CheckGoSum(); ok {
+ if ok, _ := release.current.Status.CheckGoSum(); ok {
log.Info("repo has go.sum requirements that are clean")
// release.current.setGoSumStatus("CLEAN")
release.status.SetValue("GOOD")
@@ -244,43 +247,43 @@ func fullDoubleCheckFix() bool {
}
func goodCheckGoSum() bool {
- tmp := release.current.String()
- log.Info("goodCheckGoSum() START on repo:", tmp, "STATUS =", release.current.getGoSumStatus())
+ tmp := release.current.Name()
+ log.Info("goodCheckGoSum() START on repo:", tmp, "STATUS =", release.current.GoState())
var maybe bool = true
- goConfig := release.current.status.GetGoDeps()
+ goConfig := release.current.Status.GetGoDeps()
for depname, version := range goConfig {
log.Info("Checking repo deps:", depname, version)
- repo, ok := me.allrepos[depname]
- if ok {
- goSumS := repo.getGoSumStatus()
- // ignore dependencies on whitelisted repos
- // TODO: warn the user about the whitelist
- if goSumS == "WHITELIST" {
- continue
- }
- // check if the dependent repo is ReadOnly
- // if so, there isn't anything we can do about
- // version mis-matches
- if repo.status.ReadOnly() {
- continue
- }
- lastS := repo.status.GetLastTagVersion()
- targetS := repo.targetVersion.String()
- log.Info(" repo deps:", depname, version, "vs", goSumS, lastS, targetS)
- if lastS != targetS {
- log.Info("repo deps: FALSE lastS != targetS", lastS, targetS)
- log.Info("repo deps: FALSE status.ReadOnly()", release.current.status.ReadOnly())
- log.Info("repo deps: FALSE path", release.current.String())
- maybe = false
- }
- } else {
+ repo := me.repos.View.FindRepo(depname)
+ if repo != nil {
log.Info(" repo deps: IGNORE", depname, version)
+ continue
+ }
+ goSumS := repo.GoState()
+ // ignore dependencies on whitelisted repos
+ // TODO: warn the user about the whitelist
+ if goSumS == "WHITELIST" {
+ continue
+ }
+ // check if the dependent repo is ReadOnly
+ // if so, there isn't anything we can do about
+ // version mis-matches
+ if repo.ReadOnly() {
+ continue
+ }
+ lastS := repo.LastTag()
+ targetS := repo.Status.GetTargetVersion()
+ log.Info(" repo deps:", depname, version, "vs", goSumS, lastS, targetS)
+ if lastS != targetS {
+ log.Info("repo deps: FALSE lastS != targetS", lastS, targetS)
+ log.Info("repo deps: FALSE status.ReadOnly()", release.current.ReadOnly())
+ log.Info("repo deps: FALSE path", release.current.GoPath())
+ maybe = false
}
}
if maybe {
- log.Info("SUCCEEDED.", release.current.String())
- log.Info("SUCCEEDED. goSumStatus.String() =", release.current.goSumStatus.String())
+ log.Info("SUCCEEDED.", release.current.Name())
+ log.Info("SUCCEEDED. goSumStatus.String() =", release.current.GoState())
log.Info("SUCCEEDED. MAYBE. try it again get go.sum requirements")
return true
} else {
@@ -297,17 +300,17 @@ func buttonEnable() {
me.Enable()
}
-func setCurrentRepo(newcur *repo, s string, note string) bool {
- if newcur.status.ReadOnly() {
+func setCurrentRepo(newcur *repolist.Repo, s string, note string) bool {
+ if newcur.ReadOnly() {
return false
}
- release.repo.SetValue(newcur.status.String())
- release.status.SetValue(s)
- release.notes.SetValue(note)
+ release.repo.SetText(newcur.GoPath())
+ release.status.SetText(s)
+ release.notes.SetText(note)
release.current = newcur
- release.version.SetText(release.current.targetVersion.String())
- release.releaseVersionB.SetText("release version " + release.current.targetVersion.String())
+ release.version.SetText(release.current.Status.GetTargetVersion())
+ release.releaseVersionB.SetText("release version " + release.current.Status.GetTargetVersion())
// release.unreleaseB.SetText("un-release version " + release.current.targetVersion.String())
release.openrepo.Enable()
@@ -315,14 +318,14 @@ func setCurrentRepo(newcur *repo, s string, note string) bool {
}
func scanForReady() bool {
- for _, repo := range me.allrepos {
- goSumS := repo.getGoSumStatus()
- dirtyS := repo.dirtyLabel.String()
- log.Info("findNextDirty()", repo.String(), goSumS, dirtyS)
+ for _, repo := range me.repos.View.AllRepos() {
+ goSumS := repo.GoState()
+ dirtyS := repo.State()
+ log.Info("findNextDirty()", repo.GoPath(), goSumS, dirtyS)
- if whitelist(repo.String()) {
- log.Info("found WHITELIST", repo.String())
- repo.setGoSumStatus("WHITELIST")
+ if whitelist(repo.GoPath()) {
+ log.Info("found WHITELIST", repo.GoPath())
+ repo.Status.SetGoSumStatus("WHITELIST")
continue
}
@@ -334,20 +337,21 @@ func scanForReady() bool {
return true
}
+// trys to figure out if there is still something to update
+// todo: redo this logic as it is terrible
func findNextDirty(onlyKind string) bool {
- for key := range me.allrepos {
- repo := me.allrepos[key]
- goSumS := repo.getGoSumStatus()
- dirtyS := repo.dirtyLabel.String()
+ for _, repo := range me.repos.View.AllRepos() {
+ goSumS := repo.Status.GetGoSumStatus()
+ // dirtyS := repo.State()
- log.Info("findNextDirty()", repo.String(), goSumS, dirtyS)
- if repo.status.ReadOnly() {
+ log.Info("findNextDirty()", repo.GoPath(), goSumS)
+ if repo.ReadOnly() {
log.Info("findNextDirty() skipping readonly")
continue
}
if goSumS == "PRIMATIVE" {
if setCurrentRepo(repo, "PRIMATIVE", "release new version") {
- if release.version.String() == release.current.status.GetLastTagVersion() {
+ if release.version.String() == release.current.Status.GetLastTagVersion() {
// everything is fine. the primative has already been released
} else {
return true
@@ -369,75 +373,15 @@ func findNextDirty(onlyKind string) bool {
continue
}
setCurrentRepo(repo, "REDO GOSUM", "try redoing the gosum")
- newgoSumS := release.current.getGoSumStatus()
- newdirtyS := release.current.dirtyLabel.String()
- newlastS := release.current.status.GetLastTagVersion()
+ newgoSumS := release.current.GoState()
+ // newdirtyS := release.current.dirtyLabel.String()
+ newlastS := release.current.LastTag()
if goodCheckGoSum() {
- log.Info("findNextDirty() returning true from goodCheckGoSum()", newgoSumS, newgoSumS, newdirtyS, newlastS)
+ log.Info("findNextDirty() returning true from goodCheckGoSum()", newgoSumS, newgoSumS, newlastS)
return true
- } else {
- // continue
- }
- if repo.String() == "go.wit.com/log" {
- log.Info("findNextDirty() FOUND LOG", repo.String(), goSumS, dirtyS)
- log.Info("findNextDirty() FOUND LOG", repo.String(), goSumS, dirtyS)
- log.Info("findNextDirty() FOUND LOG", repo.String(), goSumS, dirtyS)
- log.Info("findNextDirty() FOUND LOG", repo.String(), goSumS, dirtyS)
- log.Info("findNextDirty() FOUND LOG", repo.String(), goSumS, dirtyS)
- log.Sleep(10)
- return true
- }
- continue
- if goSumS == "UNRELEASED" {
- if setCurrentRepo(repo, "UNRELEASED", "manually check go.sum") {
- return true
- }
- continue
- }
- if goSumS == "NOT READY" {
- if setCurrentRepo(repo, "NOT READY", "manually check go.sum") {
- return true
- }
- continue
- }
- if goSumS == "DIRTY 2" {
- continue
- }
- if goSumS == "BAD DEP" {
- // find out what kind of BAD DEP?
- continue
- }
- // latestversion := repo.status.GetLastTagVersion()
- if goSumS == "CLEAN" {
- // if it's clean here, then check and remake the go.sum file
- // then stop to commit the release version
- repo.checkSafeGoSumRemake()
- if repo.checkDirty() {
- dirtyS = repo.dirtyLabel.String()
- }
- if dirtyS == "PERFECT" {
- continue
- }
- if setCurrentRepo(repo, "clean", "check manually") {
- return true
- }
- }
- if goSumS == "DIRTY" {
- if ok, missing := repo.status.CheckGoSum(); ok {
- log.Info("repo has go.sum requirements that are clean")
- // repo.setGoSumStatus("CLEAN")
- } else {
- log.Info("DIRTY 2 repo has go.sum requirements that are screwed up. missing:", missing)
- repo.setGoSumStatus("DIRTY 2")
- continue
- }
-
- if setCurrentRepo(repo, "dirty", "commit changes") {
- return true
- }
}
}
log.Info("tried to findNextDirty() but not sure what to do next")
- release.status.SetValue("ALL DONE?")
+ release.status.SetText("ALL DONE?")
return false
}