Compare commits

...

15 Commits

Author SHA1 Message Date
Jeff Carr dcac6d6608 build-quick 2025-09-22 20:35:06 -05:00
Jeff Carr da0540d3a7 more stuff 2025-09-13 07:45:09 -05:00
Jeff Carr bcaded6b37 s// 2025-09-13 07:30:31 -05:00
Jeff Carr 926a1ce33c moved to new scan func 2025-09-13 07:09:28 -05:00
Jeff Carr d31c80d780 minor 2025-09-13 05:32:42 -05:00
Jeff Carr 0e6cefb72e duh 2025-09-13 01:57:04 -05:00
Jeff Carr 5ceab01b0e smarter build 2025-09-13 01:31:07 -05:00
Jeff Carr 2d5a45476c api change 2025-09-13 01:07:42 -05:00
Jeff Carr 03daf07ec2 rm bits 2025-09-12 16:02:14 -05:00
Jeff Carr dca25f2425 rm debugging code 2025-09-12 16:01:33 -05:00
Jeff Carr 756586e95e attempt to debug the release process further 2025-09-12 15:51:45 -05:00
Jeff Carr bad8a5c628 trying to debug the process 2025-09-12 15:40:19 -05:00
Jeff Carr 73cc9c0693 track down versioning 2025-09-12 15:12:32 -05:00
Jeff Carr 63dc802ded add tag check to doRelease() 2025-09-12 14:52:13 -05:00
Jeff Carr fd2254cd72 stop using GoSrc() 2025-09-11 22:14:41 -05:00
7 changed files with 79 additions and 73 deletions

View File

@ -58,9 +58,6 @@ findNext:
showNext: showNext:
curl --silent http://localhost:9419/showNext curl --silent http://localhost:9419/showNext
testNext:
curl --silent http://localhost:9419/testNext
doRelease: doRelease:
reset reset
make showNext make showNext
@ -96,8 +93,33 @@ safe-build: install
build-quick: install build-quick: install
wit-test install --verbose wit-test install --verbose
rm -f go.* ; git checkout go.mod ; cd ~/go/src/go.wit.com/lib/xgb/ && time GUIRELEASE_REASON="safe-build" guireleaser --gui andlabs quick # rm -f go.* ; git checkout go.mod ;cd ~/go/src/go.wit.com/lib/xgb/ && time GUIRELEASE_REASON="safe-build" guireleaser --gui andlabs quick
sudo "wit update" sudo "wit update"
autocomplete: autocomplete:
guireleaser --bash > ~/.local/share/bash-completion/completions/guireleaser guireleaser --bash > ~/.local/share/bash-completion/completions/guireleaser
test-build-force:
GUIRELEASE_REASON="safe-build" guireleaser --gui andlabs --force
# time GUIRELEASE_REASON="safe-build" make test-build
test-build:
wit-test install --verbose
rm ~/go/bin/forged
cd ~/go/src/go.wit.com/lib/xgb/ && rm -f go.*
cd ~/go/src/go.wit.com/lib/xgb/ && git checkout go.mod
cd ~/go/src/go.wit.com/lib/xgb/ && time guireleaser --gui andlabs
cd ~/go/src/go.wit.com/apps/guireleaser
wit-test debian --verbose
do-aptly
# time GUIRELEASE_REASON="safe-build" make test-build-quick
test-build-quick:
wit-test install --verbose
rm ~/go/bin/forged
cd ~/go/src/go.wit.com/lib/xgb/ && rm -f go.*
cd ~/go/src/go.wit.com/lib/xgb/ && git checkout go.mod
cd ~/go/src/go.wit.com/lib/xgb/ && time guireleaser --gui andlabs quick
cd ~/go/src/go.wit.com/apps/guireleaser
wit-test debian --verbose
do-aptly

View File

@ -54,9 +54,19 @@ func doRelease() error {
log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath()) log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath())
log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath()) log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath())
log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath()) log.Info("doRelease() WARNING. should have never gotten here. return true. already done", check.GetGoPath())
check.Reload() check.ReloadCheck()
return fmt.Errorf("already released %s", check.GetGoPath()) return fmt.Errorf("already released %s", check.GetGoPath())
} }
// check if the git tag already exists somehow
testtag := me.release.version.String()
if check.LocalTagExists(testtag) {
log.Info("TAG ALREADY EXISTS", testtag)
return log.Errorf("%s TAG ALREADY EXISTS %s", check.FullPath, testtag)
} else {
log.Info("TAG IS NEW", testtag)
}
if me.forge.Config.IsPrivate(me.current.GetGoPath()) { if me.forge.Config.IsPrivate(me.current.GetGoPath()) {
// do not self update private repos // do not self update private repos
log.Info("This is a private repo.") log.Info("This is a private repo.")

View File

@ -8,11 +8,12 @@ import (
func okExit(thing string) { func okExit(thing string) {
log.Info(thing, "ok") log.Info(thing, "ok")
// log.Info("Finished go-clean on", check.GetGoPath(), "ok") // log.Info("Finished go-clean on", check.GetNamespace(), "ok")
me.forge.Exit()
os.Exit(0) os.Exit(0)
} }
func badExit(err error) { func badExit(err error) {
log.Info("forge failed: ", err, me.forge.GetGoSrc()) log.Info("forge failed: ", err, me.forge.Config.ReposDir)
os.Exit(-1) os.Exit(-1)
} }

View File

@ -1,4 +1,3 @@
// This is a simple example
package main package main
import ( import (
@ -9,7 +8,6 @@ import (
"go.wit.com/log" "go.wit.com/log"
"go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/gitpb" "go.wit.com/lib/protobuf/gitpb"
) )
@ -19,15 +17,15 @@ var findOk bool = true
func checkDeps(repo *gitpb.Repo) error { func checkDeps(repo *gitpb.Repo) error {
if repo.GoDeps == nil { if repo.GoDeps == nil {
return fmt.Errorf("%s has GoDeps == nil", repo.GetGoPath()) return fmt.Errorf("%s has GoDeps == nil", repo.GetNamespace())
} }
for dep := range repo.GoDeps.IterAll() { for dep := range repo.GoDeps.IterAll() {
// log.Info(repo.GetGoPath(), dep.GoPath, dep.Version) // log.Info(repo.GetNamespace(), dep.GoPath, dep.Version)
// check if the package in question is waiting for another package to publish // check if the package in question is waiting for another package to publish
found := me.forge.FindByGoPath(dep.GoPath) found := me.forge.FindByGoPath(dep.GoPath)
if found == nil { if found == nil {
return fmt.Errorf("%s has dep == nil", repo.GetGoPath(), dep.GoPath) return fmt.Errorf("%s has dep == nil", repo.GetNamespace(), dep.GoPath)
} }
// loop through all the repos that need to be published with new go versions // loop through all the repos that need to be published with new go versions
@ -35,9 +33,9 @@ func checkDeps(repo *gitpb.Repo) error {
for all.Scan() { for all.Scan() {
check := all.Next() check := all.Next()
if found.GetGoPath() == check.GetGoPath() { if found.GetNamespace() == check.GetNamespace() {
// this package is waiting on other packages to publish // this package is waiting on other packages to publish
return fmt.Errorf("%s is waiting on %s", repo.GetGoPath(), found.GetGoPath()) return fmt.Errorf("%s is waiting on %s", repo.GetNamespace(), found.GetNamespace())
} }
} }
// found package isn't being published. is the version correct? // found package isn't being published. is the version correct?
@ -46,7 +44,7 @@ func checkDeps(repo *gitpb.Repo) error {
if found.GetLastTag() == dep.Version { if found.GetLastTag() == dep.Version {
// everything is normal // everything is normal
} else { } else {
return fmt.Errorf("%s version mismatch on %s (%s vs %s)", repo.GetGoPath(), found.GetGoPath(), found.GetLastTag(), dep.Version) return fmt.Errorf("%s version mismatch on %s (%s vs %s)", repo.GetNamespace(), found.GetNamespace(), found.GetLastTag(), dep.Version)
} }
*/ */
} }
@ -63,21 +61,21 @@ func findNext() bool {
for all.Scan() { for all.Scan() {
check := all.Next() check := all.Next()
if check.GetMasterBranchName() != check.GetCurrentBranchName() { if check.GetMasterBranchName() != check.GetCurrentBranchName() {
log.Info("YOU MUST BE ON THE MASTER BRANCH", check.GetGoPath()) log.Info("YOU MUST BE ON THE MASTER BRANCH", check.GetNamespace())
continue continue
} }
if check.IsDirty() { if check.IsDirty() {
log.Info("CAN NOT RELEASE DIRTY REPO", check.GetGoPath()) log.Info("CAN NOT RELEASE DIRTY REPO", check.GetNamespace())
continue continue
} }
if alreadyDone(check) { if alreadyDone(check) {
log.Info("findNext() alreadyDone. WHY IS THIS STILL CHECKING?", check.GetGoPath()) log.Info("findNext() alreadyDone. WHY IS THIS STILL CHECKING?", check.GetNamespace())
continue continue
} }
log.Info("CHECKING START:", check.GetGoPath()) log.Info("CHECKING START:", check.GetNamespace())
if me.forge.Config.IsPrivate(check.GetGoPath()) { if me.forge.Config.IsPrivate(check.GetNamespace()) {
log.Info("GOOD TO GO ON PRIVATE REPO", check.GetGoPath()) log.Info("GOOD TO GO ON PRIVATE REPO", check.GetNamespace())
setCurrentRepo(check, "should be good to release", "pretty sure") setCurrentRepo(check, "should be good to release", "pretty sure")
return true return true
} }
@ -107,31 +105,20 @@ func findNext() bool {
if err := me.forge.FinalGoDepsCheckOk(check, argv.Verbose); err != nil { if err := me.forge.FinalGoDepsCheckOk(check, argv.Verbose); err != nil {
// if err := me.forge.FinalGoDepsCheckOk(check, false); err != nil { // if err := me.forge.FinalGoDepsCheckOk(check, false); err != nil {
log.Info("FinalGoDepsCheckOk() repo=", check.GetGoPath(), "err:", err) log.Info("FinalGoDepsCheckOk() repo=", check.GetNamespace(), "err:", err)
log.Info("CHECKING END:", check.GetGoPath()) log.Info("CHECKING END:", check.GetNamespace())
log.Info("") log.Info("")
continue continue
} }
log.Info("GOOD TO GO ON", check.GetGoPath()) log.Info("GOOD TO GO ON", check.GetNamespace())
setCurrentRepo(check, "should be good to release", "pretty sure") setCurrentRepo(check, "should be good to release", "pretty sure")
return true return true
} }
if findCounter == 0 { if findCounter == 0 {
log.Info("NOTHING TO UPDATE. findCounter =", findCounter, "found len =", me.found.Len()) log.Info("NOTHING TO UPDATE. findCounter =", findCounter, "found len =", me.found.Len())
if me.found.Len() == 0 { if me.found.Len() == 0 {
printDone() printDone()
log.Info("cd lib/; make debian")
wit := me.forge.FindByGoPath("go.wit.com/apps/utils/wit-test")
if wit != nil {
log.Info("cd", wit.GetFullPath())
os.Chdir(wit.GetFullPath())
shell.Exec([]string{"ls", "-l"})
if argv.Full {
shell.Exec([]string{"make", "debian-release-force"})
} else {
shell.Exec([]string{"make", "debian-release"})
}
}
okExit("") okExit("")
} }
} else { } else {
@ -151,7 +138,7 @@ func setCurrentRepo(check *gitpb.Repo, s string, note string) bool {
me.release.releaseVersionB.SetText("nope") me.release.releaseVersionB.SetText("nope")
me.release.version.SetText("badver") me.release.version.SetText("badver")
} else { } else {
me.release.repo.SetText(check.GetGoPath()) me.release.repo.SetText(check.GetNamespace())
me.release.version.SetText(check.GetTargetVersion()) me.release.version.SetText(check.GetTargetVersion())
me.release.releaseVersionB.SetText("release version " + check.GetTargetVersion()) me.release.releaseVersionB.SetText("release version " + check.GetTargetVersion())
me.release.version.SetText(check.GetTargetVersion()) me.release.version.SetText(check.GetTargetVersion())
@ -159,7 +146,6 @@ func setCurrentRepo(check *gitpb.Repo, s string, note string) bool {
me.release.status.SetText(s) me.release.status.SetText(s)
me.release.notes.SetText(note) me.release.notes.SetText(note)
// me.release.openrepo.Enable() // me.release.openrepo.Enable()
return true return true
} }
@ -170,12 +156,12 @@ func testGoDepsCheckOk(godeps *gitpb.GoDeps, verbose bool) error {
all := godeps.SortByGoPath() all := godeps.SortByGoPath()
for all.Scan() { for all.Scan() {
depRepo := all.Next() depRepo := all.Next()
fullpath := filepath.Join(me.forge.GetGoSrc(), depRepo.GetGoPath()) fullpath := filepath.Join(me.forge.Config.ReposDir, depRepo.GoPath)
found := me.found.FindByFullPath(fullpath) found := me.found.FindByFullPath(fullpath)
if found == nil { if found == nil {
continue continue
} }
return fmt.Errorf("dep is being upgraded %s", depRepo.GetGoPath()) return fmt.Errorf("dep is being upgraded %s", depRepo.GoPath)
} }
return nil return nil
} }

View File

@ -32,13 +32,13 @@ func main() {
me.pp = arg.MustParse(&argv) me.pp = arg.MustParse(&argv)
me.forge = forgepb.Init() me.forge = forgepb.Init()
me.forge.ScanGoSrc() me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
me.found = new(gitpb.Repos) me.found = new(gitpb.Repos)
fhelp.CheckGoModCleanExit() fhelp.CheckGoModCleanExit()
// me.forge.ConfigPrintTable() // me.forge.ConfigPrintTable()
os.Setenv("REPO_WORK_PATH", me.forge.GetGoSrc()) os.Setenv("REPO_WORK_PATH", me.forge.Config.ReposDir)
// save the ENV var here // save the ENV var here
me.releaseReasonS = os.Getenv("GUIRELEASE_REASON") me.releaseReasonS = os.Getenv("GUIRELEASE_REASON")

View File

@ -90,9 +90,7 @@ func rillRestore(repo *gitpb.Repo) error {
} }
func rePrepareRelease() { func rePrepareRelease() {
// reload the config me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
me.forge = forgepb.Init()
me.forge.ScanGoSrc()
me.found = new(gitpb.Repos) me.found = new(gitpb.Repos)
me.reason = make(map[*gitpb.Repo]string) // stores the reason repos need to be versioned & released me.reason = make(map[*gitpb.Repo]string) // stores the reason repos need to be versioned & released
@ -227,10 +225,12 @@ func rePrepareRelease() {
for repo := range me.found.IterAll() { for repo := range me.found.IterAll() {
if repo.CurrentBranchName != repo.MasterBranchName { if repo.CurrentBranchName != repo.MasterBranchName {
log.Info("repo not on master branch", repo.FullPath) log.Info("repo not on master branch", repo.FullPath)
if !argv.Force {
os.Exit(-1) os.Exit(-1)
} }
} }
} }
}
func printDone() { func printDone() {
for _, gopath := range me.done { for _, gopath := range me.done {

View File

@ -9,9 +9,7 @@ import (
"go.wit.com/log" "go.wit.com/log"
"go.wit.com/lib/gadgets" "go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/repolist"
"go.wit.com/lib/gui/shell" "go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb" "go.wit.com/lib/protobuf/gitpb"
) )
@ -34,7 +32,7 @@ type releaseStruct struct {
checkDirtyB *gui.Node checkDirtyB *gui.Node
sendVersionB *gui.Node sendVersionB *gui.Node
checkSafeB *gui.Node checkSafeB *gui.Node
whitelist map[string]*repolist.RepoRow // whitelist map[string]*repolist.RepoRow
} }
func (w *autoType) Disable() { func (w *autoType) Disable() {
@ -53,15 +51,18 @@ func createReleaseBox(box *gui.Node) {
me.release.releaseVersionB = me.release.grid.NewButton("release version", func() { me.release.releaseVersionB = me.release.grid.NewButton("release version", func() {
buttonDisable() buttonDisable()
fpath := me.current.FullPath
if err := doRelease(); err == nil { if err := doRelease(); err == nil {
buttonEnable() buttonEnable()
log.Info("doRelease() worked") log.Info("doRelease() worked", fpath)
} else { } else {
log.Info("doRelease() failed", err) log.Info("doRelease() failed", err, fpath)
log.Info("doRelease() FAILED", err) log.Info("doRelease() FAILED", err, fpath)
log.Info("doRelease() FAILED", err) log.Info("doRelease() FAILED", err, fpath)
log.Info("doRelease() FAILED", err) log.Info("doRelease() FAILED", err, fpath)
} }
skipToNext()
me.forge.PrintHumanTable(me.found)
}) })
me.release.grid.NewButton("Find Next", func() { me.release.grid.NewButton("Find Next", func() {
me.Disable() me.Disable()
@ -83,14 +84,6 @@ func createReleaseBox(box *gui.Node) {
me.release.grid.NextRow() me.release.grid.NextRow()
me.release.repo = gadgets.NewOneLiner(me.release.grid, "repo") me.release.repo = gadgets.NewOneLiner(me.release.grid, "repo")
/*
me.release.openrepo = me.release.grid.NewButton("Configure", func() {
if repov := me.repos.View.FindByPath(me.current.GetGoPath()); repov != nil {
repov.Status.Toggle()
}
})
me.release.openrepo.Disable()
*/
me.release.grid.NextRow() me.release.grid.NextRow()
me.release.status = gadgets.NewOneLiner(me.release.grid, "status") me.release.status = gadgets.NewOneLiner(me.release.grid, "status")
me.release.grid.NextRow() me.release.grid.NextRow()
@ -112,16 +105,11 @@ func createReleaseBox(box *gui.Node) {
me.release.grid.NextRow() me.release.grid.NextRow()
// me.userHomePwd.SetText(homeDir) // me.userHomePwd.SetText(homeDir)
me.goSrcPwd.SetText(me.forge.GetGoSrc()) me.goSrcPwd.SetText(me.forge.Config.ReposDir)
group := me.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("whitelist", func() {
})
*/
grid.NextRow() grid.NextRow()
group = me.release.box.NewGroup("Publish until done") group = me.release.box.NewGroup("Publish until done")
@ -156,13 +144,12 @@ func doReleaseAll() {
func skipToNext() error { func skipToNext() error {
shell.RunVerbose([]string{"forge", "dirty"}) shell.RunVerbose([]string{"forge", "dirty"})
log.Info("Sleeping for 3 seconds. Forge file should have been rewritten") log.Info("Sleeping for 2 seconds for no reason.")
time.Sleep(3) time.Sleep(1)
me.forge = forgepb.Init() me.forge.ScanRepoDir() // looks for new dirs, checks existing repos for changes
me.forge.ScanGoSrc()
me.found = new(gitpb.Repos) me.found = new(gitpb.Repos)
me.current.Reload() me.current.ReloadCheck()
me.forge.SetConfigSave(true) me.forge.SetConfigSave(true)
me.forge.ConfigSave() me.forge.ConfigSave()
log.Info("sleep 2") log.Info("sleep 2")