{"id":227,"date":"2026-03-16T00:00:00","date_gmt":"2026-03-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/lt\/wp-composer-nepriklausomas-wpackagist-pakaitalas\/"},"modified":"2026-03-16T00:00:00","modified_gmt":"2026-03-15T23:00:00","slug":"wp-composer-nepriklausomas-wpackagist-pakaitalas","status":"publish","type":"post","link":"https:\/\/helloblog.io\/lt\/wp-composer-nepriklausomas-wpackagist-pakaitalas\/","title":{"rendered":"WP Composer: nepriklausomas WPackagist pakaitalas WordPress \u012fskiepiams ir temoms per Composer"},"content":{"rendered":"\n<p>Daugiau nei de\u0161imtmet\u012f WPackagist buvo numatytasis kelias, kai reik\u0117davo WordPress \u012fskiepius ir temas diegti per Composer (t. y. PHP priklausomybi\u0173 valdikl\u012f, kuris leid\u017eia versijuoti ir automatizuoti diegim\u0105 kaip bet kurioje modernioje PHP aplikacijoje). Tai tapo de facto standartu tiek Bedrock tipo projektuose, tiek bet kuriuose repo-driven WordPress diegimuose, kur norisi ai\u0161kios priklausomybi\u0173 kontrol\u0117s.<\/p>\n\n\n\n<p>2026 m. kov\u0105 WPackagist buvo \u012fsigytas WP Engine \u2013 privataus kapitalo remiamos hostingo kompanijos. Kai tokio lygio infrastrukt\u016bra atsiduria vienos korporacijos rankose, atsiranda reali rizika visai WordPress k\u016br\u0117j\u0173 ekosistemai: sprendimai d\u0117l prieinamumo, krypties ar net kainodaros gali b\u016bti priimami u\u017e u\u017edar\u0173 dur\u0173, o ne vie\u0161ai ir bendruomeni\u0161kai. D\u0117l to Roots komanda suk\u016br\u0117 alternatyv\u0105 \u2013 WP Composer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kas yra WP Composer ir kuo jis skiriasi<\/h2>\n\n\n\n<p><a href=\"https:\/\/wp-composer.com\">WP Composer<\/a> \u2013 nepriklausomas, bendruomen\u0117s finansuojamas, visi\u0161kai atviro kodo Composer repozitorijos sprendimas, skirtas WordPress.org katalogo nemokamiems \u012fskiepiams ir temoms. J\u012f kuria ir pri\u017ei\u016bri Roots.<\/p>\n\n\n\n<p>\u010cia svarb\u016bs du principai: (1) skaidrumas ir atviras valdymas, (2) prakti\u0161kumas kasdieniam naudojimui \u2013 nuo metaduomen\u0173 pateikimo iki na\u0161umo, kai Composer sprend\u017eia priklausomybes (resolve).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kod\u0117l tai svarbu WordPress k\u016br\u0117jams<\/h2>\n\n\n\n<p>WPackagist istorija gerai parodo, kas nutinka, kai kritinis \u012frankis tampa \u201etiesiog ka\u017ekieno palaikomas\u201c: v\u0117lyvuoju laikotarpiu projektas kent\u0117jo nuo apleistos prie\u017ei\u016bros, l\u0117t\u0173 atnaujinim\u0173 ir ribot\u0173 galimybi\u0173 bendruomenei realiai \u012fsitraukti. \u012esigijimas i\u0161 esm\u0117s tik padidino \u0161iuos nuog\u0105stavimus.<\/p>\n\n\n\n<p>Papildomas signalas \u2013 neai\u0161kumas d\u0117l atviro kodo realyb\u0117s: WPackagist GitHub repozitorija (https:\/\/github.com\/outlandishideas\/wpackagist) neb\u0117ra patikimas indikatorius, kas i\u0161 ties\u0173 veikia produkcijoje, nes ji, pana\u0161u, nebeatitinka gyvos svetain\u0117s.<\/p>\n\n\n\n<p>WP Composer id\u0117ja paprasta: reikia alternatyvos, kuri b\u016bt\u0173 skaidri, finansuojama bendruomen\u0117s ir kuri\u0105 kurt\u0173 \u017emon\u0117s, turintys ilgalaik\u0119 patirt\u012f moderniame WordPress stack\u2019e.<\/p>\n\n\n\n<p>Jei norisi detaliau palyginti techninius niuansus (na\u0161um\u0105, metaduomenis ir skirtumus), Roots pateikia i\u0161sam\u0173 palyginim\u0105: https:\/\/wp-composer.com\/wp-composer-vs-wpackagist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">K\u0105 suteikia WP Composer<\/h2>\n\n\n\n<p>WP Composer repozitorijoje yra kiekvienas nemokamas \u012fskiepis ir tema i\u0161 WordPress.org katalogo, kuriuos galima diegti per Composer. Didelis praktinis patogumas \u2013 \u0161varus paket\u0173 vardinimas:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n  &quot;repositories&quot;: [\n    {\n      &quot;name&quot;: &quot;wp-composer&quot;,\n      &quot;type&quot;: &quot;composer&quot;,\n      &quot;url&quot;: &quot;https:\/\/repo.wp-composer.com&quot;,\n      &quot;only&quot;: [&quot;wp-plugin\/*&quot;, &quot;wp-theme\/*&quot;]\n    }\n  ],\n  &quot;require&quot;: {\n    &quot;wp-plugin\/woocommerce&quot;: &quot;^10.0&quot;,\n    &quot;wp-theme\/twentytwentyfive&quot;: &quot;^1.0&quot;\n  }\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"repositories\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"name\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"wp-composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"type\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"url\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"https:\/\/repo.wp-composer.com\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"only\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><span style=\"color:#9ECBFF\">\"wp-plugin\/*\"<\/span><span style=\"color:#E1E4E8\">, <\/span><span style=\"color:#9ECBFF\">\"wp-theme\/*\"<\/span><span style=\"color:#E1E4E8\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  ],<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"require\"<\/span><span style=\"color:#E1E4E8\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-plugin\/woocommerce\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^10.0\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-theme\/twentytwentyfive\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^1.0\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u012eskiepiai naudoja <code>wp-plugin\/&lt;em&gt;<\/code>, temos \u2013 <code>wp-theme\/&lt;\/em&gt;<\/code>. Tai rei\u0161kia, kad nebereikia istorini\u0173 <code>wpackagist-plugin<\/code> ir <code>wpackagist-theme<\/code> prefiks\u0173, kurie ilgainiui tapo triuk\u0161mu <code>composer.json<\/code> faile ir automatizacijoje.<\/p>\n\n\n\n<p>WP Composer taip pat yra rekomenduojamas repozitorijos pasirinkimas, jei naudoji Roots WordPress core paketus: <a href=\"https:\/\/wp-composer.com\/roots-wordpress\"><code>roots\/wordpress<\/code><\/a>, <code>roots\/wordpress-full<\/code> ir <code>roots\/wordpress-no-content<\/code>. Tipinis Bedrock projektas WordPress branduoliui ima <code>roots\/wordpress<\/code>, o \u012fskiepiams ir temoms \u2013 WP Composer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migracija i\u0161 WPackagist: komandos ir automatinis skriptas<\/h2>\n\n\n\n<p>Per\u0117jimas i\u0161 WPackagist \u012f WP Composer yra gana tiesus \u2013 realiai tai keli Composer veiksmai: pa\u0161alini senus paketus, pakeiti repozitorij\u0105 ir v\u0117l \u012fsira\u0161ai tuos pa\u010dius \u012fskiepius\/temas su nauju vardinimu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Pa\u0161alink WPackagist paketus<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer remove wpackagist-plugin\/woocommerce wpackagist-theme\/twentytwentyfive\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> wpackagist-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wpackagist-theme\/twentytwentyfive<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2) Pakeisk repozitorij\u0105 \u012f WP Composer<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer config --unset repositories.wpackagist &amp;&amp; composer config repositories.wp-composer composer https:\/\/repo.wp-composer.com\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#79B8FF\"> --unset<\/span><span style=\"color:#9ECBFF\"> repositories.wpackagist<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#9ECBFF\"> repositories.wp-composer<\/span><span style=\"color:#9ECBFF\"> composer<\/span><span style=\"color:#9ECBFF\"> https:\/\/repo.wp-composer.com<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3) Prid\u0117k paketus su nauju <code>wp-plugin\/&lt;em&gt;<\/code> ir <code>wp-theme\/&lt;\/em&gt;<\/code> vardinimu<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require wp-plugin\/woocommerce wp-theme\/twentytwentyfive\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> require<\/span><span style=\"color:#9ECBFF\"> wp-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wp-theme\/twentytwentyfive<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Jei nori automatizuoti <code>composer.json<\/code> pakeitimus, yra paruo\u0161tas migracijos skriptas, kuris atnaujina konfig\u016bracij\u0105 automati\u0161kai:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl -sO https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh &amp;&amp; bash migrate-from-wpackagist.sh\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">curl<\/span><span style=\"color:#79B8FF\"> -sO<\/span><span style=\"color:#9ECBFF\"> https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">bash<\/span><span style=\"color:#9ECBFF\"> migrate-from-wpackagist.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Dar viena detal\u0117 tiems, kas automatizuoja \u012fskiepi\u0173 atnaujinim\u0173 sekim\u0105 CI\/CD: GitHub Action, anks\u010diau \u017einomas kaip WPackagist Changelog Action, pervadintas \u012f <a href=\"https:\/\/github.com\/roots\/wp-composer-changelog-action\">WP Composer Changelog Action<\/a> ir pilnai palaiko nauj\u0105 <code>wp-plugin\/&lt;em&gt;<\/code> bei <code>wp-theme\/&lt;\/em&gt;<\/code> format\u0105.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Na\u0161umas: kod\u0117l WP Composer resolve yra \u017eymiai greitesnis<\/h2>\n\n\n\n<p>Did\u017eiausias techninis skirtumas \u2013 metaduomen\u0173 pateikimo protokolas. WP Composer palaiko Composer v2 <code>metadata-url<\/code> protokol\u0105, leid\u017eiant\u012f Composer atsisi\u0173sti metaduomenis tik tiems paketams, kuri\u0173 realiai reikia tavo projektui. Tuo tarpu WPackagist vis dar remiasi senesniu <code>provider-includes<\/code> metodu, kai Composer priverstas atsisi\u0173sti didelius indeks\u0173 failus su t\u016bkstan\u010di\u0173 paket\u0173 metaduomenimis dar prie\u0161 i\u0161spr\u0119sdamas priklausomybes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Composer resolve laikai (cold resolve, be cache)<\/h3>\n\n\n\n<p>\u017demiau \u2013 \u201ecold resolve\u201c matavimai (be cache). Ma\u017eesnis laikas yra geriau:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>10 \u012fskiepi\u0173: WP Composer 0.7s, WPackagist 12.3s (17x grei\u010diau)<\/li>\n\n\n<li>20 \u012fskiepi\u0173: WP Composer 1.1s, WPackagist 19.0s (17x grei\u010diau)<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Metaduomenys ir cache elgsena<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Composer v2 <code>metadata-url<\/code>: WP Composer \u2013 Yes, WPackagist \u2013 No<\/li>\n\n\n<li>CDN caching: WP Composer \u2013 <code>public, max-age=300<\/code>, WPackagist \u2013 <code>no-cache, private<\/code><\/li>\n\n\n<li>Per-package failai: WP Composer \u2013 immutable, content-addressed, cached indefinitely; WPackagist \u2013 not content-addressed<\/li>\n\n<\/ul>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Pastaba apie benchmarkus<\/h4>\n\n\n<p>Matavimai buvo atlikti i\u0161 vienos lokacijos, naudojant Composer 2.7+. Rezultatai gali skirtis pagal region\u0105 ir tinklo s\u0105lygas. Benchmark skriptai yra atviro kodo: https:\/\/github.com\/roots\/wp-composer\/tree\/main\/benchmarks.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Visi\u0161kai atviras kodas: gali fork\u2019inti ir paleisti savo instancij\u0105<\/h2>\n\n\n\n<p>WP Composer aplikacijos kodas, dokumentacija ir deployment konfig\u016bracija yra vie\u0161ai prieinami GitHub: https:\/\/github.com\/roots\/wp-composer. Praktin\u0117 \u0161io fakto vert\u0117 \u2013 ne tik galimyb\u0117 prisid\u0117ti pull request\u2019ais, bet ir tai, kad bet kas gali fork\u2019inti projekt\u0105 ir paleisti savo instancij\u0105, jei atsirast\u0173 poreikis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bendruomen\u0117s finansavimas: kaip i\u0161laikomas nepriklausomumas<\/h2>\n\n\n\n<p>WP Composer i\u0161laikomas vien bendruomen\u0117s l\u0117\u0161omis per GitHub Sponsors: https:\/\/github.com\/sponsors\/roots. Tokia finansavimo schema tiesiogiai apmoka infrastrukt\u016br\u0105, k\u016brim\u0105 ir prie\u017ei\u016br\u0105 \u2013 ir kartu padeda i\u0161laikyti \u012frank\u012f nepriklausom\u0105 bei laisvai prieinam\u0105.<\/p>\n\n\n\n<p>Jei tavo WordPress vystymo procese Composer yra kertinis \u012frankis (ypa\u010d Bedrock ar pana\u0161iuose setup\u2019uose), Roots r\u0117mimas per GitHub Sponsors yra tiesiausias b\u016bdas prisid\u0117ti prie \u0161ios infrastrukt\u016bros stabilumo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Trumpa santrauka: kada verta pereiti<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Jei WordPress \u012fskiepius ir temas valdai per Composer, WP Composer duoda \u0161varesn\u012f vardinim\u0105 (<code>wp-plugin\/&lt;em&gt;<\/code>, <code>wp-theme\/&lt;\/em&gt;<\/code>).<\/li>\n\n\n<li>Jei <code>composer install\/update<\/code> laikas pradeda erzinti, <code>metadata-url<\/code> palaikymas ir cache strategija gali duoti ap\u010diuopiam\u0105 pagreit\u012f.<\/li>\n\n\n<li>Jei tau svarbi \u012franki\u0173 nepriklausomyb\u0117 ir skaidrumas, atviro kodo repo + bendruomen\u0117s finansavimas yra stiprus argumentas.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Nuorodos \/ \u0160altiniai<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/introducing-wp-composer-as-a-wpackagist-replacement\/\" target=\"_blank\" rel=\"noopener noreferrer\">Introducing WP Composer as a WPackagist Replacement<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/wp-composer-vs-wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer vs WPackagist<\/a><\/li><li><a href=\"https:\/\/github.com\/outlandishideas\/wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">outlandishideas\/wpackagist<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\/tree\/main\/benchmarks\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer benchmarks<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\/blob\/main\/scripts\/migrate-from-wpackagist.sh\" target=\"_blank\" rel=\"noopener noreferrer\">migrate-from-wpackagist.sh<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer-changelog-action\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer-changelog-action<\/a><\/li><li><a href=\"https:\/\/github.com\/sponsors\/roots\" target=\"_blank\" rel=\"noopener noreferrer\">Roots GitHub Sponsors<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/roots-wordpress\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wordpress<\/a><\/li><li><a href=\"https:\/\/roots.io\/bedrock\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Jei WordPress projektus valdai per Composer, \u012fskiepi\u0173 ir tem\u0173 \u0161altinis yra kritin\u0117 infrastrukt\u016bra. WP Composer atsirado kaip atvira, bendruomen\u0117s finansuojama alternatyva WPackagist \u2013 su \u0161varesniu paket\u0173 vardinimu ir gerokai greitesniu dependency resolve.<\/p>\n","protected":false},"author":2,"featured_media":226,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[73,7,133,4],"class_list":["post-227","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-ekosistema","tag-bedrock","tag-composer","tag-iskiepiai","tag-roots"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/comments?post=227"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/posts\/227\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media\/226"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/media?parent=227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/categories?post=227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/lt\/wp-json\/wp\/v2\/tags?post=227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}