Skip to content

Upcoming changes

swann flochlay edited this page Aug 18, 2023 · 9 revisions

All-in-one functions to init a project

Validation

  • Une fonction générique (par exemple lozen::new_project_all(config = "config.yaml")) peut prendre un fichier de configuration de type YAML en entrée dans lequel on peut spécifier nos options personnelles. Par défaut, il contient les options pour ThinkR et permet de générer toutes les fonctions de démarrage de projet avec {lozen}. Ainsi:
    • Je peux créer un nouveau projet, synchronisé sur GitLab au format R package (ou golem ou book), avec le CI en place et fonctionnel, le dépôt GitLab (ou GitHub) et la totalité de ses modalités recommandées par ThinkR avec lozen::new_project_all(config = "config_gitlab_pkg.yaml")
    • Je peux modifier le contenu de ce projet avec toutes les autres fonctions de {lozen} en complément, si je le souhaite, après avoir cloné en local manuellement mon projet.
    • Il existe aussi une version permettant de déployer l'app Shiny du golem sur Connect lozen::new_project_all(config = "config_gitlab_golem_connect.yaml")

Dev

  • Le fichier de config pourrait contenir les différents paramètres suivants. Chaque utilisateur peut utiliser son propre fichier de configuration à chaque nouveau projet
forge: gitlab # or github
forge_url: https://gitlab.com
gitlab_token: GITLAB_TOKEN
project_type: package # or book, golem
name_licence: Bob
# ... # Everything needed to start

Road map

  • Un fichier de config général qui contient tout est dispo dans "inst/"
  • La fonction new_project_all() permet de gérer:
    • gitlab + pkg + ci check/pkgdown
    • gitlab + book + ci master/prod html sur pages
    • gitlab + golem + ci check/pkgdown
    • gitlab + golem + ci check/pkgdown + app sur connect
    • github + pkg + ci check/pkgdown
    • github + book + ci master/prod html sur pages
    • github + golem + ci check/pkgdown
    • github + golem + ci check/pkgdown + app sur connect
  • Un fichier de config pour les différentes variantes: gitlab/github + pkg/golem/book
  • Les fichiers de config ThinkR intégrés dans Geronimo

🟡 ETQ leadev, j'aimerai des fonctions extra simplifiées pour commencer mes projets de package sur GitHub

=> https://github.com/ThinkR-open/lozen/issues/64

Guide: Etape de la vignette ab - Create a new project with GitHub) à réaliser

Légende
🟢 - fonctionnel + automatisé
🟣 - fonctionnel + manuel mais pas automatisable
🟠 - fonctionnel + manuel mais automatisable
🔴 - non fonctionnel
🟡 - en cours
⚪ - todo

Etapes

  • Packages -> pas pertinent dans la vignette
  • 🟢 Define the name of the principal branch
  • 🟢 Connexion to GitHub
  • 🟠 Create a new project or use an existing project
    • nécessite d'avoir crée le dossier en local (cf. fusen), ordre à changer pour automatiser
  • 🟢 Manipulate your project and add everything needed
    • 🟢 Define local installation and clone
    • 🟢 Create R project skeleton
      • 🟢 package
        • -> usethis::with_project(project_name, {usethis::use_r("start")}) pour le que CI de coverage passe
    • 🔴 Create weekly
      • -> ancien ou nouveau board ? (2 fonctions de lozen specifiques, fonctionnelles), a specifier dans la config
      • system.file("doc", "ae-create-weekly-with-github-or-gitlab.Rmd", package = "lozen") retourne NULL
      • Ajouter seulement la vignette dans le dossier "dev/" à la création du projet.
        • Note: Cette fonction de suivi de projet ira dans un nouveau package
    • Manage a calendar (pas pertinent ici)
    • 🟢 Add commit templates (message au dev à visibiliser)
    • 🟢 Add issue templates
    • 🟢 Add CI log check for Code coverage
    • 🟢 Push to server
    • 🟢 Start main and create a production branch
  • 🔴 Protect branches -> fonction pour gitlab a faire en manuel sur github (message avec lien)
  • 🔴 No autoclose issue and coverage regex -> fonction pour gitlab a faire en manuel sur github, coverage regex non pertinent pour github
  • 🟠 Create the board
    • nouvelle version seulement (graphql)
    • deux types de boards : orga ou user (ajouter un message d'erreur pertinent si node id pas trouvé)
    • 🟢 creer le board
    • 🟠 creer les colonnes -> a faire avec graphql: ci issue https://github.com/ThinkR-open/lozen/issues/66
  • 🟠 Create the wiki pages -> faire le home à la main, à automatiser si possible
  • 🟠 Add some special issues in the board
    • 🟢 ajouter les issues au repo
    • 🟠 lier les issues au projet -> (nécessite d'avoir créer le colonnes du projet)