Utiliser une version forkée d’un repository dans Composer et contribuer au projet source

composer.json local (projet qui requiert) AVANT le fork

    (...)
    "require-dev": {
        "n0nag0n/fatfree-devtools": "^0.1.6"
    }

GitHub

Pour commencer, il faut que votre login sur GitHub soit en minuscules.
Ce n’est pas une blague :

Si vous avez des majuscules, dommage, mais vous pouvez changer ici : https://github.com/settings/admin

Cet exemple a été testé avec https://github.com/germain-italic/fatfree-devtools qui est un fork de https://github.com/n0nag0n/fatfree-devtools

Nouvelle branche (fork du repo)

Si la branche principale du repo que vous avez forké est master, créez une branche dev-master.
Ceci vous permettra de modifier le composer.json (cf. étape suivante) sans créer de merge request.

composer.json local APRÈS le fork

    (...)
    "repositories": [{
            "type": "git",
            "url":  "https://github.com/germain-italic/fatfree-devtools"
    }],
    "require-dev": {
        "n0nag0n/fatfree-devtools": "dev-develop"
    }

Remarques :

  • Ne pas mettre .git en suffixe de votre repo
  • /!\ Ne PAS créer la branche dev-master !! Les branches non tagguées (ex : develop) doivent être préfixées par dev- dans le composer.json seulement (ex : dev-develop) mais pas sur le repository !
  • Ne changez pas le nom du vendor dans votre require (mettez le nom du vendor d’origine)

Faites vos modifs dans une branche dédiée

Hors master (ou main) et develop, les branches doivent poursuivre un objectif (bugfix, feature, …). Ne travaillez pas directement sur master (ou main) ou develop. Ex : unit-tests-cli-output sert à travailler sur les l’affichage des tests unitaires.

Quand votre branche feature est bien testée, distribuez vos modifs dans la branche develop.
Comme vous avez requis la branche dev-develop dans Composer, votre projet ira chercher toutes les modifs publiées (pas juste une branche feature).

Distribuez les modifications de votre fork pour votre usage

Si vous avez plusieurs ordinateurs par exemple, faites composer update pour récupérer les modifs que vous avez publiées sur develop (appelé dev-develop dans le composer.json) pour vous mettre à niveau. Vous n’avez pas besoin de cloner le repo de votre fork sur votre second ordinateur (sauf si vous voulez remodifier le fork bien sûr).

On peut voir ici que Composer synchronise le dernier commit poussé sur la branche develop.

Contribuez au projet pour l’usage de tous

Faites vos merge requests depuis vos branches features vers la branche master (ou main ou autre, selon politique du vendor). Evitez de faire une MR depuis master.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.