Artefakt Graphviz
Prenosná binárna distribúcia Graphviz, open-source nástroja na vizualizáciu grafov. Tento repozitár využíva Embedbits Platform Artifact Handler na vyhľadanie, stiahnutie, overenie a konfiguráciu Graphviz v následných embedded projektoch (napr. na grafy závislostí a volaní generované cez CMake/Doxygen).
Tento repozitár je rozdelený do troch vetiev podľa úlohy — vetva main (master), ktorú práve čítate, obsahuje iba túto dokumentáciu; samotné skripty handlera sú vo vetve Core a verzované binárky sa publikujú ako GitHub Releases ukotvené vo vetve Bin.
Obsah repozitára
main / master
└── README.md ← This document — no other content
Core
├── ArtifactConfig.cmake ← Artifact metadata (name, version constraints, asset naming)
└── CMakeGraphvizDefaults.cmake ← Graphviz integration logic (artifact init, version lookup)
Bin (anchor branch — no tracked binary files)
└── (empty commits only; each release tag points here)
Úloha v platforme
Tento repozitár je jednou z viacerých distribúcií artefaktov v platforme Embedbits. Celkový tok vyzerá takto:
GitLab (graphviz/graphviz) GitHub (Embedbits)
───────────────────────────── ──────────────────────────────────────────
Generic Package Registry Artifact-graphviz
graphviz-releases/<version>/*.zip ──► main / master → README only (this document)
Core → ArtifactConfig.cmake, CMakeGraphvizDefaults.cmake
Bin → Anchor branch (empty commits)
Releases → graphviz-<version>-<platform>.zip + .hash
tagged Bin/<version>-<platform>
GraphvizImporter.sh (v GithubArtifactsHandler) stiahne každú verziu Graphviz z Generic Package Registry na GitLabe, prebalí ju do štandardizovaného .zip a publikuje ju ako GitHub Release v tomto repozitári — označené Bin/<version>-<platform> — namiesto súboru commitnutého do vetvy Bin. Samotná vetva Bin obsahuje iba prázdne kotviace commity, na ktoré ukazujú značky vydaní.
Platform Artifact Handler v následných projektoch odkazuje na vetvu Core ako na Git submodul. Počas konfigurácie CMake načíta ArtifactConfig.cmake, aby zistil, ktoré vydanie sa má stiahnuť, a potom stiahne a overí zodpovedajúci asset vydania pre aktuálnu platformu.
Štruktúra vetiev
| Vetva / referencia | Obsah |
|---|---|
main / master | Iba toto README — žiadny funkčný obsah |
Core | Skripty handlera CMake (ArtifactConfig.cmake, CMakeGraphvizDefaults.cmake) na použitie artefaktu |
Bin | Iba kotviaca vetva — nie sú v nej commitnuté žiadne binárky |
Značka vydania Bin/<version>-<platform> | GitHub Release, ktoré ako assety vydania nesie samotnú binárku .zip a súbor s kontrolným súčtom .hash |
Podporované platformy: Win (Windows), Unix (Linux), DarwinARM (macOS).
Poznámka: Samotný protokol Embedbits Artifact Handler nie je viazaný na GitHub Releases —
GraphvizImporter.shpublikuje binárky takto len preto, že cieľom je GitHub. Na Git hostingu bez ekvivalentného Releases API handler podporuje aj zabalené binárky commitnuté priamo ako sledované súbory vo vetveBin, označené značkou pre každú verziu/platformu (Bin/<version>-<platform>), namiesto nahrania ako assety vydania. Handler CMake transparentne spracuje obe formy.
⚠️ Stiahnutie vydania
Binárky nie sú uložené ako sledované súbory vo vetve Bin — skripty handlera získate klonovaním vetvy Core a binárky sťahujte ako assety vydania pre konkrétnu značku namiesto klonovania vetvy Bin.
# Core handler scripts
git clone --branch Core --single-branch --depth=1 <repository_url> graphviz-core
# Binary + checksum for one specific version/platform (GitHub Release asset)
gh release download Bin/12.2.1-Unix --repo Embedbits/Artifact-graphviz --pattern "graphviz-12.2.1-Unix.*"
Súčasti balíka
| Komponent | Popis |
|---|---|
dot, neato, fdp, sfdp, circo, twopi | Spustiteľné súbory layout enginov |
gvpr | Nástroj na vyhľadávanie vzorov v grafoch a ich manipuláciu |
Plugin/config files (config6, etc.) | Registrácie pluginov výstupných formátov |
Použitie
Artefakt sa inštaluje automaticky počas fázy nastavenia artefaktov príkazom:
cmake -P Artifacts/Graphviz/ArtifactConfig.cmake
Skript zabezpečí, že binárky Graphviz sú dostupné, v prípade potreby rozbalí asset vydania a pridá nástroj do systémovej PATH pre nasledujúce kroky buildu.
Funkcie handlera
Graphviz_ArtifactInit(ARTIFACT_BIN_PATH)
Inicializuje artefakt: nájde (alebo stiahne) správny asset vydania pre platformu a sprístupní jeho adresár bin/ v ARTIFACT_BIN_PATH.
Graphviz_GetArtifactVersion()
Vráti verziu aktuálne vyriešených binárok Graphviz.
Verzovanie
Verzie artefaktu zodpovedajú priamo oficiálnym verziám vydaní Graphviz publikovaným na GitLabe:
12.1.0, 12.1.2, 12.2.1, ...
Nové verzie publikuje GraphvizImporter.sh v repozitári GithubArtifactsHandler, ktorý načíta zoznam vydaní z gitlab.com/graphviz/graphviz, pre každú platformu stiahne zodpovedajúci asset z Generic Package Registry, prebalí ho do .zip s kontrolným súčtom SHA-256 a publikuje ho ako GitHub Release označené Bin/<version>-<platform>.
Poznámky
- Inštalácia nie je potrebná — binárky sú prenosné a samostatné.
- Offline použitie je podporované, keď je artefakt lokálne v cache.
- V Azure DevOps pipeline sa odporúča cachovať priečinok artefaktu, aby sa skrátil čas buildu.
- Nie každá verzia Graphviz na GitLabe nutne obsahuje zodpovedajúci asset pre všetky tri platformy — importér platformu, pre ktorú nenájde asset vydania, preskočí (namiesto zlyhania).
Licencia
Graphviz sa distribuuje pod licenciou Eclipse Public License 1.0 (EPL-1.0). Podrobnosti nájdete na: https://gitlab.com/graphviz/graphviz/-/blob/main/LICENSE
Autori
- Mr.Nobody — embedbits.com
Príspevky sú vítané! Otvorte prosím pull request.