Automatiser la configuration du plugin Discourse avec la gem `create-discourse-plugin`

:mega: Ce plugin est désormais inclus dans le cœur de Discourse. Il n’est plus nécessaire d’utiliser cette gem.
Pour créer un nouveau plugin, utilisez :
rake plugin:create[plugin-name]

Depuis que j’ai commencé à développer des plugins pour Discourse, j’ai senti que la configuration globale pouvait être plus simple. Nous devrions avoir une meilleure expérience de développement globale lors de la création d’un plugin.

Dans cet esprit, j’ai créé pendant mon temps libre cette gem appelée create-discourse-plugin

Qu’est-ce que cela fait ?

Elle clone et crée une copie du discourse-plugin-skeleton sous votre nom d’utilisateur ou votre organisation, en fonction de l’option choisie. Ensuite, elle met à jour tous les espaces réservés avec le nom de votre plugin. Le rendant prêt à commencer le développement.

Comment l’utiliser ?

Dans le même esprit que npx create-next-app ou npx meteor

 gem exec create-discourse-plugin <nom-du-plugin>

Exigences

Contribution

16 « J'aime »

Merci ! J’ai pensé à faire ça à chaque fois que j’ai créé un nouveau plugin ces deux dernières années ! On dirait que vous avez fait un bien meilleur travail que je n’aurais pu le faire. J’ai hâte de l’essayer !

6 « J'aime »

C’est génial, alors quand allez-vous en avoir assez pour faire

gem exec create-discourse-theme <nom-du-thème>

? :wink:

6 « J'aime »

Ce serait discourse_theme new :wink:


@grubba que penserais-tu d’intégrer cela au cœur du système sous forme de tâche rake ? Comme

bin/rake plugin:create

Les gens ont de toute façon besoin d’un environnement de développement central fonctionnel pour travailler sur les plugins, donc cela semble être une bonne idée ? Cela le rendrait également plus « officiel » et plus facile à maintenir pour toute l’équipe.

Je me demande s’il ne serait pas préférable de le rendre 100% git, au lieu de dépendre des gens qui utilisent GitHub (et qui ont le CLI gh) ? Certaines personnes utilisent d’autres services pour héberger leurs plugins, et ne souhaitent pas non plus qu’ils soient immédiatement rendus publics.

Dans discourse_theme, nous maintenons un cache local du squelette de thème, donc cela fonctionne même hors ligne !

6 « J'aime »

Doh ! Je n’utilise que watch ! Et je pense que quand j’ai essayé il y a longtemps, je ne sais pas. Mais j’ai oublié ça. :exploding_head:

2 « J'aime »

Je suppose que c’est logique ! Les gens l’ont testé, j’ai reçu quelques plaintes et commentaires et j’ai fait quelques ajustements. Je pense qu’il est en très bon état pour le rendre « officiel ». Je vais travailler dans les prochains jours pour l’ajouter au cœur du système.

Je suis d’accord que l’utilisation de gh n’est pas idéale, et je trouverai une solution. Peut-être que ce que fait discourse_theme new est ce que je cherchais…

5 « J'aime »

J’ai une excellente nouvelle ! Je viens de fusionner cette nouvelle tâche rake dans le cœur :

rake plugin:create[name]

Elle fonctionne de manière similaire à la gem, mais elle ne pousse pas vers GitHub, vous donnant le choix de ce que vous voulez faire – précisément comme discourse_theme new

Je vais marquer cette gem comme obsolète, car nous avons une solution plus officielle.

10 « J'aime »

MODIFICATION : J’ai supprimé Gemfile.lock de .gitignore, comme indiqué. Et maintenant, ça fonctionne.

Aucun Gemfile.lock autorisé dans .gitignore
Cloning 'https://github.com/discourse/discourse-plugin-skeleton' to '/home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers'...
Initializing git repository...
Initialized empty Git repository in /home/pfaffman/src/discourse-repos/discourse/plugins/discourse-public-bookmark-timers/.git/
The following paths are ignored by one of your .gitignore files:
Gemfile.lock
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
rake aborted!
Command failed with exit 1: git
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:352:in `system'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:352:in `block (2 levels) in <main>'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:344:in `chdir'
/home/pfaffman/src/discourse-repos/discourse/lib/tasks/plugin.rake:344:in `block in <main>'
Tasks: TOP => plugin:create
(See full trace by running task with --trace)

J’ai réessayé après avoir exécuté git config advice.addIgnoredFile false avec le même résultat.

Et aussi

$ gem exec create-discourse-theme discourse-public-bookmark-timers

ERROR:  Could not find a valid gem 'create-discourse-theme' (>= 0) in any repository
ERROR:  Possible alternatives: create-discourse-plugin, discourse_theme, askclass-course-theme, date_discreter, opensource-theme
1 « J'aime »