guirelease finally does a single package again

after a week of recoding, fixing and improving
    the original code, it was able to find a primitive
    package (toolkits/debian) and update it correctly
This commit is contained in:
Jeff Carr 2024-02-20 16:11:00 -06:00
parent e927975dc8
commit 8cc86a91cb
8 changed files with 177 additions and 185 deletions

View File

@ -7,44 +7,27 @@ import (
"go.wit.com/log" "go.wit.com/log"
) )
func ReCheckReady() bool {
return false
}
/*
- // allrepos map[string]*repo
-
- keys := make([]string, 0, len(me.allrepos))
- for key := range me.allrepos {
- keys = append(keys, key)
- }
- sort.Strings(keys)
-
- for _, path := range keys {
- repo := me.allrepos[path]
*/
func CheckReady() bool { func CheckReady() bool {
if release.current == nil { if me.current == nil {
log.Info("find the next repo first") log.Info("find the next repo first")
return false return false
} }
goSumS := release.current.GoState() goSumS := me.current.GoState()
dirtyS := release.current.State() dirtyS := me.current.State()
lastS := release.current.Status.GetLastTagVersion() lastS := me.current.Status.GetLastTagVersion()
currentS := release.current.Status.GetCurrentBranchVersion() currentS := me.current.Status.GetCurrentBranchVersion()
var targetS string var targetS string
targetS = release.version.String() targetS = me.release.version.String()
log.Info("repo:", release.current.State(), goSumS, dirtyS, lastS, currentS, targetS) log.Info("repo:", me.current.State(), goSumS, dirtyS, lastS, currentS, targetS)
if goSumS == "RELEASED" { if goSumS == "RELEASED" {
return true return true
} }
if release.current.Status.IsPrimitive() { if me.current.Status.IsPrimitive() {
if targetS == lastS { if targetS == lastS {
release.current.SetGoState("RELEASED") me.current.SetGoState("RELEASED")
} }
return true return true
} }
@ -53,45 +36,45 @@ func CheckReady() bool {
} }
if goSumS == "READY" { if goSumS == "READY" {
if targetS == lastS { if targetS == lastS {
release.current.SetGoState("RELEASED") me.current.SetGoState("RELEASED")
return true return true
} }
if lastS == currentS { if lastS == currentS {
release.current.SetGoState("UNRELEASED") me.current.SetGoState("UNRELEASED")
} }
return true return true
} }
release.current.SetGoState("NOT READY") me.current.SetGoState("NOT READY")
if release.current.Status.ReadOnly() { if me.current.Status.ReadOnly() {
log.Info("\trepo is read only") log.Info("\trepo is read only")
return false return false
} }
if targetS == lastS { if targetS == lastS {
log.Info("\trepo is already done", lastS, "=", targetS) log.Info("\trepo is already done", lastS, "=", targetS)
release.current.SetGoState("READY") me.current.SetGoState("READY")
return true return true
} }
if lastS == currentS { if lastS == currentS {
log.Info("\trepo is already done", lastS, "=", targetS) log.Info("\trepo is already done", lastS, "=", targetS)
release.current.SetGoState("READY") me.current.SetGoState("READY")
return true return true
} }
if goSumS == "BAD" { if goSumS == "BAD" {
log.Info("\trepo is ready", release.current.State(), "BAD == BAD") log.Info("\trepo is ready", me.current.State(), "BAD == BAD")
} else { } else {
log.Info("\trepo is ready maybe", release.current.State(), "BAD !=", goSumS) log.Info("\trepo is ready maybe", me.current.State(), "BAD !=", goSumS)
} }
if release.current.Status.CheckDirty() { if me.current.Status.CheckDirty() {
log.Info("\trepo is dirty") log.Info("\trepo is dirty")
return false return false
} else { } else {
log.Info("\trepo is ready", release.current.State(), "not dirty") log.Info("\trepo is ready", me.current.State(), "not dirty")
} }
fullpath := filepath.Join(me.goSrcPwd.String(), release.current.State()) fullpath := filepath.Join(me.goSrcPwd.String(), me.current.State())
testf := filepath.Join(fullpath, "go.mod") testf := filepath.Join(fullpath, "go.mod")
if Exists(testf) { if Exists(testf) {
@ -113,14 +96,14 @@ func CheckReady() bool {
// final checks here // final checks here
if dirtyS == "unchanged" { if dirtyS == "unchanged" {
log.Info("\trepo is ready", release.current.Name(), "unchanged") log.Info("\trepo is ready", me.current.Name(), "unchanged")
} else { } else {
log.Info("\trepo is not ready", dirtyS, "!= 'unchanged'") log.Info("\trepo is not ready", dirtyS, "!= 'unchanged'")
return false return false
} }
curName := release.current.Status.GetCurrentBranchName() curName := me.current.Status.GetCurrentBranchName()
mName := release.current.Status.GetMasterBranchName() mName := me.current.Status.GetMasterBranchName()
if curName == mName { if curName == mName {
log.Info("\trepo is ready working from main branch", curName, "=", mName) log.Info("\trepo is ready working from main branch", curName, "=", mName)
@ -129,7 +112,7 @@ func CheckReady() bool {
return false return false
} }
release.current.SetGoState("READY") me.current.SetGoState("READY")
return true return true
} }

View File

@ -12,46 +12,46 @@ import (
) )
func doRelease() bool { func doRelease() bool {
log.Info("doRelease() on", release.current.Name()) log.Info("doRelease() on", me.current.Name())
// double check release version logic // double check release version logic
if release.releaseVersionB.String() != "release version "+release.version.String() { if me.release.releaseVersionB.String() != "release version "+me.release.version.String() {
log.Warn("something went wrong with the release.version:", release.version.String()) log.Warn("something went wrong with the release.version:", me.release.version.String())
return false return false
} }
if strings.HasPrefix(release.version.String(), "v") { if strings.HasPrefix(me.release.version.String(), "v") {
log.Warn("everything is ok. version starts with v.", release.version.String()) log.Warn("everything is ok. version starts with v.", me.release.version.String())
} else { } else {
log.Warn("version does not start with v.", release.version.String()) log.Warn("version does not start with v.", me.release.version.String())
return false return false
} }
curName := release.current.Status.GetCurrentBranchName() curName := me.current.Status.GetCurrentBranchName()
mName := release.current.Status.GetMasterBranchName() mName := me.current.Status.GetMasterBranchName()
if curName != mName { if curName != mName {
log.Info("\trepo is not working from main branch", curName, "!=", mName) log.Info("\trepo is not working from main branch", curName, "!=", mName)
return false return false
} }
if !checkValidGoSum(release.current) { if !checkValidGoSum(me.current) {
return false return false
} }
log.Info("\ttag and push", curName, release.version.String(), me.releaseReasonS) log.Info("\ttag and push", curName, me.release.version.String(), me.releaseReasonS)
var all [][]string var all [][]string
all = append(all, []string{"git", "add", "-f", "go.mod"}) all = append(all, []string{"git", "add", "-f", "go.mod"})
if release.current.Status.IsPrimitive() { if me.current.Status.IsPrimitive() {
// don't add go.sum here. TODO: check for go.sum file and fail // don't add go.sum here. TODO: check for go.sum file and fail
} else { } else {
all = append(all, []string{"git", "add", "-f", "go.sum"}) all = append(all, []string{"git", "add", "-f", "go.sum"})
} }
all = append(all, []string{"git", "commit", "-m", me.releaseReasonS}) all = append(all, []string{"git", "commit", "-m", me.releaseReasonS})
all = append(all, []string{"git", "push"}) all = append(all, []string{"git", "push"})
all = append(all, []string{"git", "tag", "-m", me.releaseReasonS, release.version.String()}) all = append(all, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()})
all = append(all, []string{"git", "push", "origin", release.version.String()}) all = append(all, []string{"git", "push", "origin", me.release.version.String()})
if !release.current.Status.DoAll(all) { if !me.current.Status.DoAll(all) {
log.Info("failed to make new release", release.version.String()) log.Info("failed to make new release", me.release.version.String())
return false return false
} }
log.Info("RELEASE OK") log.Info("RELEASE OK")
@ -63,37 +63,37 @@ func doRelease() bool {
} }
log.Info("PUBLISH OK") log.Info("PUBLISH OK")
release.current.SetGoState("RELEASED") me.current.SetGoState("RELEASED")
// unwind and re-tag. Now that the go.mod and go.sum are published, revert // unwind and re-tag. Now that the go.mod and go.sum are published, revert
// to the development branch // to the development branch
if !release.current.Status.RevertMasterToDevel() { if !me.current.Status.RevertMasterToDevel() {
log.Info("Revert Failed") log.Info("Revert Failed")
return false return false
} }
// update tag // update tag
var retag [][]string var retag [][]string
retag = append(retag, []string{"git", "tag", "--delete", release.version.String()}) retag = append(retag, []string{"git", "tag", "--delete", me.release.version.String()})
retag = append(retag, []string{"git", "push", "--delete", "origin", release.version.String()}) retag = append(retag, []string{"git", "push", "--delete", "origin", me.release.version.String()})
retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, release.version.String()}) retag = append(retag, []string{"git", "tag", "-m", me.releaseReasonS, me.release.version.String()})
retag = append(retag, []string{"git", "push", "origin", release.version.String()}) retag = append(retag, []string{"git", "push", "origin", me.release.version.String()})
if !release.current.Status.DoAll(retag) { if !me.current.Status.DoAll(retag) {
log.Info("retag failed") log.Info("retag failed")
return false return false
} }
log.Info("EVERYTHING OK. RERELEASED", release.current.Name()) log.Info("EVERYTHING OK. RERELEASED", me.current.Name())
// update the values in the GUI // update the values in the GUI
release.current.NewScan() me.current.NewScan()
// attempt to find another repo to release // attempt to find another repo to release
if !doReleaseFindNext() { if !doReleaseFindNext() {
log.Info("doReleaseFindNext() could not find a new") log.Info("doReleaseFindNext() could not find a new")
return false return false
} }
log.Info("GOOD TO RUN ANOTHER DAY ON:", release.current.Name()) log.Info("GOOD TO RUN ANOTHER DAY ON:", me.current.Name())
return true return true
} }
@ -105,12 +105,12 @@ func checkValidGoSum(repo *repolist.Repo) bool {
} }
if ok { if 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") // me.current.setGoSumStatus("CLEAN")
release.status.SetValue("GOOD") me.release.status.SetValue("GOOD")
release.notes.SetValue("CheckValidGoSum() does not seem to lie") me.release.notes.SetValue("CheckValidGoSum() does not seem to lie")
return true return true
} }
release.notes.SetValue("CheckValidGoSum() failed") me.release.notes.SetValue("CheckValidGoSum() failed")
return false return false
} }
@ -123,7 +123,7 @@ func doReleaseFindNext() bool {
log.Info("findNextDirty() could not find anything") log.Info("findNextDirty() could not find anything")
return false return false
} }
if checkValidGoSum(release.current) { if checkValidGoSum(me.current) {
return true return true
} }
return false return false
@ -132,12 +132,12 @@ func doReleaseFindNext() bool {
// this pulls the new tag from the golang package repository // this pulls the new tag from the golang package repository
// to insert the new version // to insert the new version
func doPublishVersion() bool { func doPublishVersion() bool {
gopath := release.current.GoPath() gopath := me.current.GoPath()
cmd := []string{"go", "get", "-v", gopath + "@" + release.version.String()} cmd := []string{"go", "get", "-v", gopath + "@" + me.release.version.String()}
log.Info("SHOULD RUN cmd HERE:", cmd) log.Info("SHOULD RUN cmd HERE:", cmd)
// right now, you can't publish this because the go.* files in this project are screwed up // right now, you can't publish this because the go.* files in this project are screwed up
if release.guireleaser == nil { if me.release.guireleaser == nil {
log.Info("CAN NOT SELF UPDATE HERE. cmd =", cmd) log.Info("CAN NOT SELF UPDATE HERE. cmd =", cmd)
return false return false
} }
@ -145,11 +145,11 @@ func doPublishVersion() bool {
gosum := filepath.Join(homeDir, "go/src/go.wit.com/apps/guireleaser/go.sum") gosum := filepath.Join(homeDir, "go/src/go.wit.com/apps/guireleaser/go.sum")
if !shell.Exists(gosum) { if !shell.Exists(gosum) {
log.Info("go.sum must exist here") log.Info("go.sum must exist here")
release.guireleaser.Status.MakeRedomod() me.release.guireleaser.Status.MakeRedomod()
} }
os.Unsetenv("GO111MODULE") os.Unsetenv("GO111MODULE")
log.Info("TRYING TO SELF UPDATE HERE. cmd =", cmd) log.Info("TRYING TO SELF UPDATE HERE. cmd =", cmd)
err, out := release.guireleaser.Status.RunCmd(cmd) err, out := me.release.guireleaser.Status.RunCmd(cmd)
if gopath == "go.wit.com/apps/guireleaser" { if gopath == "go.wit.com/apps/guireleaser" {
// ignore errors on updating myself // ignore errors on updating myself
log.Info("IGNORE SELF UPDATE ERROR. cmd =", cmd) log.Info("IGNORE SELF UPDATE ERROR. cmd =", cmd)
@ -158,7 +158,7 @@ func doPublishVersion() bool {
if err == nil { if err == nil {
log.Info("SELF UPDATE OK. out =", out) log.Info("SELF UPDATE OK. out =", out)
log.Info("SELF UPDATE WORKED") log.Info("SELF UPDATE WORKED")
release.current.SetGoState("RELEASED") me.current.SetGoState("RELEASED")
return true return true
} }
return false return false

View File

@ -31,8 +31,8 @@ func lookToUnwind(r *repolist.Repo) bool {
return false return false
} }
if release.version.String() != r.LastTag() { if me.release.version.String() != r.LastTag() {
log.Info("\trepo version mismatch last vs official", r.LastTag(), "!=", release.version.String()) log.Info("\trepo version mismatch last vs official", r.LastTag(), "!=", me.release.version.String())
r.SetGoState("CAN NOT UNWIND") r.SetGoState("CAN NOT UNWIND")
return false return false
} }

28
main.go
View File

@ -74,9 +74,6 @@ func main() {
// which should be all the git repositories in ~/go/src & the .config file // which should be all the git repositories in ~/go/src & the .config file
me.repos = makeRepoView() me.repos = makeRepoView()
// register a Show/Hide function for the repo list table
me.repos.View.RegisterHideFunction(showHideRepos)
// the left side of the window options // the left side of the window options
globalDisplayOptions(me.mainBox) globalDisplayOptions(me.mainBox)
@ -89,17 +86,36 @@ func main() {
// tool to release the code for this app, the gui and the gui toolkits // tool to release the code for this app, the gui and the gui toolkits
// and sometimes they lie, don't display stuff, don't even disable things // and sometimes they lie, don't display stuff, don't even disable things
// so I can't trust even what I see. It's complicated right now still. // so I can't trust even what I see. It's complicated right now still.
release.openrepo.Disable() me.release.openrepo.Disable()
me.Disable()
log.Sleep(5) log.Sleep(5)
// parse config file and scan for .git repos // parse config file and scan for .git repos
me.repos.initRepoList() me.repos.initRepoList()
setTargetVersion()
// reads in the State of all the repos // register a Show/Hide function for the repo list table
me.repos.View.RegisterHideFunction(showHideRepos)
// scan in the State of all the repos
// TODO: should not really be necessary directly after init() // TODO: should not really be necessary directly after init()
// me.repos.View.ScanRepositories() me.repos.View.ScanRepositories()
// find myself. the guireleaser directory is used as a working scratchpad
// for running go commands that can mess up the go.* files
for _, repo := range me.repos.View.AllRepos() {
if repo.GoPath() == "go.wit.com/apps/guireleaser" {
if me.release.guireleaser == nil {
me.release.guireleaser = repo
}
}
}
if me.release.guireleaser == nil {
log.Info("Can not release if guireleaser was not found")
os.Exit(0)
}
me.Enable() me.Enable()
// intermittently scans the status indefinitly // intermittently scans the status indefinitly

View File

@ -14,10 +14,8 @@ import (
"go.wit.com/lib/gui/repolist" "go.wit.com/lib/gui/repolist"
) )
var release releaseStruct
type releaseStruct struct { type releaseStruct struct {
current *repolist.Repo // current *repolist.Repo
box *gui.Node box *gui.Node
group *gui.Node group *gui.Node
@ -60,13 +58,13 @@ func (w *autoType) Enable() {
func createReleaseBox(box *gui.Node) { func createReleaseBox(box *gui.Node) {
initWhitelist() initWhitelist()
// release.box = box // me.release.box = box
release.box = box.NewVerticalBox("vbox") me.release.box = box.NewVerticalBox("vbox")
release.group = release.box.NewGroup("Current Repo") me.release.group = me.release.box.NewGroup("Current Repo")
release.grid = release.group.NewGrid("buildOptions", 0, 0) me.release.grid = me.release.group.NewGrid("buildOptions", 0, 0)
release.grid.NextRow() me.release.grid.NextRow()
release.releaseVersionB = release.grid.NewButton("release version", func() { me.release.releaseVersionB = me.release.grid.NewButton("release version", func() {
buttonDisable() buttonDisable()
if doRelease() { if doRelease() {
buttonEnable() buttonEnable()
@ -75,34 +73,34 @@ func createReleaseBox(box *gui.Node) {
log.Info("doRelease() failed") log.Info("doRelease() failed")
} }
}) })
release.grid.NextRow() me.release.grid.NextRow()
release.repo = gadgets.NewOneLiner(release.grid, "repo") me.release.repo = gadgets.NewOneLiner(me.release.grid, "repo")
release.openrepo = release.grid.NewButton("Configure", func() { me.release.openrepo = me.release.grid.NewButton("Configure", func() {
release.current.Status.Toggle() me.current.Status.Toggle()
}) })
release.openrepo.Disable() me.release.openrepo.Disable()
release.grid.NextRow() me.release.grid.NextRow()
release.status = gadgets.NewOneLiner(release.grid, "status") me.release.status = gadgets.NewOneLiner(me.release.grid, "status")
release.grid.NextRow() me.release.grid.NextRow()
release.readOnly = gadgets.NewOneLiner(release.grid, "read-only") me.release.readOnly = gadgets.NewOneLiner(me.release.grid, "read-only")
release.grid.NextRow() me.release.grid.NextRow()
release.notes = gadgets.NewOneLiner(release.grid, "notes") me.release.notes = gadgets.NewOneLiner(me.release.grid, "notes")
release.grid.NextRow() me.release.grid.NextRow()
release.version = gadgets.NewOneLiner(release.grid, "version") me.release.version = gadgets.NewOneLiner(me.release.grid, "version")
release.grid.NextRow() me.release.grid.NextRow()
release.reason = gadgets.NewBasicEntry(release.grid, "release reason") me.release.reason = gadgets.NewBasicEntry(me.release.grid, "release reason")
release.reason.SetText(me.releaseReasonS) me.release.reason.SetText(me.releaseReasonS)
release.grid.NextRow() me.release.grid.NextRow()
me.autoWorkingPwd = gadgets.NewOneLiner(release.grid, "working directory (pwd)") me.autoWorkingPwd = gadgets.NewOneLiner(me.release.grid, "working directory (pwd)")
release.grid.NextRow() me.release.grid.NextRow()
me.userHomePwd = gadgets.NewOneLiner(release.grid, "user home") me.userHomePwd = gadgets.NewOneLiner(me.release.grid, "user home")
release.grid.NextRow() me.release.grid.NextRow()
me.goSrcPwd = gadgets.NewOneLiner(release.grid, "go src home") me.goSrcPwd = gadgets.NewOneLiner(me.release.grid, "go src home")
release.grid.NextRow() me.release.grid.NextRow()
homeDir, err := os.UserHomeDir() homeDir, err := os.UserHomeDir()
if err != nil { if err != nil {
@ -119,26 +117,37 @@ func createReleaseBox(box *gui.Node) {
panic("redo go.sum") panic("redo go.sum")
} }
group := release.box.NewGroup("Run on Current Repo") group := me.release.box.NewGroup("Run on Current Repo")
grid := group.NewGrid("buildOptions", 0, 0) grid := group.NewGrid("buildOptions", 0, 0)
grid.NewButton("set to IGNORE", func() { grid.NewButton("set to IGNORE", func() {
tmp := release.current.GoState() tmp := me.current.GoState()
log.Info("trying to set repo IGNORE is now =", tmp) log.Info("trying to set repo IGNORE is now =", tmp)
release.current.SetGoState("IGNORE") me.current.SetGoState("IGNORE")
release.whitelist[release.current.GoPath()] = release.current me.release.whitelist[me.current.GoPath()] = me.current
}) })
release.checkGoSumB = grid.NewButton("checkValidGoSum()", func() { me.release.checkGoSumB = grid.NewButton("checkValidGoSum()", func() {
buttonDisable() buttonDisable()
checkValidGoSum(release.current) checkValidGoSum(me.current)
buttonEnable() buttonEnable()
}) })
grid.NewButton("Check Ready", func() {
buttonDisable()
defer buttonEnable()
if CheckReady() {
log.Info("repo is ready", me.current.Name())
return
} else {
log.Info("\trepo is not ready", me.current.Name())
}
})
grid.NextRow() grid.NextRow()
group = release.box.NewGroup("Process against all repos") group = me.release.box.NewGroup("Process against all repos")
grid = group.NewGrid("buildOptions", 0, 0) grid = group.NewGrid("buildOptions", 0, 0)
grid.NewButton("release all", func() { grid.NewButton("doRelease() all", func() {
var worked bool = true var worked bool = true
buttonDisable() buttonDisable()
// rather than loop forever, at least limit this to the number of repos // rather than loop forever, at least limit this to the number of repos
@ -148,7 +157,7 @@ func createReleaseBox(box *gui.Node) {
if doRelease() { if doRelease() {
log.Info("doRelease() worked") log.Info("doRelease() worked")
} else { } else {
if release.status.String() == "ALL DONE?" { if me.release.status.String() == "ALL DONE?" {
log.Info("maybe ALL DONE?") log.Info("maybe ALL DONE?")
buttonEnable() buttonEnable()
worked = true worked = true
@ -165,43 +174,22 @@ func createReleaseBox(box *gui.Node) {
buttonEnable() buttonEnable()
}) })
grid.NewButton("find first repo", func() {
// set the target versions
setTargetVersion()
// have to run this twice for now. not sure why
// this is old
scanForReady()
scanForReady()
findNextDirty("")
})
grid.NewButton("Check Ready", func() {
buttonDisable()
defer buttonEnable()
goSumS := release.current.GoState()
dirtyS := release.current.State()
lastS := release.current.LastTag()
if CheckReady() {
log.Info("repo is ready", release.current.Name(), goSumS, dirtyS, lastS)
return
} else {
log.Info("\trepo is not ready", release.current.Name(), goSumS, dirtyS, lastS)
}
})
grid.NewButton("scan for Ready", func() { grid.NewButton("scan for Ready", func() {
me.Disable() me.Disable()
scanForReady() scanForReady()
me.Enable() me.Enable()
}) })
grid.NewButton("findNextDirty()", func() { grid.NewButton("findNextDirty(PRIMATIVE)", func() {
me.Disable() me.Disable()
defer me.Enable() defer me.Enable()
if findNextDirty("PRIMATIVE") { if findNextDirty("PRIMATIVE") {
log.Info("findNextDirty() found a repo") log.Info("findNextDirty() found a repo")
return return
} }
})
grid.NewButton("findNextDirty()", func() {
me.Disable()
defer me.Enable()
if findNextDirty("") { if findNextDirty("") {
log.Info("findNextDirty() found a repo") log.Info("findNextDirty() found a repo")
return return
@ -209,7 +197,7 @@ func createReleaseBox(box *gui.Node) {
}) })
grid.NextRow() grid.NextRow()
group = release.box.NewGroup("experimental and dangerous stuff") group = me.release.box.NewGroup("experimental and dangerous stuff")
grid = group.NewGrid("buildOptions", 0, 0) grid = group.NewGrid("buildOptions", 0, 0)
grid.NewButton("rm -f go.mod go.sum", func() { grid.NewButton("rm -f go.mod go.sum", func() {
me.Disable() me.Disable()
@ -297,14 +285,14 @@ func setCurrentRepo(newcur *repolist.Repo, s string, note string) bool {
return false return false
} }
release.repo.SetText(newcur.GoPath()) me.release.repo.SetText(newcur.GoPath())
release.status.SetText(s) me.release.status.SetText(s)
release.notes.SetText(note) me.release.notes.SetText(note)
release.current = newcur me.current = newcur
release.version.SetText(release.current.Status.GetTargetVersion()) me.release.version.SetText(me.current.Status.GetTargetVersion())
release.releaseVersionB.SetText("release version " + release.current.Status.GetTargetVersion()) me.release.releaseVersionB.SetText("release version " + me.current.Status.GetTargetVersion())
// release.unreleaseB.SetText("un-release version " + release.current.targetVersion.String()) // me.release.unreleaseB.SetText("un-release version " + me.current.targetVersion.String())
release.openrepo.Enable() me.release.openrepo.Enable()
return true return true
} }
@ -354,18 +342,25 @@ func findNextDirty(onlyKind string) bool {
continue continue
} }
log.Info("findNextDirty()", repo.GoPath(), goSumS) log.Info("findNextDirty()", repo.GoPath(), goSumS)
// do makeredomod here
// if ! repo.Status.Exists("go.sum") {
// }
if repo.Status.IsPrimitive() { if repo.Status.IsPrimitive() {
if setCurrentRepo(repo, "PRIMATIVE", "release new version") { if setCurrentRepo(repo, "PRIMATIVE", "release new version") {
return true return true
} }
continue continue
} }
if checkValidGoSum(release.current) { log.Info("findNextDirty()", repo.GoPath(), "is not a primative repo")
if onlyKind == "PRIMITIVE" {
continue
}
if checkValidGoSum(repo) {
setCurrentRepo(repo, "should be good to release", "pretty sure") setCurrentRepo(repo, "should be good to release", "pretty sure")
return true return true
} }
} }
log.Info("tried to findNextDirty() but not sure what to do next") log.Info("tried to findNextDirty() but not sure what to do next")
release.status.SetText("ALL DONE?") me.release.status.SetText("ALL DONE?")
return false return false
} }

View File

@ -1,15 +1,12 @@
// This is a simple example // This is a simple example
package main package main
import ( /*
"go.wit.com/log"
)
func scanGoSum() { func scanGoSum() {
for _, repo := range me.repos.View.AllRepos() { for _, repo := range me.repos.View.AllRepos() {
if repo.GoPath() == "go.wit.com/apps/guireleaser" { if repo.GoPath() == "go.wit.com/apps/guireleaser" {
if release.guireleaser == nil { if me.release.guireleaser == nil {
release.guireleaser = repo me.release.guireleaser = repo
} }
} }
latestversion := repo.Status.GetLastTagVersion() latestversion := repo.Status.GetLastTagVersion()
@ -29,11 +26,11 @@ func scanGoSum() {
log.Info("dirty repo.getGoSumStatus =", repo.GoState()) log.Info("dirty repo.getGoSumStatus =", repo.GoState())
repo.SetGoState("DIRTY") repo.SetGoState("DIRTY")
// release.repo.SetValue(repo.status.String()) // me.release.repo.SetValue(repo.status.String())
// release.status.SetValue("dirty") // me.release.status.SetValue("dirty")
// release.notes.SetValue("You must commit your changes\nbefore you can continue") // me.release.notes.SetValue("You must commit your changes\nbefore you can continue")
// release.current = repo // me.current = repo
// release.openrepo.Enable() // me.release.openrepo.Enable()
continue continue
} }
status := repo.State() status := repo.State()
@ -47,3 +44,4 @@ func scanGoSum() {
} }
log.Info("scanGoSum() did everything, not sure what to do next") log.Info("scanGoSum() did everything, not sure what to do next")
} }
*/

View File

@ -4,20 +4,20 @@ package main
import ( import (
"go.wit.com/gui" "go.wit.com/gui"
"go.wit.com/lib/gadgets" "go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/repolist"
) )
// the main window nodes
// var reposwin *gadgets.BasicWindow
var reposbox *gui.Node
var reposgrid *gui.Node
var reposgroup *gui.Node
var me *autoType var me *autoType
type autoType struct { type autoType struct {
myGui *gui.Node myGui *gui.Node
releaseReasonS string // = "gocui dropdown select" releaseReasonS string // = "gocui dropdown select"
release releaseStruct
reposbox *gui.Node
reposgrid *gui.Node
reposgroup *gui.Node
current *repolist.Repo
// guireleaser window // guireleaser window
mainWindow *gui.Node mainWindow *gui.Node

View File

@ -8,18 +8,18 @@ import (
) )
func initWhitelist() { func initWhitelist() {
release.whitelist = make(map[string]*repolist.Repo) me.release.whitelist = make(map[string]*repolist.Repo)
for _, repo := range me.repos.View.AllRepos() { for _, repo := range me.repos.View.AllRepos() {
if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/davecgh") { if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/davecgh") {
release.whitelist[repo.GoPath()] = repo me.release.whitelist[repo.GoPath()] = repo
} }
// //
// if repo.String() == "go.wit.com/apps/guireleaser" { // if repo.String() == "go.wit.com/apps/guireleaser" {
// release.whitelist[repo.String()] = repo // me.release.whitelist[repo.String()] = repo
// } // }
// //
// if repo.String() == "go.wit.com/lib/gui/repostatus" { // if repo.String() == "go.wit.com/lib/gui/repostatus" {
// release.whitelist[repo.String()] = repo // me.release.whitelist[repo.String()] = repo
// } // }
// //
} }
@ -31,7 +31,7 @@ func whitelist(path string) bool {
return false return false
} }
_, ok := release.whitelist[path] _, ok := me.release.whitelist[path]
if ok { if ok {
// log.Info("whitelist ok == true", path) // log.Info("whitelist ok == true", path)
return true return true