# Gerência de Configuração de Software

Aqui está sendo compartilhado o curso de Gerência de Configuração de Software da Universidade de Brasília.

## Cronograma do curso
### Plano de Ensino 2017/1

* (06.03) Apresentação da disciplinas, conceitos de gerência de configuração e controle de versão
* (13.03) Demonstração prática com Git (comandos básicos até o comando rebase) e Introdução aos ambientes reais de desenvolvimento de software e Sistemas de controle de versão
* (20.03) Atividade a Distancia
* (27.03) Seminários/lightning talks 1.1
* (03.04) Seminários/lightning talks 1.2
* (10.04) Seminários/lightning talks 1.3
* (10.04) Práticas com ambientes de gestão de projetos/atividades/issues/repositórios (Redmine, Github, GitLab: branch, fork, issues, merge-request etc)
** https://pt.wikipedia.org/wiki/Ger%C3%AAncia_de_configura%C3%A7%C3%A3o_de_software
** https://en.wikipedia.org/wiki/Software_configuration_management
** Here’s How Google Makes Sure It (Almost) Never Goes Down (http://www.wired.com/2016/04/google-ensures-services-almost-never-go/?mbid=nl_4616)
* (17.04) Prova 1 (e definição dos projetos)
* (24.04) Apresentação dos planos de GCS dos projetos
* (01.05) FERIADO
* (08.05) Integração contínua: Travis e Jenkins
* (15.05) Containers/Automação/Build: Chef/Vagrant/Puppet/Salt/Ansible
* (22.05) Construção de Pacotes DEB/RPM
* (29.05) Andamento dos projetos
* (05.06) Andamento dos projetos
* (12.06) Prova 2
* (19.06) Apresentação final dos projetos
* (26.06) Apresentação final dos projetos
* (03.07) Apresentação final dos projetos

### Critérios de avaliação

* Nota 1 = [(Prova 1 * 8) + (Seminário *2)]/10
* Nota 2 = Prova 2
* Nota 3 = Projeto
** Plano = 10%
** Andamento = 20%
** Relatório = 30%
** Apresentação final = 40%
* Nota final (NF)
** Se Nota 3 => 5.0, NF = (Nota 1 + Nota 2 + Nota 3)/3
** Se Nota 3 < 5.0, NF = Nota 3

### Contatos dos Monitores
## Seminários (lightning talks) em 2017.1

Lightning talks de 12 minutos. Em ordem de apresentação, nas datas indicadas:
Pendentes:
* Nome do projeto (Nome da dupla ou pessoa)
27.03.2017
* TeamCity (Stefânia Bezerra e Matheus Oliveira)
* NPM a package manager for javascript (Gabriel Silva)
* CMake (Vitor Nere e Alexandre)
* MakeFile (Marcelo Augusto e Igor Ribeiro)
* Github x Gitlab x Bitbucket (Isaac Borges)
* Bower (João Vitor Araujo e Mateus Manuel)
* Grunt (Pedro Sales)
03.04.2017
* Gogs - Open Source Self-Hosted Git Server (Omar e João Pedro)
* Vagrant + Puppet: Criação de máquina automatizada (Victor Arnaud)
* Chef - Instalando o ambiente comum (Lucas Brilhante e Matheus de Sousa)
* Foreman (Kássia Catarine)
* Travis (Jéssica Cristina e Sabryna de Sousa)
* Maven (Gustavo Braz e Edson Gomes)
* ISPW (João Paulo Busche e André Bedran)
* Gulp (Fernando Aguilar)
10.04.2017
* Vagrant e Docker (Daniel Moura e Eduardo Gomes)
* Ferramenta de automatização Ansible (Victor Navarro e Vítor Barbosa)
* Empacotamento RPM básico (Luan Guimarães e Matheus Miranda)
* Empacotamento Debian básico (Daniel Henrique)
* Heroku (Leonardo Arthur e Nicácio Arruda)
* Snapcraft (Laércio Jr.)
* Holodev (Jonathan Moraes)
* Puppet vs. Ansible (Anna Larissa e Halê Valente)
* Docker (Ygor Galeno)
* Trac + Bazaar (Fagner)

## Projetos de Gerência de Configuração de Software em 2017.1

Alunos de 2017/1, definam seus projetos até 17 de Abril. Quanto antes definir, melhor para a proposta ser validada pelos professores.
Projetos Sugeridos: https://github.com/fgagamedev/IJE
* Projetos Excluídos: Jack the Janitor, War of the nets
Apresentação Final (19/06)
* Simuladores EA/GA - Jéssica Cristina e Sabryna de Sousa
* Ankhnowledge - João Pedro Sconetto e Omar Júnior
* Strife of Mythology Tower Defense - Gabriel Silva e Pedro Sales
* Space-Monkey - Fagner
* CrossRoads - Fernando Aguilar e Isaac Borges
* Advento - Anna Larissa Martins e Halê Valente Silva
* Post War - Daniel Moura e Eduardo Gomes
Apresentação Final (26/06)
* Mind Scape - Luan Guimarães e Matheus Miranda
* Dauphine - Daniel Henrique
* Deadly-Wish - Victor Arnaud e Vitor Nere
* Terracota - Kássia Catarine e Edson Gomes
* Kays Against the World - Alexandre Torres
* RGBender - Lucas Brilhante e Matheus Bernardo
* Traveling Will - Victor Navarro e Vitor Barbosa
Apresentação Final (03/07)
* Imagina na Copa - Jonathan Moraes e Laércio Jr.
* Babel - Leonardo Arthur e Nicácio Arruda
* LastWorldWar- Matheus Oliveira e Stefânia Bezerra
* Wenova: Rise of Conquerors - João Vitor Araujo e Mateus Manuel
* 7 Keys - João Paulo Busche e André Bedran
* Canções de um Passado Esquecido - Marcelo Augusto e Igor Duarte

# Material dos Semestres Anteriores
## Seminários (lightning talks) em 2016.2

Lightning talks de 12 minutos. Em ordem de apresentação, nas datas indicadas:
22.08.2016
* CVS x SVN x Git (João Guilherme e Victor Henrique)
* Mercurial (Geovanni e Pedro)
* Mercurial vs Git (Marcos Dourado e Ruan)
* Utilizando Bazaar para Controle de Versão (Iolane Andrade e Julliana Almeida)
* Git Stash e Apagar commit com force push (Júlio Xavier e Lucas Andrade)
* Git , squash e ammend. ( Gustavo Cavalcante )
* Ferramentas do Git (Gesiel Freitas e Vitor Borges)
29.08.2016
* TFVC - Team Foundation Version Control (Luis Henrique e Vinicius Bandeira)
* Trac + git (Maxwell de Oliveira e Thiago Lima)
* Travis CI - GitHub (Arthur Temporim e Eduardo Nunes)
* Github - Jenkins (Geison e Jhonatan)
* Self-hosted Git (Eduardo Castro e Mateus Andrade)
* Privilégios e Permissão de Usuários e Grupos - GitLab x GitHub (Elmar Roberto e Guilherme Baldissera) [*conversar com os professores]
* Automatizando a instalação (deploy) e atualização de sites com Git. (Dandara e João Henrique)
05.09.2016
* Darcs (Alex Cortes e Vanessa de Andrade)
* Heroku - (Flávio Costa e Phelipe Wener)
* GitHub + Heroku + Slack (Adailson e Marcelo)
* Parse server + Heroku + MongoDB (Vinicius Borges e João Pedro)
* Vagrant (Matheus Silva e Artur Bersan)
* Docker (Rafael Akiyoshi e Danilo Barros)
* Gerenciamento de pacotes (Marcelo Ferreira e Mateus Furquim)

## Aulas 2016/2

Integração Contínua
* Jenkins
* Travis
* Gitlab CI
Automação e Deploy
* Containers, Automação e Build (PPT)
* Empacotamento (PPT)

## Projetos de Gerência de Configuração de Software em 2016.2

Alunos de 2016/2, definam seus projetos até 19 de setembro. Quanto antes definir, melhor para a proposta ser validada pelos professores.
* Pytuga (Phelipe Wener e Flávio Costa)
* AvaliaMais (Gesiel Freitas e Vitor Borges)
* TemRemedioAí (João Pedro e Vinícius Borges)
* AbasteceAqui (Maxwell de Oliveira e Thiago Lima)
* Pesquini (Adailson e Marcelo Martins)
* EuVou (Julliana e Iolane)
* FGAme (Gustavo Cavalcante)
* Exercism (Eduardo Castro)
* Novo SGA (Elmar Roberto e Guilherme Baldissera)
* FlossCoach (Victor Henrique e João Guilherme)
* FromThePage (Júlio Xavier e Lucas Andrade)
* Zenit Aerospace (Marcelo Ferreira e Mateus Furquim)
* Mapas Observatório LGBT (Alex Cortes e Vanessa de Andrade)
* EmerGO (Marcos Dourado e Ruan Donato)
* JuliaBox (Mateus Andrade)
* eLugar (Geison e Jhonatan)
* Ejudge. (Dandara e João Henrique)
* SME-UnB (Matheus Silva e Artur Bersan)
* Wikalendário (Arthur Temporim e Eduardo Nunes)
* SisGP (Rafael Akiyoshi e Danilo Barros)
* Saude Em Casa (Geovanni Oliveira e Pedro Ivo)
* Aondê (Luis Henrique e Vinicius Bandeira)

# Seminários (lightning talks) em 2016.1

Lightning talks de 12 minutos. Em ordem de apresentação, nas datas indicadas:
23.03.2016
* Git básico (Renata e Pedro)
* Git Debugging: blame e bisect (Thaiane e Tomáz)
* Git: Cherry-Picking (Karine Valença e Murilo Duarte)
* Git Avançado (Daniel e Jônnatas)
* Git Internals e Gitinspector (Gustavo Coelho e Willian Gulgielmin)
* GitHub x GitLab (Brenddon e Filipe Ribeiro)
* Github - Travis (Gabriel e Luciano Prestes)
30.03.2016
* CVS vs Git (Kleber e Gustavo Sabino)
* Subversion - SVN (Attany e Keli)
* Mercurial SCM (Álvaro e Fábio Texeira)
* Mercurial vs Git (Tiago Assunção e Wesley Araujo)
* Bazaar 2.7 (Izabela e Tainara)
* TFVC - Team Foundation Version Control (Jonathan Rufino e Lucas Mattioli)
06.04.2016
* Bugzilla: Visão Geral (Caique Pereira, Euler Carvalho)
* Savannah (Vinicius Carvalho e Vinicius Pinheiro)
* Bitbucket (Rafael Fazzolino e Matheus Godinho)
* Fossil (Ebenezer Andrade e Priscilla Gonçalves)
* Waffle & Zenhub (Fillipe Feitosa e Luciano Almeida)
* GitHub + Heroku + Slack (Thiago Meira,Luis Resende)
* Empacotamento RPM Basico (Alessandro e SImiao)
OBSERVAÇÕES:
* A definição dos seminários encerrou às 8h do dia 23.03.2016
* Quem faltar um dia dos seminários, não receberá os pontos pelo seu seminário
* Quem não fizer a página wiki do tema do seu seminário, receberá 50% da pontuação do seu seminário

## Projetos de Gerência de Configuração de Software em 2016.1

* Urutau
* SiGA
* ContributeBlog
* AppRecommender
* Wikilegis
* Unreal Engine
* Ejtools
* Adopt-a-Hydrant
* EqLibra
* Falcon Framework
* Codeschool
* Bootcamp
* SCT
* EnTurma
* TEM-DF
* Enem Amigo
* Scarefault
* PET
* 66Dias
* SAUE / SiGi
* Radar

## Seminários em 2015.1
### Sistemas de controle de versão

* CVS
* Subversion(SVN)
* Bazaar
* Mercurial
* Git Básico
* Git Avançado

### Ambientes de desenvolvimento colaborativo de software

* SourceForge
* Trac
* Savannah/Savane
* Bitbucket
* GitLab

## Palestras/Aulas

* Redmine
* Integração contínua: Trevis e Jenkins
* Build: chef
* Construção de Pacotes DEB
* Construção de Pacotes RPM
** Ambiente de construção de pacotes RPM para CentOS
** Construção de pacotes RPM para Fedora

## Projetos de Gerência de Configuração de Software em 2015.1

* Ejudge
* Espelho Político
* Busine.me
* Mezuro
* Pentaho Mondrian
* Pardal
* Proconsulta
* Noosfero
* GestorPsi
* Chamada Parlamentar
* Akan
* Nimbus Backup