1st WPOD recap

Last Friday the first WPOD happened around the globe.

Here is what was done on the Berlin gathering:

Hopefully other participants around the globe will share their achievements as well!

Are you already planning the next WPOD? Mark it on your calendar May 29th.

Happy hacking!

Testing pull requests and multi-repository changes

At Plone we use Continuous Integration (with Jenkins) to keep us aware of any change made on any of our +200 of packages that break the tests.

Thus making it feasible to spot where the problem was introduced, find the changes that were made and report back to the developer that made the changes to warn him/her about it.

A more elaborate step by step description is on our CI rules, be sure to read them!

At the same time though, we use GitHub pull requests to make code reviews easy and have a way to provide feedback and context to let everyone give their opinion/comment on changes that can be non-trivial.

Sadly, pull requests and multi-repository changes can not be tested directly with Jenkins, yes, there is a plugin for that, but our CI setup is a bit (note the emphasis) more complex than that…

Fortunately we came up with two solutions (it’s Plone at the end, we can not have only one solution :D)

Single pull requests

If you have a pull request on a core package that you want to test follow these steps:

  1. Get the pull request URL
  2. Go to http://jenkins.plone.org and login with your GitHub user
  3. Go to pull-request job: http://jenkins.plone.org/job/pull-request (you can see it always at the front page of jenkins.plone.org)
  4. Click on the Build with Parameters link on the left column
  5. Paste the pull request URL from #1 step
  6. Click on Build

Once it runs you will get an email with the result of the build. If everything is green you can add a comment on the pull request to let everyone know that tests pass.

Note: it’s your responsibility to run that job with your pull request and that changes made on other packages after tests started running can still make your pull request fail later on, so even if the pull-request job is green, be sure to keep an eye on the main jenkins jobs as soon as you merge your pull request.

Example: Remove Products.CMFDefault from Products.CMFPlone (by @tomgross)

Pull request: https://github.com/plone/Products.CMFPlone/pull/438

Jenkins job: http://jenkins.plone.org/job/pull-request/80

Multi-repository changes

When the changes, like massive renamings for example, are spread over more than one repository the approach taken before doesn’t work, as the pull-request Jenkins job is only able to change one single repository.

But we, the CI/testing team, have another ace on our sleeves: create a buildout configuration in the plips folder on buildout.coredev (branch 5.0) that lists all your repositories and which branch should be used, see some examples.

Once you have that cfg file, you can politely ask the CI team to create a Jenkins job for you. They will make a lot of clever things to make that work on jenkins (3 lines change plus following some instructions) and sooner or later a new Jenkins job will show up on the PLIPs tab on jenkins.plone.org.

Rinse and repeat!

Extra bonus and caveats

All Jenkins jobs, be it the pull-request, PLIPs and of course the core jobs, are configured to send an email to the one that triggered the job, so don’t worry about how long do they take to run, once they are finished you will get notified.

The caveat is that the above is only valid for changes targeting Plone 5. We didn’t put the extra effort to make it sure it also works for pull requests (either single or multi-repository) aimed at Plone 4.3. It’s quite trivial to add it for multi-repositories, a bit more work to make it run on single pull requests, still feasible to do if there’s enough people asking for it.

Hopefully the amount of pull requests for Plone 4.3 will decrease more and more as Plone 5 is getting closer and closer one pull request at a time :)

Now there’s no excuse on pushing changes to master without having tested them before on jenkins.plone.org!

Proposals on improvements and suggestions are always welcome on the issue tracker for jenkins.plone.org GitHub repository. Help on handling all those issues are, of course, also welcomed!

Happy testing!

WPOD

WPOD: World Plone Office Day

During this year’s PLOG I presented the simple idea behind WPOD:

  • every last Friday of the month
  • meet somewhere (remotely is fine as well, see below)
  • hack on Plone instead of your regular work
  • Rinse and repeat

That’s it, as simple and as easy as it can be.

Mark on your calendars every last Friday of the month, you have an appointment with the Plone community to bring Plone one step further ahead!

WPOD in Berlin

Preparations are being made for the first ever WPOD in Berlin that my company will gladly host. If you happen to be around Berlin, please contact me telling that you are coming!

The location is Hegelplatz 1, 10117 Berlin.

You are welcome during all day long. Plonistas are expected to come during the morning, enjoy some lunch together, and hack away until late afternoon.

WPOD around the world

If you happen to not be in Berlin, fear not, an irc channel will be available (#sprint on irc.freenode.net) so you can feel the same experience as in any other city hosting a WPOD.

Credit where credit’s due

That’s not an original idea of mine, nor is something that I thought of myself alone, Philip Bauer already tried to present the very same idea on last year’s Plone Conference in Bristol.

Later on, during the Bycicle sprint in Berlin, Stefania and I discussed about it and defined the format as it will start with.

Thanks to them for their bright minds and clever ideas!

Future

Within 10 days the first WPOD will happen, Plonistas will hack/plan/design away and Plone will get better and better.

I hope that other cities and individuals alike will start participating on WPOD, the more we are the bolder the change we will make.

There are some plans to put all the relevant information regarding WPOD on plone.org, either on the current website, or even better on the newer plone.org that is on the making (watch here for tickets ready to be fixed by any of you!).

Happy hacking!

Update: a meetup has been created, please RSVP there.

Canvis

And the Oscar Gil goes to…

La porta de Brandemburg, una icona de Berlín
Berlín!!

Fa cosa d’un mes i mig vaig veure una oferta de feina a les llistes de desenvolupament de Plone1 i a partir d’aquí ja és història :)

Després de parlar-ne molt amb la Sílvia, amb vol a Berlín inclòs per fer una entrevista en persona, vam decidir que era una bona oportunitat (si m’hi volien clar).

Berlín és una ciutat que sempre m’ha agradat, ja hi he estat tres o quatre vegades, hi coneixem gent, etc etc. A més, per la Sílvia podrà ser una molt bona oportunitat per aprendre un nou idioma. També hi tenim amics i evidentment i com a fet primordial, la feina, no només em sembla bona, sinó també una oportunitat per millorar els meus coneixements de Plone/Zope/Python i tot el que hi corre entre mig.

Començo el dia 7 de novembre, d’aquí quatre dies comptats!!!, així que si heu de passar per Berlín d’aquí unes setmanes, mesos o anys, recordeu que hi haurà una parella, més, de catalans vivint-hi que us poden acollir, fer-vos de guia o portar-vos a prendre alguna cosa tot parlant de la vida i del que sigui :D

guifi

Menció especial es mereix el projecte guifi.net i la meva relació amb ell. Des de que vam iniciar el projecte ja farà uns quants anys, encara no he tingut mai connexió de guifi a casa: només començar el projecte vaig anar a viure a Girona per estudiar a la universitat, quan la xarxa s’estava acostant a Girona, i després de fer-hi alguna xerrada per la universitat i parlar-ne amb diverses persones i col·lectius, vam venir a viure a Molins de Rei amb la Sílvia. De nou, aquests dies que estem començant a posar antenes per Molins, agafem i marxem a l’altra punta d’Europa :)

Per altra banda, potser vol dir que d’aquí un temps la xarxa ja ha crescut tant que arriba a Berlín… Qui sap! Però sembla que no ens hi podrem estar molt de temps tampoc per Berlín!

  1. Un CMS estil Drupal però escrit en Python i que corre sobre el Zope []

Plone Conference 2010

Demà al migdia marxo cap a la Plone Conference!

La Plone Conference és la trobada anual de desenvolupadors, usuaris i actors al voltant del sistema de gestió de continguts Plone.

Aquest any, després d’un any de treballar pràcticament cada dia sobre el Plone crec que en podré treure molt de profit, així ho espero de fet :)

L’únic punt negatiu serà, com de costum, el fantàstic temps que ens espera (gariebé pluja cada dia!!).

Si algú hi va que em digui alguna cosa!

sistema de plantilles TAL

L’immensa majoria de llenguatges de programació per web (PHP, Python, JavaScript, …) tenen un sistema de plantilles de manera que permet fer una cosa semblant a l’XHTML i el CSS, per una banda preparar les dades (amb el llenguatge de programació) i per altre presentar-los (amb el sistema de plantilles).

A diferència del CSS però, els sistemes de plantilles sí que tenen part de programació, iterar, condicionals i coses per l’estil.

Si treballeu amb Plone ja haureu descobert que utilitzeu TAL, un sistema de plantilles que utilitza una sintaxi molt semblant a l’HTML de manera que el propi codi de TAL queda integrat en tot el que és l’HTML que es vol mostrar.

Avui he trobat una referència del llenguatge i per això he fet l’entrada, per recordar-me que existeix :)

Python 2.4 i 2.6 al mateix temps

Degut a la feina haig de fer servir un programa1 que necessita la versió 2.4 de Python i diverses biblioteques (la PIL per exemple).

El problema està en que per defecte Gentoo compila els paquets de Python per a la versió de Python activa del sistema. Com que el sistema de paquets de Gentoo depèn de la versió 2.5 de python tenim un problema: no puc compilar per a la versió 2.4 ja que el programa que s’utilitza per a gestionar els paquets no es pot executar amb aquesta versió!

Si compilo els paquets per a la versió 2.4 de Python llavors no em funcionen per a la versió 2.6, o el que és pitjor (i que em va passar ahir mateix) que si per descuit actualitzes algun paquet de python te’l compila per a 2.6 i t’esborra la versió de 2.4.

Per sort hi ha una solució molt fàcil: al fitxer de configuració de l’emerge (el famós /etc/make.conf) hi pots establir una variable nova:

USE_PYTHON=”2.4 2.6″

Amb aquesta única línia ja li estàs dient a l’emerge que cada vegada que instal·li un programa de python el compili tant per a la versió 2.4 i la 2.6 :)

  1. El Zope, que és el servidor d’aplicacions que fa servir el Plone []

Cap a Budapest

Com que no sóc molt fan de Facebook, no tinc compte a Twitter1 o d’altres serveis de micro-blogging similars ho dic aquí:

D’aquí una estona ja marxarem cap a Budapest amb la Sílvia, de manera que no espereu respostes molt ràpides per part meva, que entre la conferència, visitar la ciutat i sobretot anar als centres termals que hi ha per tota la ciutat em quedarà poc temps per contestar correus i mirar notícies :)

  1. de fet he hagut de buscar com s’escrivia correctament :D []

Plone Conference 2009 (Budapest)

ploneConf09Com que a la feina nova (més sobre això d’aquí uns dies) entre moltes altres coses també fem/farem pàgines web amb Plone ens ha semblat que seria una bona idea anar a la conferència anual que es fa cada any, així que tal com diu la imatge del costat des del 27 d’octubre fins a l’1 de novembre estaré a Budapest.

Com que la Sílvia treballa des de casa i tant li fa si es la casa de Molins o un apartament de Budapest també s’hi ha apuntat :)

Així que si per casualitat esteu a Budapest durant aquells dies feu-ho saber i ens podem veure ;)

Els que ja hi heu estat podeu deixar comentaris amb els must-see de Budapest també :)

Espero aprendre’n molt perquè de moment tinc un cacau força important amb el Plone aquest :)

SAX2007 dia del desenvolupador

ahir va ser un dia de bojos: al matí passar pel banc a buscar pounds, tot seguit a comprar quatre queviures per preparar menjar i finalment a la ferreteria a comprar adaptadors de la corrent per els endolls anglesos

tot seguit esperar en Jordi a l’entrada de Mont-rodon per anar cap a Sant Bartomeu del Grau, ahir tocava la jornada de desenvolupadors del SAX!

la jornada va transcorre durant el matí, en el qual primer en Ramon Roca va fer una mica d’introducció a, més que no pas com programar sobre el drupal i guifi.net, a com es treballa en equip en projectes de programari lliure

seguidament i just abans de dinar en Carles Bruguera va mostrar-nos la seva pàgina web basada en Plone que en principi era un encàrrec des de Manresa per gestionar la seva xarxa basada en Freifunk, però que al mateix temps (i no sense suar la gota) el va generalitzar prou perquè sigui extensible a qualsevol tipus de xarxa! :)

després de un bon dinar, es va fer la part més interessant de totes: seguir la guia que en el seu dia va escriure en Aleix Solé perquè tothom pogués tenir una còpia funcional de la web de guifi al seu portàtil o allà on volgués

com de costum, si una cosa no s’ha fet pràcticament mai sempre es troben errades o petits detalls que han anat canviant, per això mentre anava seguint la guia, també l’anava actualitzant :)

per desgràcia meva, amb el meu servidor de proves de Girona no me’n vaig sortir, diria que ha de ser més aviat un problema de configuració del apache i/o php més que no pas de fer algun pas erroni

a més en la part final, la més sensible, en la base de dades vam trobar tres errors en el sql, a veure quan em poden engegar el servidor de Girona hi ho comento a la llista tot enviant un pedaç per poder-se aplicar i així ja serà només seguir la guia :)

finalment ja a les 7 de la tarda o així vaig haver de marxar corrents cap a Sant Julià de Vilatorta a veure una senyora que no li anava Internet, total tampoc m’hi vaig estar ni 5 minuts i li vaig dir que anés a una botiga i ja tornant cagant llets cap a Mont-rodon per fer la maleta, uns quants entrepans per l’endemà i amb la Sílvia anar cap a Girona que avui ens havíem de llevar a quarts de 4 per anar a buscar el bus que ens portaria a l’aeroport de Girona:

Birmingham que venim!!!