--- title: Принципи репозиторијума description: published: true date: 2020-04-10T19:38:10.883Z tags: --- # Принципи репозиторијума ## Cooker Cooker је експериментална грана која повремено није исправна. Овдје је већина у реду, укључујући ажурирање на бета верзију или чак git/svn/cvs/hg/било шта верзије напредног пакета. Да би осигурали да не "изненадите" друге девелопере кварећи им све, главне измене се морају координисати или преко: - њиховог изношења на TC састанцима - слањем захева за повлачење на репоу и чекањем одобрења од осталих за прихватање - слањем ел.поруке на cooker ML и чекањем позитивног одговора осталих Промене које захтевају координацију укључују, али нису и ограничене на: - искључивање главне компоненте система за нешто друго (e.g. Xorg > wayland, Qt 5 > Qt 6, wpa_supplicant > iwd, systemd > any other init system, ...); било каква промена тог типа би требала да буде тестирана прво на личном репозиторијуму. - надоградња која ће захтевати учитавање обнове (нпр. надоградња libpng на верзију са новим soname-ом) - избацивење пакета кога користе многе апликације (нпр. избацивање qt5 када qt6 изађе и буде стабилан) - промене које ће вероватно довести до квара хардвера другим људима Cooker је обично отворен за све врсте развоја, али може бити повремено замрзнут ради консолидације напора на одређеној развојној грани. ## Rolling Rolling треба да буде на нивоу да га могу користити обични корисници сво време. Ствари које озбиљно кваре ствари не могу или у Rolling. Да би осигурали да je Rolling издање увек употребљиво: - Било шта што се шаље у Rolling мора прво бити креирано за Cooker. - Изузетак: случај где cooker има новију верзију исте ствари, нпр. има смисла проследити LLVM 8.0.1 у Rock уколико Rock је на верзији 8.0 чак и када је Rolling већ прешао на 9.0 верзије. - Девелопери шаљу пакете у `rolling/testing` - не у `rolling/release` - када мисле да су ствари спремне за опште коришћење. Премештање ствари са `rolling/testing` на `rolling/release` обавља QA, да би се осигурало да су пакети тестирани у rolling окружењу. Rolling обично не би требао да користи бета издања/снимке често коришћеног софтвера. Постоје изузеци из овог правила, на пример када се такав софтвер нађе у циклусу "без издања", бета/снимак је једина верзија која ради у нашем окружењу, нпр. "стабилно" издање још увек користи Qt 4 или Python 2, или постоји други исправни разлози). ## Rolling иде на замрзавање убрзо пре објављивања нове верзије, тако да издања могу бити креирана у основи као снимак rooling/издања. Rock Ово је грана стабилног издања. Оно добија само важне надоградње, попут сигурносних исправки и исправки за рушење система. - Људи који желе најновију верзију било чега треба да користе Rolling издање. Ово значи да људи који користе Rock издање желе нешто што се никада не квари, а свакако се мора посебно водити рачуна при свакој измени у Rock издању. - Било шта што се шаље у Rock мора прво бити креирано за Rolling издање. - Изузетак: случај где cooker има новију верзију исте ствари, нпр. има смисла проследити LLVM 8.0.1 у Rock уколико Rock је на верзији 8.0 чак и када је Rolling већ прешао на 9.0 верзије. - Девелопери шаљу пакете у `rock/testing` - не у `rock/release` - када мисле да су ствари спремне за опште коришћење. Премештање ствари са `rolling/testing` на `rock/release` обавља QA, да би се осигурало да су пакети тестирани у Rock окружењу. - Rock обично не би требао да користи бета издања/снимке често коришћеног софтвера. Постоје изузеци из овог правила, на пример када се такав софтвер нађе у циклусу "без издања", бета/снимак је једина верзија која ради у нашем окружењу, нпр. "стабилно" издање још увек користи Qt 4 или Python 2, или постоји други исправни разлози).