dalek-cryptography / curve25519-dalek

A pure-Rust implementation of group operations on Ristretto and Curve25519
Other
867 stars 439 forks source link

Monorepo ed/x/curve25519 #536

Closed pinkforest closed 1 year ago

pinkforest commented 1 year ago

As discussed this is the monorepo PR

git combine Procedure (see near last commits)

git mv [curve25519-dalek-stuff] curve25519-dalek/
git commit -m 'Workspace curve25519 under curve25519-dalek'

git remote add ed https://github.com/dalek-cryptography/ed25519-dalek.git
git fetch ed
git merge ed/main --allow-unrelated-histories
git mv [ed25519-dalek-stuff] ed25519-dalek/
git commit -m 'Workspace ed25519 under ed25519-dalek'

git remote add x https://github.com/dalek-cryptography/x25519-dalek.git
git fetch x
git merge x/main --allow-unrelated-histories
git mv [x25519-dalek-stuff] x25519-dalek/
git commit -m 'Workspace x25519 under x25519-dalek'
rozbb commented 1 year ago

Thank you! Two things:

  1. Is there anything we can do to merge the issues/Pars (current and past) from all the constituent repos? Or are we just stuck keeping or historical record in an archived repo?
  2. ~If it's not too annoying, I'm gonna do the git merge steps myself. Just bc it's literally impossible to audit on my end. I'll cherry pick the follow-up commits you have here.~ Saw edited comment
pinkforest commented 1 year ago
  1. We can transfer the issues, PR's would have to be re-created.
  2. I have other changes too incl. CI and would have to audit in any case :)

This can be audited with ... rsync :)

$ rsync -rcnv a/* b/

-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files 
   that would be updated
-v will print the output to stdout verbosely

e.g. like this:

git clone https://github.com/dalek-cryptography/curve25519-dalek.git
git clone https://github.com/dalek-cryptography/ed25519-dalek.git
git clone https://github.com/dalek-cryptography/x5519-dalek.git
pull this pr to "monorepo"

rsync -rcnv monorepo/curve25519-dalek/* curve25519-dalek/
rsync -rcnv monorepo/ed25519-dalek/* ed25519-dalek/
rsync -rcnv monorepo/x25519-dalek/* x25519-dalek/

Above without 'dry run" you can also do "git status" to see if any files changed and how they changed "git diff" if any.

rozbb commented 1 year ago

Alright, made a pretty barebones README, but it should be OK for now imo. The dalek image doesn't load correctly anymore bc the URL is gonna change in this PR.

pinkforest commented 1 year ago

Ok - I had to re-organize our last commits since this PR needs a merge (not a squash) making it more difficult to change here (suggest doing more in follow-up PR's) and we have renames which need to be kept in separate commits in the middle. I gave you co-authored-by since I had to amend our last change commits on top.

rozbb commented 1 year ago

Build's broken now but I have no idea what's causing it 😕

pinkforest commented 1 year ago

Something broke in transient dependency somewhere for the MSRV build - this should be mergeable in any case as this doesn't cause it.

Found what caused it - raised #538 to track it