reports
reports copied to clipboard
Seminarios de LP 2019 - 2020
Este repo contiene los seminarios (informes), divididos por
grupo, de los estudiantes del curso 2019 - 2020
de la asignatura
Lenguajes de programación.
En las siguientes secciones de este README se especifica las reglas, recomendaciones y requisitos para contribuir al repo y lograr mantener el curso de manera no-presencial.
Markdown
Markdown es un markup language (como HTML) ligero que se utiliza debido a su discreta sintaxis que permite leer el contenido antes y después de renderear fácilmente. En este repositorio se brinda un cheatsheet de referencia.
Compilar a LaTeX
En caso de hacer el seminario en Markdown
, pueden contactar con el profesor del Grupo 2
para compilar a LaTeX
el documento y mantener los estilos de las orientaciones de los seminarios.
Git
GIT es un sistema de control de versiones distribuido. Es requisito su uso, pues estaremos usándolo para gestionar este repositorio y poder utilizar las herramientas que nos brinda GitHub.
Instalación
Pueden encontrar cómo instalarlo en su SO de preferencia aquí.
Luego de la instalación, en su sistema debe encontrarse un CLI (Command Line Interface) que le permitirá ejecutar comandos desde una terminal (En el caso de Windows dependerá de como haya decidido instalarlo, pero se le recomienda instalar de forma que se le provea una terminal).
El siguiente comando debe mostrar la versión de git
que se instaló:
$ git --version
git version 2.17.1
Si en su terminal ocurre algún problema, intente instalarlo nuevamente o pida ayuda.
Principales comandos
Para contribuir a este repositorio ud deberá conocer ciertos comandos básicos de git
.
Todos los comandos se ejecutan desde una terminal localizada en la carpeta del repositorio
con la siguiente sintaxis:
$ git [comando] [argumentos]
Donde comando
es la función a ejecutar y argumentos
se auto-explican.
A continuación se explican los que se consideran imprescindibles de forma simplificada, tome esta sección como referencia
cuando no recuerde bien qué hace algún comando básico, no para aprender dichos comandos, para esto
refiérase a la documentación. Todos los comandos de git
permiten el argumento --help
que muestra una
ayuda completa sobre el comando.
-
git clone [repo]
- Este comando clona el repositorio localmente, en el directorio actual. -
git status
- Este comando muestra el estado actual del repositorio degit
. Es el comando más básico y a donde deben referirse cuando tengan dudas, puesto que siempre muestra ayuda básica. -
git add [path]
- Este comando pasa un archivo de estar untracked o modified al staging area. Para más info sobre esto, navegue aquí. -
git commit -m "Mensaje del commit"
- Este comando añade al historial degit
los archivos a los que se le ha hechogit add
(index o staging area). -
git checkout [commit|branch]
- Este comando permite navegar por el historial degit
.commit
es un identificador de un commit o un substring de este que lo identifique unívocamente.branch
es el nombre de una rama en el repositorio. -
git branch -v
- Este comando muestra las ramas actuales del repo. -
git checkout -b [nombre]
- Este comando crea una rama nueva y mueveHEAD
para esa rama.
Workflow básico
El flujo para contribuir al repositorio es el siguiente:
-
Ser colaborador del repositorio. Esto implica que algún colaborador le da acceso antes. Contactar con los profesores para pedir acceso.
-
Clonar el repo si no lo ha clonado:
$ git clone https://github.com/alexfertel/reports.git
- Crear una nueva rama y posicionar
HEAD
en ella:
$ git checkout -b [nombre de la rama]
- Hacer los cambios, añadirlos y hacer commit.
$ echo "Hello, World!" > test.txt
$ git add test.txt
$ git commit -m "Add `test.txt` with the text 'Hello, World!'"
- Subir la nueva rama con cambios.
$ git push origin [nombre de la rama]
- Crear un Pull Request a
master
. Un PR es un feature muy útil que permite mezclar 2 ramas del repositorio remoto. NO se puede pushear a la ramamaster
, de hecho, aunque lo intente, no podrá hacerlo. Siempre debe crear un PR para mezclar sus cambios conmaster
en el repositorio remoto. En los PR se forman hilos de discusión, que se utilizarán para hacer comentarios sobre los cambios y de esta forma los profesores podrán revisar dichos cambios en conjunto con los estudiantes.
Organización y nomenclatura
Directorios y seminarios
El repositorio está organizado de la siguiente forma:
├── src/
│ ├── grupo_1/
│ │ └── ...
│ └── grupo_2/
│ └── ...
├── .gitignore
└── README.md
En la carpeta grupo_X
deberán ir los seminarios del grupo número X
.
Los seminarios irán dentro de un directorio con el siguiente formato de nombre
equipo_X_seminario_Y
, donde X
es el número del equipo y Y
es el número del seminario.
Dentro de la carpeta del seminario el seminario deberá nombrarse
Seminario [Tema del Seminario].[pdf, md, docx]
. Un ejemplo del
directorio resultante sería el siguiente:
├── src/
│ ├── grupo_1/
│ │ ├── equipo_1_seminario_1/
│ │ │ ├── Seminario C++98.pdf
│ │ │ └── Code
│ │ ├── equipo_2_seminario_2/
│ │ │ ├── Seminario C++11.pdf
│ │ │ └── Code
│ │ └── equipo_3_seminario_3/
│ │ └── ...
│ └── grupo_2/
│ └── ...
├── .gitignore
└── README.md
Ramas
Los nombres de las ramas deben definir bien qué seminario y de qué equipo viene,
manteniendo el siguiente formato: grupo-Z/equipo-X/seminario-Y
, donde X
es el número
del equipo y Y
es el número del seminario que le toca a ese equipo y Z
es el número del equipo, dado que cada equipo
hace al menos 3 seminarios, un posible ejemplo de rama sería grupo-1/equipo-3/seminario-3
.
Ejemplos
Ahora mismo además de los ejemplos que están en este README, pueden referirse al repo para la estructura del directorio y los PRs.
Cualquier duda contactar con los profesores.