Skip to content

Commit fc0d03e

Browse files
authored
Merge pull request #182 from DeterminateSystems/sort-ref-status
Sort keys in ref-statuses.json
2 parents 0f484de + e0f39a1 commit fc0d03e

File tree

9 files changed

+42
-38
lines changed

9 files changed

+42
-38
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "flake-checker"
3-
version = "0.2.6"
3+
version = "0.2.7"
44
edition = "2021"
55

66
[workspace]

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ But you can also use Nix Flake Checker [in CI](#the-flake-checker-action).
2626
## Supported branches
2727

2828
At any given time, [Nixpkgs] has a bounded set of branches that are considered _supported_.
29-
The current list:
29+
The current list, with their statuses:
3030

31-
- `nixos-23.11`
32-
- `nixos-23.11-small`
33-
- `nixos-24.05`
34-
- `nixos-24.05-small`
31+
- `nixos-24.11`
32+
- `nixos-24.11-small`
33+
- `nixos-25.05`
34+
- `nixos-25.05-small`
3535
- `nixos-unstable`
3636
- `nixos-unstable-small`
37-
- `nixpkgs-23.11-darwin`
38-
- `nixpkgs-24.05-darwin`
37+
- `nixpkgs-24.11-darwin`
38+
- `nixpkgs-25.05-darwin`
3939
- `nixpkgs-unstable`
4040

4141
## Parameters

ref-statuses.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
2-
"nixpkgs-25.05-darwin": "stable",
32
"nixos-24.05": "unmaintained",
4-
"nixos-unstable-small": "rolling",
5-
"nixos-24.11": "deprecated",
6-
"nixos-25.05-small": "stable",
73
"nixos-24.05-small": "unmaintained",
4+
"nixos-24.11": "deprecated",
85
"nixos-24.11-small": "deprecated",
9-
"nixpkgs-24.11-darwin": "deprecated",
10-
"nixos-unstable": "rolling",
116
"nixos-25.05": "stable",
12-
"nixpkgs-unstable": "rolling",
13-
"nixpkgs-24.05-darwin": "unmaintained"
7+
"nixos-25.05-small": "stable",
8+
"nixos-unstable": "rolling",
9+
"nixos-unstable-small": "rolling",
10+
"nixpkgs-24.05-darwin": "unmaintained",
11+
"nixpkgs-24.11-darwin": "deprecated",
12+
"nixpkgs-25.05-darwin": "stable",
13+
"nixpkgs-unstable": "rolling"
1414
}

src/condition.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use cel_interpreter::{Context, Program, Value};
22
use parse_flake_lock::{FlakeLock, Node};
33

4-
use std::collections::HashMap;
4+
use std::collections::{BTreeMap, HashMap};
55

66
use crate::{
77
error::FlakeCheckerError,
@@ -19,11 +19,15 @@ pub(super) fn evaluate_condition(
1919
flake_lock: &FlakeLock,
2020
nixpkgs_keys: &[String],
2121
condition: &str,
22-
ref_statuses: HashMap<String, String>,
22+
ref_statuses: BTreeMap<String, String>,
2323
supported_refs: Vec<String>,
2424
) -> Result<Vec<Issue>, FlakeCheckerError> {
2525
let mut issues: Vec<Issue> = vec![];
2626
let mut ctx = Context::default();
27+
28+
let ref_statuses = ref_statuses
29+
.into_iter()
30+
.collect::<HashMap<String, String>>();
2731
ctx.add_variable_from_value(KEY_REF_STATUSES, ref_statuses);
2832
ctx.add_variable_from_value(KEY_SUPPORTED_REFS, supported_refs);
2933

src/flake.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![allow(dead_code)]
22

3-
use std::collections::HashMap;
3+
use std::collections::BTreeMap;
44

55
use crate::issue::{Disallowed, Issue, IssueKind, NonUpstream, Outdated};
66
use crate::FlakeCheckerError;
@@ -33,8 +33,8 @@ impl Default for FlakeCheckConfig {
3333
pub(super) fn nixpkgs_deps(
3434
flake_lock: &FlakeLock,
3535
keys: &[String],
36-
) -> Result<HashMap<String, Node>, FlakeCheckerError> {
37-
let mut deps: HashMap<String, Node> = HashMap::new();
36+
) -> Result<BTreeMap<String, Node>, FlakeCheckerError> {
37+
let mut deps: BTreeMap<String, Node> = BTreeMap::new();
3838

3939
for (ref key, node) in flake_lock.root.clone() {
4040
match &node {
@@ -144,7 +144,7 @@ pub(super) fn num_days_old(timestamp: i64) -> i64 {
144144

145145
#[cfg(test)]
146146
mod test {
147-
use std::collections::HashMap;
147+
use std::collections::BTreeMap;
148148
use std::path::PathBuf;
149149

150150
use crate::{
@@ -171,7 +171,7 @@ mod test {
171171
),
172172
];
173173

174-
let ref_statuses: HashMap<String, String> =
174+
let ref_statuses: BTreeMap<String, String> =
175175
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
176176
let supported_refs = supported_refs(ref_statuses.clone());
177177
let path = PathBuf::from("tests/flake.cel.0.lock");
@@ -204,7 +204,7 @@ mod test {
204204

205205
#[test]
206206
fn clean_flake_locks() {
207-
let ref_statuses: HashMap<String, String> =
207+
let ref_statuses: BTreeMap<String, String> =
208208
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
209209
let allowed_refs = supported_refs(ref_statuses);
210210
for n in 0..=7 {
@@ -225,7 +225,7 @@ mod test {
225225

226226
#[test]
227227
fn dirty_flake_locks() {
228-
let ref_statuses: HashMap<String, String> =
228+
let ref_statuses: BTreeMap<String, String> =
229229
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
230230
let allowed_refs = supported_refs(ref_statuses);
231231
let cases: Vec<(&str, Vec<Issue>)> = vec![
@@ -280,7 +280,7 @@ mod test {
280280

281281
#[test]
282282
fn explicit_nixpkgs_keys() {
283-
let ref_statuses: HashMap<String, String> =
283+
let ref_statuses: BTreeMap<String, String> =
284284
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
285285
let allowed_refs = supported_refs(ref_statuses);
286286
let cases: Vec<(&str, Vec<String>, Vec<Issue>)> = vec![(
@@ -309,7 +309,7 @@ mod test {
309309

310310
#[test]
311311
fn missing_nixpkgs_keys() {
312-
let ref_statuses: HashMap<String, String> =
312+
let ref_statuses: BTreeMap<String, String> =
313313
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
314314
let allowed_refs = supported_refs(ref_statuses);
315315
let cases: Vec<(&str, Vec<String>, String)> = vec![(

src/main.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ mod summary;
77
#[cfg(feature = "ref-statuses")]
88
mod ref_statuses;
99

10-
use std::collections::HashMap;
10+
use std::collections::BTreeMap;
1111
use std::path::PathBuf;
1212
use std::process::ExitCode;
1313

@@ -97,11 +97,11 @@ struct Cli {
9797
}
9898

9999
#[cfg(not(feature = "ref-statuses"))]
100-
pub(crate) fn supported_refs(ref_statuses: HashMap<String, String>) -> Vec<String> {
100+
pub(crate) fn supported_refs(ref_statuses: BTreeMap<String, String>) -> Vec<String> {
101101
let mut return_value: Vec<String> = ref_statuses
102102
.iter()
103103
.filter_map(|(channel, status)| {
104-
if *status != "unmaintained" && *status != "beta" {
104+
if ["rolling", "stable", "deprecated"].contains(&status.as_str()) {
105105
Some(channel.clone())
106106
} else {
107107
None
@@ -120,7 +120,7 @@ async fn main() -> Result<ExitCode, FlakeCheckerError> {
120120
.with(EnvFilter::from_default_env())
121121
.init();
122122

123-
let ref_statuses: HashMap<String, String> =
123+
let ref_statuses: BTreeMap<String, String> =
124124
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
125125

126126
let Cli {
@@ -279,7 +279,7 @@ fn main() -> Result<ExitCode, FlakeCheckerError> {
279279
}
280280

281281
if check_ref_statuses {
282-
let mut ref_statuses: HashMap<String, String> =
282+
let mut ref_statuses: BTreeMap<String, String> =
283283
serde_json::from_str(include_str!("../ref-statuses.json")).unwrap();
284284

285285
match ref_statuses::check_ref_statuses(ref_statuses) {

src/ref_statuses.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::error::FlakeCheckerError;
22

33
use serde::Deserialize;
44

5-
use std::collections::HashMap;
5+
use std::collections::BTreeMap;
66

77
const ALLOWED_REFS_URL: &str = "https://prometheus.nixos.org/api/v1/query?query=channel_revision";
88

@@ -28,13 +28,13 @@ struct Metric {
2828
}
2929

3030
pub(crate) fn check_ref_statuses(
31-
ref_statuses: HashMap<String, String>,
31+
ref_statuses: BTreeMap<String, String>,
3232
) -> Result<bool, FlakeCheckerError> {
3333
Ok(fetch_ref_statuses()? == ref_statuses)
3434
}
3535

36-
pub(crate) fn fetch_ref_statuses() -> Result<HashMap<String, String>, FlakeCheckerError> {
37-
let mut officially_supported: HashMap<String, String> =
36+
pub(crate) fn fetch_ref_statuses() -> Result<BTreeMap<String, String>, FlakeCheckerError> {
37+
let mut officially_supported: BTreeMap<String, String> =
3838
reqwest::blocking::get(ALLOWED_REFS_URL)?
3939
.json::<Response>()?
4040
.data

tests/flake.clean.2.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
},
5353
"original": {
5454
"owner": "nixos",
55-
"ref": "nixos-24.11",
55+
"ref": "nixos-25.05",
5656
"repo": "nixpkgs",
5757
"type": "github"
5858
}

0 commit comments

Comments
 (0)