devs/README.md
Mauro Rosero P. e3dc9c90b7
[DOCS] Actualizar README con información sobre rate_update.py y cocomo.py
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-03-12 14:18:56 -05:00

264 lines
No EOL
8.4 KiB
Markdown

# MRDevs Tools
<p align="center">
<img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg" alt="License: AGPL-3.0">
<img src="https://img.shields.io/badge/version-1.0.0-green.svg" alt="Version: 1.0.0">
</p>
## 📋 Descripción
MRDevs Tools es un conjunto integral de herramientas para entornos de desarrollo que facilita la instalación, configuración y gestión de aplicaciones y servicios en múltiples sistemas operativos. Diseñado para aumentar la productividad de los desarrolladores, este toolkit automatiza tareas repetitivas y estandariza entornos de desarrollo.
## 🚀 Inicio Rápido
### Requisitos Previos
- Git instalado en su sistema
- Permisos de administrador (para algunas operaciones)
- Conexión a Internet
### Instalación
```bash
# Clonar el repositorio
cd $HOME
git clone https://git.rosero.one/mrosero/devs.git
# Instalar herramientas básicas
cd $HOME/devs
bin/bootstrap.sh
# Actualizar el entorno (opcional)
bin/update.sh
```
## 🔧 Funcionalidades Principales
### Gestión del Entorno de Desarrollo
| Comando | Descripción |
|---------|-------------|
| `bin/bootstrap.sh` | Instala herramientas básicas y configura la gestión de contenedores |
| `bin/update.sh` | Actualiza el entorno de desarrollo con las últimas funcionalidades |
| `bin/npm_install.sh` | Instala NodeJS y npm de forma interactiva |
### Herramientas de IA y Productividad
| Comando | Descripción |
|---------|-------------|
| `bin/cortana_install.sh` | Instala Claude Code CLI (Cortana) |
| `bin/cortana_install.sh -u` | Desinstala Claude Code CLI |
| `bin/cortana_token.sh` | Gestiona la encriptación del token de Cortana vía SOPS |
| `bin/cortana_alias.sh` | Configura alias de línea de comandos para Cortana |
| `bin/cortana_enable.sh` | Activa el uso de Cortana |
| `bin/cortana_disable.sh` | Desactiva temporalmente Cortana |
### Herramientas para Editores de Código
| Comando | Descripción |
|---------|-------------|
| `bin/helix_install.sh` | Instala Helix Editor con soporte multiplataforma (apt, snap, pacman, etc.) |
### Seguridad y Acceso
| Comando | Descripción |
|---------|-------------|
| `bin/vpn_install.sh` | Instala el cliente Pritunl VPN |
| `bin/vpn_install.sh --update` | Actualiza el cliente VPN a la última versión |
| `bin/vpn_users.sh` | Gestiona usuarios de la VPN |
| `bin/gpg_init.sh` | Inicializa configuración GPG para cifrado seguro |
### Gestión de Perfiles
| Comando | Descripción |
|---------|-------------|
| `bin/profile_backup.sh` | Realiza copia de seguridad del perfil del desarrollador |
| `bin/profile_restore.sh <archivo>` | Restaura perfil desde copia de seguridad |
### Desarrollo Especializado
| Comando | Descripción |
|---------|-------------|
| `bin/odoo_set.sh` | Crea un nuevo proyecto Odoo con estructura completa |
| `bin/rate_update.py` | Actualiza tarifas por hora de diferentes tipos de programadores |
| `bin/cocomo.py` | Calcula costos de proyecto usando el modelo COCOMO |
## 📚 Guía de Usuario
### Preparación del Entorno
El directorio `$HOME/devs` sirve como área principal de desarrollo donde se gestionan diversos ambientes y proyectos. Por razones de seguridad, se prioriza [podman](https://podman.io/) sobre [docker](https://www.docker.com/) como gestor de contenedores.
Si desea usar Docker en lugar de Podman, debe instalarlo manualmente antes de ejecutar `bootstrap.sh`.
### Configuración de Claude Code (Cortana)
MRDevs Tools facilita el trabajo con herramientas de IA como Claude Code CLI:
```bash
# Instalación
bin/cortana_install.sh
# Gestión del token de forma segura
bin/cortana_token.sh
# Crear alias para facilitar su uso
bin/cortana_alias.sh
# Habilitar uso de Cortana
bin/cortana_enable.sh
# Deshabilitar temporalmente Cortana
bin/cortana_disable.sh
```
El token se encripta usando SOPS y se almacena de forma segura en `$HOME/.cortana/cortana.sops.yaml`.
La configuración de proyectos se almacena en `bin/config/projects.dat`, donde se encuentra el nombre de la carpeta de proyectos utilizada por el sistema.
### Instalación de Helix Editor
Helix es un editor de código moderno similar a Vim/Neovim pero con una curva de aprendizaje más amigable:
```bash
# Instalación automatizada
bin/helix_install.sh
```
El script detecta automáticamente tu sistema operativo y utiliza el método de instalación más adecuado:
- En Ubuntu: Instala mediante snap para obtener la versión más reciente
- En Arch Linux: Utiliza pacman
- En Fedora: Instala a través de dnf
- En otros sistemas: Descarga e instala desde el tarball oficial
### Copias de Seguridad
Para respaldar configuraciones importantes:
```bash
bin/profile_backup.sh
```
Esto crea un archivo ZIP en `$HOME/secure/backups`. La carpeta puede contener múltiples archivos de respaldo con un archivo `gpg.secret` que contiene la contraseña encriptada. La pérdida de este archivo imposibilitará la restauración.
Para restaurar:
```bash
bin/profile_restore.sh <archivo-zip-backup>
```
### Desarrollo con Odoo
MRDevs Tools facilita el desarrollo de proyectos Odoo con el script especializado:
```bash
# Crear un nuevo proyecto Odoo
bin/odoo_set.sh
```
El script `odoo_set.sh` crea automáticamente una estructura completa para un proyecto Odoo:
- Estructura de carpetas (addons, build, settings, data, scripts, etc.)
- Archivos de configuración iniciales (Dockerfile, docker-compose.yml)
- Scripts de utilidad para el desarrollo
- Marca el proyecto con el archivo `.typset` para identificarlo como proyecto Odoo
Para iniciar el entorno Odoo después de la creación:
```bash
cd [ruta-al-proyecto]
./scripts/start.sh
```
### Gestión de Tarifas y Costos
MRDevs Tools incluye utilidades para la gestión de tarifas y estimación de costos:
#### Actualización de Tarifas
El script `rate_update.py` permite mantener actualizadas las tarifas por hora de diferentes tipos de programadores:
```bash
# Actualizar tarifas faltantes
bin/rate_update.py
# Listar todas las tarifas disponibles
bin/rate_update.py --list
# Actualizar la tarifa de un tipo específico de programador
bin/rate_update.py --type python
# Actualizar todas las tarifas, incluso las existentes
bin/rate_update.py --init
```
Las tarifas se almacenan en archivos individuales dentro de `bin/config/rates/` y pueden ser utilizadas por otras herramientas.
#### Estimación de Costos con COCOMO
El script `cocomo.py` implementa el modelo COCOMO para estimar costos de proyectos de software basados en las líneas de código:
```bash
# Calcular costo de un proyecto
bin/cocomo.py --project /ruta/al/proyecto
# Usar un tipo específico de programador para los costos
bin/cocomo.py --project /ruta/al/proyecto --type devops
# Especificar un modelo COCOMO específico
bin/cocomo.py --project /ruta/al/proyecto --model embedded
# Ignorar patrones adicionales de archivos
bin/cocomo.py --project /ruta/al/proyecto --ignore "*.generated.js" --ignore "vendor/**"
```
El script analizará el código fuente, contará las líneas efectivas, y calculará estimaciones de esfuerzo, tiempo y costos utilizando las tarifas por hora configuradas.
## 🔌 Arquitectura del Sistema
### Estructura de Directorios
```
bin/
├── lib/ # Bibliotecas compartidas
├── msg/ # Archivos de mensajes multilingües
├── config/ # Configuraciones y parámetros
└── ansible/ # Recursos para automatización
```
### Componentes Principales
- **Bibliotecas Base**: Conjunto de funciones reutilizables (`base.lib`, `bootstrap.lib`, etc.)
- **Sistema de Mensajes**: Soporte multilingüe para internacionalización
- **Gestión de Configuración**: Archivos de configuración centralizados
- **Herramientas de Automatización**: Scripts y playbooks de Ansible
## 💻 Compatibilidad
El proyecto está diseñado para funcionar en múltiples sistemas operativos:
- Ubuntu/Debian (apt)
- Red Hat/Fedora (dnf/yum)
- Arch Linux (pacman)
- BSD (pkg)
- macOS (brew)
## 🤝 Contribución
Para contribuir al proyecto:
1. Asegúrese de seguir las convenciones de codificación
2. Use los mensajes de commit con prefijos estándar: [ADDED], [IMPROVED], [FIXED], [SOPS]
3. Documente cualquier nueva funcionalidad añadida
## 📄 Licencia
Este proyecto está licenciado bajo la Licencia Pública General Affero (AGPL) - vea el archivo LICENSE para más detalles.
## 📞 Soporte
Para dudas o problemas, contacte con:
- Email: mauro@rosero.one
- Web: https://rosero.one
---
**MRDevs Tools** - Simplificando el entorno de desarrollo © 2025 Mauro Rosero P.