Projeto

Geral

Perfil

DevDIMNT

1. Apresentação

Este é o portal de informações gerais sobre os desenvolvimentos da DIMNT. O objetivo deste portal é organizar e disseminar informações e instruções de uso comum sobre a utilização do portal de gestão de projetos Redmine e do software de gerenciamento de códigos Subversion (SVN), as quais podem ser aplicadas em diversos projetos da divisão. Além disso, servidores, bolsistas, alunos da pós-graduação e outros colaboradores da DIMNT podem encontrar nas páginas deste projeto, as informações necessárias para o uso do supercomputador, máquinas virtuais e outros serviços relacionados com a rotina de produtividade da divisão.

Este projeto está aberto a todos os colaboradores do centro, de forma que significa que todos aqueles que tem uma conta no Redime do CPTEC, podem acessar as páginas do projeto editar as Wikis, organizar documentos com manuaus e divulgar notícias. Entretanto, este projeto não se destina a abrigar informações pessoais e de uso restrito de projetos em desenvolvimento.

Parte do conteúdo que já se encontra nesta Wiki foi produzido previamente, de forma coletiva, para dar suporte aos desenvolvimentos do grupo de Assimilação de Dados do CPTEC. A sua reprodução e adaptação dentro desta Wiki se dá pela necessidade de nivelar e facilitar o acesso às várias ferramentas de desenvolvimento à disposição da divisão, além de consolidar o seu uso na prática.

A edição da Wiki é aberta a todos os colaboradores da divisão, na correção de erros ou na sua expansão. Se você possui apenas acesso de leitura, por gentileza, envie um email solicitando a sua inclusão como colaborador.

Recentemente, foi preparado um Vídeo de Introdução ao Sistema de Controle de Versões - Subversion, onde é apresentado um exemplo de uso do sistema subversão integrado do Redmine.

2. Orientações Gerais de Desenvolvimento

Como a união dos esforços dos grupos de modelagem atmosférica global e de assimilação de dados do CPTEC, faz necessário criar um conjunto de orientações que deverão fazer parte de um protocolo de desenvolvimento que deverá nortear as ações a serem desenvolvidas. Este protocolo, além de guiar o uso dos repositórios, deverá também servir como diretriz para os experimentos a serem realizados envolvendo o processo de desenvolvimento como um todo.

2.1 Utilização do Redmine

O Redmine é um sistema de gestão de projetos. Por meio dele, são abertas tarefas (issues) onde podem ser registradas as ações de desenvolvimento de um projeto.

2.2 Criando Repositórios de Trabalho

Como parte da rotina de desenvolvimento utilizando o software Subversion (SVN) para o controle de versões, é comum a necessidade de se criar repositórios ou branches para a realização de uma determinada tarefa. A utilização de um protocolo que permita o desenvolvimento baseado em repositórios, visa portanto, normalizar o uso do controle de versões e permitir que a partir deste, seja possível traçar um histórico dos desenvolvimentos facilitando o desenvolvimento das tarefas.

2.3 Realizando Commits nos Repositórios dos Projetos

O processo de entrega aos repositórios é denominado de "commit". Um commit é, portanto, o processo a partir do qual as modificações realizadas na cópia local do repositório são entregues ao controle de versões. Quando a equipe de desenvolvimentos é relativamente grande, faz-se necessário que uma norma seja seguida a fim de evitar erros ou equívocos que podem acarretar em problemas para os demais desenvolvedores.

2.4 Versionamento Semântico

O versionamento dos códigos desenvolvidos dentro dos projetos associados com a assimilação de dados, segue a metodologia de versionamento semântico. Esta metodologia preconiza a atribuição numérica para as versões e é incremental para cada revisão realizada nos repositórios. Acesse a página deste tópico para conhecer mais sobre a metodologia de versionamento semnântico.

2.5 Guia de Desenvolvimento em Python

A linguagem de programação Python tem sido utilizada no desenvolvimento de alguns processos e procedimentos dentro do Grupo de Assimilação de Dados do CPTEC. Este pequeno tem por objetivo mostrar como configurar um ambiente de desenvolvimento utilizando a linguagem.

2.6 Criação de Containeres do Singularity

Nesta seção, são apresentadas instruções para a criação de containeres a partir do singularity.

2.7 Utilização de Containeres no Ambiente de Computação do CPTEC

Containeres podem ser utilizados em diversas situações, desde a distrubuição de software encapsulado em um ambiente específico até o compartilhamento de ambientes padronizados de desenvolvimento.

3. Documentação

O processo de documentação dos desenvolvimentos, inclui desde a documentação dos códigos, as mensagens dos commits, a criação e a organização das tarefas, a escrita das páginas Wiki e os relatórios de entrega. Esta seção é, portanto, dedicada à estes tópicos e tem por objetivo aprimorar a organização e a forma como os desenvolvimentos são documentados.

3.1 Documentação de Códigos

Nesta seção, são apresentadas algumas ferramentas para a documentação de códigos de desenvolvimento.

4. Ambiente de Supercomputação

4.1 Tupã

4.2 XC50

4.3 Egeon

4.4 Máquinas Virtuais

5. Miscelânea

5.1 Lista de comandos úteis

Nesta página, são listados alguns comandos úteis de uma linha que podem ser aplicados em situações diversas.

5.2 Ferramentas de debug

Nesta página, são apresentadas algumas ferramentas que podem ser utilizadas no debug de softwares.

5.3 Realização de backups

Nesta página, são apresentadas algumas ideias para a realização de backups dos dados dos modelos.