-
Notifications
You must be signed in to change notification settings - Fork 784
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
[Merged by Bors] - Split common crates out into their own repos #3890
Conversation
Squashed commit of the following: commit 1ba4f80 Author: Michael Sproul <[email protected]> Date: Tue Jan 17 11:43:18 2023 +1100 Bye 1.0.0 beta, hello 0.5.x commit a862b23 Author: Michael Sproul <[email protected]> Date: Tue Jan 17 10:54:46 2023 +1100 Cargo fmt commit e29f358 Author: Michael Sproul <[email protected]> Date: Mon Jan 16 18:21:42 2023 +1100 It compiles :O commit 1ee4514 Author: Michael Sproul <[email protected]> Date: Mon Jan 16 17:27:10 2023 +1100 Ethereum hashing commit 69bdd1d Author: Michael Sproul <[email protected]> Date: Mon Jan 16 17:24:58 2023 +1100 Tree hash et al commit 7cae5d9 Author: Michael Sproul <[email protected]> Date: Mon Jan 16 17:21:03 2023 +1100 Delete crates! commit dd9ee38 Author: Michael Sproul <[email protected]> Date: Mon Jan 16 17:19:19 2023 +1100 Delete overrides commit 0d54534 Author: Michael Sproul <[email protected]> Date: Mon Jan 16 17:19:04 2023 +1100 Crate renames
This is ready for review by a brave soul. To verify the contents of the external repos, one could try copying the current crate contents from |
Will batch this actually bors r- |
Shit! Wrong PR bors r- |
Canceled. |
Good catch yeah! It's not too impactful because they're dev-dependencies, so we're not pulling 1.0.0-beta into Lightouse (it would show in the Cargo.lock). I agree we should yank them and remove the releases to avoid confusion |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've went through all the listed repos, looks good! Tests are passing too \o/
(one failing due to port conflicts - but that should be fixed with the PR that was merged last night)
What would you think about importing the whole lighthouse history into the repos and removing the unrelated files? I'ts a bit sad to lose all the history of those crates. While this is merged it should also make way easier to migrate changes from lighthouse to the repos via a rebase |
Also, have you thought how to do some kind of continuous integrations testing? as in, making sure these crates remain compatible between individual releases? |
This is also something @paulhauner raised and I regret not doing this from the start. I didn't know about
All in all, I'd prefer to just push ahead with the current approach and take these learnings on board for future crate extractions 🦷
AFAIK there aren't any outstanding changes on Lighthouse that aren't in the repos. If we merge soon, hopefully the propagation of this PR to 4844-land will be virtually conflict-free, and 4844 can just use the new versions of the crates as-is.
Do you mean compatible with Lighthouse, or compatible with new compiler releases? I think compatibility with Lighthouse is adequately covered by the tests in Lighthouse itself, like the ones in |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree with @divagant-martian that it's sad to see the history go. I also see @michaelsproul's points about the baggage it contains. I also appreciate that, contrary to popular belief, Michael is a mortal human being and there are Git operations outside his knowledge. (Either that or his developers forgot to include git --help
in his training data 🤖).
In terms of volume, I think I have the most to lose in the history. Some of my favorite bits of work are in those crates, however Git history isn't actual history and I can live with that! Anyway, the true history lives on in sigp/lighthouse!
That being said, my cup runneth over when it comes to Lighthouse attribution so it's totally valid for others to feel differently.
I think we can separate the issues at hand into two:
- The need to split the crates into different repos.
- How to balance full attribution against it's drawbacks.
I think we all agree that (1) is something we should do and this PR achieves (1) without making any decisions about (2) that aren't already made. Given that, I think we should merge this PR but consider the attribution topic still open (although I'm personally OK with attribution where it is now).
I'm happy to see a |
I've fixed the merge conflicts and marked it ready for bors! |
bors r+ 😮 |
## Proposed Changes Split out several crates which now exist in separate repos under `sigp`. - [`ssz` and `ssz_derive`](https://github.com/sigp/ethereum_ssz) - [`tree_hash` and `tree_hash_derive`](https://github.com/sigp/tree_hash) - [`ethereum_hashing`](https://github.com/sigp/ethereum_hashing) - [`ethereum_serde_utils`](https://github.com/sigp/ethereum_serde_utils) - [`ssz_types`](https://github.com/sigp/ssz_types) For the published crates see: https://crates.io/teams/github:sigp:crates-io?sort=recent-updates. ## Additional Info - [x] Need to work out how to handle versioning. I was hoping to do 1.0 versions of several crates, but if they depend on `ethereum-types 0.x` that is not going to work. EDIT: decided to go with 0.5.x versions. - [x] Need to port several changes from `tree-states`, `capella`, `eip4844` branches to the external repos.
Pull request successfully merged into unstable. Build succeeded:
|
## Issue Addressed `publish-crate` action and its script no longer used after #3890.
## Issue Addressed `publish-crate` action and its script no longer used after sigp#3890.
## Proposed Changes Split out several crates which now exist in separate repos under `sigp`. - [`ssz` and `ssz_derive`](https://github.com/sigp/ethereum_ssz) - [`tree_hash` and `tree_hash_derive`](https://github.com/sigp/tree_hash) - [`ethereum_hashing`](https://github.com/sigp/ethereum_hashing) - [`ethereum_serde_utils`](https://github.com/sigp/ethereum_serde_utils) - [`ssz_types`](https://github.com/sigp/ssz_types) For the published crates see: https://crates.io/teams/github:sigp:crates-io?sort=recent-updates. ## Additional Info - [x] Need to work out how to handle versioning. I was hoping to do 1.0 versions of several crates, but if they depend on `ethereum-types 0.x` that is not going to work. EDIT: decided to go with 0.5.x versions. - [x] Need to port several changes from `tree-states`, `capella`, `eip4844` branches to the external repos.
## Issue Addressed `publish-crate` action and its script no longer used after sigp#3890.
Split out several crates which now exist in separate repos under `sigp`. - [`ssz` and `ssz_derive`](https://github.com/sigp/ethereum_ssz) - [`tree_hash` and `tree_hash_derive`](https://github.com/sigp/tree_hash) - [`ethereum_hashing`](https://github.com/sigp/ethereum_hashing) - [`ethereum_serde_utils`](https://github.com/sigp/ethereum_serde_utils) - [`ssz_types`](https://github.com/sigp/ssz_types) For the published crates see: https://crates.io/teams/github:sigp:crates-io?sort=recent-updates. - [x] Need to work out how to handle versioning. I was hoping to do 1.0 versions of several crates, but if they depend on `ethereum-types 0.x` that is not going to work. EDIT: decided to go with 0.5.x versions. - [x] Need to port several changes from `tree-states`, `capella`, `eip4844` branches to the external repos.
## Issue Addressed `publish-crate` action and its script no longer used after sigp#3890.
Split out several crates which now exist in separate repos under `sigp`. - [`ssz` and `ssz_derive`](https://github.com/sigp/ethereum_ssz) - [`tree_hash` and `tree_hash_derive`](https://github.com/sigp/tree_hash) - [`ethereum_hashing`](https://github.com/sigp/ethereum_hashing) - [`ethereum_serde_utils`](https://github.com/sigp/ethereum_serde_utils) - [`ssz_types`](https://github.com/sigp/ssz_types) For the published crates see: https://crates.io/teams/github:sigp:crates-io?sort=recent-updates. - [x] Need to work out how to handle versioning. I was hoping to do 1.0 versions of several crates, but if they depend on `ethereum-types 0.x` that is not going to work. EDIT: decided to go with 0.5.x versions. - [x] Need to port several changes from `tree-states`, `capella`, `eip4844` branches to the external repos.
## Issue Addressed `publish-crate` action and its script no longer used after sigp#3890.
Proposed Changes
Split out several crates which now exist in separate repos under
sigp
.ssz
andssz_derive
tree_hash
andtree_hash_derive
ethereum_hashing
ethereum_serde_utils
ssz_types
For the published crates see: https://crates.io/teams/github:sigp:crates-io?sort=recent-updates.
Additional Info
ethereum-types 0.x
that is not going to work. EDIT: decided to go with 0.5.x versions.tree-states
,capella
,eip4844
branches to the external repos.