Scroll to navigation

dgit-sponsorship(7) dgit dgit-sponsorship(7)

NOME

dgit-sponsorship - tutorial para patrocínio de envio Debian, usando git

INTRODUÇÃO E ESCOPO

Este tutorial descreve como um contribuidor patrocinado de Debian e um DD (ou DM) patrocinador podem colaborar e publicar usando git.

The sponsor must be intending to use dgit for the upload, or have push access to the sponsee's repository in order to use git-debpush (If the sponsor does not use dgit or git-debpush, it is not possible to properly publish a sponsee's git branch.)

É melhor se o patrocinado também usar dgit; mas também está coberto (mais tarde) o caso em que o patrocinado fornece uma proposta a enviar na forma de pacote fonte, mas o patrocinador deseja trabalhar em git.

Este tutorial não fornece uma lista de verificação para a revisão do patrocinador. Espera-se que ambos contribuidores esteja familiarizados com o empacotamento Debian e os processos de Debian, e com o git.

FLUXO DE TRABALHO DO PATROCINADO

Esta secção é endereçada ao patrocinado:

Geral

You should prepare the package as if you were going to upload it with "git debpush" or "dgit push-built" yourself.

Para um NMU direto, consulte dgit-nmu-simple(7).

If you are the (prospective) maintainer, you can adopt any suitable (dgit/tag2upload-compatible) git workflow. The dgit-maint-*(7) tutorials describe some of the possibilities.

Preparação do envio

Você deve passar por todos os passos que um maintainer que auto-envia iria passar, incluindo compilar para testes especiais, e verificar via uma compilação formal (ex. usando "dgit sbuild") que o pacote compila em (ou no lançamento visado).

No ponto em que você iria, se fosse um DD, fazer o envio real ao correr dgit push, você entrega o trabalho ao seu patrocinador.

If you were going to use one of the "--quilt=", "--gbp" or "--dpm" options to dgit or git-debpush, you must specify that in your handoff email - see below.

entrega baseada em git+origs

OS elementos da entrega consistem de:

  • O ramo git.
  • Quaisquer tarballs .orig que irão ser necessários, ou amostras de comandos git-deborig(1), git-archive(1) ou gbp-buildpackage(1) para os gerar.
  • Either a sample dgit push-source command, containing any dgit --quilt=, --gbp or --dpm option needed or, if your sponsor can push to your git branch, a sample git debpush command.
  • E mais é claro, toda a informação usual acerca do estado do pacote, quaisquer advertências ou áreas onde deseje que o patrocinador se foque na sua revisão, restrições sobre altura certa do envio, etc.

Se a entrega for feita por email, os elementos em cima devem estar numa única mensagem, assinada. Isto pode ser uma submissão RFS contra o pseudo-pacote de pedidos de patrocínio.

ramo git

O patrocinado deve empurrar o seu CABEÇALHO como um ramo git para qualquer servidor git apropriado. Eles podem usar o seu próprio servidor git; salsa é outra possibilidade.

Os nomes de ramo usados pelo patrocinado na sua máquina local, e no servidor, não interessam.

Em vez disso, o patrocinado deve incluir o id de cometido git do seu CABEÇALHO no seu email de entrega.

tarballs de origem

If there are any .origs that are not in the archive already, and the sponsor will not use git-debpush(1), the sponsor will need them as part of the upload. (When using a native source package format, no origs are needed.)

Se o patrocinado gerou estes tarballs com git-deborig(1), git-archive(1) ou gbp-buildpackage(1), eles podem simplesmente incluir uma amostra de invocação de git-deborig(1) ou git-archive(1) ou assegurar que um gbp.conf apropriado está presente no pacote fonte para gerar o tarball.

Caso contrário, a abordagem mais simples é cometer o os tarballs orig com pristine-tar(1), ex.

    % pristine-tar commit ../foo_1.2.3.orig.tar.xz upstream/1.2.3

e certifique-se de empurrar o ramo pristine-tar. Se você está a usar git-buildpackage(1), apenas passe --git-pristine-tare --git-pristine-tar-commit.

Em alternativa, o patrocinado pode coloca-los num servidor web apropriado, ou anexa-los no e-mail, se forem pequenos.

O patrocinado deve citar sha256sums dos .origs no seu email de entrega, a menos que eles tenham fornecido comandos para os gerar.

opções de quilt

Alguns fluxos de trabalho envolvem ramos git que não são nativamente compatíveis com dgit. Normalmente o dgit irá converte-los como necessário, durante o push.

Supply a sample "git debpush" or "dgit push-source" command including any "--gbp" (aka "--quilt=gbp"), "--dpm" (aka "--quilt=dpm"), or other "--quilt=" option they need to use. e.g.

    % git debpush --gbp

FLUXO DE TRABALHO DO PATROCINADOR

Esta parte é endereçada ao patrocinador:

Receber e validar o pedido de patrocínio

Você deve verificar a assinatura no email.

Use "git fetch" ou "git clone" para obter o ramo git preparado pelo seu patrocinado, e obter quaisquer .origs mencionados pelo patrocinado (para extrair .origs cometidos com pristine-tar, você pode usar origtargz(1), ou usar "gbp clone --pristine-tar".)

Verifique o ID de cometido git da dica de ramo do patrocinado, e os sha256sums dos .origs, contra o email de entrega.

Agora você pode verificar a dica do ramo, e fazer a sua revisão substantiva.

Lidar com ramos que querem --quilt=

Se o seu patrocinado mencionou uma opção "--quilt", e você não quer ter de agarrar no formato de árvore preferida dele, você pode converter a árvore dele para a vista standard do dgit:

    % dgit -wgf --quilt=foo --dgit-view-save=unquilted quilt-fixup
    % git checkout unquilted

Você deve perceber que para onde está a olhar é um descendente do ramo do patrocinado.

Algumas dicas que podem ajudar na revisão

"dgit fetch sid" irá obter-lhe um "refs/remotes/dgit/dgit/sid" atualizado que mostra o que já está no arquivo.

"dgit -wgf --damp-run push-source" irá verificar que o dgit pode compilar um pacote fonte apropriado.

Não é preciso correr o debdiff. O dgit não irá enviar nada que não desempacote para exatamente o cometido git que você está a empurrar, assim você pode confiar naquilo que vê em "git diff".

Efetuar o envio

When you have completed your source review, and use "dgit -wgf [--quilt=...] sbuild -A -C" or similar, to to the build, and then "dgit -wgf [--quilt=...] push-source" or "git debpush [--quilt=...]" or "dgit -wgf [--quilt=...] push-built" to do the upload.

Check whether the sponsee made a debian/version tag. If they did, ensure you have their tag in the repository you are pushing from, or pass "--no-dep14tag"; in this case you cannot use git debpush. This avoids identically named, non-identical tags, which can be confusing.

For source-only uploads, whether to use dgit push-source or git debpush depends on whether you have push access to the sponsee's repository and whether or not they already made a debian/version tag. You can always use dgit push-source; if you can push to the repository and the sponsee has not already made a debian/version tag, then you can use git debpush instead.

(It is also possible to upload from the quilt-cache dgit view. If you want to do this, do not pass the "--quilt" or "--gbp" or "--dpm" options again, and do pass "--no-dep14tag", since the debian/version tag should go on the sponsee's branch.)

Se este foi o primeiro envio feito com dgit, você pode precisar de passar "--trust-changelog" ao dgit.

Em alternativa, se este foi o primeiro dgit push do pacote para esta suite, você pode passar "--deliberately-not-fast-forward" em vez de "--trust-changelog". Isto evita introduzir um novo cometido de origem na vista dgit do histórico git do patrocinado o qual é desnecessário e pode ser confuso.

PATROCINAR UM PATROCINADO QUE NÃO USA GIT

Esta parte é endereçada ao patrocinador:

Se o seu patrocinado não usar git, você ainda pode fazer a sua revisão com git, e usar o dgit para o envio.

O seu patrocinado irá fornecer-lhe um pacote fonte: isto é, um .dsc e os ficheiros que ele refere. Obtenha estes ficheiros, e verifique as assinaturas como apropriado. Depois:

    % dgit clone PACOTE
    % cd PACOTE
    % dgit import-dsc /caminho/para/patrocinado's.dsc +patrocinado
    % git checkout patrocinado

Ou para um pacote completamente novo:

    % mkdir PACOTE
    % cd PACOTE
    % git init
    % dgit -pPACOTE import-dsc /caminho/para/patrocinado's.dsc +patrocinado

Isto vai deixa-lo a olhar para o pacote do patrocinado, formatado como um ramo dgit.

Quando tiver terminado a sua revisão e os seus testes, você pode fazer o dgit push-source (ou dgit sbuild e dgit push-built) directamente a partir do ramo "patrocinado".

você vai precisar de passar "--trust-changelog" ao dgit push para cada envio com sucesso. Isto desactiva ua captura de segurança que iria normalmente detectar situações onde as alterações são perdidas por acidente. Quando o seu patrocinado lhe envia pacotes fonte - talvez múltiplos pacotes fonte com o mesmo número de versão - estas capturas de segurança são inevitavelmente ineficazes.

VEJA TAMBÉM

dgit(1), dgit(7), dgit-nmu-simple(7), dgit-maint-*(7)

dgit+tag2upload team Debian Project