Devo alterar meu código Python se eu atualizar meu Ubuntu?

11

Eu tenho um software que desenvolvo no Python 3 há anos. Até hoje, eu uso o Ubuntu Desktop 11.04, mas agora quero passar para uma versão superior do Ubuntu.

Devo permanecer no Ubuntu 11.04 para não precisar alterar partes do código fonte do meu software devido a novas alterações nas versões superiores do Ubuntu?

Uma versão recente do Ubuntu não afetará meu software de forma alguma?

Sylvain Pineau
fonte
18
Isso realmente não é óbvio para mim: atualize para 14.04, se algo estiver com defeito no seu software: corrija-o. Este é um excelente exercício para evitar a podridão do software. O tipo de problema que você pode encontrar é com dependências. Você pode testá-las antecipadamente em um virtualenv.
don.joey
6
@begueradj Não quero minimizar o esforço que vai levar nem anular suas razões. É justo: ou você se esforça ou seu software realmente não vai durar muito. Você pode atualizar para a versão 12.04, mas permanecer na versão EOL é problemático. E o problema não vai desaparecer por si só ...
don.joey
5
@begueradj - edite sua pergunta e forneça alguns detalhes sobre seu software. Descreva o que ele faz. Descreva que kit de ferramentas você está usando (por exemplo, GTK? QT?). Descreva de que software de terceiros ele depende (por exemplo, uma versão específica do firefox? Webkit?). Descreva as dependências do software para criar seu software. Sem as informações acima, você não receberá uma resposta específica para sua pergunta. Você receberá apenas uma resposta geral como atualmente.
fossfreedom
3
11.04 alcançou o fim da vida útil há um ano e meio .. você deveria ter atualizado há muito tempo.
Psusi 15/05

Respostas:

3

Com base nos seus comentários, você testou com sucesso seu software em VMs, o que é uma boa notícia.

Porém, como desenvolvedor de aplicativos, você deve estar preparado para adaptar seu código a versões mais recentes, caso contrário ele será rapidamente abandonado.

Agora, para garantir que ele continue a funcionar com novas versões do Ubuntu, recomendo fortemente que você o mantenha como um pacote e forneça um conjunto de testes completo para seu aplicativo e o chame durante o processo de compilação do pacote (por exemplo, chamando setup.py testsua debian/rules override_dh_auto_testseção )

Você pode configurar facilmente compilações diárias de seu pacote em um ppa usando uma receita bzr-builder . Dessa forma, você será notificado de todas as falhas de compilação causadas por novas versões de software ou dependências quebradas.

Novos lançamentos geralmente estão abertos para desenvolvimento alguns dias após o anúncio oficial. Olhe para a nossa página ppa , o Utopic agora faz parte da série de distros para a qual estamos construindo:

insira a descrição da imagem aqui

Sylvain Pineau
fonte
3
Por que você tem 2 respostas para essa mesma pergunta? Além disso, o autopkgtest não funciona dessa maneira. E como isso realmente responde à pergunta de maneira melhor ou mais precisa do que qualquer outra?
Dobey
Postei uma segunda resposta durante o período de recompensa. Desta vez, para se concentrar em como evitar problemas de atualização na esperança de trazer o que o OP realmente esperado (desde por seu comentário que eu sabia que seu aplicativo funciona corretamente com 14,04)
Sylvain Pineau
Eu recomendo que você faça outra pergunta para colocar sua resposta lá. BTW, eu consertaria a parte autopgktest. @ Dobey está certo, não funciona assim.
Braiam 13/09/14
@dobey autopkgtest corrigido / removido da minha resposta.
21414 Sylvain Pineau
@Braiam autopkgtest fixo / removido da minha resposta
Sylvain Pineau
13

Não, você não deve permanecer no 11.04. É o fim da vida útil para suporte desde outubro de 2012. Se você deseja algum suporte, precisa atualizar, pelo menos para 12.04 (que será suportado por mais três anos).

Além disso, mesmo as versões mais recentes do Ubuntu estão incluindo o Python 3.x por padrão, com o objetivo de remover completamente o Python 2.x da instalação padrão.

Você pode ter problemas ao executar seu código em uma versão mais recente do Python 3.x, mas em geral não deve ter problemas. Você também deve, como desenvolvedor, estar preparado para lidar com esses problemas, independentemente da versão do Ubuntu em que está. Qualquer biblioteca que você estiver usando, ou o próprio Python, pode ter um bug do qual seu código depende comportamentalmente e, se esse bug for corrigido, poderá fazer com que seu programa se comporte de maneira diferente da que você esperava anteriormente.

dobey
fonte
11

Difícil de dar uma resposta definitiva sem uma descrição da sua aplicação. Como você está usando o Python3, pelo menos você não está limitado ao ramo Python2.x (não haverá Python 2.8).

Agora, alguns avisos que podem se aplicar ao seu aplicativo, com o Python3, muitos pacotes agora estão obsoletos apenas porque a melhor maneira de acessar o GLib / GObject / GIO / GTK + é usando o Python GObject Introspection (também conhecido como PyGI).

Finalmente, ainda existem algumas pequenas diferenças entre as diferentes versões do python3 (por exemplo, Argparse não se comporta exatamente da mesma forma que no python 3.2 e 3.3.

Uma coisa que você pode tentar é inicializar uma VM 14.04 e testar seu código com python3.4.

Sylvain Pineau
fonte
Não mudarei minha versão do Python (é impossível), estou mais preocupado com o modo como uma nova versão do Ubuntu pode afetar o código-fonte do meu software.
Qual versão você suporta oficialmente, 3.2?
amigos estão dizendo sobre
Eu uso a versão 3.1.3
Recomendamos que você teste seu aplicativo com python3.2 (inicialize uma VM 12.04 e sudo apt-get install python3). Você também pode verificar a nota de lançamento de python3.2 mas tanto quanto eu sei python3.2 era apenas toneladas de melhorias sobre o ramo 3.1.x (argparse era um deles)
Sylvain Pineau
1
Para programas python3, as versões atualizadas do python estão apenas fornecendo maneiras ainda mais eficientes de executar tarefas complexas. O Python3.4, por exemplo, introduz o asyncio e me permite livrar-me de problemas realmente complexos do mainloop / threading. Fiz uma observação sobre o argparse porque fiquei preso em mudanças recentes, mas não é grande coisa. Então, novamente testar o seu sw com recentes versões (3.2, em seguida, 3,4 com 14,04), mas como os outros answsers dizer que você não deve encontrar grandes questões
Sylvain Pineau
2

Depende do seu código. Se o seu código usar bibliotecas que não são suportadas, você não poderá migrar para uma versão mais recente de um sistema operacional com facilidade, mas na maioria das vezes nenhum problema ocorrerá.

oceano
fonte
você pode me explicar como é que uma biblioteca Python depende de uma determinada versão do Ubuntu?
@begueradj Não existe, mas se você estiver usando uma biblioteca Python que não é mais mantida, ela poderá ter sido removida do arquivo Ubuntu em algum momento e, portanto, não estará disponível em uma versão mais recente. Seu código falharia. Obviamente, você pode instalar o pacote da biblioteca a partir de uma versão mais antiga do Ubuntu, ou da fonte, para resolver o problema, embora você não obtenha nenhuma atualização; ou você pode corrigir seu código para usar uma biblioteca diferente ou escrever seu próprio código para executar as mesmas funções.
Dobey
como disse @dobey, algumas bibliotecas não são mais mantidas ou sua versão mais recente quebra a compatibilidade com versões anteriores. No passado, tenho alguns problemas com o Turbogears ao atualizar para a versão mais recente do Ubuntu.
Oceano
0

O Ubuntu 14.04 possui pacotes python3, então isso não é um problema. apt-cache search python3irá mostrar para você. Além disso, você terá que ler as notas de versão de cada versão do Ubuntu entre 11.04 e a "versão superior" e procurar uma alteração que interrompa seu aplicativo. Não saber nada sobre o seu desenvolvimento exige que eu grite YMMV, mas meu palpite é que você não terá problemas insuperáveis.

waltinator
fonte
0

Se você precisar executar uma versão antiga do Python no Ubuntu 14.04, ative o repositório deadsnakes . Possui versões Python 2.3, 2.4, 2.5, 2.6, 3.1, 3.2, 3.3 para Ubuntu 14.04. Se o seu aplicativo é um código Python puro e não depende do comportamento de outros processos, deve funcionar bem com um interpretador antigo.

banho
fonte
0

Como outra resposta, você pode usar o ambiente virtual se tiver algum problema ou a mesma versão do python no 11.04 (baixe e construa) no 14.04.

oceano
fonte
Certamente eu posso testar em VMs (eu fiz isso), meu software funciona bem ... por enquanto ... mas não tenho idéia se ele irá funcionar mais tarde por causa da nova versão do Ubuntu.
1
Como o Ubuntu 14.04 é a versão LTS e, com base em sua filosofia, eles não alteram a versão (bomba na versão principal) e a configuração, acho que você não deve ter nenhum problema.
Oceano