From fcd132c109ed4f1ecf4348a6fdc85092973fbb97 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 13 Nov 2024 17:23:33 -0600 Subject: [PATCH] code cleanup --- Makefile | 2 + globalDisplayOptions.go | 312 +++++++++++++++++++++------------------- hideFunction.go | 23 +-- releaseBox.go | 10 ++ structs.go | 6 +- whitelist.go | 9 +- 6 files changed, 199 insertions(+), 163 deletions(-) diff --git a/Makefile b/Makefile index 91ba649..f69416a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,8 @@ VERSION = $(shell git describe --tags) all: + @echo to test: 'make test' + @echo @echo run this from the autotypist dir: @echo " GUIRELEASE_REASON=notsure guireleaser" @echo then: diff --git a/globalDisplayOptions.go b/globalDisplayOptions.go index 2e60176..69dd5ad 100644 --- a/globalDisplayOptions.go +++ b/globalDisplayOptions.go @@ -1,12 +1,7 @@ package main import ( - "os" - "strings" - "go.wit.com/gui" - "go.wit.com/lib/debugger" - "go.wit.com/lib/gui/logsettings" "go.wit.com/log" ) @@ -27,44 +22,47 @@ func globalDisplayOptions(box *gui.Node) { }) hidegrid.NextRow() - me.autoHideReadOnly = hidegrid.NewCheckbox("Hide read-only repos").SetChecked(true) - me.autoHideReadOnly.Custom = func() { - if me.autoHideReadOnly.Checked() { - os.Setenv("AUTOTYPIST_READONLY", "hide") - } else { - os.Unsetenv("AUTOTYPIST_READONLY") + /* + me.autoHideReadOnly = hidegrid.NewCheckbox("Hide read-only repos").SetChecked(true) + me.autoHideReadOnly.Custom = func() { + if me.autoHideReadOnly.Checked() { + os.Setenv("AUTOTYPIST_READONLY", "hide") + } else { + os.Unsetenv("AUTOTYPIST_READONLY") + } } - } - os.Setenv("AUTOTYPIST_READONLY", "hide") - hidegrid.NextRow() + os.Setenv("AUTOTYPIST_READONLY", "hide") + hidegrid.NextRow() - me.autoHideReleased = hidegrid.NewCheckbox("Hide Released repos").SetChecked(true) - hidegrid.NextRow() + me.autoHideReleased = hidegrid.NewCheckbox("Hide Released repos").SetChecked(true) + hidegrid.NextRow() - me.ignoreWhitelist = hidegrid.NewCheckbox("ignore whitelist (are you sure?)").SetChecked(false) - hidegrid.NextRow() + me.ignoreWhitelist = hidegrid.NewCheckbox("ignore whitelist (are you sure?)").SetChecked(false) + hidegrid.NextRow() - me.scanEveryMinute = hidegrid.NewCheckbox("Scan every minute").SetChecked(false) - me.scanEveryMinute.Custom = func() { - if me.scanEveryMinute.Checked() { - os.Setenv("REPO_AUTO_SCAN", "true") - log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) - } else { - os.Unsetenv("REPO_AUTO_SCAN") - log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) + me.scanEveryMinute = hidegrid.NewCheckbox("Scan every minute").SetChecked(false) + me.scanEveryMinute.Custom = func() { + if me.scanEveryMinute.Checked() { + os.Setenv("REPO_AUTO_SCAN", "true") + log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) + } else { + os.Unsetenv("REPO_AUTO_SCAN") + log.Info("env REPO_AUTO_SCAN=", os.Getenv("REPO_AUTO_SCAN")) + } } - } + */ - hidegrid.NewButton("scan now", func() { - log.Info("re-scanning repos now") - i, s := me.repos.View.ScanRepositories() - log.Info("re-scanning repos done", i, s) - // me.duration.SetText(s) - }) - me.duration = me.repos.View.MirrorScanDuration() - hidegrid.Append(me.duration) + /* + hidegrid.NewButton("scan now", func() { + log.Info("re-scanning repos now") + i, s := me.repos.View.ScanRepositories() + log.Info("re-scanning repos done", i, s) + // me.duration.SetText(s) + }) + me.duration = me.repos.View.MirrorScanDuration() + hidegrid.Append(me.duration) - hidegrid.NextRow() + */ group1 = vbox.NewGroup("prep for release") grid := group1.RawGrid() @@ -101,125 +99,146 @@ func globalDisplayOptions(box *gui.Node) { }) grid.NextRow() - var incrementTags *gui.Node - incrementTags = grid.NewButton("increment tags", func() { - me.Disable() - for _, repo := range me.repos.View.AllRepos() { - if whitelist(repo.GoPath()) { - continue - } - if repo.ReadOnly() { - continue - } - lasttag := repo.LastTag() - masterv := repo.Status.GetMasterVersion() - targetv := repo.Status.GetTargetVersion() + grid.NewButton("make prepare-release", func() { + loop := me.repos.View.ReposSortByName() + for loop.Scan() { + repo := loop.Repo() - if lasttag == masterv { - // nothing to do if curv == masterv - // unless go.sum depends on changed repos - if targetv != lasttag { - log.Info(repo.GoPath(), "trigger a new release?", targetv, lasttag) - // repo.Status.SetVersion("0", "21", "0", me.releaseReasonS) - repo.Status.IncrementMinorVersion(me.releaseReasonS) - } - - continue - } - - newversion := repo.Status.GetNewVersionTag() - if newversion == targetv { - log.Info(repo.GoPath(), "targetv has been increased already to", targetv) - continue - } - - if masterv != targetv { - log.Info(repo.GoPath(), "master and target differ", masterv, targetv) - repo.Status.IncrementVersion() - newversion := repo.Status.GetNewVersionTag() - repo.Status.SetTargetVersion("v" + newversion) - // already incremented - continue + master := repo.Status.GetMasterVersion() + lastTag := repo.Status.LastTag() + if master == lastTag { + repo.Status.SetTargetVersion(master) + } else { + repo.Status.IncrementRevisionVersion("Nov 2024 test") } } - if findNext() { - log.Info("findNext() found a repo") - } - incrementTags.SetText("maybe ready?") - me.Enable() - }) - grid.NewButton("increment minor version", func() { - // this is messy still. if the release process fails, it needs to continue - // for now, use the "go.wit.com/log" release minor number as the official - // release. If it hasn't been updated yet, then start there - logrepo := me.repos.View.FindRepo("go.wit.com/log") - if logrepo == nil { - log.Info("couldn't find go.wit.com/log") - return - } - releasev := logrepo.Status.LastTag() - for _, repo := range me.repos.View.AllRepos() { - if whitelist(repo.GoPath()) { - continue - } - if repo.ReadOnly() { - continue - } - if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev") { - continue - } - if strings.HasPrefix(repo.GoPath(), "go.wit.com/widget") { - // widget I versioned early before I knew what the hell this would mean and can - // not be down versioned because that's not how GO versioning works. Once you - // set the version for a path, it's set in stone forever. (smart system!) - // we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning - // system, but that's rediculous and this servers to always remind me to never make this mistake again - repo.Status.IncrementRevisionVersion("trying minor") - continue - } - if releasev == repo.Status.LastTag() { - log.Info("skipping already released repo", repo.Status.GoPath()) - repo.Status.SetTargetVersion(releasev) - continue - } - // repo.Status.SetVersion("0", "22", "0", "trying increment minor") - repo.Status.IncrementMinorVersion("trying minor") - } - }) - grid.NewButton("increment changed repos", func() { - me.Disable() - for _, repo := range me.repos.View.AllRepos() { - if whitelist(repo.GoPath()) { - continue - } - if repo.ReadOnly() { - continue - } - lasttag := repo.Status.LastTag() - if repo.Status.GetCurrentVersion() == lasttag { - log.Info("skipping unchanged repo", repo.Status.GoPath()) - repo.Status.SetTargetVersion(lasttag) - continue - } - repo.Status.IncrementRevisionVersion("go-clone") - } - me.repos.View.ScanRepositories() - me.Enable() }) grid.NextRow() - group2 := vbox.NewGroup("Debugger") - dbggrid := group2.NewGrid("gdb", 0, 0) - dbggrid.NewButton("logging Window", func() { - logsettings.LogWindow() - }) - dbggrid.NextRow() + /* + var incrementTags *gui.Node + incrementTags = grid.NewButton("increment tags", func() { + me.Disable() + for _, repo := range me.repos.View.AllRepos() { + if whitelist(repo.GoPath()) { + continue + } + if repo.ReadOnly() { + continue + } + lasttag := repo.LastTag() + masterv := repo.Status.GetMasterVersion() + targetv := repo.Status.GetTargetVersion() - dbggrid.NewButton("Debugger Window", func() { - debugger.DebugWindow() - }) + if lasttag == masterv { + // nothing to do if curv == masterv + // unless go.sum depends on changed repos + if targetv != lasttag { + log.Info(repo.GoPath(), "trigger a new release?", targetv, lasttag) + // repo.Status.SetVersion("0", "21", "0", me.releaseReasonS) + repo.Status.IncrementMinorVersion(me.releaseReasonS) + } + + continue + } + + newversion := repo.Status.GetNewVersionTag() + if newversion == targetv { + log.Info(repo.GoPath(), "targetv has been increased already to", targetv) + continue + } + + if masterv != targetv { + log.Info(repo.GoPath(), "master and target differ", masterv, targetv) + repo.Status.IncrementVersion() + newversion := repo.Status.GetNewVersionTag() + repo.Status.SetTargetVersion("v" + newversion) + // already incremented + continue + } + } + if findNext() { + log.Info("findNext() found a repo") + } + incrementTags.SetText("maybe ready?") + me.Enable() + }) + grid.NewButton("increment minor version", func() { + // this is messy still. if the release process fails, it needs to continue + // for now, use the "go.wit.com/log" release minor number as the official + // release. If it hasn't been updated yet, then start there + logrepo := me.repos.View.FindRepo("go.wit.com/log") + if logrepo == nil { + log.Info("couldn't find go.wit.com/log") + return + } + releasev := logrepo.Status.LastTag() + for _, repo := range me.repos.View.AllRepos() { + if whitelist(repo.GoPath()) { + continue + } + if repo.ReadOnly() { + continue + } + if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev") { + continue + } + if strings.HasPrefix(repo.GoPath(), "go.wit.com/widget") { + // widget I versioned early before I knew what the hell this would mean and can + // not be down versioned because that's not how GO versioning works. Once you + // set the version for a path, it's set in stone forever. (smart system!) + // we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning + // system, but that's rediculous and this servers to always remind me to never make this mistake again + repo.Status.IncrementRevisionVersion("trying minor") + continue + } + if releasev == repo.Status.LastTag() { + log.Info("skipping already released repo", repo.Status.GoPath()) + repo.Status.SetTargetVersion(releasev) + continue + } + // repo.Status.SetVersion("0", "22", "0", "trying increment minor") + repo.Status.IncrementMinorVersion("trying minor") + } + }) + grid.NewButton("increment changed repos", func() { + me.Disable() + for _, repo := range me.repos.View.AllRepos() { + if whitelist(repo.GoPath()) { + continue + } + if repo.ReadOnly() { + continue + } + lasttag := repo.Status.LastTag() + if repo.Status.GetCurrentVersion() == lasttag { + log.Info("skipping unchanged repo", repo.Status.GoPath()) + repo.Status.SetTargetVersion(lasttag) + continue + } + repo.Status.IncrementRevisionVersion("go-clone") + } + me.repos.View.ScanRepositories() + me.Enable() + }) + */ + grid.NextRow() + + /* + group2 := vbox.NewGroup("Debugger") + dbggrid := group2.NewGrid("gdb", 0, 0) + dbggrid.NewButton("logging Window", func() { + logsettings.LogWindow() + }) + dbggrid.NextRow() + + dbggrid.NewButton("Debugger Window", func() { + debugger.DebugWindow() + }) + */ } +/* func hidePerfect() { for _, repo := range me.repos.View.AllRepos() { if repo.State() == "PERFECT" { @@ -231,3 +250,4 @@ func hidePerfect() { } } } +*/ diff --git a/hideFunction.go b/hideFunction.go index 2feac4d..fcbbacf 100644 --- a/hideFunction.go +++ b/hideFunction.go @@ -4,15 +4,16 @@ import ( "os" "go.wit.com/lib/gui/repolist" - "go.wit.com/log" ) // like tcl/tk, use ENV variables to set display preferences func hideFunction(r *repolist.RepoRow) { - if r.GoPath() == "go.wit.com/dev/alexflint/arg" { - log.Info("found autoHideReleased() =", me.autoHideReleased.Checked()) - log.Info("found alexflint/arg IsReleased() =", r.Status.IsReleased()) - } + /* + if r.GoPath() == "go.wit.com/dev/alexflint/arg" { + log.Info("found autoHideReleased() =", me.autoHideReleased.Checked()) + log.Info("found alexflint/arg IsReleased() =", r.Status.IsReleased()) + } + */ // always show dirty repos if r.Status.IsDirty() { @@ -47,12 +48,14 @@ func hideFunction(r *repolist.RepoRow) { } } - if me.autoHideReleased.Checked() { - if r.Status.IsReleased() { - r.Hide() - return + /* + if me.autoHideReleased.Checked() { + if r.Status.IsReleased() { + r.Hide() + return + } } - } + */ // show everything else. often this will be "unconforming" repos // if you what those repos ignored, add these to the config file diff --git a/releaseBox.go b/releaseBox.go index 8a430f1..7604236 100644 --- a/releaseBox.go +++ b/releaseBox.go @@ -170,6 +170,16 @@ func createReleaseBox(box *gui.Node) { group = me.release.box.NewGroup("experimental and potentially dangerous stuff") grid = group.NewGrid("buildOptions", 0, 0) + me.setBranchesToMasterB = grid.NewButton("set all branches to master", func() { + me.Disable() + defer me.Enable() + if setAllBranchesToMaster() { + // if it succeeds, disable this button + me.setBranchesToMasterB.Disable() + } + }) + grid.NextRow() + grid.NewButton("git ls-files |grep go.mod", func() { for _, repo := range me.repos.View.AllRepos() { log.Info("repo:", repo.Name()) diff --git a/structs.go b/structs.go index e61fba0..661f99a 100644 --- a/structs.go +++ b/structs.go @@ -27,9 +27,9 @@ type autoType struct { repos *repoWindow // #### guireleaser repolist display options - autoHideReadOnly *gui.Node - autoHideReleased *gui.Node - ignoreWhitelist *gui.Node + // autoHideReadOnly *gui.Node + // autoHideReleased *gui.Node + // ignoreWhitelist *gui.Node // #### autotypist Global Build Options // what to change all the branches to diff --git a/whitelist.go b/whitelist.go index 502e007..d8c6c77 100644 --- a/whitelist.go +++ b/whitelist.go @@ -11,7 +11,8 @@ func initWhitelist() { me.release.whitelist = make(map[string]*repolist.RepoRow) for _, repo := range me.repos.View.AllRepos() { if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/davecgh") { - me.release.whitelist[repo.GoPath()] = repo + repo.Status.Whitelist = true + // me.release.whitelist[repo.GoPath()] = repo } // // if repo.String() == "go.wit.com/apps/guireleaser" { @@ -27,9 +28,9 @@ func initWhitelist() { func whitelist(path string) bool { // log.Info("whitelist START", path) - if me.ignoreWhitelist.Checked() { - return false - } + // if me.ignoreWhitelist.Checked() { + // return false + // } _, ok := me.release.whitelist[path] if ok {