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

HACK: introduce metadata for newly added pins #40

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

andir
Copy link
Owner

@andir andir commented Nov 26, 2022

HACK: introduce metadata for newly added pins

This is an experiment that includes Cargo.lock metadata in our
lockfiles for all added pins. The idea is outlined in [an issue] and
this is just a quick hack to get this going.

Currently the GitLab tests are failing as I didn't bother fixing them
given that they are currently being changed.

To test this initialize a new bare npins folder:

$ npins -d /tmp/foo init --bar

Then you can add a rust project (e.g. npins):

$ npins -d /tmp/foo add github andir npins

Now you should have a regular pin entry but also the JSON equivalent
of the Cargo.lock (TOML) file in a sub attribute.

$ less /tmp/foo/sources.json

This in itself isn't particular helpful yet but with a bit more
work (on our Nix shim and a variant of import-cargo) we can implement
the vision of the linked issue experimentally.

Open tasks:

  • Is there a better way to handle the prefetched source path?
  • Add some CLI options to opting into some kind of metadata
    inclusion, right now we just include it unconditionally.
  • Ergonomics, ergonomisc and ergonomics of the feature. It must
    not suck!

The store path isn't yet useful but will eventually be useufl for
accessing the prefetched content for further processing later on.
Just like with the nix_prefetch_git changes this will allow us to
access the unpacked store path while updating the lockfile.
This allows us to do further processing of the content of the pinned
project such as including additional build metadata in our lockfile.
This is an experiment that includes Cargo.lock metadata in our
lockfiles for all added pins. The idea is outlined in [an issue] and
this is just a quick hack to get this going.

Currently the GitLab tests are failing as I didn't bother fixing them
given that they are currently being changed.

To test this initialize a new bare npins folder:

$ npins -d /tmp/foo init --bar

Then you can add a rust project (e.g. npins):

$ npins -d /tmp/foo add github andir npins

Now you should have a regular pin entry but also the JSON equivalent
of the Cargo.lock (TOML) file in a sub attribute.

$ less /tmp/foo/sources.json

This in itself isn't particular helpful yet but with a bit more
work (on our Nix shim and a variant of import-cargo) we can implement
the vision of the linked issue experimentally.

Open tasks:

 * [ ] Is there a better way to handle the prefetched source path?
 * [ ] Add some CLI options to opting into some kind of metadata
       inclusion, right now we just include it unconditionally.
 * [ ] Ergonomics, ergonomisc and ergonomics of the feature. It must
       not suck!
 * [ ] Unit tests
 * [ ] Integration tests (maybe we can also dogfood this with npins?)

[an issue]: #37
@andir andir requested a review from piegamesde November 26, 2022 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant