Skip to content
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

Unify Rust workspaces #2475

Closed
tiziano88 opened this issue Jan 11, 2022 · 6 comments · Fixed by #2481
Closed

Unify Rust workspaces #2475

tiziano88 opened this issue Jan 11, 2022 · 6 comments · Fixed by #2481
Assignees

Comments

@tiziano88
Copy link
Collaborator

I think #2473 would be much more effective and efficient if all the crates were under a single workspace.

IIRC the only reason for having separate workspaces was to make it easier to keep deps separate, but I think we agreed that we may not care about that, as long as, for instance, we can list the exact versions of the deps used by the oak_functions_loader binary, even if it belongs to that workspace.

Or am I forgetting something else? @project-oak/core

@mariaschett
Copy link
Contributor

So yes, I had the same idea with Oak functions to workspace.

Two things to consider:

  1. I am not sure we can have different versions of a dependency in the same workspace, so we may be stuck with an old dependency.
  2. The location of the target folder will change (maybe the name of the binaries too).

@mariaschett
Copy link
Contributor

about 1. it seems you can have different versions see

@rbehjati
Copy link
Contributor

Adding some more context, since the team hash had similar discussions in the past, for instance #534.

Also, at some point we had a single workspace, or at least fewer ones, and we split that into the workspaces that we now have: #1034, #1039, #1045, #1063, #1122, etc. Some of these issues are linked to #971. So I guess we made these separated workspaces to fix the cache invalidation problem.

@jul-sh
Copy link
Contributor

jul-sh commented Jan 11, 2022

My two cents wrt keeping deps separate, I actually think that not being able to do so can be a good thing sometimes. This is because it increases the cost of maintaining dead code, as it requires updating when updating deps with breaking changes. Which then creates a general incentive to be mindful about what should or shouldn't continue to be in the repo. :)

@tiziano88
Copy link
Collaborator Author

I don't think anything would change wrt to keeping deps separate or unifying them. It is already possible to depend on different versions of the same crate within a given crate, and by extension also from crates in the same workspace. So I think this proposal is orthogonal to your point (which is valid). Or did I miss your point @jul-sh ?

@jul-sh
Copy link
Contributor

jul-sh commented Jan 11, 2022

@tiziano88 nope, you understood it correctly. I should clarify that I was prompted to write that as an aside purely bc of you wrote above "IIRC the only reason for having separate workspaces was to make it easier to keep deps separate". I didn't mean to imply that this change would indeed have the effect of making the maintenance of separate deps impossible.

@tiziano88 tiziano88 self-assigned this Jan 11, 2022
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 12, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 14, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 14, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 14, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 14, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
tiziano88 added a commit to tiziano88/oak that referenced this issue Jan 14, 2022
- remove old target dirs from caching in CI
- move all crates under a top-level workspace
- fix deps pointing to internal crates to specify paths explicitly
- remove old Cargo.lock and deny.toml files
- fix paths of Wasm modules in examples
- comment out workspace-specific lines in third_party/prost/Cargo.toml,
since nested workspaces are not well supported
- remove unused deps from third party crates
- ignore unused deps that are shared between bin and lib crates

Fix project-oak#2475
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants