wiki/sr/dev/repository-policies.md

6.5 KiB
Raw Blame History

title description published date tags
Принципи репозиторијума true 2020-04-10T19:38:10.883Z

Принципи репозиторијума

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, или постоји други исправни разлози).
  • Надоградње обично не би требало да мењају корисничко окружење. Људи који користе Rock желе нешто што им је познато и не воле изненађења.
  • Ако си у дилеми, не ради то. Људи који желе да надограде за нешто што није од великог значаја треба да користе Rolling издање