OpenWebconcept / plugin-samenwerkende-catalogi

Plugin voor het creëren van een XML-feed voor de Samenwerkende Catalogi
European Union Public License 1.2
0 stars 1 forks source link

Installeerbaar via composer #4

Closed richardkorthuis closed 1 year ago

richardkorthuis commented 1 year ago

Wij installeren binnen al onze projecten plugins (en thema's) via composer. Als er aan de composer.json van dit project de volgende regel zou worden toegevoegd is de plugin ook via composer te installeren: "type": "wordpress-plugin",

Htbaa commented 1 year ago

Hoi @richardkorthuis. Ik wil dit wel toevoegen, maar wat doet het precies? Hoe zit het met eventuele build steps (nu is dat bij deze plugin niet zo spannend)? Wil je er zeker van zijn dat je een werkende release te pakken hebt dan kan je het beste verwijzen naar een download op https://github.com/OpenWebconcept/plugin-samenwerkende-catalogi/releases

sanderdekroon commented 1 year ago

👀 Hetzelfde geldt voor OpenWebconcept/open-government-publications #7. Artifacts worden niet opgenomen in de repository, dus als composer een clone uitvoert zal de plugin incompleet zijn.

richardkorthuis commented 1 year ago

Wat dit doet is enkel tegen composer zeggen dat hij de package moet behandelen als een WordPress plugin (en hem dus moet installeren in de plugins directory). Hij kijkt hierbij ook naar de releases en doet dus niet zomaar een clone (tenzij iemand specfiek de version constraint dev-master of een andere branch opgeeft).

Als ik hem nu via composer installeer dan komt hij in de vendor directory van composer. Daarin zie ik bijvoorbeeld ook de gebuilde assets.

richardkorthuis commented 1 year ago

@Htbaa Even ter aanvulling op mijn laatste comment (en uitleg voor mensen die dit issue wellicht zien): Ik bleek niet helemaal goed te hebben gekeken en standaard pakt composer NIET de release, maar doet hij toch een clone van de repo. Wil je dat hij wel echt de release zip pakt dan moet je de url naar die zip opnemen in de composer.json van je website. Dan krijg je dus dit:

{
    "name": "acato/openwebconcept",
    "description": "openwebconcept repository",
    "extra": {
        "wordpress-install-dir": "public_html/wp",
        "installer-paths": {
            "public_html/wp-content/plugins/{$name}": [
                "type:wordpress-plugin"
            ],
            "public_html/wp-content/themes/{$name}": [
                "type:wordpress-theme"
            ],
            "public_html/wp-content/mu-plugins/{$name}": [
                "type:wordpress-muplugin"
            ]
        }
    },
    "repositories": {
        "openwebconcept/plugin-samenwerkende-catalogi": {
            "type": "package",
            "package": {
                "type": "wordpress-plugin",
                "name": "openwebconcept/plugin-samenwerkende-catalogi",
                "version": "1.2.0",
                "dist": {
                    "type": "zip",
                    "url": "https://github.com/OpenWebconcept/plugin-samenwerkende-catalogi/releases/download/1.2.0/samenwerkende-catalogi.zip"
                }
            }
        }
    },
    "require": {
        "composer/installers": "^2.2",
        "johnpbloch/wordpress": "*",
        "openwebconcept/plugin-samenwerkende-catalogi": "1.2.0"
    }
}

Het grootste nadeel hieraan vind ik dat je bij elke release de composer.json op meerdere plekken moet gaan aanpassen. Dus ik ben op zoek gegaan of dat ook anders kan. En dat blijkt te kunnen als je gebruik maakt van de package openeuropa/composer-artifacts. Daarmee wordt de composer.json van je website dus dit:

{
    "name": "acato/openwebconcept",
    "description": "openwebconcept repository",
    "extra": {
        "wordpress-install-dir": "public_html/wp",
        "installer-paths": {
            "public_html/wp-content/plugins/{$name}": [
                "type:wordpress-plugin"
            ],
            "public_html/wp-content/themes/{$name}": [
                "type:wordpress-theme"
            ],
            "public_html/wp-content/mu-plugins/{$name}": [
                "type:wordpress-muplugin"
            ]
        },
        "artifacts": {
            "openwebconcept/plugin-samenwerkende-catalogi": {
                "dist": {
                    "url": "https://github.com/OpenWebconcept/plugin-samenwerkende-catalogi/releases/download/{pretty-version}/samenwerkende-catalogi.zip",
                    "type": "zip"
                }
            }
        }
    },
    "repositories": {
        "openwebconcept/plugin-samenwerkende-catalogi": {
            "type": "github",
            "url": "git@github.com:OpenWebconcept/plugin-samenwerkende-catalogi.git"
        }
    },
    "require": {
        "composer/installers": "^2.2",
        "johnpbloch/wordpress": "*",
        "openeuropa/composer-artifacts": "^0.1.3",
        "openwebconcept/plugin-samenwerkende-catalogi": "*"
    }
}

Overigens werkt het nu nog niet goed omdat de geupdate composer.json nog niet in de laatste release build zit.

Htbaa commented 1 year ago

@richardkorthuis zou je hier een pull request voor willen aanleveren? Ik maak zelf geen gebruik van WordPress installaties met composer dus kan het zelf ook niet (goed) voor je testen.

richardkorthuis commented 1 year ago

@Htbaa Nee, sorry dan begrijp je me verkeerd. Dit behoeft geen aanpassing in de repo van de plugin (behalve dat er nog een release build moet worden gemaakt waarin jouw commit zit) . Het is meer ter informatie voor anderen die deze plugin ook via composer zouden willen installeren.

Htbaa commented 1 year ago

Ah check, ik zie nu dat het gaat om de composer.json van een project die deze plugin wil gebruiken. Ik zal een nieuwe release draaien.