Хто має вести changelog і піклуватися про версіювання — дослідник, дата-стюард, ІТ-відділ?
Додано: П'ят серпня 15, 2025 10:18 am
Коротко: відповідальність розподіляється між ролями.
• Дослідник фіксує "сенс" змін (що додано/вилучено/виправлено у даних та коді).
• Дата-стюард перевіряє метадані, узгоджує політику версій, дбає про відтворюваність (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”).
- Версія: у полі опису/назві версії вкажіть ; для табличних даних корисно додати контрольні суми/UNF.
Код: Виділити все
Version 1.2 - Зв’язки: у метаданих використовуйте поля “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)?
- Які автоматизації ви використовуєте, щоб не дублювати ручну роботу?