New Upstream Release - golang-pault-go-topsort

Ready changes

Summary

Merged new upstream version: 0.0~git20210425.3860c0f (was: 0.0~git20160529.f98d2ad).

Resulting package

Built on 2022-12-21T14:40 (took 3m26s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases golang-pault-go-topsort-dev

Lintian Result

Diff

diff --git a/debian/changelog b/debian/changelog
index a24be07..f06cfee 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-pault-go-topsort (0.0~git20210425.3860c0f-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Wed, 21 Dec 2022 14:37:36 -0000
+
 golang-pault-go-topsort (0.0~git20160529.f98d2ad-2) unstable; urgency=medium
 
   [ Debian Janitor ]
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..2254272
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module pault.ag/go/topsort
+
+go 1.16
diff --git a/topsort.go b/topsort.go
index 2700230..7bc2033 100644
--- a/topsort.go
+++ b/topsort.go
@@ -47,7 +47,8 @@ func (tn *Network) Sort() ([]*Node, error) {
 }
 
 func (tn *Network) Get(name string) *Node {
-	return tn.nodes[name]
+	node, _ := tn.nodes[name]
+	return node
 }
 
 func (tn *Network) AddNode(name string, value interface{}) *Node {
@@ -102,8 +103,18 @@ func (tn *Network) AddEdge(from string, to string) error {
 	return nil
 }
 
-func (tn *Network) AddEdgeIfExists(from string, to string) {
-	tn.AddEdge(from, to)
+func (tn *Network) AddEdgeAndNodes(from string, to string) error {
+	fromNode := tn.Get(from)
+	if fromNode == nil {
+		fromNode = tn.AddNode(from, nil)
+	}
+
+	toNode := tn.Get(to)
+	if toNode == nil {
+		toNode = tn.AddNode(to, nil)
+	}
+
+	return tn.AddEdge(from, to)
 }
 
 // }}}
diff --git a/topsort_test.go b/topsort_test.go
index 5badfa2..f5c38d5 100644
--- a/topsort_test.go
+++ b/topsort_test.go
@@ -185,4 +185,12 @@ func TestReSort(t *testing.T) {
 	assert(t, series[3].Name == "B")
 }
 
+func TestTopsortEasyEdges(t *testing.T) {
+	network := topsort.NewNetwork()
+	network.AddEdgeAndNodes("foo", "bar")
+	series, err := network.Sort()
+	isok(t, err)
+	assert(t, len(series) == 2)
+}
+
 // vim: foldmethod=marker

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/share/gocode/src/pault.ag/go/topsort/go.mod

No differences were encountered in the control files

More details

Full run details