rev |
line source |
slaxemulator@3
|
1 ====== Orientações para desenvolvedores ======
|
slaxemulator@3
|
2
|
slaxemulator@3
|
3 O SliTaz é uma distribuição de código aberto mantida pela comunidade. Todos são convidados a se juntar a nós e a contribuir: usuários, hackers e desenvolvedores sempre podem fazer algo, isto é, revisar ou escrever documentação, informar bugs ou enviar patches pela [[http://www.slitaz.org/pt/mailing-list.html|lista de discussão]], usando o wok e criando novos pacotes ou simplesmente ajudando os outros na lista de discussão ou no [[http://forum.slitaz.org|fórum]]. O SliTaz possui seus [[http://hg.slitaz.org/|repositórios Mercurial]] hospedados num sistema rodando SliTaz, desenvolvedores podem requisitar um novo repositório se necessário e colaboradores têm acesso de escrita para corrigir erros, scripts, etc.
|
slaxemulator@3
|
4
|
slaxemulator@3
|
5 Há um website dedicado exclusivamente à participação de artistas interessados em contribuir com o projeto - http://community.slitaz.org/image. Mediante a criação de uma conta de usuário, pode-se postar gráficos ou figuras relacionadas ao SliTaz. O website é mantindo por uma comunidade de voluntários e se houver interesse em nos ajudar a gerenciá-lo, entre em contato via email ou pela lista de discussão.
|
slaxemulator@3
|
6
|
slaxemulator@3
|
7 ===== KISS e respeito aos padrões =====
|
slaxemulator@3
|
8
|
slaxemulator@3
|
9 "Keep it Simple", ou seja, tentamos manter as coisas simples: respeito aos padrões, planejamento cuidadoso e documentação escrita de alta qualidade, fornecimento de um sistema robusto e estável e um sistema de arquivos (rootfs) no LiveCD leve o suficiente para ser executado em máquinas que tenham ao menos 128 mb de memória RAM. Também usamos aplicativos baseados em GTK+2, Dialog, scripts SHell ou PHP. A idéia é não nos repetirmos e deixar o sistema básico leve e pequeno.
|
slaxemulator@3
|
10
|
slaxemulator@3
|
11 ===== Tank - Build host & home =====
|
slaxemulator@3
|
12
|
slaxemulator@3
|
13 Cada participante do projeto pode obter uma conta no servidor do projeto com acesso seguro, espaço em disco, um diretório público e acesso a todas as ferramentas de desenvolvimento. Os desenvolvendores podem compilar pacotes e os mantenedores dos mirrors podem gerenciar as sincronizações. O [[http://tank.slitaz.org|Tank]] também hospeda o website, o boot via web e os repositórios mercurial.
|
slaxemulator@3
|
14
|
slaxemulator@3
|
15 Veja as [[pt:cookbook:buildhost|instruções]] para a utilização deste servidor descritas no "Livro de Receitas" (cookbook).
|
slaxemulator@3
|
16
|
slaxemulator@3
|
17 ===== Repositórios Mercurial =====
|
slaxemulator@3
|
18
|
slaxemulator@3
|
19 Os repositórios Mercurial ou Hg do SliTaz podem ser listados ou clonados por qualquer um na URL: http://hg.slitaz.org/. Pessoas com acesso de escrita podem acessar diretamente pelo endereço repos.slitaz.org que necessita de autenticação. O Mercurial usa Python e é instalável com o comando:
|
slaxemulator@3
|
20
|
slaxemulator@3
|
21 tazpkg get-install mercurial
|
slaxemulator@3
|
22
|
slaxemulator@3
|
23 ==== ~/.hgrc ====
|
slaxemulator@3
|
24
|
slaxemulator@3
|
25 Antes de sua primeira transferência no servidor, assegure-se de que possui o arquivo de configuração do Hg correto com seu nome e endereço de e-mail e lembre-se de checar que você não está acessando como usuário root. Exemplo de arquivo ~/.hgrc:
|
slaxemulator@3
|
26
|
slaxemulator@3
|
27 [ui]
|
slaxemulator@3
|
28 username = FirstName LastName <you@example.org>
|
slaxemulator@3
|
29
|
slaxemulator@3
|
30 ==== Clonar, modificar, transferir e finalizar ====
|
slaxemulator@3
|
31
|
slaxemulator@3
|
32 <note important>Você deve possuir acesso de escrita aos repositórios para utilizar o comando //hg//.</note>
|
slaxemulator@3
|
33
|
slaxemulator@3
|
34 * Clonar (clone) um repositório, exemplo para o **wok**:
|
slaxemulator@3
|
35
|
slaxemulator@3
|
36 $ hg clone http://repos.slitaz.org/wok
|
slaxemulator@3
|
37
|
slaxemulator@3
|
38 * Para marcar todos os logs ou somente o último log:
|
slaxemulator@3
|
39
|
slaxemulator@3
|
40 $ hg log
|
slaxemulator@3
|
41 $ hg head
|
slaxemulator@3
|
42
|
slaxemulator@3
|
43 * Modifique um ou mais arquivos e transfira (commit):
|
slaxemulator@3
|
44
|
slaxemulator@3
|
45 $ hg add
|
slaxemulator@3
|
46 $ hg status
|
slaxemulator@3
|
47 $ hg commit -m "Log message..."
|
slaxemulator@3
|
48 $ hg log
|
slaxemulator@3
|
49
|
slaxemulator@3
|
50 <note tip>Você pode usar o comando //rollback// para desfazer a última transação.</note>
|
slaxemulator@3
|
51
|
slaxemulator@3
|
52 * Antes de finalizar (push) as mudanças no servidor é seguro executar o comando pull ao menos uma vez:
|
slaxemulator@3
|
53
|
slaxemulator@3
|
54 $ hg pull
|
slaxemulator@3
|
55 $ hg push
|
slaxemulator@3
|
56
|
slaxemulator@3
|
57 Está feito, suas mudanças, código ou correções estão agora no servidor
|
slaxemulator@3
|
58
|
slaxemulator@3
|
59 ==== Atualização de um repositório local ====
|
slaxemulator@3
|
60
|
slaxemulator@3
|
61 Para baixar as últimas atualizações de um repositório remoto para um repositório local, execute:
|
slaxemulator@3
|
62
|
slaxemulator@3
|
63 $ hg pull
|
slaxemulator@3
|
64 $ hg update
|
slaxemulator@3
|
65
|
slaxemulator@3
|
66 ==== Comandos Úteis ====
|
slaxemulator@3
|
67
|
slaxemulator@3
|
68 Comandos do mercurial (hg) que podem ser usados.
|
slaxemulator@3
|
69
|
slaxemulator@3
|
70 * **hg help** : Mostra uma lista completa dos comandos.
|
slaxemulator@3
|
71 * **hg rollback** : Desfaz a última ação (commit, pull, push).
|
slaxemulator@3
|
72 * **hg log <pacote>** : Mostra o log de um pacote.
|
slaxemulator@3
|
73 * **hg head** : Mostra o último log.
|
slaxemulator@3
|
74
|
slaxemulator@3
|
75 ===== Implementação da função iconv() =====
|
slaxemulator@3
|
76
|
slaxemulator@3
|
77 O SliTaz utiliza a função iconv() fornecida pela biblioteca glibc do projeto GNU - alguns pacotes que necessitam da função libiconv devem usar a versão fornecida pela glibc (glibc-locale). Note que já não há mais um pacote libiconv (1.2 MB) no SliTaz.
|
slaxemulator@3
|
78
|
slaxemulator@3
|
79 ===== Pacotes Tazpkg =====
|
slaxemulator@3
|
80
|
slaxemulator@3
|
81 Os pacotes tazpkg no SliTaz são automaticamente criados via Tazwok e receitas no [[pt:cookbook:wok|wok]]. O Livro de Receitas descreve o uso das ferramentas e o formato dos arquivos [[pt:cookbook:receipt|receipt]]. É necessário que estes dois textos sejam lidos antes de prosseguirmos.
|
slaxemulator@3
|
82
|
slaxemulator@3
|
83 Em termos de escolha de pacote, a idéia é oferecer o pacote por tarefa ou funcionalidade, isto é, a mais leve aplicação em seu campo e sem duplicações. Note que a atual seleção de pacotes não é imutável, se você souber de uma alternativa mais leve, com mais funcionalidades ou mais sexy por apenas alguns KB a mais, sugira na [[http://www.slitaz.org/en/mailing-list.html|lista de discussão]]. Atenção redobrada é prestada aos pacotes do LiveCD: eles devem ser "limpos", removendo-se dependências desnecessárias e opções do compilador. Em geral os pacotes candidatos a fazer parte do LiveCD são discutidos na lista.
|
slaxemulator@3
|
84
|
slaxemulator@3
|
85 Antes de você começar a compilar e a criar pacotes para o SliTaz, certifique-se que o trabalho ainda não existe na relação do wok disponível no mirror principal do SliTaz ([[http://hg.slitaz.org/wok/file/tip|wok]] e [[http://hg.slitaz.org/wok-undigest/file/tip|wok-undigest]]). Não se esqueça que os membros da lista podem te ajudar e que a documentação do [[pt:cookbook:wok|wok e ferramentas]] existem para te guiar nos primeiros passos.
|
slaxemulator@3
|
86
|
slaxemulator@3
|
87 ==== Nomes de Pacotes ====
|
slaxemulator@3
|
88
|
slaxemulator@3
|
89 Na maioria dos casos o nome do pacote é o mesmo do código fonte, exceto para os módulos das linguagens Python, Perl, PHP, Ruby e Lua. Por exemplo, o pacote que fornece o sistema de templates Kid, escrito em Python e XML, é nomeado: //python-kid//.
|
slaxemulator@3
|
90
|
slaxemulator@3
|
91 ===== Gerenciamento do website e manuais =====
|
slaxemulator@3
|
92
|
slaxemulator@3
|
93 O website e os manuais (Manual do SliTaz, Livro de Receitas) são gerenciados pelo repositório mercurial, podendo ser clonados da seguinte maneira:
|
slaxemulator@3
|
94
|
slaxemulator@3
|
95 $ hg clone http://hg.slitaz.org/website
|
slaxemulator@3
|
96
|
slaxemulator@3
|
97 Ou, se você tiver as permissões necessárias:
|
slaxemulator@3
|
98
|
slaxemulator@3
|
99 $ hg clone http://repos.slitaz.org/website
|
slaxemulator@3
|
100
|
slaxemulator@3
|
101
|
slaxemulator@3
|
102 ==== Estilo para codificação de xHTML ====
|
slaxemulator@3
|
103
|
slaxemulator@3
|
104 * As páginas nos diferentes manuais são codificadas em xHTML 1.0 transitional.
|
slaxemulator@3
|
105 * As cores para o corpo da página (body) e para os títulos são definidas diretamente de forma a permitir que os links sejam facilmente identificáveis.
|
slaxemulator@3
|
106 * Os títulos de primeiro nível são usados apenas uma vez, no topo da página, os de segundo nível são usados para nomear as seções e os de terceiro e quarto nível para as subseções.
|
slaxemulator@3
|
107 * Se uma lista é usada para os tópicos, usando âncoras para as diferentes seções, é posta logo no início da página, após o título da mesma.
|
slaxemulator@3
|
108 * Parágrafos são colocados dentro das tags <p></p>.
|
slaxemulator@3
|
109 * Para indentação, usa-se tabulações (tabs), de forma a manter-se a semântica e para diminuir espaço em termos de octetos (bytes).
|
slaxemulator@3
|
110 * Para mostrar trechos de código, como o nome de um comando dentro de um parágrafo, <code> é o método recomendado.
|
slaxemulator@3
|
111 * Para mostrar a saida de comandos ou comandos a serem digitados em um terminal, usa-se <pre>. Exemplo:
|
slaxemulator@3
|
112
|
slaxemulator@3
|
113 $ comando
|
slaxemulator@3
|
114
|
slaxemulator@3
|
115 * Para mostrar texto que pode ser copiado e colado, como scripts, peças de código, arquivos de configuração, etc, também se usa a tag <pre>, em conjunto com a classe CSS chamada "script". Exemplo:
|
slaxemulator@3
|
116
|
slaxemulator@3
|
117 <pre class="script">
|
slaxemulator@3
|
118
|
slaxemulator@3
|
119 code...
|
slaxemulator@3
|
120
|
slaxemulator@3
|
121 </pre>
|
slaxemulator@3
|
122
|
slaxemulator@3
|
123 * Texto enfatizado é colocado dentro da tag <em> e links internos são relativos.
|
slaxemulator@3
|
124 * É recomendável checar a validade do código xHTML por meio do validador online da W3C.
|
slaxemulator@3
|
125
|
slaxemulator@3
|
126 ===== Diff e patch =====
|
slaxemulator@3
|
127
|
slaxemulator@3
|
128 Os utilitários //diff// e //patch// são ferramentas de linha de comando para criação e implementação de diferenças entre dois arquivos. Esta técnica é freqüentemente usada para colaboração e as mudanças feitas no arquivo original podem ser extraídas facilmente. Para criar um arquivo diff legível aos humanos em um simples editor de textos, você deve fornecer a opção -u :
|
slaxemulator@3
|
129
|
slaxemulator@3
|
130 $ diff -u file.orig file.new > file.diff
|
slaxemulator@3
|
131
|
slaxemulator@3
|
132 Para aplicar um patch:
|
slaxemulator@3
|
133
|
slaxemulator@3
|
134 $ patch file.orig file.diff |