# 7. Enviando um pacote

Uma vez que a sua proposta de mesclagem é revisada e aprovada, você deve enviar seu pacote, ou para o arquivo (se você tem permissão) ou para o Personal Package Archive (PPA). Você pode também querer enviar se você estiver orientando as alterações de alguém.

## 7.1. Enviando uma mudança efetuada por você

Quando você tiver um ramo com uma alteração que você gostaria de enviar, você precisa pegar essa alteração no ramo fonte principal, construir o pacote fonte e então enviá-lo.

Primeiro, você precisa verificar se possui a última versão do pacote no seu checkout do trunk do pacote de desenvolvimento:

    $ cd tomboy/tomboy.dev
    $ bzr pull

This pulls in any changes that may have been committed while you were working on your fix. From here, you have several options. If the changes on the trunk are large and you feel should be tested along with your change you can merge them into your bug fix branch and test there. If not, then you can carry on merging your bug fix branch into the development trunk branch. As of bzr 2.5 and bzr-builddeb 2.8.1, this works with just the standard `merge` command:

    $ bzr merge ../bug-12345

Para versões mais antigas do bzr, você pode usar o comando ``merge-package `` ao invés de

    $ bzr merge-package ../bug-12345

Isto irá mesclar as duas árvores, possivelmente produzirá conflitos, que você precisará resolver manualmente.

Em seguida, você deve certificar se o `debian/changelog` está como você gostaria, como a distribuição correta, número de versão, etc

Once that is done you should review the change you are about to commit with `bzr diff`. This should show you the same changes as a debdiff would before you upload the source package.

The next step is to build and test the modified source package as you normally would:

    $ bzr builddeb -S

When you’re finally happy with your branch, make sure you’ve committed all your changes, then tag the branch with the changelog’s version number. The `bzr tag` command will do this for you automatically when given no arguments:

    $ bzr tag

Esta tag ira informar ao importador do pacote que o que está no ramo do Bazaar é o mesmo que está no arquivo.

Agora você pode enviar as alterações de volta ao Launchpad

    $ bzr push ubuntu:tomboy

(Alterar o destino se estiver enviando um SRU ou similar).

You need one last step to get your changes uploaded into Ubuntu or your PPA; you need to `dput` the source package to the appropriate location. For example, if you want to upload your changes to your PPA, you’d do:

    $ dput ppa:imasponsor/myppa tomboy_1.5.2-1ubuntu5_source.changes

ou, se você tem permissão para enviar ao arquivo principal:

    $ dput tomboy_1.5.2-1ubuntu5_source.changes

You are now free to delete your feature branch, as it is merged, and can be re-downloaded from Launchpad if needed.

## 7.2. Orientando uma alteração

Orientar a alteração de outra pessoa é exatamente como o processo acima, mas em vez de mesclar a partir do ramo que você criou, você mescla a partir do ramo na proposta de mesclagem:

    $ bzr merge lp:~subgenius/ubuntu/trusty/tomboy/bug-12345

Se houver muitos conflitos de mesclagem, você deverá pedir ao colaborador para corrigi-los. Consulte a próxima seção para saber como cancelar uma mesclagem pendente.

Mas se as alterações lhe parecerem boas, submeta e siga o resto do processo de envio:

    $ bzr commit --author "Bob Dobbs <subgenius@example.com>"

## 7.3. Cancelando um envio

A qualquer momento antes de você usar dput no fonte do pacote você pode decidir cancelar um upload e reverter as alterações:

    $ bzr revert

Você pode fazer isto se você notar que algo necessita de mais trabalho, ou se você gostaria de pedir ao contribuidor para corrigir conflitos quando estiver orientando.

## 7.4. Orientando algo e fazendo suas próprias alterações

Se você vai orientar o trabalho de alguém, mas gostaria de fazer algumas alterações você mesmo, então você pode mesclar o trabalho dele em um ramo separado primeiro.

Se você já tiver um ramo onde esteja trabalhando no pacote e quiser incluir suas alterações, simplesmente execute o “bzr merge” a partir do ramo, em vez de fazer checkout do pacote de desenvolvimento. Você pode então fazer as alterações e submetê-las, e depois continuar com as alterações no pacote.

Se você não tem um ramo, mas gostaria de fazer alterações baseadas no que o colaborador fornece, então você deve iniciar pegando o ramo dele:

    $ bzr branch lp:~subgenius/ubuntu/trusty/tomboy/bug-12345

então trabalhe nesto ramo, e então mescle-o ao principal e carregue-o como se fosse seu próprio trabalho. O colaborador continuará sendo mencionado no changelog, e o Bazaar irá atribuir corretamente as alterações feitas nele.