-
Notifications
You must be signed in to change notification settings - Fork 704
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
Discussion: Don't add "ProjectReunion" to the Microsoft.WinUI package name #4427
Comments
Is Windows off-limits? e.g.
If that's confusing or politically impossible, then perhaps chop some letters off whilst keeping the spirit of what all this work does (creates a union of APIs). Reunion is perpetually in progress; Union is timeless.
|
If it's mainly a matter of exposing all the Windows SDKs regardless of UWP or Win32, Microsoft.Windows.* makes sense. It's "just windows", but I think most of these can also stand on their own like |
Hey folks, several different axies (axises? axees?) here - namespace, packaging, and metadata. We're using namespaces that describe the types within - so The packaging vehicle for WinUI's upcoming releases is Project Reunion. Right now, we're sticking with Then there's where you get the metadata. We're delivering the build-time metadata through multiple nuget packages so that adding a ref to DWriteCore doesn't make your build also pull in WinUI3 or MRT. So we end up with NuGet packages named like So yeah, the names are a little confusing.
(I'll be the first to admit that I love a good naming discussion, maybe more than I should. Look for a more complete write-up of this under http://github.com/microsoft/projectreunion coming early next week.) |
Wrt the issue here, I'm referring to just the package name - I'm aware the namespace isn't getting Anyway here's a few of the above statements that makes me worried:
So it sounds temporary/short-term and you might change it later? The thing is you have to keep the same name. Once you ship those nuget packages with go-live, you can't really change them, without hosing the 3rd party libraries out there. Say Library A takes a dependency on v3.0. Then you ship 3.1, and the users can just reference 3.1, and the 3rd party lib will continue to work but now on top of 3.1 (provided you don't make breaking changes of course). Now if you rename the package, that 3rd party library will instead be pulling in the old 3.0, while the developer will try and pull in the newly renamed package, and you'll have a conflict. It just breaks the nuget hierarchy, and the user would be stuck on the older version of WinUI until all his 3rd party libraries have had a chance to move over to the new packages. You can't really afford to constantly be hosing your 3rd party ecosystem.
But why make it confusing?
Why does that mean it has to bleed into the names of the nuget packages?
I have a feeling we would get along just fine :-) |
Anything code related stuff that includes 'ProjectReunion' must be trimmed for better 3rd party compatibility and potentially stop more confusion around 'What exactly Project Reunion is and what is WinUI?' . By code related I mean to namespaces and Nuget packages. People have been following Project Reunion as just a term. This is just an an effort to 'unify' WinForms, WPF, UWP, basically anything that Windows SDK offers internally to the Microsoft stack developers. WinUI is mostly the UI part of this decoupling. I understand there are more to include then just UI layer like runtimes and metadata to support multiple languages but Project Reunion should not be the term to include these stuff in in the code. For developers, it is just a term that Microsoft puts effort into. Changing the nuget package name or potentially namespaces will discourage 3rd party library supporters from the platform. They have been doing tremendous amount of work in this painful change with Microsoft.UI.Xaml already, even in the preview days to just support customers faster when the time comes. So there are 2 main reasons here why things should go the way as they are right now:
|
Jep, we all know, naming is hard. 🙂 Everything with "Project Reunion" or just "Union" is in my opinion not a good idea. Why?
I think the packages should have names like Microsoft.WindowsApi that makes it clear what's in the package. Look for example at the latest Azure SDK NuGet packages, they did a pretty good job. You find there package names like Also interesting is that the Azure NuGet packages are not prefixed with Lastly, I want to mention that I know many developers who expect the namespace to be the same as the package name. I don't want to say add ProjectReunion to the namespaces (please not :-)), but from that point of view, I would prefer the original package name from preview 4, |
|
Why not use the actual root namespace for the package like others do and name it |
Hey @sylveon , great suggestion, I like that package name too. I didn't mention it, because I think the problem is that this is not the root namespace. While it might be the most popular namespace in the WinUI NuGet package, there are also other namespaces like |
|
That is already in use by WinUI 2, which is really an entirely different product. If it was reused, people would see it as an update and be in for quite a surprise if they updated. While I agree it would have been a logical place to put it, I don't think that's worth the poor user experience it would create. |
This may never happen but I honestly would love to have something in my code that says: Microsoft.FooKit (0.5.0-prerelease) Please don't think I'm being disrespectful, there is a reason behind it: people don't fully understand (me included) what "Project Reunion" is, and many, many years in the future this could be quite a story and computer science is full of great stories related to naming things. |
As I've heard Kevin Gallo say several times: "Projects are temporary experiments and may not turn into shipping products. Projects are not guaranteed to exist in the future or have ongoing support. Products are and do." {paraphrase} |
I don't know if it belongs to this discussion too, but also concerning is the VSIX name, which is now just "Project Reunion": Issue 1: The VSIX description is a bit hard to understand: Issue 2: Search for WinUI Issue 3: What is a Project Reunion app? Issue 4: No update notification I think once the templates ship with Visual Studio, we don't care about this VSIX anymore, and my comment here becomes obsolete. But right now, it's not an ideal solution in my opinion. Maybe that's ok for a 0.5 version. |
Another concern is also the package version, as the version relates now to project reunion, and not to WinUI. The NuGet package version is now 0.5, but we talk about WinUI 3.0. How does a developer know that it's WinUI 3.0? Just by reading the docs? Or do we forget about the WinUI version and we talk about the version of project reunion? That would mean that it would be forever WinUI 3, and just the project reunion package increases the version number in the future? I mean, when you look at the .csproj file, you see this now, and I would say, yes, it's WinUI 0.5:
Yes, I can hear already people saying WinUI 0.5, including me. So, that's definitely an impact that should be considered if this package is aligned with project reunion's versioning, and if it stays like this. |
@thomasclaudiushuber I also found that you actually don't need these two packages, and can just remove them: <PackageReference Include="Microsoft.ProjectReunion" Version="0.5.0-prerelease" />
<PackageReference Include="Microsoft.ProjectReunion.Foundation" Version="0.5.0-prerelease" /> It's not clear to me why they need to be there in the project templates. |
X-Ref: microsoft/WindowsAppSDK#560 |
I'm hoping this gets a little attention: #4445 It would alleviate a lot of pain points on multiple levels and allow the marketing folks to spin names as desired without affecting real world projects that need a measure of easily derived stability. |
@thomasclaudiushuber , I actually like the fact that WinUI 0.5 now aligns nicely with the realities that have caught up with the WinUI 3.x spin. v 0.5 feels just right! Carl Jung's collective unconscious making it's mark at Microsoft ;-) |
Hey @Noemata , I think you got my comment wrong. I'm not saying v0.5 feels right to me. I'm saying it's confusing and developers might use that version number to refer to WinUI 3.0, and that impact should be considered by the team who defines the package name and versioning. The main issue in my opinion is that WinUI 2.x and WinUI 3.0 are two different things, and by giving the package for WinUI 3.0 now a 0.5 version number, it's getting even harder for developers to understand this. Beside the version number, I think coupling it to ProjectReunion is also not good. I would prefer something like this:
|
This issue was started as a discussion on the naming of the package. Keeping issues focused helps the team respond appropriately. It also helps other easily follow the discussion and contribute accordingly. Having issues that expand to cover multiple issues makes it harder to follow discussions and having issues with lots of varied comments can also be off-putting for others who might otherwise contribute useful perspectives. Separate issue about version numbering at #4508 |
@mrlacey , you're absolutely right, but sometimes it makes sense to bundle. I opted to bundle the confusing bits here. @thomasclaudiushuber , sorry if I coopted your view inappropriately. I should have qualified that you were referring to the potential confusion/implications of the versioning. That said, your observation is correct, the 0.5 moniker will tend to stick. I'd rather not see a repeat of the Silverlight saga, and WinUI has elements of those mistakes already. |
@Noemata No problem Mario, there's no need to apologize. 👍 |
Closing this, since from the sound of it, it will change |
In a recent screenshot, it showed that the WinUI package is changing from
Microsoft.WinUI
toMicrosoft.ProjectReunion.WinUI
.https://twitter.com/marbtweeting/status/1367604242748346368/photo/1
I find this naming rather confusing to be in the product name.
Scott Hunter last week during the dotnetconf said "Project Reunion is a code word - it'll change before we actually ship it".
So it seems to me you're putting a temporary project name into the nuget, and I don't really get the value add here either. If anything it just adds a some confusion. In the end it's just a Windows app - how we get there is irrelevant to what you ship. Or to quote the reunion talk from Ignite 2021:
Another issue here is once Project Reunion is complete, you're actually stuck with it. You can't change the name of the nuget, or you'll hose 3rd party libraries that takes a dependency on the nuget, and anyone using those 3rd party libs can't grab a newer version of WinUI without waiting for the 3rd party vendors to re-release. And anything released on Preview 4 is definitely breaking (but since it was preview I guess that can be argued is OK but it's just an example of how it already breaks anything already released)
The text was updated successfully, but these errors were encountered: