Force rebuilding of python files in PR
State: closed

Force the rebuilding of cython files in PR as can't rely on the git history


Labels:
name: Build
description: Library building on various platforms

Comments:
## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13515?src=pr) is **84.33%**

> Merging [#13515](https://codecov.io/gh/pydata/pandas/pull/13515?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will not change coverage

``` diff
@@             master     #13515   diff @@
==========================================
  Files           138        138          
  Lines         51107      51107          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
  Hits          43103      43103          
  Misses         8004       8004          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [bf4786a...75e71e7](https://codecov.io/gh/pydata/pandas/compare/bf4786a15f51d14ccf1318e44ae080868d8595ee...75e71e775d45938f11afe4b2799e5c94efa7119f)

@nparley : as confirmation, you might want to make a second commit (that won't be merged) that attempts to change one of the `.pyx` files (e.g. change `downcast_int64` --> `downcast_int` in `inference.pyx` and propagate throughout, which isn't too much) and show that Travis passes still.

Yep OK. I actually have to make two commits as the cache will not be used two commits after a ci change.

@nparley so Idea is to merge this and see if we can do cache detection in a better way?

I think on master we should turn off caching entirely to avoid any issues (though you can certainly keep miniconda / env caching). If we can reliably have cython / build caching great. I think the cython / build caching is great for PR's as it cuts down on build time.

Yes this turns off the cython caching but not the miniconda caching. This is only turning off the caching for PRs at the moment. The cache detection works ok on the master as the git history is never going to be rewritten. It is the same way it was working when the caching was being done externally, the only thing that has changed is that it has moved to travis. That being said it probably make sense to not use the git and use @gfyoung's idea of using the pyx file diff as that makes it more bullet proof. I could add to this PR to turn off the cython caching in non PRs too or just on the master branch. Or if there was a PR with a cython change to merge ready, that could be merged as a test.

@nparley yeah I think doing a pyx diff is the best thing. You can add it here if you would like. Or can merge this, then work on that independetly. lmk. Ok on master caching. Yes that will never be force pushed. PR's on the other hand anything goes.

I would vote for merging this as is and working on `pyx` comparisons independently (unless a method can be found quickly).  The comparison part is not vital from a correctness point of view but undoing part of the current caching is.

Yes might be best to merge this. I have started working on the pyx diff code but have ran out of time today and tomorrow I will not have time to do any work on this I am afraid. Let me just fire two commits to check this works and the cython files are rebuilt as @gfyoung comment above before merging though. 

ok ping when ready for merge

@jreback OK this works. I tested changing a cython file, breaking a build and getting it cached, then changed it back rewriting the history and the cython files are rebuilt. 

thanks @nparley