-
Η ιστοσελίδα αυτή βασίζεται σε τεχνολογίες jekyll-remote-theme, git-submodule τις οποίες θα πρέπει να μελετήσετε και να αποκτήσετε δεξιότητες με τα παραδείγματα που θα βρείτε εκεί. Αναλυτική τεκμηριώση για αυτήν την ιστοσελίδα θα βρείτε στο wiki, ενώ στα παρακάτω σημεία γίνεται μια σύντομη περιγραφή.
-
Για κάθε ένα από τα παραδοτέα της εργασίας (όπως τα ορίζει η σελίδα του μαθήματος σας) θα πρέπει να ανοίγετε ένα νέο θέμα και μετά την έγκριση του να δημιουργείτε ένα αίτημα ενσωμάτωσης, το οποίο θα πρέπει να αναφέρεται ρητά στο θέμα με την ένδειξη
closes #IssueNo
. Στο αίτημα ενσωμάτωσης θα πρέπει να προτείνετε τους κατάλληλους αξιολογητές ανάμεσα στους συναδέλφους σας που δουλεύουν παρόμοια θέματα-αιτήματα πρόσφατα και με προσοχή ώστε να μην είναι πάντα ίδιοι και έχουν πολύ βάρος. Επίσης είναι δική σας ευθύνη να μιλάτε (στην πλατφόρμα εδώ) μαζί τους για διευκρυνίσεις. -
Για κάθε θέμα που ανοίγετε θα πρέπει να συμπληρώνετε όσο γίνεται περισσότερες πληροφορίες, π.χ., αντιπροσωπευτικός και μοναδικός τίτλος, σχετικούς συνεργάτες-θέματα με βάση το ιστορικό του έργου, αν δεν τα κάνετε αυτά, θα πρέπει να τα κάνει κάποιος από τους συντελεστές του έργου με αποτέλεσμα την σίγουρη καθυστέρηση στην επεξεργασία του θέματος σας και κυρίως την ύπαρξη απόδειξης ότι δεν έχετε μελετήσει το ιστορικό του έργου που θέλετε να συνεισφέρετε. Ακόμη και αν δεν βρείτε κάποιους συντελεστές-θέματα που έχουν κάνει κάτι παρόμοιο, τότε σίγουρα από την συνεργατική εμπειρία σας στους άλλους χώρους του μαθήματος (π.χ., τάξη, συζητήσεις) ή του προηγούμενου παραδοτέου μπορείτε να εντοπίσετε κάποιους να σας σχολιάσουν-βελτιώσουν τις προτάσεις σας.
-
Ανάλογα με τις τρέχουσες δεξιότητες σας μπορείτε να ανοίγετε από πολύ εύκολα θέματα (π.χ., διορθώσεις σε ένα μάθημα, ένα νέο μάθημα, ένα νέο μέλος στο προσωπικό, μια ανακοίνωση, ένα ερευνητικό πρόγραμμα), μέχρι πολύ δύσκολα θέματα (π.χ., προσθήκη νέου τύπου σελίδας ή νέου θέματος). Για τα θέματα ενδιάμεσης δυσκολίας στο 2ο-3ο αίτημα ενσωμάτωσης το ζητούμενο είναι μια συνεισφορά που δείχνει μεγαλύτερη κατανόηση του συστήματος, π.χ., βελτίωση της τεκμηρίωσης ή της διαδικασίας συνεισφοράς, προσθήκη νεών σελίδων με διάδραση-οπτική πάνω στα δεδομένα (π.χ., μαθήματα κατεύθυνσης), βελτιώσεις στον κώδικα λίκουηντ, κτλ.
-
Για τα προχωρημένα παραδοτέα, από το 2ο και μετά, το ιδανικό είναι να ανοίξετε ένα δικό σας νέο θέμα για κάτι που αξίζει να προστεθεί, αλλά, αν δεν υπάρχουν δικές σας ιδέες, μπορείτε να δείτε (ορφανές) ιδέες στο ιστορικό, σε κάθε περίπτωση τα θέματα-αιτήματα θα πρέπει να είναι μεγαλύτερης δυσκολίας από την απλή προσθήκη περιεχομένου και να περιλαμβάνουν αλλαγές σε layouts, includes, ή/και προσθήκη νέων plug-ins, καθώς και αλλαγές στο στυλ που είναι σε ξεχωριστό αποθετήριο.
-
Συνοπτικά, για κάθε σελίδα ή αλλαγή που κάνετε θα πρέπει πρώτα να δημιουργείτε ένα νέο κλαδί και μετά να κάνετε ένα αίτημα ενσωμάτωσης το οποίο συνοδεύεται από περιγραφικό τίτλο και σχόλιο με το ΑΜ σας. Για παράδειγμα, αν θέλετε να στείλετε δύο νέα ή αλλαγμένα αρχεία θα πρέπει να δημιουργήσετε ένα κλαδί για κάθε ένα (εκτός και αν αυτά τα αρχεία είναι απαραίτητο να λειτουργούν μαζί), γιατί μπορεί να θέλουμε να κάνουμε δεκτό μόνο το ένα από τα δύο, π.χ., γιατί το ένα μπορεί να έχει κάποιο λάθος το οποίο δημιουργεί πρόβλημα στο κεντρικό αποθετήριο.
-
Για να μειώσουμε τα αιτήματα που απορρίπτονται θα πρέπει να δοκιμάζετε πρώτα τις αλλαγές και προσθήκες που κάνετε στο τοπικό αντίγραφο σας, αφού πρώτα ενεργοποιήσετε τις ρυθμίσεις στον δικό σας λογαριασμό netlify και στείλετε ένα ντέμο λινκ που οδηγεί απευθείας στην σελίδα που αλλάξατε μαζί με το αίτημα. Το ντέμο λινκ είναι εντελώς απαραίτητο στην περίπτωση που έχετε κάνει αλλαγές και στο στυλ μορφοποίησης, γιατί αυτό βρίσκεται σε διαφορετικό αποθετήριο.
-
Το αποθετήριο του περιεχομένου εδώ συνοδεύεται από αναλυτική τεκμηρίωση την οποία θα πρέπει να μελετήσετε ανάλογα με το είδος της συνεισφοράς που κάνετε (π.χ., αρχιτεκτονική, διαδικασία, κατηγορία περιεχομένου). Τα περισσότερα αρχεία βασίζονται στην τεχνολογία markdown με front-matter σε YAML, τα οποία θεωρούνται γνωστά ή είναι εύκολο να μελετήσετε την πολύ σύντομη τεκμηρίωση τους.
-
Τα περισσότερα δεδομένα της ιστοσελίδας π.χ., ανακοινώσεις, μαθήματα, καθηγητές, βρίσκονται στο submodule all_collections. το αίτημα ενσωμάτωσης μπορεί να γίνει μόνο εκεί που είναι το αρχείο που αλλάζετε και θα πρέπει να συνοδεύεται από έναν λειτουργικό σύνδεσμο από το δικό σας fork-netlify, ώστε να φαίνεται πως δουλεύει η αλλαγή που προτείνετε.
-
Το στυλ μορφοποίησης της ιστοσελίδας βασίζεται στο minimalmistakes, το οποίο βασίζεται στο σύστημα κατασκευής στατικών ιστοσελίδων jekyll και βρίσκεται στο αποθετήριο minimal-ionio, το οποίο ενεργοποιείται με την τεχνολογία jekyll-remote-theme. Το αποθετήριο αυτό βασίζεται σε προηγούμενο έργο, όπου θα βρείτε το σχετικό ιστορικό.
-
Η συνεισφορά απλού περιεχομένου μπορεί να γίνει σε μεγάλο βαθμό με την διεπαφή της ιστοσελίδας, αφού πρώτα δημιουργήσετε στην γραμμή εντολών το all_collections submodule. Για το 2ο παραδοτέο και για την ευκολότερη χρήση της γρμαμής εντολών συστήνουμε ένα λειτουργικό τύπου linux και τα εργαλεία
rbenv
,bundler
τα οποία βοηθάνε αντίστοιχα στην διαχείριση των εκδόσεων των ruby, libraries, μέσω των ρυθμίσεων που φαίνονται στα αρχεία.ruby-version
,Gemfile
. Η χρήση windows χωρίς αυτά τα εργαλεία μπορεί να βγάλει σφάλματα που θα είναι δύσκολο να εντοπίσετε. -
Το αποθετήριο εδώ περιέχει μόνο το περιεχόμενο της ιστοσελίδας, ενώ στο αποθετήριο του στυλ μορφοποίησης (με την τεχνολογία jekyll remote theme) θα βρείτε τον κώδικα που μετατρέπει τα δεδομένα σε ιστοσελίδα για τον τελικο χρήστη. Η κατανόηση της αλληλεπίδρασης των παραπάνω τεχνολογιών είναι απαραίτητη κυρίως για τα δύσκολα θέματα, στα οποία το ζητούμενο είναι η συνεισφορά και στα δύο αποθετήρια (δεδομένα-κώδικας). Η κατανόηση και η δεξιότητες χρήσης αυτών των τεχνολογιών είναι κυρίως δική σας ευθύνη γιατί σε καμία περίπτωση δεν θεωρούμε αυτές τις τεχνολογίες κάτι ιδανικό που αξίζει μελέτη-διδασκαλία, απλά είναι κάτι βολικό για να αναπτύξουμε γνώσεις και δεξιότητες σε άλλα θέματα (π.χ., συνεργασία, ανάπτυξη λογισμικού με εκδόσεις κώδικα, οπτικοποίηση με στυλ μορφοποίησης, κτλ)
-
Αν υπάρχουν γενικές απορίες μπορείτε να ανοίξετε θέμα συζήτησης, διαφορετικά η συζήτηση καλύτερα να γίνεται πάνω στο θέμα-αίτημα στο οποίο συνεισφέρετε.
-
Για την βαθμολόγηση, ανάλογα με το μαθήμα, θα πρέπει να γίνουν δύο ή περισσότερα πετυχημένα αιτήματα ενσωμάτωσης και ο βαθμός εξαρτάται από το επίπεδο δυσκολίας των αιτημάτων ενσωμάτωσης. Για παράδειγμα, η συνεισφορά σε δεδομένα (5-6) είναι περισσότερο για ζέσταμα και κατανόηση της λειτουργίας, τα πραγματικά ζητούμενα συνήθως απαιτούν την επεξεργασία αρχείων που περιέχουν στυλ-δομή (
_layouts _includes
) καθώς και κώδικα liquid (7), ενώ τα πιο δύσκολα επεκτείνουν το αρχικό θέμα με νέες λειτουργίες. Για την άριστη βαθμολόγηση (8+) θα πρέπει να γίνει ανάληψη πρωτοβουλίας (π.χ., σχολιασμός και αξιολόγηση σε θέματα άλλων), αποσφαλμάτωση, συγγραφή-συντήρηση της τεκμηρίωσης, καθώς και σημαντική επέκταση της λειτουργικότητας του συστήματος. -
Εκτός από το επίπεδο δυσκολίας του θέματος που δουλεύετε, και για κάθε θέμα, αξιολογούμε και βαθμολογούμε και την συνολική διάδραση με το αποθετήριο, π.χ., λάθη σε θέματα, λάθη σε αιτήματα, που οφειλόνται σε κακή κατανόηση των οδηγιών εδώ. Αντίστοιχα, βαθμολογούμε θετικά αυτούς που εντοπίζουν λάθη των άλλων, γιατί σε ένα κατανεμημένο έργο το ζητούμενο είναι η συμμετρική συνεργασία και όχι όλα να περνάνε από τα χέρια-μάτια των λίγων συνήθως συντονιστών. Επομένως, για την άριστη επίδοση απατείται ένας συνδυασμός προσωπικής συνεισφοράς και συνεργασίας, όπως άλλωστε σε όλα τα ομαδικά έργα. Για άριστο βαθμό θα πρέπει να γίνουν σημαντικές παρεμβάσεις ώστε να αποκτήσετε αυξημένο επίπεδο εμπιστοσύνης και δικαιώματα εγγραφής, ενώ για την βάση αρκεί να γίνουν έγκυρες διορθώσεις και σχόλια σε θέματα-αιτήματα άλλων.
-
Η εργασία αυτή, όπως και όλες οι παρόμοιες εργασίες ανάπτυξης, δεν έχει μια δεδομένη λίστα με ζητούμενα, ούτε και δεδομένες σωστές απαντήσεις (εκτός από τα εύκολα θέματα, π.χ., ανακοινώσεις, μαθήματα, καθηγητές), το ζητούμενο είναι να γίνει κατανόηση του συστήματος από την πλευρά σας και επιλογή σημείων συνεισφοράς σύμφωνα με τα ενδιαφέροντα και τις δεξιότητες που θέλετε να αναπτύξετε. Ενδεικτικά ζητούμενα από το παρελθόν μπορείτε να βρείτε ψάχνοντας στα κλειστά θέματα, για παράδειγμα υπάρχουν θέματα που έχουν μείνει σε εκκρεμότητα.
Η συνεισφορά γίνεται σύμφωνα με τις γενικές οδηγίες του Github. Ο καλύτερος τρόπος για να μάθετε αυτήν την διαδικασία είναι να στείλετε αιτήματα για κάποια πολύ εύκολα παραδοτέα, αφού πρώτα μελετήσετε την (αρχειοθετημένη) συζήτηση σε προηγούμενα αιτήματα που (δεν) έχουν γίνει δεκτά και μελετήσετε τις οδηγίες συνεισφοράς του έργου.
Ο καλύτερος τρόπος να εργάζεστε είναι τοπικά στην γραμμή εντολών με τακτικούς συγχρονισμούς με το κεντρικό. Εναλλακτικά, τουλάχιστον για τα πολύ εύκολα αιτήματα στα οποία κάνετε απλές διορθώσεις και προσθήκες στα δεδομένα, μπορείτε να χρησιμοποιήσετε τις δυνατότητες της γραφικής διεπαφής στην ιστοσελίδα του github και να κρατάτε τον συγχρονισμό με το κεντρικό αυτόματα.
- Η εργασία αυτή παρέχει με εισαγωγικό και εύκολο τρόπο σημαντικές γνώσεις και δεξιότητες στην συνεργασία πολλών ατόμων πάνω σε πηγαίο κώδικα. Για τον σκοπό αυτό χρησιμοποιούμε μια ανεπίσημη εκδοχή της ιστοσελίδας του τμήματος, η οποία είναι οικεία σε όλους. Αρχικά γίνεται κατανόηση του μηχανισμού των submodules στα οποία βρίσκονται τα δεδομένα. Στην συνέχεια, με το πρώτο παραδοτέο γίνεται κατανόηση του μηχανισμού συνεργασίας πολλών χρηστών χωρίς συγκρούσεις μέσω των issues pull requests.