diff --git a/app/components/crate-sidebar.hbs b/app/components/crate-sidebar.hbs
index d078b5f6790..c588da07336 100644
--- a/app/components/crate-sidebar.hbs
+++ b/app/components/crate-sidebar.hbs
@@ -17,19 +17,15 @@
- {{#if @version.msrv}}
+ {{#if @version.rust_version}}
- {{#if @version.msrv}}
+ {{#if @version.rust_version}}
{{svg-jar "rust"}}
- v{{@version.msrv}}
-
-
- "Minimum Supported Rust Version"
- {{#if @version.edition}}
- requires Rust Edition {{@version.edition}}
- {{/if}}
-
+
+
+ {{else if @version.edition}}
+
+ {{svg-jar "rust"}}
+
{{/if}}
diff --git a/app/components/version-list/row.module.css b/app/components/version-list/row.module.css
index 63722b01f09..b26ad533c57 100644
--- a/app/components/version-list/row.module.css
+++ b/app/components/version-list/row.module.css
@@ -205,17 +205,15 @@
.msrv {
text-transform: initial;
+}
+.msrv, .edition {
svg {
/* this makes the text look a little more aligned with the icon... 🤷 */
margin-bottom: -0.15em;
}
}
-.edition {
- margin-top: var(--space-2xs);
-}
-
.bytes {
font-variant-numeric: tabular-nums;
text-transform: none;
diff --git a/app/models/version.js b/app/models/version.js
index 1c5e4682ffb..ccac88619d9 100644
--- a/app/models/version.js
+++ b/app/models/version.js
@@ -50,12 +50,8 @@ export default class Version extends Model {
return this.belongsTo('crate').id();
}
- get msrv() {
- let rustVersion = this.rust_version;
- if (rustVersion) {
- // add `.0` suffix if the `rust-version` field only has two version components
- return /^[^.]+\.[^.]+$/.test(rustVersion) ? `${rustVersion}.0` : rustVersion;
- } else if (this.edition === '2018') {
+ get editionMsrv() {
+ if (this.edition === '2018') {
return '1.31.0';
} else if (this.edition === '2021') {
return '1.56.0';
@@ -64,6 +60,14 @@ export default class Version extends Model {
}
}
+ get msrv() {
+ let rustVersion = this.rust_version;
+ if (rustVersion) {
+ // add `.0` suffix if the `rust-version` field only has two version components
+ return /^[^.]+\.[^.]+$/.test(rustVersion) ? `${rustVersion}.0` : rustVersion;
+ }
+ }
+
get isNew() {
return Date.now() - this.created_at.getTime() < EIGHT_DAYS;
}
diff --git a/tests/models/version-test.js b/tests/models/version-test.js
index 34601ed9757..3cac01fcc68 100644
--- a/tests/models/version-test.js
+++ b/tests/models/version-test.js
@@ -32,6 +32,26 @@ module('Model | Version', function (hooks) {
assert.false(versions[0].isNew);
});
+ test('editionMsrv', async function (assert) {
+ let version = await this.store.createRecord('version');
+ assert.strictEqual(version.editionMsrv, undefined);
+
+ version.edition = '2015';
+ assert.strictEqual(version.editionMsrv, undefined);
+
+ version.edition = '2018';
+ assert.strictEqual(version.editionMsrv, '1.31.0');
+
+ version.edition = '2021';
+ assert.strictEqual(version.editionMsrv, '1.56.0');
+
+ version.edition = '2024';
+ assert.strictEqual(version.editionMsrv, '1.85.0');
+
+ version.edition = '2027';
+ assert.strictEqual(version.editionMsrv, undefined);
+ });
+
test('msrv', async function (assert) {
let version = await this.store.createRecord('version');
assert.strictEqual(version.msrv, undefined);