Skip to content

Commit 4305d17

Browse files
committed
Sort dependencies & dependents
This sorts them by group + project name, alpha descending. Fixes #900.
1 parent cfacbb4 commit 4305d17

File tree

4 files changed

+40
-6
lines changed

4 files changed

+40
-6
lines changed

dev-resources/fake-0.0.2/fake.pom

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
<artifactId>clojure</artifactId>
2020
<version>1.3.0-beta1</version>
2121
</dependency>
22+
<dependency>
23+
<groupId>foo</groupId>
24+
<artifactId>bar</artifactId>
25+
<version>1.0</version>
26+
</dependency>
2227
<dependency>
2328
<groupId>org.clojurer</groupId>
2429
<artifactId>clojure</artifactId>

dev-resources/test-0.0.3/test.pom

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>com.dantheman</groupId>
6+
<artifactId>test</artifactId>
7+
<version>0.0.3</version>
8+
<packaging>jar</packaging>
9+
10+
<name>asdf</name>
11+
12+
<properties>
13+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14+
</properties>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>fake</groupId>
19+
<artifactId>fake</artifactId>
20+
<version>0.0.2</version>
21+
</dependency>
22+
</dependencies>
23+
</project>

src/clojars/web/jar.clj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@
229229
[:p (safe-link-to (str (jar-url jar) "/versions")
230230
(str "Show All Versions (" count " total)"))])))
231231

232+
(defn- sort-deps
233+
[deps]
234+
(sort-by (juxt :group_name :jar_name) deps))
235+
232236
(defn- dependencies [db {:keys [group_name jar_name version]}]
233237
(when-some [deps (seq (into []
234238
(comp
@@ -241,7 +245,7 @@
241245
(list
242246
[:h3 "Dependencies"]
243247
[:ul#dependencies
244-
(for [dep deps]
248+
(for [dep (sort-deps deps)]
245249
[:li (dependency-link db dep)])])))
246250

247251
(defn- get-dependents [db {:keys [group_name jar_name]}]
@@ -257,7 +261,7 @@
257261
(list
258262
[:h3 "Dependents (on Clojars)"]
259263
[:ul#dependents
260-
(for [dep (take 10 distinct-deps)]
264+
(for [dep (take 10 (sort-deps distinct-deps))]
261265
[:li (dependent-link dep)])]
262266
[:p (link-to (str (jar-url jar) "/dependents")
263267
(format "All Dependents (%s) for all Versions (%s)"
@@ -377,7 +381,7 @@
377381
[:h2 (safe-link-to (jar-versioned-url (assoc jar :version version))
378382
version)]
379383
(for [[base-d dep-versions] (->> deps
380-
(sort-by first)
384+
(sort-deps)
381385
(group-by #(select-keys % #{:group_name :jar_name})))]
382386
[:div.dependent-jar
383387
[:h3 (jar-link base-d)]

test/clojars/integration/jars_test.clj

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,25 @@
8787
(-> (session (help/app))
8888
(visit "/fake")
8989
(within [:ul#dependencies]
90-
(has (text? "org.clojure/clojure 1.3.0-beta1")))))
90+
(has (text? "foo/bar 1.0org.clojure/clojure 1.3.0-beta1")))))
9191

9292
(deftest jars-can-view-dependents
9393
(inject-artifacts-into-repo! help/*db* "someuser" "fake.jar" "fake-0.0.2/fake.pom")
9494
(inject-artifacts-into-repo! help/*db* "someuser" "test.jar" "test-0.0.2/test.pom")
95+
(inject-artifacts-into-repo! help/*db* "someuser" "test.jar" "test-0.0.3/test.pom")
9596
(-> (session (help/app))
9697
(visit "/fake")
9798
(within [:ul#dependents]
98-
(has (text? "org.clojars.dantheman/test")))))
99+
(has (text? "com.dantheman/testorg.clojars.dantheman/test")))))
99100

100101
(deftest jars-can-view-dependents-on-dependents-page
101102
(inject-artifacts-into-repo! help/*db* "someuser" "fake.jar" "fake-0.0.2/fake.pom")
102103
(inject-artifacts-into-repo! help/*db* "someuser" "test.jar" "test-0.0.2/test.pom")
104+
(inject-artifacts-into-repo! help/*db* "someuser" "test.jar" "test-0.0.3/test.pom")
103105
(-> (session (help/app))
104106
(visit "/fake/dependents")
105107
(within [:div.dependents]
106-
(has (text? "0.0.2org.clojars.dantheman/test0.0.2")))))
108+
(has (text? "0.0.2com.dantheman/test0.0.3org.clojars.dantheman/test0.0.2")))))
107109

108110
(deftest shadow-jars-have-a-message
109111
(inject-artifacts-into-repo! help/*db* "someuser" "fake.jar"

0 commit comments

Comments
 (0)