Friday, March 28, 2008

εξυπνό και αυστηρό versioning system!

Λοιπόν η αλήθεια είναι ότι εγώ θα ήθελα ένα τοσο automated continuous integration system, όπως ακριβώς το περιγράφει ο Paul Duval στο  Continuous Integration. Όσοι απο εσάς δουλεύετε σε project > 5 ατόμων ξέρετε τον λεγόμενο πόνο - the pain - who broke the build! Eager commit junkies developers - είτε απο πίεση χρόνου ή καταστάσεων βιάζουν με κώδικα το σταθερό  repository build και στο τέλος σου μένει η εικόνα του email notification απο τον build server - Build Broken.

Σχολιάζει  λοιπόν στο plastic scm blog ένα απο τα κεφάλαια του παραπάνω βιβλίου! The future of continuous integration how we can prevent broken builds! Παραθέτει ωραία σχεδιαγράμματα και ουσιαστικά περιγράφει ένα two phase commit δηλαδή με το που ρίχνει ο developer τον κώδικα του o build server τρέχει ένα compile, build ακόμα και unit tests? ( no shit) και στην συνέχεια αν ολα εχουν πάει καλά - ο κώδικας γίνεται commited! Χωρίς πλάκα αυτό θα το ήθελα - out of the box - τώρα σήμερα! 

Σωστά αναφέρει ο μάγκας στο blog, ότι αυτό μπορεις να το κάνεις με λιγότερους αυτοματισμούς αν χρησιμοποιήσεις παράλληλα branches και στην συνέχεια κάνεις merge!

Μάλιστα λέω εγώ ολα καλά! Στατιστικά το 50% των developers δεν νιώθουν να κάνουν σωστό merge - όταν πιέζει ο χρόνος δεν κάνουν ούτε update πριν  προσθέσουν τις γραμμές τους! 

Θα πάρω τον αυτοματισμό λοιπόν ευχαριστώ! Πάντως σαν ιδέα μου άρεσε και θα ήθελα όταν έχω χρόνο να το δώ γενικά το θέμα! 

Μιας και λέμε για continuous integration - έχει παίξει κανείς σας με τον Hudson? New kid on the block για την ώρα εδώ χρησιμοποιούμε continuum, αλλά θα ήθελα να το δοκιμάσω και σε κάποιο project in the near future!




4 comments:

  1. > Παραθέτει ωραία σχεδιαγράμματα
    >και ουσιαστικά περιγράφει ένα two
    >phase commit δηλαδή με το που
    >ρίχνει ο developer τον κώδικα του
    >o build server τρέχει ένα
    >compile, build ακόμα και unit
    >tests? ( no shit)

    Πάρι εδώ που είμαι ο integration server πάντοτε τρέχει τα unit tests πρωτού κάνει commit. Αν ένα από αυτά αποτύχει τότε ακυρώνεται και το commit. Νομίζω ότι αυτό είναι ένα απόλυτο requirement για κάθε έργο.

    ReplyDelete
  2. Πάνο ποιον έχετε μήπως το Team City της IDEA? για την ωρα μονο αυτό εχει το συγκεκριμενο feature - out of the box ready!

    ReplyDelete
  3. Pari, de 8a sou parei pano apo 10 lepta na steiseis Hudson kai na trekseis to proto sou build - opote, try it.

    ReplyDelete
  4. Πάρι cruise control έχουμε. Δεν είμα σίγουρος αν αυτή η λειτουργία έρχεται εξ ορισμού, πάντως ήδη είναι σεταρισμένο έτσι.

    ReplyDelete