minenux/DESARROLLO.md

157 lines
5.8 KiB
Markdown

# Como comenzar
===========================
Este documento le indicara instrucciones de como comenzar desarrollar
y que usar en este proyecto
* [Como comenzar a trabajar](#como-comenzar-a-trabajar)
* [1 Requisitos para trabajar](#1-requisitos-para-trabajar)
* [2 Configurar tu entorno](#2-configurar-tu-entorno)
* [3 clonar las fuentes](#3-clonar-las-fuentes)
* [4 Cargar en Geany y ver en web](#4-cargar-en-geany-y-ver-en-web)
* [Estructura de desarrollo](#estructura-de-desarrollo)
* [Codigo y fuentes](#codigo-y-fuentes)
* [Como trabajar git](#como-trabajar-git)
## Como comenzar a trabajar
---------------------------
Crear un directorio `Devel` en home, cambiarse a este y alli clonar el repo, iniciar y arrancar el editor Geany.
Todo esto se explica en detalle a continuacion por partes
### 1 Requisitos para trabajar
* username debe ser `general` con `adduser general` para todo nuestros reportes
* git (manejador de repositorio y proyecto) `apt-get install git git-core giggle`
* geany (editor para manejo php asi como ver el preview) `apt-get install geany geany-plugin-webhelper`
* minetestX (interprete) para probar los modulos `apt-get install minetestx`
* curl (invocar urls) `apt-get install curl`
### 2 Configurar tu entorno
crea el usuario y agregalo a los grupos indicados
```
adduser --gecos "" --shell /bin/bash --create-home --home /home/general general
usermod -a -G video,audio,games,netdev,plugdev general
```
**IMPORTANTE** logearse en el nuevo usuario, **este sera el usuario de
uso habitual y debe ser el que se emplee** para todos los reportes, asuntos
y pruebas contra nuestro entorno y repositorios.
configura el usuario git y coloca en la raiz de tu home el directorio Devel para usar el proyecto:
```
cd /home/general
mkdir Devel
cd Devel
git config --global status.submoduleSummary true
git config --global diff.submodule log
git config --global fetch.recurseSubmodules on-demand
```
en caso de que use otro usuario, copie todos sus archivos y rectifique,
cambiese al nuevo usuario:
```
cp ./* /home/general
chown -R general:general /home/general/Devel
find /home/general/Devel/ -type f -exec chmod 664 {} ";"
find /home/general/Devel/ -type d -exec chmod 775 {} ";"
```
Esto no es 100% fiable y solo hagalo en caso de necesitar algunos archivos previos.
### 3 clonar las fuentes
Se usa git para tener las fuentes y se arranca el IDE geany para codificar,
como usuario `general` clonar las fuentes en Devel de home:
```
mkdir -p ~/Devel
cd Devel
git clone --recursive http://codeberg.org/minenux/minenux.git
cd minenux
git pull
git submodule init
git submodule update --rebase
git submodule foreach git checkout master
git submodule foreach git pull
```
**IMPORTANTE** Asumiendo que ud tiene acceso al repo, si ud no es un miembro directo
deberia realizar "fork" del repositorio.
Trabajar directo en el repo de `minenux` no es para colaboradores, es
para los miembros directos, y solo debe ser usado este repo para tener
vision y trabajo global y hacer update masivo.
### 4 Cargar en Geany y ver en web
* abrir el geany
* ir a menu->herramientas->admincomplementos
* activar webhelper(ayudante web), treebrowser(visor de arbol) y addons(añadidos extras)
* aceptar y probar el visor web (que se recarga solo) abajo en la ultima pestaña de las de abajo
* en el menu proyectos abrir, cargar el archivo `Devel/minenux/minenux.geany` y cargara el proyecto
* en la listado seleccionar el proyecto o el directorio `~/Devel/minenux`
**NOTA IMPORTANTE** esto es asumiendo que su usuario se llama `general` y
si no es asi debe usar este como nombre y ruta de usuario.
* con un editor de texto plano abrir el archivo minenux.geany NO ABRIR CON EL GEANY!!
* en la variable `base_path=` cambiar la ruta de home `general` sustituya "general" por su usuario linux
* borrar toda la seccion files si existiese y salvar el archivo
# Estructura de desarrollo
===========================
Esto es un repo general para todo lo que el proyecto minenux trabaja,
incluyendo sus repos en github o gitlab, se emplea para tener una revision
general de todo lo realizado mas coordinadamente. Esta enfocado en
que los miembros trabajen, y no en los colaboradores, si desea colaborar
favor dirijase a cada repositorio en especifico.
## Codigo y fuentes
El directorio [mods](mods) contiene la mayor parte de codigos fuentes,
ya que el directorio [games](games) son en su mayoria los mismos mods
pero incluidos en cada juego especifico, pero solo algunso son alterados
segun las necesidades de cada juego.
Si bien el trabajo original de cada mod puede ser asqueroso, o incluso windosero
no se admite codigo o contribuciones de este estilo y deben ser en
correcto formato y orientado a rutas y formatos Linux.
## Como trabajar con git
El repositorio principal "minenux" contine adentro submodulos git,
aparte de archivos propios.
**POR ENDE**: los commits dentro de un submodulo son independientes del git principal
1. primero antes de acometer cambios revise si hay desde elprincipal con fetch y pull
2. segundo haga commit y push en los submodulos antes de hacer commit y push en el principal
3. despues haga commit en el principal y push hacia el principal, todos estaran al dia
``` bash
git fetch
git pull
git submodule init && git submodule update --rebase
git submodule foreach git checkout master
git submodule foreach git pull
editor archivo.nuevo # (o abres el geany aqui y trabajas)
git add <archivo.nuevo> # agregas este archivo nuevo cambiado en geany al repo para acometer
git commit -a -m 'actualizado el repo adicionado <archivo.nuevo> modificaciones'
git push
```
En la sucesion de comandos se trajo todo trabajo realizado en los submodulos y actualiza "su marca" en el principal,
despues que tiene todo a lo ultimo se editar un archivo nuevo y se acomete
**NOTA** Geany debe tener los plugins addons y filetree cargados y activados