Canonical onthuld onlangs je plannen die je hebt voor een volgende grote herziening van de Snapcraft-toolkit, die wordt gebruikt om het populaire Snap-pakketformaat te genereren, distribueren en bij te werken.
Opgemerkt moet worden dat de huidige Snapcraft-codebase is geërfd verklaard en zal indien nodig worden toegepast oude technologieën gebruiken.
In zijn advertentie vermeldt hij dat van de drastische veranderingen die gepland zijn om te worden uitgevoerd en waarvan sommige dat die al aan de gang zijn, hebben geen invloed op het huidige gebruiksmodel, aangezien Ubuntu Core 18 en 20 gerelateerde projecten het oude monolithische Snapcraft-model zullen blijven gebruiken.
Bovendien vermelden ze dat het nieuwe modulaire model van Snapcraft gepland heeft dat het zal worden toegepast vanaf de Ubuntu Core 22-tak.
In werkelijkheid zijn de dingen complexer en worden ze vaak complexer naarmate de tijd verstrijkt. De afgelopen zes jaar heeft het Snapcraft-team gewerkt om hun kernproduct modulair, efficiënt en nuttig te maken voor Snap-ontwikkelaars, de functionaliteit uit te breiden en in de loop van de tijd nieuwe mogelijkheden te introduceren. In zekere zin is het een compleet product en dient het zijn doel goed. Maar er zijn manieren om het nog beter te maken. Dit artikel gaat in op de toekomst van Snapcraft.
Wat betreft de redenen waarom het bedoeld is om de oude Snapcraft te vervangen, is het omdat se wil een nieuwe, compactere en modulaire optie aanbieden wat het voor ontwikkelaars gemakkelijker zal maken om Snap-pakketten te maken, en daarbij komt dat ze ook voor eens en voor altijd het gedoe van het maken van draagbare pakketten willen elimineren die op alle distributies werken.
De basis van de nieuwe Snapcraft is het Craft Parts-mechanisme, er wordt vermeld dat het niet alleen de assemblage van pakketten mogelijk maakt, maar ook gegevens uit verschillende bronnen kan ontvangen, deze op verschillende manieren kan verwerken en een hiërarchie van mappen in de FS, geschikt voor de implementatie van pakketten. .
Craft Parts omvat het gebruik van draagbare componenten in het project, die onafhankelijk kunnen worden gedownload, geassembleerd en geïnstalleerd.
Het basisconcept draait om het opdelen van Snapcraft in kleinere, nog modulairere en herbruikbare componenten die in een reeks verschillende producten kunnen worden gebruikt. De gemeenschappelijke basis voor deze inspanning is een set Craft Libraries, zoals we al hebben besproken in de Craft Parts-blogpost. De theorie vereist het gebruik van een generieke onderdeelgenerator op basis van leveranciers van ambachtelijke en ambachtelijke onderdelen, met de toegevoegde functionaliteit van Snapcraft als een aparte laag. De enige vraag is, wat is de luchtsnelheid van een zwaluw? Hoe moeilijk zou het zijn om dit te ontwerpen en uit te voeren?
Vlak voor de feestdagen ging het Snapcraft-team op pad om die exacte vraag te beantwoorden en de mate van modulariteit in hun aanpak te onderzoeken.
Een nieuwe implementatie kiezen of oude Snapcraft zal worden uitgevoerd via een speciaal ingebouwd back-upmechanisme in het bouwproces. Daarom zullen bestaande projecten Snap-pakketten kunnen maken zonder wijzigingen en zullen alleen aanpassingen nodig zijn wanneer de pakketten worden overgebracht naar een nieuwe versie van de Ubuntu Core-systeembasis.
Wat betreft het werk dat al is gedaan, een zeer korte samenvatting ervan wordt gedeeld:
- De huidige Snapcraft-codebase wordt nu als legacy beschouwd.
- Het belangrijkste toegangspunt voor dit pakket wordt uitgevoerd wanneer een legacy Snapcraft-back-up is vereist.
- Legacy Snapcraft onderhoudt projectconfiguratiegegevens in woordenboekvorm.
- Dit werd gewijzigd om een pydantisch model te gebruiken. Ook moet het JSON-schema gescheiden worden gehouden.
- Er werd een eenvoudig prototype gemaakt met behulp van de core22-basis (ontwikkelingsimage), wat resulteerde in een installeerbaar instantpakket met een testapplicatie.
Eindelijk als u er meer over wilt weten Over de notitie kunt u de originele aankondiging bekijken in de volgende link.