qutip / qutip-qip

The QuTiP quantum information processing package
https://qutip-qip.readthedocs.io/en/stable/
BSD 3-Clause "New" or "Revised" License
116 stars 63 forks source link

Steps to Maintaining Commit History #2

Closed sarsid closed 3 years ago

sarsid commented 4 years ago

It seems like maintaining the commit history is slightly more tricky than anticipated. I am trying to see if there is a clean way to do it but in the meantime it would be nice to decide on the name for the folder where all our source files should sit in. I think @BoxiLi proposed src. We could also go with something like qutip_qip if we want to stick to that convention of naming.

There is some guidance if we go down the src path:

https://blog.ionelmc.ro/2014/05/25/python-packaging/#the-structure

but I am not sure how well this will all gel with core qutip if we do entrypoints.

BoxiLi commented 4 years ago

I found it, @goerz once argued in the google dev group that src is a better choice with this link https://blog.ionelmc.ro/2014/05/25/python-packaging/#the-structure.

Oh, just realized that it's the same link that @sarsid shared ;)

goerz commented 4 years ago

I'm definitely a proponent of src, but it shouldn't have any impact on how qutip-qip interacts with qutip-core or any other package: The src subdirectory only simplifies packaging and testing a little bit, in that there's no valid python package in the project root that might be accidentally be imported over the version of the package that's installed in the testing-virtual-environment.

In any case, I have quite a bit of experience with package organization/testing/Sphinx (much of it condensed into my personal cookiecutter template), so just let me know if there's anything I can help with.

sarsid commented 4 years ago

@BoxiLi @ajgpitch I find the argument convincing enough to go with it. While I don't think I'm going to end up using @goerz's package, it is immensely helpful to get an idea of all the things we need to set up. I figured out a way using the git-filter-repo package which is immensely useful. I am still figuring out a way to do it for the docs and the tests!