almost clickable releases

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2024-02-02 01:42:13 -06:00
parent 504cd29dcb
commit c83524739c
2 changed files with 87 additions and 52 deletions

View File

@ -17,16 +17,16 @@ var release releaseStruct
type releaseStruct struct { type releaseStruct struct {
current *repo current *repo
box *gui.Node box *gui.Node
group *gui.Node group *gui.Node
grid *gui.Node grid *gui.Node
repo *gadgets.OneLiner repo *gadgets.OneLiner
status *gadgets.OneLiner status *gadgets.OneLiner
readOnly *gadgets.OneLiner readOnly *gadgets.OneLiner
notes *gadgets.OneLiner notes *gadgets.OneLiner
version *gadgets.OneLiner version *gadgets.OneLiner
// versionS string // versionS string
// widgetVersionS string // widgetVersionS string
releaseVersionB *gui.Node releaseVersionB *gui.Node
unreleaseB *gui.Node unreleaseB *gui.Node
reason *gadgets.BasicEntry reason *gadgets.BasicEntry
@ -44,7 +44,7 @@ type releaseStruct struct {
// store myself here. use myself to // store myself here. use myself to
// do garbage go get tests and other potential junk // do garbage go get tests and other potential junk
guireleaser *repo guireleaser *repo
} }
func (w *autoType) Disable() { func (w *autoType) Disable() {
@ -104,6 +104,8 @@ func createReleaseBox(box *gui.Node) {
switch release.status.String() { switch release.status.String() {
case "PRIMATIVE": case "PRIMATIVE":
log.Warn("can do PRIMATIVE", release.version.String()) log.Warn("can do PRIMATIVE", release.version.String())
case "GOOD":
log.Warn("GOOD. lots of go.sum checks passed", release.version.String())
case "manually chosen": case "manually chosen":
log.Warn("attempting manual release", release.version.String()) log.Warn("attempting manual release", release.version.String())
case "NOT READY": case "NOT READY":
@ -119,6 +121,10 @@ func createReleaseBox(box *gui.Node) {
return return
} }
if release.current.status.ReadOnly() {
log.Info("sorry, it's read-only")
return
}
if release.current.status.CheckDirty() { if release.current.status.CheckDirty() {
log.Info("sorry, it's still dirty") log.Info("sorry, it's still dirty")
return return
@ -268,48 +274,19 @@ func createReleaseBox(box *gui.Node) {
} }
buttonEnable() buttonEnable()
}) })
release.checkGoSumB = release.grid.NewButton("CheckGoSum()", func() { release.checkGoSumB = release.grid.NewButton("CheckGoSum()", func() {
buttonDisable() buttonDisable()
tmp := release.current.String()
log.Info("Run CheckGoSum on repo:", tmp)
if ok, _ := release.current.status.CheckGoSum(); ok { if ok, _ := release.current.status.CheckGoSum(); ok {
log.Info("repo has go.sum requirements that are clean") log.Info("repo has go.sum requirements that are clean")
release.current.setGoSumStatus("CLEAN") // release.current.setGoSumStatus("CLEAN")
} else { release.status.SetValue("GOOD")
release.notes.SetValue("CheckGoSum() does not seem to lie")
} }
// goodCheckGoSum()
buttonEnable() buttonEnable()
}) })
/*
if missing == "" {
log.Info("BAD VERSION repo has go.sum requirements that are screwed up.", tmp)
if release.current.getGoSumStatus() == "BAD" {
release.current.setGoSumStatus("BAD VERSION")
}
if release.current.getGoSumStatus() == "CLEAN" {
release.current.setGoSumStatus("BAD VERSION")
}
} else {
log.Info("BAD VERSION repo has go.sum requirements that are screwed up.", tmp)
log.Info("BAD VERSION need to addRepo() the missing repo", missing)
if repostatus.VerifyLocalGoRepo(missing) {
log.Info("BAD VERSION local directory exists", missing)
addRepo(reposgrid, missing, "master", "master", "master")
} else {
log.Info("BAD VERSION local directory does not exist", missing)
log.Info("START download of:", missing)
os.Setenv("GO111MODULE", "off")
err, output := release.current.status.RunCmd([]string{"go", "get", "-v", "-u", missing})
log.Warn(output)
log.Info("END download of:", missing)
if err == nil {
log.Warn("go get worked. recheck go.sum")
} else {
log.Warn("go get failed")
}
}
// addRepo(reposgrid, missing, "master", "master", "master")
}
*/
release.grid.NewButton("CheckPrimativeGoMod()", func() { release.grid.NewButton("CheckPrimativeGoMod()", func() {
tmp := release.current.String() tmp := release.current.String()
log.Info("Run CheckGoSum on repo:", tmp) log.Info("Run CheckGoSum on repo:", tmp)
@ -320,6 +297,7 @@ func createReleaseBox(box *gui.Node) {
} }
}) })
release.grid.NewButton("reset with scanGoSum()", func() { release.grid.NewButton("reset with scanGoSum()", func() {
buttonDisable() buttonDisable()
// do an initial scan of all the repos // do an initial scan of all the repos
@ -348,6 +326,41 @@ func createReleaseBox(box *gui.Node) {
buttonEnable() buttonEnable()
}) })
} }
func goodCheckGoSum() bool {
tmp := release.current.String()
log.Info("Run CheckGoSum on repo:", tmp)
/*
*/
var maybe bool = true
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()
if goSumS == "WHITELIST" {
continue
}
lastS := repo.status.GetLastTagVersion()
targetS := repo.targetVersion.String()
log.Info(" repo deps:", depname, version, "vs", goSumS, lastS, targetS)
if lastS != targetS {
maybe = false
}
} else {
log.Info(" repo deps: IGNORE", depname, version)
}
}
if maybe {
log.Info("SUCCEEDED.", release.current.String())
log.Info("SUCCEEDED. MAYBE. try it again get go.sum requirements")
return true
} else {
log.Info("FAILED. move on")
}
return false
}
func buttonDisable() { func buttonDisable() {
me.Disable() me.Disable()
@ -391,8 +404,8 @@ func setCurrentRepo(newcur *repo, s string, note string) bool {
release.notes.SetValue(note) release.notes.SetValue(note)
release.current = newcur release.current = newcur
release.version.SetText(release.current.targetVersion.String()) release.version.SetText(release.current.targetVersion.String())
release.releaseVersionB.SetText("release version" + release.current.targetVersion.String()) release.releaseVersionB.SetText("release version " + release.current.targetVersion.String())
release.unreleaseB.SetText("un-release version" + release.current.targetVersion.String()) release.unreleaseB.SetText("un-release version " + release.current.targetVersion.String())
release.openrepo.Enable() release.openrepo.Enable()
/* /*
@ -448,6 +461,28 @@ func findNextDirty(onlyKind string) bool {
if goSumS == "IGNORE" { if goSumS == "IGNORE" {
continue continue
} }
if goSumS == "RELEASED" {
continue
}
if goSumS == "WHITELIST" {
continue
}
setCurrentRepo(repo, "REDO GOSUM", "try redoing the gosum")
if goodCheckGoSum() {
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 goSumS == "UNRELEASED" {
if setCurrentRepo(repo, "UNRELEASED", "manually check go.sum") { if setCurrentRepo(repo, "UNRELEASED", "manually check go.sum") {
return true return true

View File

@ -91,10 +91,10 @@ type repo struct {
pLabel *gui.Node // path label pLabel *gui.Node // path label
// bLabel *gui.Node // branch label // bLabel *gui.Node // branch label
lastTag *gui.Node // last tagged version label lastTag *gui.Node // last tagged version label
vLabel *gui.Node // version label vLabel *gui.Node // version label
dirtyLabel *gui.Node // git state (dirty or not?) dirtyLabel *gui.Node // git state (dirty or not?)
goSumStatus *gui.Node // what is the state of the go.sum file goSumStatus *gui.Node // what is the state of the go.sum file
targetVersion *gui.Node // the final repo release version targetVersion *gui.Node // the final repo release version
statusButton *gui.Node // opens up the status window statusButton *gui.Node // opens up the status window