[GLKM] Documentación y definición
Para que un proyecto software se lleve a cabo siempre van a hacer falta los mismos pasos. Quizás, según la experiencia o profesionalidad del equipo que lo lleve a cabo, se puedan omitir algunos pasos.
Los primeros pasos van encaminados a encontrar un problema a solucionar. A buscar una necesidad que necesita ser resuelta.
Es decir, lo que hay que hacer es definir que va a hacer el proyecto.
Otra parte que se da es la de documentación. Porque casi siempre que llevas a cabo un proyecto vas a necesitar saber cosas que desconoces. Tienes que
Ojo, muy importante, en el software, como en la vida, estamos sometidos continuamente a cambios, nuestros o del entorno y tienen una incidencia importantísima en el proyecto.
De nuevo, quiero decir que llevar a cabo un proyecto software no es lineal. No es:
- escabar
- cimientos
- cemento
- ladrillo
- tubos
- luz
- ventanas
- puertas
- …
Se trata de:
- Documentarse. Adquirir conocimientos que no posees
- Definir funcionalidades
- Planificar proyecto
- Diseñar
- Implementar
- Probar
- Documentar. Que consiste en describir lo que estas haciendo.
Y cualquiera de estas directrices se puede tener que realizar, y se realizan, en mayor o menor medida, en cualquier momento del proyecto.
Concretamente estoy en fase de documentación desde hace unos cuantos meses ya. Pero es que me es muy fácil esparcirme y de repente ponerme a hacer otra cosa. Lo que se llama falta de concentración (o motivación, ni yo lo se).
Me estoy documentando para ver cómo se escriben interfaces gráficos usando las librerías GTK/GNOME. Además estoy intentado usar un IDE para GNOME llamado anjuta, pero entre que estoy usando la versión que esta en fase de desarrollo (y falla) y que no se manejarlo muy bien, me está costando. Es que no me apetece escribirlo yo todo.
Además me facilita el código para poder hacer la aplicación fácilmente traducible a cualquier idioma.
También me estoy leyendo un manual de C++, que casi no me acordaba de la última vez, a parte de que estoy aprendiendo cosas sobre las que no tenía ni idea de su existencia.
A la vez que me documento (y me disperso), me he ido informando de las herramientas con similares cometidos que ya existen, para ver que me podían aportar cada una de ellas.
Según sabía y descubría más o menos que quería hacer e ido indagando que cosas podía o no usar. Por ejemplo, si usar DBUS para comunicar ciertos eventos. Por ejemplo, si permitir trabajo en red.
Algunas de las características las busco porque un proyecto fin de carrera requiere manejar distintas tecnologías (o debería).
Por otra parte busco que las tecnologías del proyecto encajen y tengan sentido en el programa de forma que lo hagan más usable y útil.
Como veis todo este X se encuentra bajo que yo llamo el caos ordenado o el orden caótico. Muchas ideas y actividades aparentemente inconexas pero a su vez interrelacionadas y que se respetan mucho.
Etiquetas: glkm, Informática, profesional, ProyectosProyecto Fin de Carrera: Gnome Linux Kernel Monitor (GLKM)
Con esta entrada anuncio el lanzamiento público del que va a ser mi proyecto Fin de Carrera.
El título es provisional.
Muchos estaban deseando obtener información sobre él. Pues ahora lo vais a poder seguir de cerca.
En las últimas dos semanas he estado configurando la página web y algunos de los servicios necesarios para tener en marcha la infraestructura mínima necesaria para llevar a cabo un proyecto de software libre.
De acuerdo con mi tutor no habría problema en que hiciera todo esto.
Lo que he hecho en concreto ha sido instalar y configurar un software para web que suministra herramientas muy útiles para el desarrollo de un proyecto software. En concreto trac, muy usado en proyectos de software libre.
Trac incluye wiki, navegador de código fuente, gestor de tickets. Además permite extender sus funcionalidades mediante un sistema de plugins.
Con el wiki puedo crear páginas web con la información que crea necesaria.
Con el navegador de código permito a cualquiera ojear el desarrollo del código fuente.
El gestor de tickets es una idea sencillamente genial. En base a esto puedes reportar fallos (bugs) y sugerir funcionalidades (features). Mezclando un poco todo esto puedes seguir cuánto falta para alcanzar cierta meta del proyecto (Roadmap).
El apartado de evolución (Timeline) también es muy útil porque en base a todo (repositorio de código, edición de wiki, gestión de tickets) puedes ver toda la evolución que tiene el proyecto. Es información útil para un desarrollador, para un aquel que no le interesen esto detalles iré narrando en la bitácora la evolución de todo.
La única cosa que me falta para cubrir todos los aspectos de un proyecto de software libre es una lista de correo o foro, pero cómo de momento el único desarrollador voy a ser yo, lo dejo para más adelante. El tiempo dirá.
Lo podéis seguir todo desde:
Etiquetas: glkm, Informática, profesional, ProyectosSubversion Server. Howto
Here you can find how to prepare a subversion repository and its integration with Apache 2.
You need apache with webDAV to access repository content using HTTP or HTTPS protocol. If you prefer not to use apache, then you should use svnserve (prefered in daemon mode). This will mean using svn protocol.
Be careful with firewalls (see ahead).
And, of course, always better with Debian.
Subversion for repository administrators (using Apache 2)
In order to create a repository you need to follow these steps (do it in a root shell).
Install the needed packages:
- apache2
- subversion
- libapache2-svn
Add next rules to your host in Apache 2. In Debian a mostly equal config (that you should modify) exists under /etc/apache2/mods-available/dav_svn.conf
Configuration sniplet:
< Location /svn>
# Uncomment this to enable the repository,
DAV svn
# Set this to the path to your repository
# SVNPath /var/lib/svn
# SVNParentPath /var/lib/svn/repository
SVNPath /var/lib/svn/repository
# The following allows for basic HTTP authentication. Basic authentication
# should not be considered secure for any particularly rigorous definition of
# secure.
# to create a passwd file
# # rm -f /etc/apache2/dav_svn.passwd
# # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
# New password:
# Re-type new password:
# Adding password for user dwhedon
# #
# http://svnbook.red-bean.com/nightly/en/svn.serverconfig.httpd.html
# configuration for mixed authenticated/anonymous access
Satisfy Any
Require valid-user
# Uncomment the following 3 lines to enable Basic Authentication
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
# Uncomment the following line to enable Authz Authentication
# AuthzSVNAccessFile /etc/apache2/dav_svn.authz
# The following three lines allow anonymous read, but make
# committers authenticate themselves.
< LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
< /LimitExcept>
(Important: Don’t use a DocumentRoot setting for this virtual host!”)
Restart apache with or reload apache configuration without finishing open connections with (prefered)
root@maquine:~ $ /etc/init.d/apache2 reload
or
root@maquine:~ $ apache2ctl graceful (prefered)
Create the repository and create a password file:
root@maquine:~ $ svnadmin create /var/lib/svn/repository
root@maquine:~ $ htpasswd2 -c /etc/subversion/passwd [username]
root@maquine:~ $ chown -R www-data:www-data /home/svn
Don’t forget to make the repository accessible for your web server:
To test it, try accessing it with a browser or try to check out the file:
user@maquine:~ $ lynx http://localhost/svn
user@maquine:~ $ svn co http://server/svn
(You will not be prompted for credentials. That’s normal.)
Worked?
Voila. The repository is set up.
You can check a ready setup in http://www.eldemonionegro.com/svn/.
Subversion for repository administrators (using subversion protocol)
You just need to put on work svn server.
user@maquine:~ $ ls -la /var/lib/svn/
total 1
drwxr-xr-x 4 root www-data 96 2005-06-06 00:45 .
drwxr-xr-x 56 root root 1480 2005-06-03 17:00 ..
drwxr-x— 7 root www-data 224 2003-02-20 00:37 project1
drwxr-x— 7 root www-data 224 2004-11-15 21:23 project2
user@maquine:~ $ svnserve -d -T -r REPOSITORY_DIR (Example 1: /var/lib/svn/project1/ - Example 2: /var/lib/svn/)
(-d: daemon, -T: spawn a thread instead of a process for each connection, -r root: root repository)
Try to check out the file:
user@maquine:~ $ svn co REPOSITORY_URL (Example 1: svn://server/ - Example 2: svn://server/project1/)
Worked?
Voila. The repository is set up.
Subversion for repository users
To checkout (=download) the files in the repository for the very first time run this command::
user@maquine:~ $ svn co http://server/svn
Don’t worry about other people working on the same files. Just do your changes to the files and when you seem to have a stable state (make sure everything works well enough so not everything will break for others) you should check in(=upload) your work:
user@maquine:~ $ svn ci
(Only when committing your changes you will be prompted for your username and password.)
Run the following command regularly to get the changes from other contributors::
user@maquine:~ $ svn update
If you want to add new files to the repository::
user@maquine:~ $ svn add [filename]
To get a status of which files have changed::
user@maquine:~ $ svn stat
Subversion for local repositories
This type of installation is used when you want subversion to track your local files but don’t want/need to put it on a host. You can create a local repository and access it directly. This repository is not password protected and it’s permissions depend on the filesystem’s permissions.
Install the needed packages (as root or with sudo) and create the repository (with your user):
root@maquine:~ $ apt-get install subversion
root@maquine:~ $ svnadmin create /home/joe/repositorie
The URL to your repository is it’s path preceeded with file://. For example to checkout you would do the following:
user@maquine:~ $ svn co file:///home/joe/repositorie
Subversion firewall rules
In order to acces your subversion repository using svn protocol you should reconfigure your firewall or update daemon config.
If you need to access subversion remotely, by default it runs on port 3690 using TCP.
Resources and comments
- Subversion’s Official Homepage
- Online free book: Version Control with Subversion
- http://workaround.org/moin/SubVersion
- subversion quick reference
- Any comments will be welcome.
Original Authors: Christoph Haas, Tiago Cogumbreiro
Modified by: Enrique Garcia
Viewvc (previously viewcvs)
Right now viewcvs is the old version which is available under Debian. I recomend to install the latest viewvc from official website until package gets updated.
For more about it’s history, look up in http://www.viewvc.org/who.html
Instalation is really simple, it’s only complexity resides in the apache 2 configuration. Which is not really well documented and can cause some headache.
Installation
Download here latest stable version from viewvc
I will install everything under /opt because it’s my favourite place (and because it’s standar (LSB rules I think) to put extrange things there).
user@machine:~$ cd /opt
user@machine:~$ wget http://viewvc.tigris.org/files/documents/3330/34803/viewvc-1.0.3.tar.gz
user@machine:~$ tar -xvzf viewvc-1.0.3.tar.gz
user@machine:~$ cd viewvc-1.0.3
user@machine:~$ ./viewvc-install
[will be prompted some easy questions] Answer first /opt and then leave it as it is.
Take a look at INSTALL and README. It’s always good to read this stuff, and doesn’t hurt.
user@machine:~$ emacs /opt/viewvc/viewvc.conf
[main changes I made]
user@machine:~$ diff viewvc.conf ../viewvc-1.0.3/viewvc.conf.dist
72c72
< #cvs_roots = cvs: /home/cvsroot
---
> cvs_roots = cvs: /home/cvsroot
80c80
< svn_roots = svn: /var/lib/svn/repository
---
> #svn_roots = svn: /home/svnrepos
105c105
< default_root = svn
---
> default_root = CVS
138c138
< mime_types_file = /etc/mime.types
---
> #mime_types_file = /usr/local/apache/conf/mime.types
142c142
< address = < a href="mailto:svn-admin@XXX.XXX">Administrador del repositorio Subversion< / a>
—
> address = < a href="mailto:cvs-admin@insert.your.domain.here">No admin address has been configured< / a>
248c248
< languages = es-es, en-us
---
> languages = en-us
391c391
< docroot = /viewvc-doc
--- (LOOK APACHE 2 CONFIG TO EXPLAIN THIS CHANGE)
> #docroot = /docroot
435c435
< use_enscript = 1
---
> use_enscript = 0
445c445
< use_highlight = 1
---
> use_highlight = 0
459c459
< use_php = 1
---
> use_php = 0
473c473
< allow_tar = 1
---
> allow_tar = 0
For coloured syntax I installed next packages. But I am not really sure they are needed.
user@machine:~$ apt-get install highlight enscript
Apache 2 configuration
Here I put my apache 2 configuration for viewvc. I’ve two versions, both of them work. Again I recomend take a take a look at INSTALL and README for answers. One is the version for CGI and the other for mod_python. I’m using mod_python because it’s known to be faster.
CGI
< IfModule !mod_python.c>
< IfModule cgi.c>
# para la instalacion local
ScriptAlias /viewvc /opt/viewvc/bin/cgi/viewvc.cgi
# para el paquete debian
# ScriptAlias /viewsvn /usr/lib/cgi-bin/viewcvs.cgi
< /IfModule>
< /IfModule>
mod_python
< IfModule mod_python.c>
Alias /viewvc-doc “/opt/viewvc/templates/docroot”
ScriptAlias /viewvc /opt/viewvc/bin/mod_python/viewvc.py
< Location /viewvc>
AddHandler python-program .py
# This appends “our path” to python path
PythonPath “['/opt/viewvc/bin/mod_python'] + sys.path”
PythonHandler handler
PythonDebug On
< /Location>
< /IfModule>
Look the result at http://www.eldemonionegro.com/viewvc/
Resources and comments
- viewvc official homepage
- Any comments will be welcome.
Realizar un proyecto de software libre desde 0
Al tiempo de pensar los requisitos que debe seguir un proyecto de software libre se publicó este artículo, que razona y aconseja un poco sobre cada uno de los pasos. The Birth of a FOSS application.
En cualquier caso, yo voy a ir detallando cada paso importante. De forma que este documento lo iré actualizando poco a poco.
- ¿Cómo preparar un servidor de subversion en Debian?
- Configuración de viewvc (antiguo viewcvs) para que cualquiera pueda ver el contenido del repositorio subversion
- Para preparar un trac, seguir la guía para instalar trac en Debian en inglés (también está la guía de trac para Debian traducida al español)
Estos son los resultados para ...
Últimos comentarios