Сторінка 1 з 1

Хто має вести changelog і піклуватися про версіювання — дослідник, дата-стюард, ІТ-відділ?

Додано: П'ят серпня 15, 2025 10:18 am
admin
📝 Хто має вести changelog і піклуватися про версіювання — дослідник, дата-стюард, ІТ-відділ?

Коротко: відповідальність розподіляється між ролями.
• Дослідник фіксує "сенс" змін (що додано/вилучено/виправлено у даних та коді).
• Дата-стюард перевіряє метадані, узгоджує політику версій, дбає про відтворюваність (FAIR).
• ІТ-відділ забезпечує інфраструктуру, автоматизацію та безпеку.

-----------------------------------------
Ролі та обов’язки (RACI-матриця)

Код: Виділити все

Завдання                                   | R (виконує) | A (відповідає) | C (консультує) | I (поінформ.)
-------------------------------------------+-------------+----------------+----------------+-------------
Визначити політику версій (major/minor)    | Стюард      | PI/Кер.проєкту | ІТ, Автори      | Команда
Вести CHANGELOG.md у репозиторії            | Дослідник   | Стюард         | Співавт., ІТ    | Команда
Опис змін у метаданих версії (Dataverse)    | Стюард      | PI/Кер.проєкту | Дослідник       | Команда
Перевірка якості/повноти метаданих          | Стюард      | Стюард         | Дослідник       | ІТ
Версіонування коду/конвеєрів (Git)          | Дослідник   | Дослідник      | ІТ              | Команда
Автоматизація (CI/CD, синхронізація з DV)   | ІТ          | ІТ             | Стюард, Автори  | Команда
Управління токенами, доступами, бекапами    | ІТ          | ІТ             | Стюард          | Керівництво
Погодження публікації/DOI                   | Стюард      | PI/Кер.проєкту | Дослідник, ІТ   | Команда
RACI можна спростити: у невеликій групі дослідник = стюард; головне — щоб було чітко, хто “останній відповідає” за версію.
-----------------------------------------
Політика версій: практичне правило
  • MAJOR (1.0 → 2.0): неузгодні зміни — інша структура даних, нові змінні з іншим змістом, значні перерахунки. Часто потребує нового DOI у деяких репозиторіях.
  • MINOR (1.1 → 1.2): додано записи/партії, не ламая сумісність; косметичні виправлення описів.
  • PATCH (1.2.0 → 1.2.1): дрібні виправлення без зміни змісту (метадані, орфографія, нечислові правки).
Тримайте одне “джерело правди” для версії — у metadata/CHANGELOG.md. Його текст копіюйте у опис нової версії набору (Dataverse/Zenodo/Figshare/Dryad).
-----------------------------------------
Стандарт ведення CHANGELOG.md

Код: Виділити все

# Changelog
У форматі Keep a Changelog. Дати у ISO: YYYY-MM-DD. Семвер: MAJOR.MINOR.PATCH.

## [1.2.0] – 2025-08-15
### Added
- Додано партії вимірювань 2025-08-10..15 (3 240 записів)
- Новий стовпець: soil_moisture (g/g)

### Changed
- Перераховано daily_aggregates з виправленими одиницями (kPa → MPa)

### Fixed
- Виправлено 12 хибних timestamp (таймзона UTC)
У комітах коду використовуйте узгоджені префікси:

Код: Виділити все

feat(data): add 2025-08-15 batch to processed/daily
fix(meta): correct units description (kPa→MPa)
docs(changelog): release 1.2.0
-----------------------------------------
Хто саме і що робить — по кроках

Дослідник:
  • Оновлює дані/код, додає записи у CHANGELOG.md і file_manifest.csv.
  • Підвищує версію (наприклад, 1.1 → 1.2) і готує короткі release notes.
Дата-стюард:
  • Перевіряє метадані (README, словник змінних, зв’язки/derived_from).
  • Вставляє текст changelog у опис чернетки версії в Dataverse (або готує payload для оновлення через API).
  • Перевіряє ліцензію/цитування, заповнює поля “Related Materials/Datasets”.
ІТ-відділ:
  • Підтримує CI/CD для синхронізації з репозиторієм (наприклад, GitHub Actions).
  • Тримає секрети (API-токени), моніторить ліміти/бекапи, налаштовує webhooks.
-----------------------------------------
Як це виглядає у Dataverse/DataverseUA
  • Changelog: додайте як частину опису чернетки версії або завантажте окремим файлом `metadata/CHANGELOG.md` (мітка “Documentation”).
  • Версія: у полі опису/назві версії вкажіть

    Код: Виділити все

    Version 1.2
    ; для табличних даних корисно додати контрольні суми/UNF.
  • Зв’язки: у метаданих використовуйте поля “Related Dataset/Material”; у маніфесті — `derived_from`.
  • Автоматизація: CI може копіювати текст з `CHANGELOG.md` в опис чернетки (PUT /api/datasets/{id}/versions/:draft).
-----------------------------------------
Мінімальні критерії “готово до релізу”

Код: Виділити все

[ ] CHANGELOG.md оновлено і відповідає номеру версії
[ ] README + data_dictionary.csv узгоджені з фактичними файлами
[ ] file_manifest.csv має checksum та derived_from
[ ] Опис чернетки версії в Dataverse містить резюме змін
[ ] Ліцензія та спосіб цитування заповнені
-----------------------------------------
Часті питання (FAQ)

1) Ми невелика група. Хто веде changelog?
Той, хто змінює дані/код (часто — перший автор). Стюард робить фінальний контроль перед публікацією.

2) Чи треба окремий DOI на кожну “minor” версію?
Залежить від сховища. У будь-якому разі цитуйте конкретну версію (DOI версії або DOI набору + номер версії).

3) У нас немає стюарда.
Призначте “owner-of-record” (PI/керівник). Навіть без окремого стюарда потрібна людина, що остаточно схвалює версію.

4) Як не забути оновити опис версії у репозиторії?
Використайте скрипт/CI для автоматичного копіювання тексту з `CHANGELOG.md` у опис чернетки перед публікацією.

-----------------------------------------
Запитання до спільноти
  • Хто у ваших проєктах відповідає за фінальне “ОК” версії?
  • Які правила підвищення версії працюють для вас (major/minor/patch)?
  • Які автоматизації ви використовуєте, щоб не дублювати ручну роботу?