summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--currentVersions.go28
-rw-r--r--repo.new.go1
-rw-r--r--repo.proto1
3 files changed, 30 insertions, 0 deletions
diff --git a/currentVersions.go b/currentVersions.go
index 4e9d843..4fc7814 100644
--- a/currentVersions.go
+++ b/currentVersions.go
@@ -6,7 +6,9 @@ package gitpb
import (
"errors"
"path/filepath"
+ "sort"
"strings"
+ "time"
"unicode"
"go.wit.com/log"
@@ -213,3 +215,29 @@ func trimNonNumericFromStart(s string) string {
}
return ""
}
+
+func (all *GitTags) SortByAge() *GitTagIterator {
+ packs := all.selectAllGitTag()
+
+ sort.Sort(GitTagAge(packs))
+
+ iterator := NewGitTagIterator(packs)
+ return iterator
+}
+
+type GitTagAge []*GitTag
+
+func (a GitTagAge) Len() int { return len(a) }
+
+// sorts in ? order
+func (a GitTagAge) Less(i, j int) bool {
+ if time.Since(a[i].Authordate.AsTime()) > time.Since(a[j].Authordate.AsTime()) {
+ return true
+ }
+ return false
+}
+func (a GitTagAge) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
+
+func (repo *Repo) SetTargetVersion(target string) {
+ repo.TargetVersion = target
+}
diff --git a/repo.new.go b/repo.new.go
index 5d774fe..dc7f17e 100644
--- a/repo.new.go
+++ b/repo.new.go
@@ -81,6 +81,7 @@ func (repo *Repo) isPrimativeGoMod() (bool, error) {
}
}
+ repo.GoPrimitive = true
return true, nil
}
diff --git a/repo.proto b/repo.proto
index c966ab9..ec3b6fb 100644
--- a/repo.proto
+++ b/repo.proto
@@ -27,6 +27,7 @@ message Repo { // `autogenpb:marshal`
google.protobuf.Timestamp lastGoDep = 13; // last time go.sum was processed
bool dirty = 14; // if git says things have been changed
GoDeps published = 15; // the last published go.mod/go.sum
+ string targetVersion = 16; // useful during the package release process
}
message Repos { // `autogenpb:marshal`