Software Heritage
Software Heritage to międzynarodowa inicjatywa non-profit rozwijająca uniwersalne archiwum publicznie dostępnego kodu źródłowego. System automatycznie pozyskuje projekty z platform programistycznych, repozytoriów pakietów i innych źródeł, zachowując nie tylko pliki, ale również strukturę katalogów, commity, wydania, snapshoty i historię rozwoju projektu. Użytkownicy mogą przeszukiwać archiwum, przeglądać zachowane wersje kodu, zgłaszać repozytoria do archiwizacji oraz uzyskiwać trwałe identyfikatory SWHID pozwalające jednoznacznie wskazać konkretną wersję programu, katalog, plik, a nawet fragment kodu.
Software Heritage zostało uruchomione przez Inria i jest rozwijane we współpracy między innymi z UNESCO. Na koniec 2025 roku archiwum obejmowało ponad 27 mld unikalnych plików źródłowych z ponad 421 mln projektów i około 5 mld commitów.
Najlepsze do:
- odnajdywania zachowanych wersji kodu źródłowego projektów programistycznych,
- odzyskiwania kodu z repozytoriów, które zostały usunięte, przeniesione albo przestały być dostępne,
- przeglądania historii rozwoju projektu, commitów, wydań, katalogów i plików,
- archiwizowania oprogramowania badawczego wykorzystywanego w publikacji naukowej,
- trwałego cytowania konkretnej wersji programu lub fragmentu kodu,
- sprawdzania, czy określony projekt lub repozytorium zostało już zarchiwizowane,
- badania historii oprogramowania, ewolucji projektów i rozwoju ekosystemów programistycznych,
- zapewniania odtwarzalności badań naukowych zależnych od konkretnej wersji oprogramowania,
- pobierania i analizowania danych o kodzie oraz historii projektów poprzez API,
- zachowywania starszego i historycznie istotnego oprogramowania, które może zniknąć z pierwotnych serwerów,
- identyfikowania kodu za pomocą SWHID; identyfikator może wskazywać snapshot, wydanie, commit, katalog, plik lub konkretny fragment pliku i od 2025 roku jest objęty standardem ISO/IEC 18670,
- prowadzenia szerszej kwerendy razem z GitHub, GitLab, Zenodo, HAL, Figshare, swMATH, OpenAIRE i SourceForge. GitHub i GitLab służą przede wszystkim do bieżącego rozwoju projektów, Zenodo i Figshare dobrze nadają się do publikowania konkretnych wersji oprogramowania wraz z danymi badawczymi, a Software Heritage jest szczególnie przydatne do długoterminowego zachowania kodu i trwałego wskazywania jego dokładnej wersji.
Na co uważać?
- Software Heritage nie jest platformą do rozwijania oprogramowania taką jak GitHub czy GitLab; nie służy przede wszystkim do pracy nad kodem, obsługi issue czy pull requestów, lecz do jego zachowania i udostępniania,
- obecność projektu w archiwum nie oznacza, że jest on nadal rozwijany ani że jego pierwotne repozytorium nadal istnieje,
- archiwum przechowuje publicznie dostępny kod niezależnie od jego znaczenia naukowego, jakości technicznej czy popularności,
- zarchiwizowanie kodu nie zmienia jego licencji. Możliwość przeglądania kodu w Software Heritage nie oznacza automatycznie prawa do dowolnego kopiowania, modyfikowania lub dalszego rozpowszechniania; warunki wynikają z licencji konkretnego projektu,
- metadane projektów pochodzą z różnych źródeł i mogą mieć różny poziom kompletności,
- wyszukiwanie koncentruje się przede wszystkim na pochodzeniu repozytorium i strukturze archiwum, dlatego do wyszukiwania oprogramowania według funkcji lub dziedziny przydatne mogą być również specjalistyczne katalogi, np. swMATH,
- publiczne API nie jest przeznaczone do masowego pobierania całego archiwum; Software Heritage udostępnia inne rozwiązania do badań wymagających analizy dużych części zbioru.
- Software Heritage może przechowywać wiele snapshotów tego samego projektu, dlatego przy cytowaniu kodu należy wskazać dokładną wersję za pomocą SWHID zamiast podawać wyłącznie adres pierwotnego repozytorium.
Typ:
Międzynarodowe archiwum cyfrowe i agregator kodu źródłowego.
Dla kogo:
Programiści, naukowcy, badacze historii oprogramowania, specjaliści zajmujący się open science i reproducibility, autorzy publikacji wykorzystujących własne oprogramowanie, archiwiści cyfrowi, biblioteki naukowe, badacze software engineering oraz osoby potrzebujące odnaleźć historyczną wersję kodu lub trwale wskazać konkretny artefakt programistyczny.
Zawartość:
Kod źródłowy publicznie dostępnych projektów wraz z historią ich rozwoju. Model archiwum obejmuje zawartość plików, katalogi, rewizje i commity, wydania oraz snapshoty repozytoriów. Software Heritage rejestruje również źródło pochodzenia projektu i kolejne momenty jego archiwizacji. Kod jest automatycznie pobierany z wielu platform i repozytoriów, ale możliwe jest również zgłoszenie konkretnego repozytorium do zachowania lub zdeponowanie oprogramowania przez zaufanego partnera.
Pełny tekst:
Pełny tekst. W przypadku Software Heritage odpowiednikiem pełnego tekstu jest pełna zawartość zarchiwizowanego kodu źródłowego. Można przeglądać pliki, katalogi, commity, wydania i snapshoty projektu, a wybrane obiekty pobierać lub odczytywać przez API.
Dostęp:
Darmowe. Wyszukiwanie, przeglądanie zarchiwizowanego kodu oraz korzystanie z podstawowych usług archiwum jest publiczne. Bezpłatny jest również dostęp do publicznego API, z ograniczeniami dotyczącymi masowego pobierania danych.