Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como liberar código para que la comunidad lo mejore? (https://www.clubdelphi.com/foros/showthread.php?t=70550)

AzidRain 27-10-2010 15:45:01

¿Como liberar código para que la comunidad lo mejore?
 
Como parte de un desarrollo de hace mas o menos un año, aquí en la empresa hicimos un miniframework para manejar el ya clásico formato de "catálogos" y CRUD. Es algo sencillo pero nos resulta muy útil pues permite hacer la ventana donde se listan los registros y controlar las ventadas para edición e inserción. Al principio empezamos con un enfoque OOP pero por cuestiones de tiempo se terminó no completamente en ese estilo. No es el hilo negro ni el non plus ultra, es algo muy humilde pero al menos a nosotros nos ha servido bastante.

El framework consta de:
Controlador (que realiza las operaciones en las tablas)
Clase Ventana genérica para mostrar el listado y sus botones CRUD, de esta clase derivamos la que vayamos a utilizar de manera que si cambiamos la clase base en automático cambiamos todas las que ocupemos.
Clase Ventana genérica para hacer las ediciones e inserciones. Mismo caso de la clase anterior.

Si sigue uno la secuencia correcta se puede realizar un catálogo en una hora o menos. Muy útil cuando se utilizan gran cantidad de ellos.

Lo que quiero saber es qué necesito para liberarlo con alguna licencia de manera que otras personas no solo lo utilicen sino que ayuden a mejorarlo y extenderlo ya que obviamente puede mejorarse mucho. Lo que no me gustaría es que se quedara tal cual ya que contiene algunas chapuzas que por tiempo no hemos "enchulado".

Otra duda es que como utilizamods DevExpress utiliza casi exclusivamente controles de la biblioteca Quantumgrid pero se pueden cambiar perfectamente por otros controles libres.

Finalmente, quiero saber si es necesario hacer mucha documentación o solo con liberarlo con lo que tengo (muy poco) documentado basta, claro apoyando con explicaciones de las dudas que pudieran surgir.

Gracias por sus comentarios

Casimiro Notevi 27-10-2010 18:31:18

Deberás elegir una licencia, para empezar. Y si usas cualquier licencia libre entonces no puede llevar nada de devexpres, evidentemente, tendrías que quitarlo antes.
Luego sólo necesitas añadir el ficherito de texto con la licencia, algún texto explicando cómo se instala y cómo se usa y poco más.

Al González 27-10-2010 20:02:30

Si decides liberarlo como software libre, César, te recomiendo la licencia BSD (la versión moderna, claro); esa será con la que liberaré GH Freebrary y Magia Data. Y para alojar los archivos optaré por BerliOS. Descartando a SourceForge, que como sabemos está obligado a obedecer absurdas restricciones políticas (Cuba, Irán, etc.), el sitio alemán (Europa al fin) me parece uno de los espacios más adecuados para subir software libre. BerliOS cuenta ya con varios miles de proyectos, pero claro, hay muchas más opciones.

Cita:

Empezado por Casimiro Notevi (Mensaje 380598)
Y si usas cualquier licencia libre entonces no puede llevar nada de devexpres, evidentemente, tendrías que quitarlo antes.

En eso discrepo, Antonio. No creo que haya problema en que una biblioteca de licencia libre lleve referencias a una biblioteca de licencia propietaria (ZeosLib y miles otras no existirían). Claro, César tendrá que evitar incluir en la distribución cualquier archivo de Developer Express que no sea libre, pero puede perfectamente declarar cláusulas Uses, propiedades, componentes, clases derivadas, etc. que hagan referencia a elementos de DevExpress.

El inconveniente con esto es para quien descargue la biblioteca y quiera usarla sin hacerle mayores cambios, pues tendrá que contar con DevExpress también para que pueda compilar.

Por otro lado, puede que sea un paso interesante hacer abstracta la parte de DevExpress (ya sea por parte del propio autor original o de los compañeros de la comunidad), para que la biblioteca sea útil incluso ante la ausencia de esos componentes. :)

Un abrazo libre.

Al González.

AzidRain 27-10-2010 20:16:51

De hecho estoy en cambiar las referencias a Devexpress para que quede solo código nativo en Delphi. No hay clases derivadas de Devexpress ni nada, tan solo componentes que tienen sus equivalentes, concretamente TButton y TDBGrid. No requieren instalación porque no son componentes ya que como comentaba son es una forma de hacer algo rápido. Ya meterse con componentes y demás es invertirle demasiado tiempo que esta industria de "a la medida" es lo mas escaso. Olvide comentar que para conexiones de datos uso Zeos aunque la unidades que ocupo no hacen referencia a él por lo que no creo que haya problema.


En estos días hago una version sin nada ajeno a ver como la ven y ahi platicamos, porque creo que si vale la pena, sobre todo para quien está iniciando.

Saludos y gracias

maeyanes 27-10-2010 20:27:03

Hola...

Yo propondría que uses Mercurial como el administrador de versiones de código fuente. Una de sus ventajas es que es distribuido.

Para una referencia rápida te recomiendo este pequeño tutorial: hg init.

Claro, para esto el proveedor de hospedaje del proyecto tendría que soportar Mercurial (hg).

También existe una herramienta de la "familia" Tortoise: TortoiseHG



Saludos...

Casimiro Notevi 27-10-2010 20:46:26

Cita:

Empezado por Al González (Mensaje 380613)
[..] El inconveniente con esto es para quien descargue la biblioteca y quiera usarla sin hacerle mayores cambios, pues tendrá que contar con DevExpress también para que pueda compilar. [..]

Para que sea libre debe contar con TODO el código fuente. Si tiene que hacer uso de una biblioteca devexpress (privada, cerrada y sin código fuente) entonces quedaría un "engendro raro", ¿no crees?

Al González 27-10-2010 21:14:51

César, con "componentes" me refería más que nada a los que agregas al formulario y que quedan declarados como campos en la clase del mismo; lo normal, pues. :)

Cita:

Empezado por Casimiro Notevi (Mensaje 380621)
Para que sea libre debe contar con TODO el código fuente. Si tiene que hacer uso de una biblioteca devexpress (privada, cerrada y sin código fuente) entonces quedaría un "engendro raro", ¿no crees?

Bueno, para empezar los DevExpress, que yo sepa, siempre vienen con el código fuente incluido.

Ahora, respecto a eso de "TODO", pues es muy relativo, Antonio. Imagina que ZeosLib o alguna otra biblioteca similar para Delphi no pueda ser distribuida por no incluir el código fuente de la VCL, biblioteca de la cual dependen.

Entiendo que las dependencias pueden ser nativas o de terceros, y que muchas veces se prefiere que no haya de las segundas, pero el tipo de dependencias no condicionan que el software que las tiene pueda ser libre o no (al menos no hay restricción al respecto con la licencia BSD y muchas otras). :)

roman 27-10-2010 21:15:37

No veo por qué, Casimiro. Pensemos, por ejemplo, en unos componentes como ZEOS. Son software libre, pero, como es obvio, requieren el privativo Delphi para compilar. El proyecto de Azid en sí, también requiere Delphi.

Yo creo que si nos ponemos más papistas que el papa, pues ¿qué hacemos utilizando delphi, que, además, compila ejecutables para windows?

// Saludos

Casimiro Notevi 27-10-2010 21:23:41

Perdón, es que estoy con la cabeza en otro sitio y no había leído bien lo expuesto por AzidRain :o

AzidRain 27-10-2010 21:51:17

Creo que Zeos también funcionan en Lazarus por ejemplo (creo que vienen de "fábrica"), la cosa es que la idea se extendida por otros y con aportaciones se pueda hacer algo más potente sobre todo pensando no en "lo bonito" sino en practicidad y rapidez para hacer cosas que en todo proyecto se repiten una y otra y otra vez.

Casimiro Notevi 27-10-2010 22:23:42

Cita:

Empezado por AzidRain (Mensaje 380642)
Creo que Zeos también funcionan en Lazarus[..]

Sí, yo los tengo instalado en lazarus (ubuntu)


La franja horaria es GMT +2. Ahora son las 00:37:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi