Desarrollo de Sage Como modificar y mejorar el programa. Miguel Angel Marco Buzunariz Jarandilla de la Vera 1 de Junio de 2014



Documentos relacionados
CALCULAR NOTAS CON EXCEL

Qué es un sistema de control de versiones y cómo afecta directamente en vuestra felicidad?

SIMPLESFONDOS. Contenido

GIT Dinahosting 3. Hola!

5.1. Organizar los roles

Aparece una ventana interactiva que nos permite ver una presentación preliminar del aspecto que tendrá un gráfico al generarlo.

Instructivo para descarga del código fuente

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Solución de No conformidades

INGRID Gestión geográfica de activos urbanos y mantenimiento

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

GUÍA DEL ALUMNO. 1.- Estructura y contenido de la página web. 2.- Cómo usar esta página web. 3.- Contenidos. 4.- Metodología didáctica.

Portafirmas. Manual de Actualización. Versión: INS005 Fecha: 11/07/2011. Versión 2.3.0

Gestión de proyectos

Cómo instalar el software de CRM Personas en un alojamiento web remoto

Cátedra de Cardiología

CONTROL DE ASISTENCIA DE PERSONAL

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

RESPUESTA A PREGUNTAS INFORMÁTICAS FRECUENTES.

Operación 8 Claves para la ISO

Procedimiento de Paso a Producción de un Sistema Existente

TRABAJO DE TEORÍA VOLUNTARIO

Problemas y ventajas de medir con BIM

Novell Vibe 4.0. Marzo de Inicio rápido. Inicio de Novell Vibe. Introducción a la interfaz de Novell Vibe y sus funciones

SESIÓN 6 INTRODUCCIÓN A WORD.

BALANCED SCORECARD. Creación de Tableros Tablero de Indicadores. Cartilla I

Introducción. Qué lo disfruten!!

Un solo pueblo. Trabajamos por tareas?

Curso de Doctorado: Tecnologías de Objetos

CÓMO CREAR NUESTRO CATÁLOGO

ESCUELA DE ADMINISTRACIÓN

Guía de Plantillas de Word

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

MANUAL DE MI MAQUINA DE APRENDER INGLES

Enginyeria del Software III ( ) CONTROL DE VERSIONES CON SUBVERSION. Roberto García Despatx EPS 3.15

Manual del Profesor Campus Virtual UNIVO

OBJETIVO: Introducción al editor de páginas web Macromedia Dreamweaver.

5.9. GESTION DINÁMICA DE LAS EXISTENCIAS

TEMA 5: HOJAS DE CÁLCULO. Edición de hojas de cálculo con OpenOffice Calc

SEGUIMIENTO EDUCATIVO. Comunicaciones

Squipy v Introducción

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

PROGRAMA INFORMÁTICO PARA LA CUMPLIMENTACIÓN DE RECETAS EN FORMATO XML VERSIÓN: 1.0

POLITICA DE COOKIES. 1. Al abrir el navegador, pulsa herramientas en la parte superior y selecciona la pestaña de opciones.

Generalidades. Una vez que tenga una cuenta, inicie sesión en el sitio de la revista y seleccione la función Autor.

Educación Tributaria y Formación Ciudadana

COMPARTIR RECURSOS. Pag. 1 de 7

PARKING ZONE v1.8 MANUAL DEL USUARIO

LECCIÓN 10 DASHBOARD. Cómo añadir Gráficos al Dashboard?

Pulsamos en el paso 1 Comprobar conexión, nos aparecerá la ventana de configuración dosde debemos completar las tres pestañas

Gestión de centros educativos online

**NOTA** las partes tachadas todavía no están escritas, se ira actualizando poco a poco el documento

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

MANUAL DE USUARIOS DEL MODULO DE EVALUACIÓN DE DESEMPEÑO SISTEMA DE ADMINISTRACIÓN DE SERVIDORES PÚBLICOS (SASP)

GOOGLE DRIVE GERENCIA DE TECNOLOGIA

Manejando pólizas dinámicas con Aspel-COI 7.0

Servicio de groupware

Las 10 preguntas clave sobre la implantación del Cuadro de Mando Luis Muñiz Economista y Consultor de empresas

PREPARANDO EL ENTORNO DE DESARROLLO PARA PROGRAMAR EN PHP. DESCARGAR E INSTALAR NOTEPAD++ (CU00808B)

FLICKR Flickr y sus Herramientas

ÉSTE DOCUMENTO SUFRIÓ UN CAMBIO SIGNIFICATIVO

Guía de integración de servicios WMS en diferentes aplicaciones

Control de Calidad en Desarollo y Implementaciones del FlexiCadastre. Renan Debarry Business Analyst Jr.

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

Git. Introduccion a Git: Un Sistema de control de versiones. ...bien hecho. Gabriel Saldaña gabriel@gabrielsaldana.org

ARCHIVOS ONEDRIVE OFFICE 365 MANUAL DE USUARIO ARCHIVOS ONEDRIVE OFFICE 365 MANUAL DE USUARIO

Manual de usuario del Directorio Activo

MANUAL DE CÓMO REALIZAR ANEXOS A LAS FACTURAS DE TRATAMIENTO DE PRÓTESIS

Curso Auditor Interno Calidad

TUTORIAL SOBRE EL MANEJO DE LA OFICINA VIRTUAL PARA LA REMISIÓN DE INFORMES DE DOCENCIA VIRTUAL VÍA ADMINISTRACIÓN ELECTRÓNICA

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios. Álgebra y Matemática Discreta Sesión de Prácticas 1

Plataforma HELVIA. Organización hardware de un centro TIC Plataformas : Estructura de la Plataforma Helvia. SÉNECA Averroes PASEN HELVIA

Recursos de Aprendizaje

MANEJANDO FICHEROS Y CARPETAS

GUÍA PGA SISTEMA EXTRANJERO

Control y Gestión de Notas de Gasto Documentación Técnico Comercial

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

Tutorial de PowerPoint

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Modelo de actualización y soporte

CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES, BILIB RECETA TECNOLÓGICA REALIZACIÓN DE COPIAS DE SEGURIDAD CON GSYNC

INSTRUCCIONES PARA LA SOLICITUD ONLINE DE LOS ESTUDIANTES LLP/ERASMUS EN EL MARCO DEL PROGRAMA LLP/ERASMUS DE LA UE

CENTRAL VIRTUAL IPLAN

En qué Momento se debe Instalar una Empresa? Cuál es el Proceso para Instalar la Primera Empresa?

CCONSIDERACIONES GENERALES EN JOOMLA!

1 El plan de contingencia. Seguimiento

El Auditor y la organización

Cómo instalar Google Analytics en tu sitio web

CORREO WEB DE CNICE (Centro Nacional de Información y Comunicación Educativa)

Una prueba de concepto con Git Essentials. Introducción

Sitios remotos. Configurar un Sitio Remoto

CAMPUS VIRTUAL PALMAACTIVA GUÍA DEL ALUMNO. cursosonline.palmaactiva.com

Unidad 9. Entornos de Desarrollo

Actualización de los equipos

Manual Impress Impress Impress Impress Impress Draw Impress Impress

Sistema Control. Administrativo Contable 2012.

Capítulo 11. Conclusiones y trabajo futuro

Tema 12 Control de versiones

Transcripción:

Desarrollo de Sage Como modificar y mejorar el programa Miguel Angel Marco Buzunariz Jarandilla de la Vera 1 de Junio de 2014

Más información http://www.sagemath.org/doc/developer/ https://groups.google.com/forum/#!forum/sage-devel

Corregir fallos. Por qué?

Por qué? Corregir fallos. Introducir nuevas funcionalidades.

Por qué? Corregir fallos. Introducir nuevas funcionalidades. Adaptarlo mejor a nuestras necesidades.

Por qué? Corregir fallos. Introducir nuevas funcionalidades. Adaptarlo mejor a nuestras necesidades. Poner a España en el mapa.

La forma más sencilla Localizar el archivo donde está la función a editar sage: funcion??

La forma más sencilla Localizar el archivo donde está la función a editar sage: funcion?? Entrar en el directorio donde está instalado Sage: $ cd sage

La forma más sencilla Localizar el archivo donde está la función a editar sage: funcion?? Entrar en el directorio donde está instalado Sage: $ cd sage Crear una nueva rama. $ git branch nombrerama

La forma más sencilla Localizar el archivo donde está la función a editar sage: funcion?? Entrar en el directorio donde está instalado Sage: $ cd sage Crear una nueva rama. $ git branch nombrerama Modificar los archivos en src/sage/

La forma más sencilla Localizar el archivo donde está la función a editar sage: funcion?? Entrar en el directorio donde está instalado Sage: $ cd sage Crear una nueva rama. $ git branch nombrerama Modificar los archivos en src/sage/ Compilar $ sage -b

Testear Si modificamos una parte de Sage, podemos estar afectando a otras partes que la usan. Para eso, hay unos tests automáticos: Para comprobar un archivo: $ sage -t src/sage... Para comprobarlos todos: $ sage -testall (tarda mucho)

Posibles fuentes de error Los archivos que editamos son archivos python, así que hay que tener cuidado con: Los enteros son int, no Integer. En particular, la división / es el cociente entero. La potencia no es ^ sino ** Hay que cargar módulos que ya están precargados en Sage.

Documentar Escribir una buena documentación en el código es importante porque: Ayuda a escribir buen código (fácil de mantener, y sin errores).

Documentar Escribir una buena documentación en el código es importante porque: Ayuda a escribir buen código (fácil de mantener, y sin errores). La documentación de Sage se genera automáticamente a partir de la documentación en el código.

Documentar Escribir una buena documentación en el código es importante porque: Ayuda a escribir buen código (fácil de mantener, y sin errores). La documentación de Sage se genera automáticamente a partir de la documentación en el código. Los tests automatizados se generan a partir de la documentación en el código.

Documentar Entre """ justo después de la definición de la función.

Documentar Entre """ justo después de la definición de la función. Debe contener: Descripción de lo que hace la función.

Documentar Entre """ justo después de la definición de la función. Debe contener: Descripción de lo que hace la función. Entrada y salida.

Documentar Entre """ justo después de la definición de la función. Debe contener: Descripción de lo que hace la función. Entrada y salida. Ejemplos (tests). Van después de :: con un nivel de sangrado extra.

Documentar Entre """ justo después de la definición de la función. Debe contener: Descripción de lo que hace la función. Entrada y salida. Ejemplos (tests). Van después de :: con un nivel de sangrado extra. Si modificamos algo, hay que añadir un ejemplo en el que se vea el nuevo comportamiento.

Gestionar ramas Cada rama es un conjunto de commits. Crear una nueva rama: $ git branch nombrerama

Gestionar ramas Cada rama es un conjunto de commits. Crear una nueva rama: $ git branch nombrerama Crear un nuevo commit: $ git commit -a

Gestionar ramas Cada rama es un conjunto de commits. Crear una nueva rama: $ git branch nombrerama Crear un nuevo commit: $ git commit -a Cambiar al último commit de una rama: $ git checkout nombrerama

Gestionar ramas Cada rama es un conjunto de commits. Crear una nueva rama: $ git branch nombrerama Crear un nuevo commit: $ git commit -a Cambiar al último commit de una rama: $ git checkout nombrerama Cambiar a un commit intermedio de una rama: $ git checkout hash

Gestionar ramas Cada rama es un conjunto de commits. Crear una nueva rama: $ git branch nombrerama Crear un nuevo commit: $ git commit -a Cambiar al último commit de una rama: $ git checkout nombrerama Cambiar a un commit intermedio de una rama: $ git checkout hash Ver el historial de commits: $ git log

Gestionar ramas Crear una nueva rama: $ git branch nombrerama Crear un nuevo commit: $ git commit -a Cambiar al último commit de una rama: $ git checkout nombrerama Cambiar a un commit intermedio de una rama: $ git checkout hash Ver el historial de commits: $ git log Mezclar ramas: $ git merge rama

El servidor trac.sagemath.org Es donde se gestionan los bugs.

El servidor trac.sagemath.org Es donde se gestionan los bugs. Se abre un ticket para cada bug/adición.

El servidor trac.sagemath.org Es donde se gestionan los bugs. Se abre un ticket para cada bug/adición. Crea una rama en el servidor remoto.

El servidor trac.sagemath.org Es donde se gestionan los bugs. Se abre un ticket para cada bug/adición. Crea una rama en el servidor remoto. Se pueden sincronizar esas ramas con el repositorio local.

Los scripts de desarrollo Sirven para automatizar la interacción con el servidor trac.

Los scripts de desarrollo Sirven para automatizar la interacción con el servidor trac. En realidad automatizan tareas que se pueden hacer con git.

Los scripts de desarrollo Sirven para automatizar la interacción con el servidor trac. En realidad automatizan tareas que se pueden hacer con git. Bajarse la rama de un ticket: $ sage -dev checkout --ticket 1234

Los scripts de desarrollo Sirven para automatizar la interacción con el servidor trac. En realidad automatizan tareas que se pueden hacer con git. Bajarse la rama de un ticket: $ sage -dev checkout --ticket 1234 Subir un commit al ticket: $ sage -dev push

Los scripts de desarrollo En realidad automatizan tareas que se pueden hacer con git. Bajarse la rama de un ticket: $ sage -dev checkout --ticket 1234 Subir un commit al ticket: $ sage -dev push Bajarse cambios hechos por otros: $ sage -dev pull

El proceso de aceptación Abrir un ticket.

El proceso de aceptación Abrir un ticket. Hacer los cambios pertinentes.

El proceso de aceptación Abrir un ticket. Hacer los cambios pertinentes. Una segunda persona (al menos) debe revisarlo.

El proceso de aceptación Abrir un ticket. Hacer los cambios pertinentes. Una segunda persona (al menos) debe revisarlo. Después de una (o varias) revisiones, se acepta.

El proceso de aceptación Abrir un ticket. Hacer los cambios pertinentes. Una segunda persona (al menos) debe revisarlo. Después de una (o varias) revisiones, se acepta. Una vez tiene una revisión positiva, el responsable de una versión lo incluye en la rama principal y cierra el ticket.

MUCHAS GRACIAS!