TestableIO / System.IO.Abstractions.Extensions

Convenience functionality on top of System.IO.Abstractions
MIT License
20 stars 6 forks source link

Cannot publish package System.IO.Abstractions.Extensions #5

Closed gigi81 closed 2 years ago

gigi81 commented 2 years ago

Describe the bug The package fails to publish to nuget

To Reproduce Run the build in the main branch

Expected behavior The package to be published during the build

Additional context There is something wrong with the api key configuration or more likely seems like it is not possible to package to nuget.org packages with name starting with "System." anymore. Should we rename the package or do you think you can have an exception granted? I would rather rename if we want to add more extensions to support things like xml (as a new binary/package) as requested in other tickets, to keep them consistent. Happy to entertain suggestions for the naming...

Error in the build: Pushing System.IO.Abstractions.Extensions.1.0.11.nupkg to 'https://www.nuget.org/api/v2/package'... PUT https://www.nuget.org/api/v2/package/ Forbidden https://www.nuget.org/api/v2/package/ 321ms error: Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).

Usage: dotnet nuget push [arguments] [options]

Arguments: [root] Specify the path to the package and your API key to push the package to the server.

Error: Process completed with exit code 1.

fgreinacher commented 2 years ago

Thanks for the reminder!

I haven't got an answer via NuGet support, but @terrajobst mentioned at Twitter that this is not desired from Microsoft side. Did I get that right?

fgreinacher commented 2 years ago

Not sure we'll get an answer here 🥲

Let's brainstorm naming alternatives!

What's on your mind @gigi81?

gigi81 commented 2 years ago

lol, I'm really bad at naming things 😄 let me try

I was thinking at a prefix like IOAbstractionsGroup or IOAbstractionsTeam, to replace "System", so that would become IOAbstractionsGroup.IO.Abstractions.Extensions

Then for future libraries, it would be something like: IOAbstractionsGroup.IO.Abstractions.Extensions.Xml IOAbstractionsGroup.IO.Abstractions.Extensions.Json

You get the idea... I think it is just a matter of finding a suitable name for the "organization" Funny thing if I google "IO Abstractions Group" the first result is the nuget package page, but that might be just google feeding on my past visited pages...

terrajobst commented 2 years ago

I haven't got an answer via NuGet support, but @terrajobst mentioned at Twitter that this is not desired from Microsoft side. Did I get that right?

That's correct. 'System' is really reserved for the platform later. As such, the prefix is reserved on NuGet and can't be pushed to for new packages.

fgreinacher commented 2 years ago

What do you think about getting rid of the prefix, i.e. IO.Abstractions? This would be pretty similar and even a bit more dense 😀

gigi81 commented 2 years ago

So IOAbstractionsGroup.Extensions It is definitely more compact. It loses a bit of context but is also probably less redundant. Group or team?

fgreinacher commented 2 years ago

What about just IO.Abstractions.Extensions?

gigi81 commented 2 years ago

Okay for me. Just worried that "IO" could be blacklisted as "System" was.

fgreinacher commented 2 years ago

@gigi81 I thought a bit about this and came to the following plan: I'll rename the parent organization to TestableIO because that better matches the overarching idea of the projects here. Going forward we should aim to have TestableIO as prefix for all packages, e.g. TestableIO.System.IO.Abstractions or in this case TestableIO.System.IO.Abstractions.Extensions. To keep it convenient for existing users I'd leave out the TestableIO prefix from the .NET namespace.

@inyutin-maxim Can you do the same for https://github.com/System-IO-Abstractions/System.IO.Abstractions.Analyzers?

gigi81 commented 2 years ago

ok sounds like a plan! So I will keep everything the same and only set the PackageId in the csproj to TestableIO.System.IO.Abstractions.Extensions

fgreinacher commented 2 years ago

ok sounds like a plan! So I will keep everything the same and only set the PackageId in the csproj to TestableIO.System.IO.Abstractions.Extensions

Yep, thanks! Thanks for your patience!

fgreinacher commented 2 years ago

@gigi81 I thought a bit about this and came to the following plan: I'll rename the parent organization to TestableIO because that better matches the overarching idea of the projects here. Going forward we should aim to have TestableIO as prefix for all packages, e.g. TestableIO.System.IO.Abstractions or in this case TestableIO.System.IO.Abstractions.Extensions. To keep it convenient for existing users I'd leave out the TestableIO prefix from the .NET namespace.

@inyutin-maxim Can you do the same for https://github.com/System-IO-Abstractions/System.IO.Abstractions.Analyzers?

@jpreese @tathamoddie Before I start changing things: Do you want to be involved here?

fgreinacher commented 2 years ago

@gigi81 I thought a bit about this and came to the following plan: I'll rename the parent organization to TestableIO because that better matches the overarching idea of the projects here. Going forward we should aim to have TestableIO as prefix for all packages, e.g. TestableIO.System.IO.Abstractions or in this case TestableIO.System.IO.Abstractions.Extensions. To keep it convenient for existing users I'd leave out the TestableIO prefix from the .NET namespace. @inyutin-maxim Can you do the same for https://github.com/System-IO-Abstractions/System.IO.Abstractions.Analyzers?

@jpreese @tathamoddie Before I start changing things: Do you want to be involved here?

I'll go forward with this. Ping me if something is unclear 😀