Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{pkgs ? import <nixpkgs> {}}: let
lib = pkgs.lib;
matchbox = pkgs.buildGoModule {
Comment thread
mgrzybek marked this conversation as resolved.
Outdated
name = "matchbox";
src = lib.cleanSource ../matchbox;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

can you explain cleanSource here?

Copy link
Copy Markdown
Author

@mgrzybek mgrzybek Mar 25, 2024

Choose a reason for hiding this comment

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

This is a recommended macro on development environments: https://gist.github.com/CMCDragonkai/8d91e90c47d810cffe7e65af15a6824c

This filters out some unwanted artifacts (temporary files, git data…).

vendorHash = "sha256-sVC4xeQIcqAbKU4MOAtNicHcioYjdsleQwKWLstnjfk";
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

How are you imaginging this being updated? I don't expect to maintain or bump a hash. If the aim is for this to be an alternative to using the Makefile during local iteration/development, vendorHash seems counter to quick iteration

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

The vendor hash must be set per release tag because they are releases.
You can also set vendorHash to null in the main branch but nix-build won’t work out of the box because go mod vendor must be run first.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

For an in-project development Nix config, I think the config should just build from the local source. As in, if you edit some Go files or dependencies locally, running nix-build should just build it without someone having to fiddle with hashes. I'd prefer real releases and vendor pinning be done in upstream nixpkgs.

Do you see a usage story that aligns with this or no?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Sounds fair.

};
in matchbox