Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add flake.nix #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Add flake.nix #1

wants to merge 1 commit into from

Conversation

ilkecan
Copy link

@ilkecan ilkecan commented Sep 10, 2021

I see that you are familiar with Nix ecosystem. nix flake show produces the following output with the added flake:

`nix flake show` output
├───checks
│   ├───aarch64-darwin
│   │   ├───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_06-p2pcollab-bloomf: derivation 'ocaml4.06.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_07-p2pcollab-bloomf: derivation 'ocaml4.07.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_08-p2pcollab-bloomf: derivation 'ocaml4.08.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_09-p2pcollab-bloomf: derivation 'ocaml4.09.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_10-p2pcollab-bloomf: derivation 'ocaml4.10.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_11-p2pcollab-bloomf: derivation 'ocaml4.11.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_12-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   └───ocamlPackages_latest-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───aarch64-linux
│   │   ├───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_06-p2pcollab-bloomf: derivation 'ocaml4.06.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_07-p2pcollab-bloomf: derivation 'ocaml4.07.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_08-p2pcollab-bloomf: derivation 'ocaml4.08.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_09-p2pcollab-bloomf: derivation 'ocaml4.09.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_10-p2pcollab-bloomf: derivation 'ocaml4.10.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_11-p2pcollab-bloomf: derivation 'ocaml4.11.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_12-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   └───ocamlPackages_latest-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───i686-linux
│   │   ├───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_05-p2pcollab-bloomf: derivation 'ocaml4.05.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_06-p2pcollab-bloomf: derivation 'ocaml4.06.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_07-p2pcollab-bloomf: derivation 'ocaml4.07.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_08-p2pcollab-bloomf: derivation 'ocaml4.08.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_09-p2pcollab-bloomf: derivation 'ocaml4.09.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_10-p2pcollab-bloomf: derivation 'ocaml4.10.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_11-p2pcollab-bloomf: derivation 'ocaml4.11.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_12-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   └───ocamlPackages_latest-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───x86_64-darwin
│   │   ├───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_05-p2pcollab-bloomf: derivation 'ocaml4.05.0-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_06-p2pcollab-bloomf: derivation 'ocaml4.06.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_07-p2pcollab-bloomf: derivation 'ocaml4.07.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_08-p2pcollab-bloomf: derivation 'ocaml4.08.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_09-p2pcollab-bloomf: derivation 'ocaml4.09.1-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_10-p2pcollab-bloomf: derivation 'ocaml4.10.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_11-p2pcollab-bloomf: derivation 'ocaml4.11.2-bloomf-unstable-2021-09-08'
│   │   ├───ocamlPackages_4_12-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   │   └───ocamlPackages_latest-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   └───x86_64-linux
│       ├───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_05-p2pcollab-bloomf: derivation 'ocaml4.05.0-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_06-p2pcollab-bloomf: derivation 'ocaml4.06.1-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_07-p2pcollab-bloomf: derivation 'ocaml4.07.1-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_08-p2pcollab-bloomf: derivation 'ocaml4.08.1-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_09-p2pcollab-bloomf: derivation 'ocaml4.09.1-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_10-p2pcollab-bloomf: derivation 'ocaml4.10.2-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_11-p2pcollab-bloomf: derivation 'ocaml4.11.2-bloomf-unstable-2021-09-08'
│       ├───ocamlPackages_4_12-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│       └───ocamlPackages_latest-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
├───defaultPackage
│   ├───aarch64-darwin: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───aarch64-linux: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───i686-linux: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───x86_64-darwin: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   └───x86_64-linux: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
├───devShell
│   ├───aarch64-darwin: development environment 'nix-shell'
│   ├───aarch64-linux: development environment 'nix-shell'
│   ├───i686-linux: development environment 'nix-shell'
│   ├───x86_64-darwin: development environment 'nix-shell'
│   └───x86_64-linux: development environment 'nix-shell'
├───hydraJobs
│   ├───aarch64-darwin
│   │   └───build
│   │       └───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───aarch64-linux
│   │   └───build
│   │       └───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───i686-linux
│   │   └───build
│   │       └───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   ├───x86_64-darwin
│   │   └───build
│   │       └───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
│   └───x86_64-linux
│       └───build
│           └───ocamlPackages-p2pcollab-bloomf: derivation 'ocaml4.12.0-bloomf-unstable-2021-09-08'
├───overlay: Nixpkgs overlay
├───overlays
│   ├───ocamlPackages-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_00_1-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_01_0-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_02-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_03-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_04-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_05-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_06-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_07-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_08-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_09-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_10-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_11-p2pcollab-bloomf: Nixpkgs overlay
│   ├───ocamlPackages_4_12-p2pcollab-bloomf: Nixpkgs overlay
│   └───ocamlPackages_latest-p2pcollab-bloomf: Nixpkgs overlay
└───packages
    ├───aarch64-darwin
    │   ├───ocamlPackages-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_06-p2pcollab-bloomf: package 'ocaml4.06.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_07-p2pcollab-bloomf: package 'ocaml4.07.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_08-p2pcollab-bloomf: package 'ocaml4.08.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_09-p2pcollab-bloomf: package 'ocaml4.09.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_10-p2pcollab-bloomf: package 'ocaml4.10.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_11-p2pcollab-bloomf: package 'ocaml4.11.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_12-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   └───ocamlPackages_latest-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    ├───aarch64-linux
    │   ├───ocamlPackages-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_06-p2pcollab-bloomf: package 'ocaml4.06.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_07-p2pcollab-bloomf: package 'ocaml4.07.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_08-p2pcollab-bloomf: package 'ocaml4.08.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_09-p2pcollab-bloomf: package 'ocaml4.09.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_10-p2pcollab-bloomf: package 'ocaml4.10.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_11-p2pcollab-bloomf: package 'ocaml4.11.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_12-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   └───ocamlPackages_latest-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    ├───i686-linux
    │   ├───ocamlPackages-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_05-p2pcollab-bloomf: package 'ocaml4.05.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_06-p2pcollab-bloomf: package 'ocaml4.06.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_07-p2pcollab-bloomf: package 'ocaml4.07.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_08-p2pcollab-bloomf: package 'ocaml4.08.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_09-p2pcollab-bloomf: package 'ocaml4.09.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_10-p2pcollab-bloomf: package 'ocaml4.10.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_11-p2pcollab-bloomf: package 'ocaml4.11.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_12-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   └───ocamlPackages_latest-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    ├───x86_64-darwin
    │   ├───ocamlPackages-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_05-p2pcollab-bloomf: package 'ocaml4.05.0-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_06-p2pcollab-bloomf: package 'ocaml4.06.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_07-p2pcollab-bloomf: package 'ocaml4.07.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_08-p2pcollab-bloomf: package 'ocaml4.08.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_09-p2pcollab-bloomf: package 'ocaml4.09.1-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_10-p2pcollab-bloomf: package 'ocaml4.10.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_11-p2pcollab-bloomf: package 'ocaml4.11.2-bloomf-unstable-2021-09-08'
    │   ├───ocamlPackages_4_12-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    │   └───ocamlPackages_latest-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
    └───x86_64-linux
        ├───ocamlPackages-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_05-p2pcollab-bloomf: package 'ocaml4.05.0-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_06-p2pcollab-bloomf: package 'ocaml4.06.1-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_07-p2pcollab-bloomf: package 'ocaml4.07.1-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_08-p2pcollab-bloomf: package 'ocaml4.08.1-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_09-p2pcollab-bloomf: package 'ocaml4.09.1-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_10-p2pcollab-bloomf: package 'ocaml4.10.2-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_11-p2pcollab-bloomf: package 'ocaml4.11.2-bloomf-unstable-2021-09-08'
        ├───ocamlPackages_4_12-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'
        └───ocamlPackages_latest-p2pcollab-bloomf: package 'ocaml4.12.0-bloomf-unstable-2021-09-08'

@ilkecan ilkecan marked this pull request as ready for review September 10, 2021 11:00

meta = {
description = "Efficient Bloom filters for OCaml";
longDescription =

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that a multiline Nix string would work here, like:

longDescription = ''
  some text
  across multiple
  lines
'';

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I initially adapted this method when I was trying to stay below a certain line length. But then I realized being strict about this kinda also harm the readability by creating verbose expressions. I relaxed the line length rule on most places but I guess longDescription must have stayed like that.

The idea was to avoid line breaks that don't appear in the source text. When I do something like

longDescription = ''
  Bloom filters are memory and time efficient data structures allowing
  probabilistic membership queries in a set.\n A query negative result ensures
  that the element is not present in the set, while a positive result might be
  a false positive, i.e. the element might not be present and the BF membership
  query can return true anyway.\n Internal parameters of the BF allow to
  control its false positive rate depending on the expected number of elements
  in it.
``;

the resulting string has unwanted line breaks.

I guess we could do

longDescription = ''
  Bloom filters are memory and time efficient data structures allowing probabilistic membership queries in a set.
  A query negative result ensures that the element is not present in the set, while a positive result might be a false positive, i.e. the element might not be present and the BF membership query can return true anyway.
  Internal parameters of the BF allow to control its false positive rate depending on the expected number of elements in it.``;

If the length of the line is not a problem.

@ilkecan
Copy link
Author

ilkecan commented Oct 3, 2021

I created this branch to make the flake usable outside the source repository. While I am willing to to further work on this until it is in an acceptable state, the current effort will not be wasted if this PR is not accepted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants