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

bazel: add update script to update srcDeps from WORKSPACE file #63077

Merged
merged 1 commit into from Jun 18, 2019

Conversation

Profpatsch
Copy link
Member

This adds an automated updater that can “parse” the bazel WORKSPACE file to dump most dependencies into a JSON file, meaning we don’t have to update dependencies by hand (and also don’t forget when updating bazel).

cc @groodt @uri-canva

After I implemented it, I actually noticed that the bazel build itself doesn’t use these dependencies, only if you want to run the tests afterwards they are needed, and we disabled the tests :(

So the next step is to move the installTests into a different derivation, like we do with passthru.tests.

@GrahamcOfBorg build bazel.tests

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

# execute the WORKSPACE like it was python code in this module,
# using all the function stubs from above.
with open(sys.argv[1]) as f:
exec(f.read())
Copy link
Member

Choose a reason for hiding this comment

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

Clever! 🎩

def rules_sass_dependencies(**kw): pass
def node_repositories(**kw): pass
def sass_repositories(**kw): pass
def register_execution_platforms(*args): pass
Copy link
Member

Choose a reason for hiding this comment

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

you can probably just define __getattr__(self, method_name) here as a catchall method. See https://rymc.io/blog/2010/emulating-rubys-method_missing-in-python/

Copy link
Member Author

Choose a reason for hiding this comment

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

Sure, but I’d like to keep it simple for now, we can always move to some more magic incantation later.

Copy link
Member

Choose a reason for hiding this comment

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

Fair enough, approved.

@Profpatsch
Copy link
Member Author

@GrahamcOfBorg build bazel.tests

@Profpatsch
Copy link
Member Author

I’ll merge, because I only rebased and the darwin builders are massively reduced in capacity at the moment.

@Profpatsch Profpatsch merged commit 8ce4463 into NixOS:master Jun 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants