Apache, Subversion, Trac, MoinMoin
Αποφάσισα πρόσφατα να δοκιμάσω προγράμματα προκειμένου να "χτίσω" ένα περιβάλλον εργαλείων ανάπτυξης (πέρα από IDE). Αυτό που με ενδιέφερε βασικά ήταν να βάλω Subversion (για source control), ένα σύστημα bug/issue tracking, και ένα σύστημα για documentation, σημειώσεις κλπ. Ένα κριτήριο ήταν ότι έπρεπε αρχικά όλα να τρέχουν σε Windows και να μπορούν εύκολα να αντιγραφτούν-μετατραπούν για να τρέξουν και σε Linux. Το άλλο βασικό κριτήριο ήταν ότι έπρεπε να είναι όλα FOSS.
Κατέληξα (προς το παρόν) στον παρακάτω συνδυασμό:
- Apache (2.x)
- Subversion (WebDAV στο Apache με το mod_dav_svn)
- Trac (κάτω από τον Apache)
- MoinMoin (για γενικό, non-project specific, Wiki)
Το μόνο παραπάνω που χρειάζεται σε αυτό το combo είναι η Python.
Subversion: Όπως ανέφερα παραπάνω, αρχικά με ενδιέφερε το Subversion. Προσπαθόντας να το εγκαταστήσω βέβαια, βρήκα ότι μπορούσα να χρησιμοποιήσω Apache αντί για τον δικό του server/daemon. Δοκίμασα λοιπόν το Apache, το οποίο βρήκα πολύ εύκολο να εγκατασταθεί και να ρυθμιστεί για το Subversion (με το mod_dav_svn). Ήταν επίσης πολύ ωραίο και εύκολο να ρυθμίσω να παίζει με SSPI για authentication (mod_auth_sspi, για να παίζει με τους στάνταρ χρήστες του Windows Domain).
Μετά από την εγκατάσταση του Subversion ξόδεψα αρκετό χρόνο για να μεταφέρω στοιχεία από ένα μικρό repository του SourceSafe. Υπήρχε ένα πρόβλημα με το vss2svn, με τα Ελληνικά, αλλά βρέθηκε λύση με την υποστήριξη των developers του vss2svn.
Trac: Αρχικά (πριν κανά χρόνο και βάλε) είχα δει διάφορα προγράμματα για bug/issue tracking και το Bugzilla φαινόταν να είναι το καλύτερο. Δεν επιχείρισα όμως να το βάλω γιατί ακόμα δεν ήθελα να μπλέξω με Apache (ήταν μπέρδεμα για μένα τότε) και η ιδέα της εγκατάστασης ακόμα ενός database server (MySQL) δεν με ενέπνεε πολύ. Ήμουν αρνητικός γενικά με όλους τους servers τότε (έλλειψη εμπιστοσύνης ότι θα είναι ελαφριοί και δεν θα μου ρημάξουν το σύστημα).
Όταν όμως έμπλεξα με τα παιδιά από το vss2svn, γνώρισα το Trac. Στην αρχή μου φάνηκε πολύ απλοϊκό, λιτό, που αμέσως μεταφράζεται στο περίπλοκο μυαλό μου ως "χωρίς σπουδαίες δυνατότητες". Αυτό όμως που μου κέντρισε τη περιέργεια είναι ότι συνεργαζόταν άψογα με το Subversion, πράγμα που δεν το είχα δει αλλού και το ήθελα πολύ. Έτσι αποφάσισα να το δοκιμάσω. Η εγκατάσταση και οι ρυθμίσεις ήταν εύκολα, καθώς και η ρύθμισή του να κάνει authentication με το SSPI. Ακόμα και η ρύθμιση για να δείχνει σωστά source κώδικα με Ελληνικά βρέθηκε γρήγορα.
MoinMoin: Όταν τελείωσα και με το Trac αισθανόμουν πολύ ωραία, αλλά ήθελα ακόμα κάτι. Ένα Wiki γενικής χρήσης γιατί το Wiki που περιλαμβάνει το Trac είναι project-oriented (ή repository-oriented, όπως το δει κανείς).
Έχοντας ήδη εγκαταστήσει Apache, που είναι ελαφρύς (αρκετά ελαφρύς, μπορώ να πω), Python και χάκευα πλέον καλά το SSPI authentication, κοίταζα για ένα Wiki που να παίζει με αυτά. Οπότε πήγα μια βόλτα από το WikiMatrix για να δω τι παίζεται.
Εδώ πρέπει να σας πω για τις ως τότε περιπέτειές μου με document management. Είχα δοκιμάσει δύο CMS: το Plone και το SharePoint Portal (μόνο επειδή το είχαμε ήδη). Το μεν Plone είναι πολύ καλό, αλλά δύσκολο στη διαχείρηση (θέλει master στα CMS με minor στη "Παραμετροποίηση Portals") και πολύ βαρύ (με δικό του service, δεν παίζει κάτω από Apache), ενώ το SharePoint έχει περίεργους δεσμούς με τα άλλα προϊόντα της Microsoft και είναι περισσότερο για document sharing (θυμίζει Notes;) και όχι για collaborative χτίσιμο knowledgebase (αυτό που ήθελα εγώ). Το Plone είναι πράγματι πολύ καλό και παραμετροποιήσιμο όσο δεν πάει.
Ψάχνοντας λοιπόν στο WikiMatrix είδα το MoinMoin. Αρχικά εντύπωση μου έκανε ότι κάποια πολύ γνωστά sites το χρησιμοποιούν: Apache (για το wiki τους), Fedora, Ubuntu (όλο το site?!), Debian, CACert, Xen. Το έβαλα όμως και είμαι ευχαριστημένος, ειδικά από τότε που κατάφερα να ενεργοποιήσω το SSPI να δουλεύει σωστά.
Σχόλια