diff --git a/cap05.Rmd b/cap05.Rmd index 2ac276cf5a150e22461cae3de04609f75c0b3ded..244b7e3f907b8cc58c02ed30d4bac012fcc80187 100644 --- a/cap05.Rmd +++ b/cap05.Rmd @@ -24,54 +24,56 @@ O objetivo é ...  -O [GitHub] é um serviço Web para hospedagem, gestão e compartilhamento de -repositórios Git que oferece recursos para desenvolvimento e -colaboração. A principal slogam do GitHub é: "Build software better, -together." Justamente enfatiza a o compromisso principal que é dar -suporte a colaboração. +O [GitHub] é um serviço Web para hospedagem, gestão e compartilhamento +de repositórios Git que oferece recursos para desenvolvimento e +colaboração. A principal slogam do GitHub é: *"Build software better, +together."* que justamente enfatiza o compromisso principal que é dar +suporte ao desenvolvimento colaborativo. O GitHub foi fundado em 8 de Fevereiro de 2008, em São Francisco, por quatro pessoas: Tom Preston-Werner, Chris Wanstrath, PJ Hyett e Scott -Chacon. Em 2015, o GitHub ultrapassou a marca de 10 milhões de usuários. - -De acordo com o <http://githut.info/>, no quarto trimestre de 2014 -haviam 22 milhões de repositórios. A linguagem `JavaScript` teve o maior -número de repositórios ativos (>320 mil) e total de *pushes* enquanto -que a `R` foi a com maior número de novos cópias por repositório (6.45). - -Diferente a forma tradicional de usar o Git, por linha de comando, que -fizemos até agora, o GitHub tem uma interface web (gráfica) repleta de -funções para o desenvolvimento e supervisão/acompanhamento de um projeto +Chacon. Antes de terminar 2015, o GitHub já ultrapassou a marca de 10 +milhões de usuários. De acordo com o <http://githut.info/>, no quarto +trimestre de 2014 haviam 22 milhões de repositórios. A linguagem +`JavaScript` teve o maior número de repositórios ativos (>320 mil) e +total de *pushes* enquanto que a linguagem `R` foi a com maior número de +novas cópias por repositório (6.45). + +Diferente da forma tradicional de usar o Git, por linha de comando, que +fizemos até agora, o GitHub é um serviço web com interface gráfica +repleta de funções para o desenvolvimento e acompanhamento de um projeto Git. Tais recursos vão desde administrar tarefas até a permitir a colaboração de outras pessoas, até mesmo desconhecidos. Dentre os -recursos disponÃveis tem-se: +principais recursos disponÃveis, tem-se: + * README: é um arquivo texto escrito em liguagem de marcação - renderizada para exibição (Markdown, RST, Textile, Org, etc). O - README é a capa do seu repositório, ou seja, o conteúdo apresentado - na *home* do projeto e serve para informar o leitor dos objetivos - repositório seu projeto, seus desenvolvedores e pode conter + (Markdown, RST, Textile, Org, etc) que é renderizada para + exibição. O README é a capa do seu repositório, ou seja, o conteúdo + apresentado na *home* do projeto e serve para informar o visitante + dos objetivos do repositório, seus desenvolvedores e pode conter instruções de instalação e colaboração. * Wiki: a Wiki de cada repositório serve para divulgação e - documentação. O serviço automaticamente converte de linguagem de - marcação para HTML, tornando fácil a leitura e navegação. Como a - Wiki é também um repositório Git, ela pode inclive ser editada - dentro do prórpio GitHub, além de versionada, claro. Com isso, não - diferente do restante, a edição da Wiki também é colaborativa. + documentação. Também é escrita em linguagem de marcação, tornando + fácil e rápido a escrita pelo desenvolvedor e simples a leitura e a + navegação pelo visitante. Como a Wiki é também um repositório Git, + ela pode inclusive ser editada por meios dos recursos de edição do + prórpio GitHub, além de versionada, claro. Com isso, não diferente + do restante, a edição da Wiki também é colaborativa. * *Issues*: Por *issues* é que se faz a correção de bugs e agendamento - de tarefas. Quando um usuário ou desenvolvedor cria um *issue* - notificar um bug encontrado de forma que ele possa ser rapidamente - corrigido. Criar *issues* também serve como ferramenta de - admistração de tarefas nas quais os *issues* descrevem algo a ser - feito e por quem. - * *Milestones*: são pedras de milha, ou seja, marcam uma distância - percorrida. No GitHub, descrever o que precisa ser desenvolvido para - que ocorra uma mundança de versão e estabalecer um prazo para - conclusão, por exemplo. - * *Pull request* ou *merge request* (MR): é requisição de fusão. Os - membros da equipe fazer suas contribuições em ramos de - desenvolvimento e ao concluir, pedem um MR pela interface. Nesta, o - responsável pode ver os *diffs* no arquivos e fazer o merge por - lá. Então não é preciso baixar o ramo, aplicar o merge e subÃ-lo. + de tarefas. Usuários criam *issues* para notificar um bug encontrado + de forma que ele possa ser rapidamente corrigido. Criar *issues* + também serve como ferramenta de admistração de tarefas nas quais os + *issues* descrevem algo a ser feito e por quem. + * *Milestones*: são pedras de milha, ou seja, marcam um ponto a ser + alcançado. No GitHub, são usadas para descrever o que precisa ser + desenvolvido para que ocorra uma mundança de versão e estabalecer um + prazo para conclusão, por exemplo. + * *Pull request* ou *merge request* (MR): é uma requisição de + fusão. Os membros da equipe fazem suas contribuições em ramos de + desenvolvimento e ao concluir pedem um MR pela interface. O + responsável por avaliar o MR pode ver os *diffs* nos arquivos e + fazer o merge direto pela interfaçe, de dentro do serviço sem + precisar baixar o ramo, aplicar o merge e subÃ-lo. * *Fork*: é uma forma de se fazer uma cópia do projeto de alguém para livremente experimentar modificações sem afetar o projeto original. A cópia vem para a sua conta e funciona como qualquer @@ -82,23 +84,27 @@ recursos disponÃveis tem-se: De acordo com [Klint Finley], *fork* e MR são o que tornam o GitHub tão poderoso. Quando o mantenedor recebe um MR ele pode ver o perfil do -contribuidor que lista todos os projetos no qual ele deu -contribuição. Ao aceitar o MR, o colaborador acrescenta mais uma -colaboração a sua reputação. Esse mecanÃsmo, então, beneficia as duas +contribuidor onde estão listados todos os projetos no qual este deu +contribuição. Ao aceitar o MR, é acrescentado mais uma colaboração a +reputação do colaborador. Esse mecanÃsmo, então, beneficia as duas partes. Além dessas caracterÃsticas chaves, o GitHub permite que você acompanhe (*watch*) e favorite (*star*) repositórios. Também dá para seguir pessoas e participar de organizações (grupo de usuários) que podem ter -repositórios, ideal para projetos em equipe. No perfil de cada usuário -tem-se um registro das atividades e dentro de cada projeto pode-se -acompanhar as contribuições de cada colaborador. - -Em cada repositório pode-se navegar pelo histórico de commits, ver as -modificações no código (*diffs*) entre commits e branches. - -É possÃvel hospedar dados, por exemplo, em formato texto (csv), e -disponibilizá-los por meio da URL para download. +repositórios próprios, ideal para projetos em equipe. O perfil de cada +usuário registra suas atividades e dentro de cada projeto pode-se +acompanhar as contribuições de cada colaborador. Em cada repositório +pode-se navegar pelo histórico de *commits*, filtrar por colaborador, +ver as modificações no código (*diffs*) comaprando *commits* e +*branches*. + +O GitHub não hospeda apenas código fonte mas sim todo e qualquer arquivo +que você tenha sob versionamento. É possÃvel hospedar dados, por +exemplo, em formato texto (csv), e disponibilizá-los por meio da URL +para download ou leitura direta. Para nós que somos usuários de R, essa +é uma caracterÃstica que permite não só disponibilizar dados, mas também +coleções de funções que podem ser carregadas com um `source()`. Com o plano *free* do GitHub, você pode ter inúmeros repositórios públicos e inúmeros colaboradores, pode ter o *fork* de quantos @@ -106,25 +112,25 @@ repositórios quiser e participar de quantas organizações precisar. Para ter repositórios privados, o plano mais básico custa U$ 7 e dá direito a 5 repositórios. Existem outros planos individuais, e também planos organizacionais, para todos os tamanhos de projeto e equipe. Além dessas -formas, pode-se ter o GitHub em um servidor próprio, o GitHub -Interprise, que tem vantagens além das já mencionadas, no entanto, tal -com qualquer plano não público, tem seu custo (ou investimento). +formas, pode-se ter o GitHub em um servidor próprio, o +[GitHub Interprise], que tem vantagens além das já mencionadas, no +entanto, tal como qualquer plano privado, tem seu custo. É uma fonte de conhecimento onde você encontra *scripts* nas mais diferentes linguagens de programação. Você pode livremente estudar o código dos repositórios, ver como o código evoluiu *commit* após *commit* e como um *bug* foi resolvido. Qualquer pessoa, mesmo sem -perfil no GitHub, pode clonar um repositório público (pelo protocolo -*http*). A GitHub reconhece 382 linguagens que compreendem as de -programação (293: C++, Python, R, JavaScript), as de *markup* (34: HTML, -TeX, MarkDown), de dados (40: JSON, SQL, XML, csv) e aplica os destaques -(highlights) para cada linguagem, o que facilita a leitura do código. +perfil no GitHub, pode clonar um repositório público. O GitHub reconhece +382 linguagens que compreendem as de programação (293: C++, Python, R, +JavaScript), as de *markup* (34: HTML, TeX, MarkDown), as de dados (40: +JSON, SQL, XML, csv) e aplica os realces (highlights) que facilitam a +leitura do código. -O GitHub é serviço web para Git mais popular quanto ao número de +O GitHub é o serviço web para Git mais popular quanto ao número de projetos hospedados. No entanto, existem serviços com as mesmas e até -com funcionalidades que o GiHub não oferece. O GitLab e o Bitbucket -estão entre os 5 mais populares e permitem, por exemplo, ter alguns -repositórios privados com a conta *free*. +com funcionalidades que o GiHub não oferece no plano básico. O GitLab e +o Bitbucket estão entre os 5 mais populares e permitem, por exemplo, ter +alguns repositórios privados com a conta *free*. ### GitLab ### @@ -209,3 +215,4 @@ funcionando/instalando sem erros. [Klint Finley]: http://techcrunch.com/2012/07/14/what-exactly-is-github-anyway/ [GitLab]: https://about.gitlab.com/ [GitHub]: https://github.com/ +[GitHub Interprise]: https://enterprise.github.com