-
Notifications
You must be signed in to change notification settings - Fork 480
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve granularity of copy_from_upstream #1584
Comments
Actually, I think I just "discovered" a "solution" for this in the code of |
I tested running |
Yeah... Removing Kyber and Dilithium completely sounds somewhat suboptimal... @bhess: The "NOT_READY" feature has been introduced by you: Would you think this can be extended (more easily than re-working the |
The feature seemed to be introduced even earlier in #841, my commit merely refactored the script formerly called copy_from_pqclean.py. I think a feature to selectively specify which commit/tag to chose per algorithm/architecture would be useful. Another use case will be if we decide to support e.g. both Kyber-R3 and the Kyber "standard" branch, which will correspond to different commits in the same repository. If NOT_READY isn't a workaround, perhaps editing the copy_from_upstream logic is more promising. |
Yikes. This had been done at a time when we didn't import from different upstreams; hence this feature should not have survived the refactoring. Apologies for not spotting this in the PR review of #883. Mea culpa.
It absolutely is (necessary to do that) -- particularly if we'd want to support several different upstream branches for the same algorithm(s). But would we really need to? In my eyes the "standard" upstream should be integrated into an entirely different algorithm family using the NIST naming and sit alongside the old R3 code (until that is sunset), no? So what about this proposal: We (probably I :} review the NOT_READY feature and update it to the "multi-upstream" world. Goal would be to stop algorithms tagged this way to receive any upstream updates, but remain active. In parallel/separately we could add logic to add&pull the new "ML" algs from wherever (thus also closing #1521). Reasonable @SWilson4 @bhess ? Helping hands still welcome as I'm still "on the road". It possibly is simple, but I first need to fully understand the current logic.... Yes, I saw your "1-2 weeks timeline" comment somewhere, @bhess, so I don't count on you. |
FYI, my plan is to introduce another upstream to
This seems to work pretty nicely apart from some problems in the doc update script. Consequence though is that all Kyber+Dilithium aarch64 files get moved to new folders "oldpqclean", so the PR will look large. Objections to this approach @SWilson4 @dstebila ? Edit/Add: This now works OK and is implemented in #1595. |
As things currently stand, the
copy_from_upstream
script attempts to integrate updates for all schemes sourced from a given upstream. The update source is given by a git commit SHA for the upstream repo.It would be nice to have the option to override this on a scheme-by-scheme basis so that integrating upstream code doesn't get messy if OQS (deliberately) goes out of sync with an upstream source on some algorithms but not others. For instance, we could specify that the PQClean aarch64 implementations of Dilithium and Kyber should remain at the latest commit before PQClean updated their implementation to be in sync with the pq-crystals
standard
branches while still pulling the latest updates to HQC and Sphincs+.The text was updated successfully, but these errors were encountered: