wiki/sr/dev/repository-policies.md

51 lines
6.1 KiB
Markdown
Raw Normal View History

---
title: Принципи репозиторијума
description:
published: true
2020-12-23 12:41:18 +00:00
date: 2020-12-22T13:00:20.733Z
tags:
2020-12-23 12:41:18 +00:00
editor: undefined
dateCreated: 2020-12-22T13:00:18.872Z
---
# Принципи репозиторијума
## 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, или постоји други исправни разлози).