Przejdź do zawartości

Changelog

Z Wikipedii, wolnej encyklopedii

Changelog (z ang. change – „zmiana” i log – „zapis, dziennik”), także dziennik zmian – w informatyce uporządkowany zapis istotnych zmian wprowadzanych między kolejnymi wersjami projektu, najczęściej oprogramowania. Może występować jako osobny plik dokumentacji projektu[1].

Changelog zwykle zawiera informacje o nowych funkcjach, zmianach w istniejących funkcjach, poprawkach błędów, elementach usuniętych lub przestarzałych oraz zmianach związanych z bezpieczeństwem[2].

Charakterystyka

[edytuj | edytuj kod]

Changelog jest częścią dokumentacji projektu i ma przedstawiać wybrane zmiany w sposób zrozumiały dla odbiorców, a nie jedynie odtwarzać pełną historię operacji w systemie kontroli wersji. Poradnik Keep a Changelog określa changelog jako uporządkowaną chronologicznie listę istotnych zmian w każdej wersji projektu oraz zaleca, aby był przeznaczony dla ludzi, a nie dla maszyn[2].

W projektach programistycznych changelog może służyć także do śledzenia historii zmian w kodzie źródłowym. Zalecenia GNU Coding Standards wskazują, że dziennik zmian powinien pomagać osobom badającym późniejsze błędy w ustaleniu, które modyfikacje mogły je wprowadzić[3]. W tym ujęciu pojedynczy wpis może opisywać jedną zmianę albo najmniejszą grupę powiązanych zmian, określaną jako changeset[4].

Format

[edytuj | edytuj kod]

Nie istnieje jeden powszechnie obowiązujący standard tworzenia changelogów. Poradnik Keep a Changelog zaleca, aby każda wersja miała własny wpis, aby podobne typy zmian były grupowane, aby najnowsze wydania znajdowały się na początku listy oraz aby przy wersjach podawano datę wydania[2].

W tym podejściu zmiany dzieli się m.in. na kategorie: Added dla dodanych funkcji, Changed dla zmian w istniejących funkcjach, Deprecated dla elementów oznaczonych jako przestarzałe, Removed dla elementów usuniętych, Fixed dla poprawek błędów oraz Security dla zmian dotyczących bezpieczeństwa[2].

Poziom szczegółowości changeloga zależy od projektu i od odbiorców. Wpisy przeznaczone dla programistów mogą być bardziej techniczne, natomiast publiczne informacje o zmianach bywają redagowane z myślą o użytkownikach końcowych. Badania nad informacjami o wydaniu pokazują, że ich autorzy dobierają zakres informacji selektywnie, a nie zawsze wymieniają wszystkie rozwiązane problemy lub wszystkie modyfikacje wprowadzone w danej wersji[5].

Zastosowanie

[edytuj | edytuj kod]

Dla użytkowników changelog stanowi źródło informacji o tym, co zmieniło się między kolejnymi wersjami produktu lub projektu. Dla programistów i współtwórców może być narzędziem ułatwiającym orientację w historii projektu, analizę regresji oraz ocenę wpływu wcześniejszych zmian na obecne działanie programu[3].

W projektach utrzymywanych w systemach kontroli wersji część informacji potrzebnych do odtworzenia historii zmian może wynikać z zapisów repozytorium. GNU Coding Standards dopuszczają poleganie na logach systemu kontroli wersji, jeżeli repozytorium jest publicznie dostępne, zmiany są zapisywane osobno jako logiczne zestawy zmian, a wpisy zawierają informacje o autorach i sensie zmian[3].

Changelog a „release note”

[edytuj | edytuj kod]

Zbliżonym typem dokumentu są informacje o wydaniu, określane po angielsku jako release notes. W literaturze dotyczącej inżynierii oprogramowania opisywane są one jako dokumenty przekazywane użytkownikom przy wydaniu aktualizacji (np. nowej wersji oprogramowania), zawierające informacje o zmianach w funkcjach, kodzie i innych elementach projektu[6].

Projekty wiki

[edytuj | edytuj kod]

W projektach wiki istnieją pokrewne mechanizmy rejestrowania i przeglądania zmian. W oprogramowaniu MediaWiki karta historii pozwala zobaczyć wcześniejsze wersje strony oraz porównać wybrane wersje w celu sprawdzenia różnic między nimi[7]. MediaWiki udostępnia także specjalne strony i narzędzia do śledzenia zmian w całej wiki, w tym listę ostatnich zmian obejmującą m.in. edycje stron, przesyłanie plików, usunięcia i przeniesienia stron[8].

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. Project Documentation [online], The Turing Way [dostęp 2026-05-02] (ang.).
  2. 1 2 3 4 Olivier Lacan, Keep a Changelog [online], Keep a Changelog [dostęp 2026-05-02] (ang.).
  3. 1 2 3 Change Logs [online], GNU Project [dostęp 2026-05-02] (ang.).
  4. Change Log Concepts [online], GNU Project [dostęp 2026-05-02] (ang.).
  5. Surafel Lemma Abebe, Nasir Ali, Ahmed E. Hassan, An empirical study of software release notes, „Empirical Software Engineering”, 21 (3), 2016, DOI: 10.1007/s10664-015-9377-5 (ang.).
  6. Tingting Bi, Xin Xia, David Lo, John Grundy, Thomas Zimmermann, An empirical study of release note production and usage in practice, „IEEE Transactions on Software Engineering”, 48 (6), 2022, DOI: 10.1109/TSE.2020.3038881 (ang.).
  7. Help:Historia [online], MediaWiki [dostęp 2026-05-02] (pol.).
  8. Help:Tracking changes [online], MediaWiki [dostęp 2026-05-02] (ang.).