warbo-utilities: 1025461bb9992959f13c79bc408b1f55b9104f6f

     1: From: Chris Warburton
     2: Date: Fri, 08 Jun 2018 12:48:54 +0100
     3: State: resolved
     4: Subject: Beef up trackGit
     5: Message-Id: <fef5a7d04933a4fc-0-artemis@nixos>
     6: resolution: fixed
     7: 
     8: trackGit adds a repo to chriswarbo.net/git and ~/Programming/repos. We
     9: should have it do a little more.
    10: 
    11: At the very least we should generate and backup an IPNS key. We already
    12: have the repo name too!
    13: 
    14: Other things we *might* want:
    15: 
    16:  - A default.nix file: if not found, ask if we want one; if found, skip.
    17:  - A release.nix file: if not found, ask if we want one; if found, skip.
    18:  - A pkgs.nix file: if not found, ask if we want one; if found, skip.
    19:   - If we want a pkgs.nix, we should ask whether we want nix-config.
    20:   - If we want a pkgs.nix, we should ask which nixpkgs revision to pin.
    21:  - ASV benchmarks: if not found, ask if we want some; if found, skip.
    22: 
    23: The default.nix, release.nix and pkgs.nix files should be copied from
    24: templates, e.g. stored in ~/.templates.
    25: 
    26: A decent default.nix template would be:
    27: 
    28:     {
    29:       packageOnly ? true,
    30:       pkgs        ? import ./pkgs.nix,
    31:       /* OTHER DEPENDENCIES GO HERE*/
    32:     }:
    33:     with builtins;
    34:     with pkgs;
    35:     with { defs = rec {
    36:       package = abort "Replace this with your main package derivation";
    37:     }; };
    38:     if packageOnly
    39:        then defs.package
    40:        else defs
    41: 
    42: A release.nix template might be:
    43: 
    44:     {
    45:         stable = import ./. { packageOnly = false; };
    46:       unstable = import ./. { packageOnly = false;
    47:                               pkgs = import <nixpkgs> {}; };
    48:     }
    49: 
    50: If we ask for ASV benchmarks, we should make a benchmarks/ dir, a
    51: skeleton benchmarks/default.nix which takes root and dir, imports
    52: pkgs.nix from dir and wraps python with an empty paths and vars.
    53: 
    54: We should also populate a skeletal asv.conf.json with reasonable
    55: defaults:
    56: 
    57:  - asv-nix plugin, environment, etc.
    58:  - Project name should be repo name
    59:  - Repo can be chriswarbo.net/git/....git
    60:  - Builders and matrix should be included for 'dir'
    61:  - Installer should import benchmarks/ dir
    62: 
    63: In the future we may add a declarative Hydra jobset, with a job to build
    64: the release.nix and a job which imports that built release.nix

Generated by git2html.