Portar un mòdul de Drupal a Backdrop
Una de les bondats d’un gestor de continguts com Backdrop és que, quan necessites una funcionalitat nova, tens moltes possibilitats de trobar-la en un dels 394 mòduls contribuïts que, avui en dia, es troben a github. Però quan ets un usuari/desenvolupador que vens de Drupal 7, on ara mateix es troben 13.334 mòduls contribuïts, 394 et semblen una misèria. En tot cas, i això és el millor del codi lliure i obert, escriure un nou mòdul per a qualsevol d’aquests projectes és només qüestió de temps i coneixements. Backdrop, però, com a fork de Drupal 7, té la possibilitat de carregar mòduls de Drupal 7 com si fossin de Backdrop, amb algunes petites modificacions (o de vegades no tan petites, depèn del mòdul).
Amb aquesta entrada del blog pretenc donar unes instruccions simples pel procés de portar un mòdul de Drupal 7 a Backdrop, tot recopilant instruccions que he anat trobant de manera dispersa a la xarxa. Dividiré les instruccions en diverses entrades de blog, tot començant amb la importació del mòdul a github (aquesta entrada), una segona entrada amb una explicació dels canvis a realitzar en el mòdul perquè Backdrop el pugui usar i una tercera entrada per a la inclusió del nou mòdul a backdropcms.org.
Backdrop és un projecte que, a diferència de Drupal, es gestiona directament a github. Així que el primer que ens cal és tenir-hi un compte. Després us cal tenir un mòdul de Drupal 7 per portar a Backdrop. A tall d’exemple, usaré en tot el post les dades del mòdul usertabs que vaig escriure per Drupal 6, portat a Drupal 7 per Matslats, i que jo vaig portar a Backdrop.
NOTIFIQUEU LES VOSTRES INTENCIONS
Tant si és un mòdul que gestioneu vosaltres com si no, i en aquest darrer cas és especialment important, es considera una bona pràctica notificar la vostra intenció de portar el mòdul a Backdrop. Per això només us cal anar a la cua d’incidències del mòdul i crear una incidència anunciant/demanant permís que desitgeu portar el mòdul i etiquetar-la amb «backdrop-port». Amb aquest anunci no només demaneu permís sinó que permeteu que altra gent que hi pugui tenir interès us pugui ajudar, i d’això va el programari lliure i obert, de col·laboració.
També podeu aprofitar per notificar les vostres intencions a la llista d’incidències del grup d’operacions de contrib de Backdrop tot creant una incidència nova. Després us servirà per sol·licitar el vostre accés a l’equip de desenvolupadors de contrib de Backdrop.
IMPORTAR EL MÒDUL DE DRUPAL 7 A GITHUB
Un dels requisits per incloure un mòdul de Drupal 7 al llistat de mòduls contribuïts a Backdrop és que mantingui tot l’historial de commits original. Per això no podem només crear un repositori nou a github pel nou mòdul, sinó que hem d’importar-lo. I per això us caldrà l’adreça git del mòdul de Drupal 7. Anem a fer els passos per la importació, doncs:
- Aneu a la pàgina del projecte de Drupal, pestanya «version-control», sel·leccioneu la versió master i desmarqueu «Maintainer». Quan feu click a «Show» se us mostrarà el comandament de git per a clonar el projecte. El que ens interessa és l’adreça url https. En el meu cas «https://git.drupal.org/project/usertabs.git» Copieu-la al portapapers.)
- Aneu a la pàgina d’importació de repositori a github. Enganxeu la url que acabeu de copiar al camp «Your old repository’s clone URL».
- Poseu el nom del projecte al camp «Name». Ha de ser el mateix nom curt de projecte de Drupal. En el meu cas «usertabs».
- Si el vostre compte de github no és de pagament, ja podeu fer clic a «Begin import». Si teniu l’opció de fer repositoris privats assegureu-vos a deixar aquest nou repositori com a «Public» i feu clic a «Begin import».
FER NETEJA DE BRANQUES I ETIQUETES
Ara ens cal fer una mica de neteja en el repositori de les branques i etiquetes que hem importat, ja que no ens caldran. Només conservarem els missatges de commit. Fem un clonat del repositori en local i comprovem amb git branch -r les branques que hi ha.
$ git clone git@github.com:robertgarrigos/usertabs.git
$ cd usertabs
$ git branch -r
origin/7.x-1.x
origin/6.x-1.x
origin/HEAD -> origin/master
origin/master
Ara hem de canviar el nom de la branca 7.x-1.x a 1.x-1.x:
$ git checkout 7.x-1.x
Branch 7.x-1.x set up to track remote branch 7.x-1.x from origin.
Switched to a new branch '7.x-1.x'
$ git branch -m 7.x-1.x 1.x-1.x
$ git push --set-upstream origin 1.x-1.x
Total 0 (delta 0), reused 0 (delta 0) To git@github.com:robertgarrigos/usertabs.git
* [new branch] 1.x-1.x -> 1.x-1.x
Branch 1.x-1.x set up to track remote branch 1.x-1.x from origin.
I esborrem la vella de github:
$ git push origin :7.x-1.x
To git@github.com:robertgarrigos/usertabs.git
- [deleted] 7.x-1.x
Hem d'esborrar la branca "master" de github, però no podrem perquè ara mateix és la branca per defecte i github no permet esborrar les branques per defecte. Hem d'anar a la pàgina del repositori de github, fer clic a "settings" i canvieu la branca per defecte a la 1.x-1.x. Després d'això sí que podrem esborrar la branca "master", que no en farem res:
$ git push origin :master
To git@github.com:robertgarrigos/usertabs.git
- [deleted] master
Finalment, només ens cal sincronitzar el codi en local amb el repositori:
$ git remote set-head origin 1.x-1.x
I comprovem que les branques siguin les correctes:
$ git branch -r origin/1.x-1.x
origin/HEAD -> origin/1.x-1.x
Ara ja tenim una única branca, la 7.x-1.x de Drupal, anomenada ara 1.x-1.x, i tot llest per començar a actualitzar el codi per funcionar amb Backdrop. Però això ho tractarem en el següent post.
Aquesta entrada és una traducció i adaptació de:
Com mantenir mòduls contribuïts per a Drupal i Backdrop alhora.
Afegeix un comentari