-
Notifications
You must be signed in to change notification settings - Fork 450
chore!: per-asmdef namespaces instead of per-folder #1009
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
Conversation
using Unity.Multiplayer.Netcode.Logging; | ||
using Unity.Multiplayer.Netcode.Configuration; | ||
using Unity.Multiplayer.Netcode.Profiling; | ||
using Unity.Multiplayer.Netcode.Serialization; | ||
using Unity.Multiplayer.Netcode.Transports; | ||
using Unity.Multiplayer.Netcode.Connection; | ||
using Unity.Multiplayer.Netcode.Messaging; | ||
using Unity.Multiplayer.Netcode.SceneManagement; | ||
using Unity.Multiplayer.Netcode.Spawning; | ||
using Unity.Multiplayer.Netcode.Exceptions; | ||
using Unity.Multiplayer.Netcode.Serialization.Pooled; | ||
using Unity.Multiplayer.Netcode.Transports.Tasks; | ||
using Unity.Multiplayer.Netcode.Timing; |
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.
:)
com.unity.multiplayer.mlapi/Runtime/NetworkVariable/Collections/NetworkDictionary.cs
Show resolved
Hide resolved
namespace Unity.Multiplayer.Netcode.Profiling | ||
namespace Unity.Multiplayer.Netcode |
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.
we might still want to keep profiling-related types behind a namespace like Unity.Multiplayer.Netcode.Profiling
, what would you guys think? @becksebenius-unity @Rosme
also, should any of these types be public
at all? I though they all could be internal
types, no?
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.
okay, I see that NetworkManager
implements IProfilableTransportProvider
interface which has a property returning ITransportProfilerData
type. I guess, if we were to keep these two public
and make everything internal
, that'd work fine and we'd still keep them under Unity.Multiplayer.Netcode
namespace — how that sounds to you guys? 👀
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.
ITransportProfilerData
will ultimately become deprecated, it's not something that we're using for Profiler V2. In general I'd say we should make as much of this internal as possible, although this was public because it needs to be used in other assemblies
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'm aligned with @becksebenius-unity
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.
1,000% on board with this.
No... 10,000%.
@@ -1,12 +1,6 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.IO; | |||
using Unity.Multiplayer.Netcode.Messaging; |
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.
glad to see there's nothing further than that in this file! :-)
…nsform * develop: (32 commits) refactor: calling networkShow(NetworkObject) code in networkshow(List<NetworkObject>) (#1028) feat: snapshot. MTT-685 MTT-822 (#1021) test: adding a multi-instance test checking NetworkShow and NetworkHide on lists of objects (#1036) fix: corrected NetworkVariable WriteField/WriteDelta/ReadField/ReadDelta dropping the last byte if unaligned. (#1008) chore: run standards check over solution files (#1027) chore: replace MLAPI with Netcode in Markdown files (#1025) fix!: added plainly-callable Add() method to NetworkSet [MTT-1005] (#1022) fix: fixing incorrect merge done as part of commit 85842ee (#1023) chore: cleanup/upgrade serialized scenes (#1020) chore: replace MLAPI with Netcode in C# source files (#1019) test: add network collections, struct and class tests MTT-936 (#1000) test: add buildtests to test build pipeline on target platforms (#1018) chore: rename MLAPI types to Netcode (#1017) chore!: rename asmdefs, change top-level namespaces (#1015) Replacing community NetworkManagerHUD with a simpler implementation (#993) test: network prefab pools and INetworkPrefabInstanceHandler (#1004) fix: do not expose Runtime internals to TestProject.ManualTests asmdef (#1014) refactor: snapshot. merge preparation. Removing old acks, removing unused varia… (#1013) chore!: per-asmdef namespaces instead of per-folder (#1009) feat: snapshot. ground work, preparing depedencies. No impact on code behaviour (#1012) ... # Conflicts: # com.unity.multiplayer.mlapi/Prototyping/NetworkTransform.cs # com.unity.multiplayer.mlapi/Runtime/Messaging/InternalMessageHandler.cs
it's a common practice in Unity packages to use the same top-level namespace for types including sub-folders (e.g. Unity Transport, DOTS Netcode etc.).
sticking with the same namespace would make discovery much better.
for instance, you don't have to remember
using Unity.Multiplayer.Netcode.NetworkVariable
directive to define yourNetworkVariable<int> m_Health;
anymore, yay!sticking with top-level namespace would also get rid of long list of using statements subsetting folders.
(take a look at PR diffs for examples)
this PR proposes following top-level namespaces (hence
rootNamespace
fields in asmdefs):nspace
Unity.Multiplayer.Netcodeasmdef
Unity.Multiplayer.MLAPI.Runtimenspace
Unity.Multiplayer.Netcode.Prototypingasmdef
Unity.Multiplayer.MLAPI.Prototypingnspace
Unity.Multiplayer.Netcode.Editorasmdef
Unity.Multiplayer.MLAPI.Editornspace
Unity.Multiplayer.Netcode.RuntimeTestsasmdef
Unity.Multiplayer.MLAPI.RuntimeTestsnspace
Unity.Multiplayer.Netcode.EditorTestsasmdef
Unity.Multiplayer.MLAPI.EditorTestsnspace
TestProject.RuntimeTestsasmdef
TestProject.RuntimeTestsnspace
TestProject.ManualTestsasmdef
TestProject.ManualTestsI think we should be deliberate when hiding types behind namespaces, such as
Unity.Multiplayer.Netcode.Transports.UNET
(which is the only subset namespace under Runtime asmdef atm).Hopefully, this'd make UX & optics much better and frictionless.
(note: you could also expect asmdef name changes coming soon!)