Mapping SAFE repository dependencies

Unanimous agreement amongst the team for updating the GitHub repositories to all use the - separator, so that’s now been done.
Not quite as simple to update the crate names on crates.io or in each repo’s Cargo.toml unfortunately, but hopefully that doesn’t cause too much confusion.

@tfa I’ve raised a PR to your repo with the updates to the new repo names in the generate.sh script, but self-encryoption won’t link up :thinking: wonder if you could take a look whenever you get the chance?

Note that I’ve got to go offline for a few hours, be back online later

9 Likes

It’s just that in safe-client-libs Cargo.toml files this dependency is still spelled self_encryption. See in safe_app and safe_core. This must be corrected at first.

2 Likes

That was my first thought, but then I’ve not updated the Cargo.toml files of any repos & all the other connections still worked…but now looking back at the graph with fresh eyes tonight I see that the difference is that all the others I’ve renamed don’t have direct incoming arrows, or are hardcoded a-la safe-app-csharp.

Ok great, the safe_app & safe_core cargo.tomls won’t be updated until Lionel gives that the go ahead tomorrow no doubt, so the graph will look broken after tonight’s scheduled run, but will be back to normal after we’ve updated that. Thanks!

6 Likes

@tfa I haven’t looked at your script, but am wondering if this could be adapted to help understand the call graph within a Rust codebase.

I’ve been looking for such tools for Rust but no luck so far. I’ll broaden my search to see if there’s something I could adapt.

2 Likes

My script analyzes Cargo.toml files, so it can only generate inter package dependencies. It cannot help to get an intra package call graph.

2 Likes

I have updated the SLD with the global renaming of all packages:

(still at Inter repository dependencies)

@ravinderjangra, I am not sure about sn_authenticator_mobile dependency on sn_client. I did this because previously safe-authenticator-mobile was dependent on safe_authenticator_ffi of safe_client_libs which was renamed to sn_client and is mono crate now.

Edit: I think that line <PackageReference Include="MaidSafe.SafeApp" Version="0.5.0-rc2" /> in csproj file means that sn_authenticator_mobile depends on sn_csharp. I have updated SLD accordingly.

15 Likes

cc @StephenC, one last thing for renaming?

5 Likes

Now updated :tada:

11 Likes

I have updated the SLD because the C# part became an isolated island after removal of sn_ffi sub-crate from sn_api repo:

  • Made SafeApp.AppBindings dependent on sn_api instead of sn_ffi (but I am not sure this is the right replacement).
  • Removed sn_ffi_utils not referenced from my selected crates anymore.
  • Added xor_name (used in many crates).

(visible at https://thierry61.github.io/sld/ )

@StephenC, you can update official repo if all this is OK.

11 Likes

Now updated :bowing_man:

6 Likes

Not directly relevant, but there’s a new tool for visualising the dynamics of github repositories that looks interesting:

3 Likes