Updates for macOS Stability with NN Backend Options#138
Updates for macOS Stability with NN Backend Options#138williamsyy wants to merge 11 commits intomasterfrom
Conversation
Enhanced release notes for version 0.9.0 with detailed issue and pull request references.
|
thanks for the acknowledgement and work here. I am happy to help with CI/CD here. |
|
I'd like to try out the dev branch for this. Is there a certain branch you recommend? |
|
@jolespin Thanks for your interest. You can try on the |
|
Hi all, this PR still needs some work on the dependency issue for 3.8 nanobind for voyager. We are making the decision on whether to still maintain the 3.8 version or we need to set up stricter constraints for it. We will try to make the decision as soon as possible so hopefullly this PR can be done this week or next. |
|
would there be experiments on the difference between using voyager; faiss and annoy ? |
|
@BabaSanfour If you run We will do more tests soon, but you can first try on the pytest results. There are no significant difference based on visuals. |
|
@williamsyy ! amazing work! thanks for the work. |
|
@mathematicalmichael Thanks for your work, we will also take that into consideration. |
again, stuff like this would be easier to manage in @williamsyy just say the word and I will jump in and help merge the two branches together (plus you'll get automated publishing to pypi instead of manual uploads). The only reason I'm hesitant to do so without your consent is because my previous PR has sat open and ready to merge for a long time without response. I've been dealing with the pains of python packaging for the better part of 8 years now... help me help you. =) |
|
@mathematicalmichael I get your idea. The point is that whehter we would like to support voyager in 3.8 for pacmap (as it should work but since they haven't updated the code for a while so they might not be aware of those updates). It is not just about setting up things to optional, but to see if any of our current users still relies on a lower version of python and pacmap in their pipelines. We are still making the decision, but I think most likely we will just depreciated the support for 3.8 to make things easier. |
|
I understand. but even if you choose to drop 3.8 support (I think that's fine, it's been long enough), you still should not be putting all three libraries in just put I suggest using optional deps based on the names of the alternatives ANN options: and again, it's a lot easier to define these in pyproject.toml. also I think you should bump your minor version number to indicate the change in dependencies, so you won't mess up installations that use |
|
Yes, that part is not fixed yet, but will be done before it is released to pypi and conda. There are more considerations about performance, dependency support for other packages that relies on our package from our side. We don't want to mess them up as well. Thanks for your suggestions and we really appreciate your work and interest towards pacmap. |
- Set FAISS as default/required dependency - Make Annoy and Voyager optional extras - Migrate build system to hatchling - Add UV-based development workflow - Update CI to test Python 3.8-3.12 with UV, 3.13 separately - Fix imports to make FAISS mandatory, Annoy/Voyager optional - Update README with UV workflow and optional backend documentation
…ion and reporting.
gauravrparikh
left a comment
There was a problem hiding this comment.
I think @hyhuang00 has raised some good refactoring suggestions to improve readability but apart from that this code looks good to merge.



Due to maintenance issues with the annoy library affecting macOS environments (#94, #136), we are introducing more flexibility in nearest-neighbor computations. We’ve added a new
nn_backendparameter toPaCMAPandLocalMAP. You can now choose between:annoy(Default)faissvoyagerThis ensures that macOS users have reliable alternatives when annoy fails. This update is the result of a fantastic community effort—special thanks to @Belluxx, @brurucy, @hyhuang00, @gauravrparikh, @jolespin, @BabaSanfour, @quentino-58, and @mathematicalmichael for their contributions to the discussion, and to @Tyrannas for providing the fix in #137.