| 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
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
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
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 |