Closed nixin72 closed 2 years ago
What are your thoughts @spdegabrielle?
I like all three ideas, but I think option 1 might be best to start with.
[x] Developers making templates will be familiar with PR as submission mechanism
I’m not sure about option 2 - but I don’t know if there is an api we can use?
option 3 is too much for now.
I have no idea if there's an API that we could use either, but I figured I could go digging through the code for the wbesite and see how they query packages and if there's anything we can use.
Option 1 is easy though, and will make sure that templates aren't broken.
@spdegabrielle I've created https://github.com/racket-templates/racket-templates which defines a MELPA-like method of submitting templates. I've also changed this to work using the list of templates there instead of hard-coding to cloning repos from the racket-templates
organization.
I suppose I should be working using PRs instead of pushing to master branch so I can refer to the PR with the work... I'll do that with future stuff, I've gotten too used to working on things on my own. Sorry about that.
you last comment on the pr made me think we should think about allowing tags, but I think it might be too soon to worry about and your data representation is easily extended.
for reference
Microsoft Windows [Version 10.0.19043.1348]
(c) Microsoft Corporation. All rights reserved.
C:\Users\stde>dotnet new
Template Name Short Name Language Tags
-------------------------------------------- ------------------- ---------- ----------------------
Console Application console [C#],F#,VB Common/Console
Class library classlib [C#],F#,VB Common/Library
WPF Application wpf [C#],VB Common/WPF
WPF Class library wpflib [C#],VB Common/WPF
WPF Custom Control Library wpfcustomcontrollib [C#],VB Common/WPF
WPF User Control Library wpfusercontrollib [C#],VB Common/WPF
Windows Forms App winforms [C#],VB Common/WinForms
Windows Forms Control Library winformscontrollib [C#],VB Common/WinForms
Windows Forms Class Library winformslib [C#],VB Common/WinForms
Worker Service worker [C#],F# Common/Worker/Web
MSTest Test Project mstest [C#],F#,VB Test/MSTest
NUnit 3 Test Project nunit [C#],F#,VB Test/NUnit
NUnit 3 Test Item nunit-test [C#],F#,VB Test/NUnit
xUnit Test Project xunit [C#],F#,VB Test/xUnit
MVC ViewImports viewimports [C#] Web/ASP.NET
Razor Component razorcomponent [C#] Web/ASP.NET
MVC ViewStart viewstart [C#] Web/ASP.NET
Razor Page page [C#] Web/ASP.NET
Blazor Server App blazorserver [C#] Web/Blazor
Blazor WebAssembly App blazorwasm [C#] Web/Blazor/WebAssembly
ASP.NET Core Empty web [C#],F# Web/Empty
ASP.NET Core Web App (Model-View-Controller) mvc [C#],F# Web/MVC
ASP.NET Core Web App webapp [C#] Web/MVC/Razor Pages
ASP.NET Core with React.js and Redux reactredux [C#] Web/MVC/SPA
ASP.NET Core with Angular angular [C#] Web/MVC/SPA
ASP.NET Core with React.js react [C#] Web/MVC/SPA
Razor Class Library razorclasslib [C#] Web/Razor/Library
ASP.NET Core Web API webapi [C#],F# Web/WebAPI
ASP.NET Core gRPC Service grpc [C#] Web/gRPC
dotnet gitignore file gitignore Config
global.json file globaljson Config
NuGet Config nugetconfig Config
Dotnet local tool manifest file tool-manifest Config
Web Config webconfig Config
Solution File sln Solution
Protocol Buffer File proto Web/gRPC
Examples:
dotnet new mvc --auth Individual
dotnet new worker
dotnet new --help
dotnet new nunit --help
C:\Users\stde>
I'm not sure I think tags are necessary, and I think that if we start going into introducing a tagging system, we're just re-writing features of the Racket package index. Personally I think descriptions will be adequate for now. If we realize at some point that the system is growing more than expected, we can introduce tags or migrate to the package index I think.
Are we good to close this ticket?
Yes, I think it's good for now :+1:
I think we can close. Thank you for everything👏
Having templates in the
racket-templates
organization is great, but there should be a way for users to create and publish their own templates. I think there's 3 main ways that we could do this:Create a repository that contains curated list of templates that anyone can make a PR to and submit their template. This is kind of similar to how Emacs' MELPA handles users adding packages.
Use the existing Racket package repository, and pull down any packages tagged as templates.
The hardest option, use Firebase or some alternative to host a database that people can submit packages to. This would give us a good amount of control over what gets put into the template archive while being able to automate checks and stuff that would let us flag or remove broken templates or something. It's mostly the same as option 1, but it would be automated.
I personally don't see 3 as being necessary - if we want to curate things, then I don't think we'll be getting so much traffic that option 1 would be unmanageable. If we don't want to care about curation, then 2 is probably the least work from us.