Composer: O repositório do Composer para pacotes dinâmicos não recebe parâmetros para o pacote pesquisado?

Criado em 16 ago. 2016  ·  3Comentários  ·  Fonte: composer/composer

Estou construindo um _Serviço / repositório de proxy do Composer_. A ideia do minisserviço é entregar dinamicamente pacotes de idioma / tradução para temas ou plug-ins de respostas da API _WordPress_. As rotas são as seguintes:

 https://api.wordpress.org/translations/plugins/1.0/?slug={slug}&version={version}

O próprio serviço _Nodejs_ nada mais é do que um proxy que deve ser adicionado como repository a composer.json de type:project . O próprio serviço retorna a chave providers-url como parte do arquivo packages.json (gerado dinamicamente).

"providers-url" : "/" + request.params.scope + "/providers/%package%$%hash%.json"

Para obter um exemplo, consulte o seguinte composer.json :

{
    "name"              : "vendor/testproject",
    "type"              : "wordpress-project",
    "minimum-stability" : "dev",
    "repositories"      : [
        {
            "type" : "composer",
            "url"  : "https://{unique-ID}.ngrok.io/test"
        }
    ]
}

Até agora, só consigo ver solicitações de /endpoint/packages.json , mas sem nenhum parâmetro. Em um mundo ideal, o Composer enviaria os pacotes required , como cabeçalho ou como parâmetro de consulta.

Já procurei (e testei) todas as opções disponíveis para tentar _fake_ meu caminho através do sistema para de alguma forma obter o pacote solicitado: type:{composer|vcs|…} . Existe uma maneira de fazer isso acontecer? Ou existe pelo menos a _ vontade_ de aceitar um PR para implementar isso - ao lado de um sinalizador adicional para habilitar esse comportamento?

_Uma nota sobre os serviços hospedados: pode haver uma combinação de notify-batch e request/require opções para reunir algumas estatísticas sobre repositórios pesquisados ​​e realmente obtidos. Esta abordagem pode permitir direcionar pacotes "para cache" muito melhor._

Feature

Comentários muito úteis

Isso não é possível no momento, e eu duvido que seja por um tempo. Talvez na v2.0, uma vez que tenhamos refatorado o pool, possamos conseguir isso. Vou deixar aberto por enquanto, mas não prenda a respiração :)

Todos 3 comentários

Isso não é possível no momento, e eu duvido que seja por um tempo. Talvez na v2.0, uma vez que tenhamos refatorado o pool, possamos conseguir isso. Vou deixar aberto por enquanto, mas não prenda a respiração :)

@alcohol , acho que você pode ajustar os rótulos agora :)

Fechando como eu realmente não vejo isso acontecendo, pode ser possível com os metadados v2 (faixa # 8248 se você estiver interessado em mais detalhes), pois você pode fazer metadata-url: "/p2/%package%.json" lá e todos os pacotes necessários serão chamados de um por um, mas você só pode retornar dados para o nome desse pacote e não para outros pacotes, embora não tenha certeza se realmente ajuda você.

Ele permite gerar pacotes dinamicamente, embora até certo ponto, para que você possa fazer os plug-ins exigirem em foo/plugin-translations-en e, em seguida, certifique-se de sempre retornar um pacote para ter certeza de que é instalável, seja um com traduções válidas dentro ou um metapacote vazio sem instalar nada se nenhuma tradução estiver disponível?

Esta página foi útil?
0 / 5 - 0 avaliações