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

Proposal: Allow Spectre.Console.Community Namespace for Community Extensions on NuGet #1478

Open
JKamsker opened this issue Feb 28, 2024 · 10 comments
Labels

Comments

@JKamsker
Copy link

JKamsker commented Feb 28, 2024

The Spectre.Console project currently reserves the Spectre.Console prefix on nuget.org, limiting community-driven projects from using a namespace that clearly associates them with the Spectre.Console ecosystem. This reservation poses a challenge to the growth and visibility of extensions that enhance the Spectre.Console library.

I propose the creation and official endorsement of the Spectre.Console.Community namespace for community-driven projects. This namespace would serve as a recognized space for publishing NuGet packages that extend Spectre.Console, fostering innovation and collaboration within the community.

I have developed two projects ready for publication that demonstrate the potential benefits of this proposal:

  • Spectre.Console.Community.AutoCompletion: Enhances CLI applications with auto-completion features, improving usability.
  • Spectre.Console.Extensions.Hosting-ng: Integrates Microsoft.Extensions.Hosting for more seamless application lifecycle management, addressing the maintenance gap left by the predecessor project.

Benefits:

  • Innovation and Collaboration: Encourages the community to contribute and share extensions that enhance the Spectre.Console library.
  • Clarity and Organization: Provides a clear distinction between official and community-driven projects, making it easier for users to find extensions that meet their needs.
  • Support for Community Growth: Recognizes and legitimizes the efforts of the community, encouraging more developers to contribute.

Please upvote 👍 this issue if you are interested in it.

@FrankRay78
Copy link
Contributor

Excellent proposal. I had thought similar, recently.

Should this really be a core part of spectre.console, or would it best be located in some form of contrib project?

Support Markdown rendering

@FrankRay78
Copy link
Contributor

Out of interest @JKamsker, assuming we get the Spectre.Console.Community namespace (or similar), where do you feel the AutoCompletion work you authored is (ideally) best placed to reside? Within spectre.console or as a community plugin that you retain control over?

@JKamsker
Copy link
Author

JKamsker commented Mar 2, 2024

@FrankRay78, releasing it as a community plugin not only makes it easier for people to find and use, but it also lets me have more control over the project. This way, I can make updates and improvements faster. Still, I'm open to discussions and can reconsider based on the community's input and the needs of Spectre.Console moving forward.

@FrankRay78
Copy link
Contributor

FrankRay78 commented Mar 2, 2024

I never got around to reviewing the PR, but I'm still interested in whether it should have a first-class place within the main spectre.console codebase. If we believe that's best, I think over the next 2 months I could make time to pick up the review. I'd be interested to hear your thoughts, and others, as to this idea. Equally, your proposal above was well received, so I expect to have some kind of community namespace in the coming weeks. Keeping it as something you maintain is cool as well.

@JKamsker
Copy link
Author

JKamsker commented Mar 12, 2024

Just published a open source repo for the autocompletion https://github.com/JKamsker/JKToolKit.Spectre.AutoCompletion

@FrankRay78
Copy link
Contributor

Just published a open source repo for the autocompletion https://github.com/JKamsker/JKToolKit.Spectre.AutoCompletion

Very cool. Also, I know the Community namespace is on it's way. That said, the question remains whether you have a view if the autocompletion is something genuinely suited to being in the core library, or if it remains best placed as a community repo.

@JKamsker
Copy link
Author

I'd say for now - let's put it in a commuinity project and work from there. When it got enough stability, is feature complete and meets the standards, we can talk about merging it.

As for the proposal of the community namespace, i had an idea: How about requiring all Spectre.Console.Community.* to be in the spectreconsole org. Each maintainer of a community project has full access to their project(s) but in case they loose interest in continuing maintaining (as it happens so often) and maybe even becomes unresponsive, the core team has the power to assign new maintainers for the project, so it doesn't die.

I know, forks are supposedly the "solution" but on github, forks are usually hidden in search and quite hard to find.

@FrankRay78
Copy link
Contributor

How about requiring all Spectre.Console.Community.* to be in the spectreconsole org.

This is a really good idea that I'll put to the other maintainers for consideration.

@patriksvensson
Copy link
Contributor

I don't think that should be a requirement. Also, even if we wanted to enforce something like that, we can't.

@0xced
Copy link
Contributor

0xced commented Jul 3, 2024

Serilog has a space and some rules for community-driven projects: Serilog Contrib. It is described as a hub of community supported extensions for Serilog to help with discovery and collaboration.

I'm not implying we should do exactly the same for Spectre.Console, just leaving it here as food for thoughts.

@github-actions github-actions bot added the ⭐ top feature Top feature request. label Jul 4, 2024
@github-actions github-actions bot removed the ⭐ top feature Top feature request. label Aug 22, 2024
@github-actions github-actions bot added ⭐ top feature Top feature request. and removed ⭐ top feature Top feature request. labels Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo 🕑
Development

No branches or pull requests

4 participants