-
Notifications
You must be signed in to change notification settings - Fork 106
Description
As people are starting to do research on top of HEIR, we are hitting the problem where they want to keep their research efforts private, but still keep up to date with changes to HEIR as they work. We also want to make it easy to upstream such research efforts after the research is published.
GitHub does not allow one to make a private fork of a public repo, so I think what some have been doing is making a hard fork, which works except it doesn't make upstreaming or keeping up to date with HEIR changes easy.
One possibility is to make HEIR a dependency rather than a source fork. Then, e.g., one could create a new bazel WORKSPACE in a private repo that pulls in HEIR at a given commit, and the private repo would only contain source code for the new dialects/passes introduced. This would require us to add hooks to extend heir-opt and heir-translate so that new passes and pipelines could be registered alongside the upstream ones. Keeping up to date would require bumping the commit in the WORKSPACE, and upstreaming would not be as simple as opening a PR from a feature branch, but it might be simple enough. My main unknown here is how to provide those external registration hooks, but it might suffice to just add a layer of indirection like mlirOptMain for downstream users to call in their own binary wrapper.
With this setup we could provide a template repository that could be hard-forked and made private, and maybe even provide a script to convert appropriately-organized changes into upstream PRs.