diff --git a/.github/actions/common-setup/action.yml b/.github/actions/common-setup/action.yml index 7a11932..f5293bd 100644 --- a/.github/actions/common-setup/action.yml +++ b/.github/actions/common-setup/action.yml @@ -6,7 +6,7 @@ inputs: runs: using: "composite" steps: - + - name: Installing Nix uses: cachix/install-nix-action@v16 with: diff --git a/.github/workflows/import-to-elasticsearch.yml b/.github/workflows/import-to-elasticsearch.yml index c5ab944..a7341de 100644 --- a/.github/workflows/import-to-elasticsearch.yml +++ b/.github/workflows/import-to-elasticsearch.yml @@ -45,11 +45,6 @@ jobs: FI_ES_URL: ${{ secrets.ELASTICSEARCH_URL }} steps: - - name: Increase swap space - uses: pierotofy/set-swap-space@v1.0 - with: - swap-size-gb: 10 - - name: Checking out the repository uses: actions/checkout@v3 @@ -58,6 +53,11 @@ jobs: with: CACHIX_SIGNING_KEY: ${{ secrets.CACHIX_SIGNING_KEY }} + - name: Installing Nix unstable + run: | + nix-env -f '' -iA nixVersions.unstable # for https://github.com/NixOS/nix/pull/6242 + echo "$HOME/.nix-profile/bin" >> "$GITHUB_PATH" + - name: Import ${{ matrix.channel }} channel env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/VERSION b/VERSION index f64f5d8..9902f17 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -27 +28 diff --git a/flake-info/.cargo/config.toml b/flake-info/.cargo/config.toml index 3c38084..31576b2 100644 --- a/flake-info/.cargo/config.toml +++ b/flake-info/.cargo/config.toml @@ -1,2 +1,2 @@ [env] -MIN_NIX_VERSION = "2.7.0" # we need PRs #5878 and #5922 for package outputs +MIN_NIX_VERSION = "2.4.0" # flakes diff --git a/flake-info/src/commands/flake_info.nix b/flake-info/src/commands/flake_info.nix index ba702bc..c65dca1 100644 --- a/flake-info/src/commands/flake_info.nix +++ b/flake-info/src/commands/flake_info.nix @@ -26,6 +26,7 @@ let version = drv.version or ""; outputs = drv.outputs; # paths = builtins.listToAttrs ( map (output: {name = output; value = drv.${output};}) drv.outputs ); + default_output = drv.outputName; } // lib.optionalAttrs (drv ? meta && drv.meta ? description) { inherit (drv.meta) description; } // lib.optionalAttrs (drv ? meta && drv.meta ? license) { inherit (drv.meta) license; } diff --git a/flake-info/src/commands/nixpkgs_info.rs b/flake-info/src/commands/nixpkgs_info.rs index 182af63..7a8bd12 100644 --- a/flake-info/src/commands/nixpkgs_info.rs +++ b/flake-info/src/commands/nixpkgs_info.rs @@ -22,18 +22,9 @@ pub fn get_nixpkgs_info + Display>(nixpkgs_channel: T) -> Result", "-qa", "--meta", - "--out-path", "--json", ]); - // Nix might fail to evaluate some disallowed packages - let mut env = HashMap::new(); - env.insert("NIXPKGS_ALLOW_BROKEN".into(), "1".into()); - env.insert("NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM".into(), "1".into()); - env.insert("NIXPKGS_ALLOW_UNFREE".into(), "1".into()); - env.insert("NIXPKGS_ALLOW_INSECURE".into(), "1".into()); - command.env = env; - command.enable_capture(); command.log_to = LogTo::Log; command.log_output_on_error = true; diff --git a/flake-info/src/data/export.rs b/flake-info/src/data/export.rs index ae0f137..81520fc 100644 --- a/flake-info/src/data/export.rs +++ b/flake-info/src/data/export.rs @@ -71,6 +71,7 @@ pub enum Derivation { package_pversion: String, package_platforms: Vec, package_outputs: Vec, + package_default_output: Option, package_license: Vec, package_license_set: Vec, package_maintainers: Vec, @@ -125,6 +126,7 @@ impl From<(import::FlakeEntry, super::Flake)> for Derivation { version, platforms, outputs, + default_output, description, license, } => { @@ -159,6 +161,7 @@ impl From<(import::FlakeEntry, super::Flake)> for Derivation { package_pversion: version, package_platforms: platforms, package_outputs: outputs, + package_default_output: Some(default_output), package_license, package_license_set, package_description: description.clone(), @@ -255,6 +258,7 @@ impl From for Derivation { .map(Flatten::flatten) .unwrap_or_default(), package_outputs: package.outputs.into_keys().collect(), + package_default_output: package.default_output, package_license, package_license_set, package_maintainers, diff --git a/flake-info/src/data/import.rs b/flake-info/src/data/import.rs index 78d66b7..ed2c837 100644 --- a/flake-info/src/data/import.rs +++ b/flake-info/src/data/import.rs @@ -32,6 +32,7 @@ pub enum FlakeEntry { version: String, platforms: Vec, outputs: Vec, + default_output: String, description: Option, #[serde(deserialize_with = "string_or_struct", default)] license: License, @@ -125,7 +126,9 @@ pub struct Package { pub pname: String, pub version: String, #[serde(default)] - pub outputs: HashMap, + pub outputs: HashMap>, + #[serde(rename = "outputName", default)] + pub default_output: Option, pub system: String, #[serde(default)] pub meta: Meta, diff --git a/flake-info/src/elastic.rs b/flake-info/src/elastic.rs index e8b8bb7..9cd1324 100644 --- a/flake-info/src/elastic.rs +++ b/flake-info/src/elastic.rs @@ -117,6 +117,9 @@ lazy_static! { "package_outputs": { "type": "keyword" }, + "package_default_output": { + "type": "keyword" + }, "package_description": { "type": "text", "analyzer": "english", diff --git a/src/Page/Packages.elm b/src/Page/Packages.elm index c8f1f84..7cb0534 100644 --- a/src/Page/Packages.elm +++ b/src/Page/Packages.elm @@ -70,6 +70,7 @@ type alias ResultItemSource = , pname : String , pversion : String , outputs : List String + , default_output : Maybe String , description : Maybe String , longDescription : Maybe String , licenses : List ResultPackageLicense @@ -348,7 +349,12 @@ viewResultItem channel showInstallDetails show item = ++ optionals (List.length item.source.outputs > 1) [ li [] (text "Outputs: " - :: (item.source.outputs + :: (item.source.default_output + |> Maybe.map (\d -> [ strong [] [ code [] [ text d ] ], text " " ]) + |> Maybe.withDefault [] + ) + ++ (item.source.outputs + |> List.filter (\o -> Just o /= item.source.default_output) |> List.sort |> List.map (\o -> code [] [ text o ]) |> List.intersperse (text " ") @@ -806,6 +812,7 @@ decodeResultItemSource = |> Json.Decode.Pipeline.required "package_pname" Json.Decode.string |> Json.Decode.Pipeline.required "package_pversion" Json.Decode.string |> Json.Decode.Pipeline.required "package_outputs" (Json.Decode.list Json.Decode.string) + |> Json.Decode.Pipeline.required "package_default_output" (Json.Decode.nullable Json.Decode.string) |> Json.Decode.Pipeline.required "package_description" (Json.Decode.nullable Json.Decode.string) |> Json.Decode.Pipeline.required "package_longDescription" (Json.Decode.nullable Json.Decode.string) |> Json.Decode.Pipeline.required "package_license" (Json.Decode.list decodeResultPackageLicense)