Ramprasad-Group / canonicalize_psmiles

Tool for the canonicalization of Polymer SMILES (P🙂) strings
Other
18 stars 3 forks source link

Confirm which versions are compatibile in pyproject #6

Open jdkern11 opened 1 year ago

jdkern11 commented 1 year ago

Currently, packages that depend on this package cannot use rdkit versions past year 2022 due to the fact that poetry follows major.minor.patch semantic versioning by default. I propose adding pytests to this folder and then as new rdkit versions are released testing if they are compatible and adjusting rdkit version in pypoetry with >=2022.3.5,<=year.month.date.

Because polyvfs depends on canonicalize-psmiles (0.1.1) @ git+ssh://git@github.com/Ramprasad-Group/canonicalize_psmiles.git@v0.1.1 which depends on rdkit (^2022.3.5), rdkit is required. So, because polyvfs depends on rdkit (^2023.3.2), version solving failed.

I am happy to do this myself @kuelumbus

kuelumbus commented 1 year ago

Does this fix work for you?

jdkern11 commented 1 year ago

It would, but I think we should be a little careful and do a batch of test each new release of rdkit with a larger list of polymers. So set up would be:

  1. RDKit releases new version
  2. Download version and test pytests and canonicalization of the large list of polymers
  3. If pass update RDKit version range and keep current version of canonicalize_psmiles the same
  4. If fail, create new version with new RDKit version:
    1. Determine in which function the output changed
      1. If new output makes more sense than old, create new major version release
      2. If new output doesn't make sense, alter function until it is correct, then release new patch version release

What do you think of this idea? I think we could automate testing process by saving a list of tested rdkit version and only testing newly released version, and then if we didn't want to spend time on step 4, we could just make sure people were aware of the issue on the README

kuelumbus commented 1 year ago

This sounds good to me. But, RDKit's core functions that I use should be very stable, and I hope there aren't too many changes affecting this.