ucb-bar / hammer

Hammer: Highly Agile Masks Made Effortlessly from RTL
BSD 3-Clause "New" or "Revised" License
253 stars 55 forks source link

Plugins with remote repos #409

Closed jwright6323 closed 1 year ago

jwright6323 commented 5 years ago

This is a half-baked idea, but it might be nice to allow a user to point to a remote git repo (and/or other protocols like scp, https, etc.) rather than a locally-installed/submoduled plugin. I am thinking something like

vlsi.core.technology_plugin_location: git # could also be local, remote, scp, etc. (local is current behavior)
vlsi.core.technology_plugin_url: "git@github.com/ucb-bar/some_plugin.git"

This would make incorporating hammer into rebar a little less fragile, since we'd no longer need submodules for tech plugins (we can probably do the same for CAD plugins, too).

edwardcwang commented 5 years ago

Note that we already have:

vlsi.core:
  # Path(s) to out-of-tree hammer technology libraries.
  technology_path: ["${vlsi.builtins.hammer_vlsi_path}/technology"]
  technology_path_meta: subst

I think this is a very useful idea though it does require some attention to architect this feature correctly since it can be complex.

jwright6323 commented 5 years ago

Yeah, I think in this case that flag would be used to say where to cache the downloaded copy. local would be the current behavior.

edwardcwang commented 5 years ago

Well if it is remote we'd cache it in obj/tech-<...>-cache or something since you need to fetch it if it's git or remote anyway.

jwright6323 commented 5 years ago

that's also fine.

jwright6323 commented 5 years ago

I think this actually needs to be higher priority because IMO we want this for rebar, and is gating hammer integration into rebar (assuming we think it's a good idea).

harrisonliew commented 1 year ago

With Hammer v1.0.0, plugins are packages installable by pip, meaning they can be installed from anywhere (including git with git+<link>