Skip to content

Commit 2993499

Browse files
jyn514Joshua Nelson
authored and
Joshua Nelson
committed
Show at most one release per crate on /releases
1 parent 9afd7aa commit 2993499

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/web/releases.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ pub(crate) fn get_releases(conn: &mut Client, page: i64, limit: i64, order: Orde
8585
crates.github_stars
8686
FROM crates
8787
INNER JOIN releases ON crates.id = releases.crate_id
88-
WHERE (NOT $3) OR (releases.build_status = FALSE AND releases.is_library = TRUE)
88+
WHERE
89+
((NOT $3) OR (releases.build_status = FALSE AND releases.is_library = TRUE))
90+
AND crates.latest_version_id = releases.id
8991
ORDER BY {} DESC
9092
LIMIT $1 OFFSET $2",
9193
ordering,
@@ -1024,6 +1026,11 @@ mod tests {
10241026
.name("crate_that_succeeded")
10251027
.version("0.1.0")
10261028
.create()?;
1029+
// make sure that crates get at most one release shown, so they don't crowd the page
1030+
env.fake_release()
1031+
.name("crate_that_succeeded")
1032+
.version("0.2.0")
1033+
.create()?;
10271034
env.fake_release()
10281035
.name("crate_that_failed")
10291036
.version("0.1.0")
@@ -1046,7 +1053,7 @@ mod tests {
10461053
let url = attributes.get("href").unwrap();
10471054
if url.contains("crate_that_succeeded") {
10481055
assert_eq!(
1049-
url, "/crate_that_succeeded/0.1.0/crate_that_succeeded",
1056+
url, "/crate_that_succeeded/0.2.0/crate_that_succeeded",
10501057
"for path {}",
10511058
path
10521059
);

0 commit comments

Comments
 (0)