Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
test installed module #376
in this PR
longer term Q
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
Once you've signed (or fixed any issues), please reply here (e.g.
What to do if you already signed the CLA
Sorry, I didn't realize I was springing a PR on you at the end of a release cycle yesterday.
Looking at the coverage fail, I think a decision on optional deps and requirements.txt is needed before I could tweak one of the test matrix into covering the extra lines.
So there's good news and bad news.
Note to project maintainer: This is a terminal state, meaning the
Thanks for the contribution Lori, sorry we haven't gotten to it yet, as you saw a bit of a release rush last week. We'll discuss some of the questions you raised tomorrow and get back to you, but I was wondering in the meantime if you could describe in broader terms what you're working towards. Is it mostly enabling the conda installation of OpenFermion-Psi4 or do you have a larger plan as well for some of these changes?
The reason OpenFermion-Psi4 doesn't have many tests at the moment is simply that there were a few more hurdles in getting automatic testing setup on Travis. That doesn't entirely excuse the lack of offline tests that can be run, but it's a todo item that we haven't quite gotten to yet for various reasons.
We look forward to helping enable further functionality between Psi4 and OpenFermion though, we're very excited to have Psi4 developers such as yourself interested in OpenFermion!
Thanks for taking a look, @jarrodmcc. Didn't mean to make a surprise PR at the end of a release cycle.
My goals are modest — I just wanted to check that Psi4 is still working for OpenFermion (we're not great at API/ABI stability and some changes to pybind11 have required rebuilding of downstream projects). Beyond that, if there was an easy way to monitor ongoing compatibility, rather than annual testing, I'd like to set it up. Beyond that, since conda packages are free after the real work of devising tests, if you wanted conda packages built and/or distributed in the
As far as monitoring ongoing compatibility, on the psi side, I'd like a little smoke test case for here so that if openfermion/openfermion-psi4 are present, it'll check that psi4 is still working. On the openfermion-psi4 side, I can well understand the travis hurdles. Something like https://github.com/cdsgroup/resp/blob/master/.travis.yml may be helpful in avoiding a big compilation.
My focus on installed, as opposed to source-dir, testing is the result of trying to test multiple projects and also b/c conda packaging encourages it.
Btw, I'm always glad to rebase when you need it. That may help avoid CLA troubles.
Thanks again for this PR! Don't worry about the CLA bot, I'll take care of it once the PR is approved, it has a tendency to complain whenever we use the Github merge.
In response to your specific questions...
Which requirements did you imagine changing to optional based on the current changes?
As for conda packages, I think for now we are happy just maintaining the PyPI package, as installation in anaconda using it seems to work reasonably seamlessly as well. We are happy for you to have a separate conda build that you make sure runs with Psi4 as well in your own channel. Would it be helpful for us to include such a conda build file for optional use in this repo? As for versions, I would recommend pinning it to release versions of 0.7 or greater rather than the Github master at the moment. This will probably keep the interface more stable, though like yourselves we tend to move things around a bit still.
We could work to add a few more tests before your next release to the OpenFermion-Psi4 plugin, do you have an expected time frame for that?
Thanks for the review. I think that commit patches up the specific code issues.
I think jupyter and matplotlib are clear candidates for optional deps, as they're only used for the tests. I've also set up pubchempy as optional since it's neither part of the core scientific python stack nor core openfermion functionality. But I can see how you'd be more hesitant to classify it optional since the module itself imports it.
Sounds good to me, thanks. No need to include a conda recipe file here (unless you'd like to) as I keep all recipes in a separate repo.
Will do. Last week's release actually solves this problem nicely.
Next release was due last month :-) I'm finally about to cut
Jun 26, 2018
1 of 2 checks passed
@loriab I want to reiterate how much the OpenFermion developers appreciate consideration from the folks at Psi4! Thanks again!
Additionally, it is our policy that anybody with merged PRs on OpenFermion is entitled to be listed as an author in the README / NOTICE files and also on the OpenFermion release paper (https://arxiv.org/abs/1710.07629), which we keep on arXiv so that we can update whenever we want.
If you'd like to be listed as an author on the README / NOTICE, consider opening a PR to add yourself in the alphabetical section. If you'd like to be on the release paper, please email myself or Jarrod or so that we can send you an overleaf link to the paper draft.