Coder Social home page Coder Social logo

eris's Introduction

The birds have vanished down the sky.

Now the last cloud drains away.

We sit together, the mountain and me,

until only the mountain remains.

Zazen on Ching-t’ing Mountain

eris's People

Contributors

ajs124 avatar bors[bot] avatar dasj avatar thoughtpolice avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

eris's Issues

Serve logs through /log/

Proposed solution

When running nix log with a path in a binary cache served by eris that has the logs under /nix/var/log/[…],

Alternatives considered

Leave as is, I can get the logs some other way, this is really just a "nice to have".

Additional notes

Provide .ls endpoint

Proposed solution

The upstream nixos cache provides an .ls endpoint which contain directory indexes for the nar files.
Tools like nix-index use that. It would be convenient to have the same funcitonality in eris so nix-index can be extended to fetch multiple caches.
Example URL: http://cache.nixos.org/wi96xcbm63zccfxi5f648b9pkak9d62k.ls is a listing of http://cache.nixos.org/wi96xcbm63zccfxi5f648b9pkak9d62k.narinfo

Alternatives considered

Don't implement it I guess

Additional context

Looking at the nix-index source code, the file is either uncompressed, brotli-compressed, or xz-compressed: https://github.com/bennofs/nix-index/blob/master/src/hydra.rs#L201
The example above is just a JSON with the file structure: curl -L -o - http://cache.nixos.org/wi96xcbm63zccfxi5f648b9pkak9d62k.ls | brotli -d

Port tests to python

What needs to be done

The tests use the old perl test runner, which is deprecated in/removed from recent nixpkgs:

trace: warning: Perl VM tests are deprecated and will be removed for 20.09.
Please update your tests to use the python test driver.
See https://github.com/NixOS/nixpkgs/pull/71684 for details.

Alternatives considered

Leave as is.

Improve and rewrite the documentation

What needs to be done

The documentation needs a rework and update; in particular several of the features implemented since the initial draft are completely undocumented (like JSON .narinfo results or re-signing mode.)

Furthermore, I've come to determine that while I like org mode as an Emacs user, I dislike it as an actual format for project documentation (or at least GitHub frontmatter), so the README and CHANGELOG need to be rewritten as well.

I think it would be nice to use something like Sphinx and GitHub Actions to synchronize things appropriately so e.g. https://thoughtpolice.github.io/eris worked.

Alternatives considered

None: this must be implemented.

Additional notes

None.

Failed to generate a docker image

Issue description

I'm trying to generate a docker image to run Eris from a container, but docker fails with invalid reference format when running docker load

Steps to reproduce

$ nix-build  -Q release.nix -A docker
$ docker load < result
..
fb4f86d9d4c0: Loading layer [==================================================>]  921.6kB/921.6kB
invalid reference format

Technical details

$ printf ' - eris revision: ' && echo $(git rev-parse HEAD) && nix run nixpkgs.nix-info -c nix-info -m
 - eris revision: 0e321f3d2d44f96712768d54e89088b46ad1693a
error: unrecognised flag '-c'
Try 'nix --help' for more information.

$ docker --version
Docker version 20.10.18, build b40c2f6

The man page hasn't been written

Issue description

Despite claims in the README, I never got around to finishing the man page. We should think about that, but I do like having it around.

Perhaps in the course of fixing #5 we could think about generating one from a canonical source...

Steps to reproduce

man 8 eris

corrupt NAR info file when using upstream

When configuring an upstream, e.g. upstream => 'https://cache.nixos.org', the narinfo files fetched from there and returned b y eris are missing a trailing newline, which means nix is unable to parse them.

The following patch seems to fix the issue, but I'm not sure if it's a good idea to fix it like that or if this breaks something else:

--- a/eris.pl
+++ b/eris.pl
@@ -539,6 +539,8 @@ helper fetch_upstream => sub ($c, $ctype, $info=undef) {
     } else {
       $body .= "\nSig: $signature\n"
         if defined($signature);
+      $body .= "\n"
+        if not defined($signature);
 
       $c->res->headers->content_length(length($body));
       return $c->render(format => 'narinfo', text => $body);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.