You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
The OSS build needs the `thrift/` annotation tree to be visible from inside `compiler/` and `lib/`, because each is a separate Cabal package and Cabal cannot reference files outside a package's own directory. The annotation files are resolved by the literal path `thrift/annotation/...`, so the name has to be exactly that.
These symlinks can't be committed: `lib/` and `compiler/` already contain a `Thrift/` directory, and fbsource rejects paths that differ only in case, so pushrebase fails with:
```
Case conflict found: fbcode/common/hs/thrift/lib/Thrift conflicts with fbcode/common/hs/thrift/lib/thrift
```
So they are generated at build time instead, via a `symlinks` Make target that `compiler` and `thrift-hs` depend on. `ci-getdeps.yml` also invokes `make symlinks` explicitly before `cabal sdist`, since `thrift-compiler.cabal` globs `thrift/**/*.thrift` into the source distribution and CI runs `cabal sdist` directly rather than through the Makefile. The generated symlinks are added to `.gitignore`.
Pull Request resolved: #177
Reviewed By: helfper
Differential Revision: D116622224
Pulled By: CatherineGasnier
fbshipit-source-id: c9570f1126e0c96828d3f8c5f4910f542b1cbe2a
0 commit comments