diff options
| author | Jeff Carr <[email protected]> | 2024-02-18 15:09:04 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-02-18 15:09:04 -0600 |
| commit | 08c7765cc70bae20479ad0aa1897b6a4cfc3613a (patch) | |
| tree | dacc65539b521cd3fc285579712bd2ef7bd8a486 /releaseBox.go | |
| parent | bbc78159fe11c78ae33cc8026887f62888003630 (diff) | |
guireleaser builds again
Diffstat (limited to 'releaseBox.go')
| -rw-r--r-- | releaseBox.go | 238 |
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 } |
