wiki/sr/dev/repository-policies.md

49 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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, или постоји други исправни разлози).