[Cuis] Paquetes en Cuis

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

[Cuis] Paquetes en Cuis

garduino
Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):

Estoy probando algunos esquemas de persistencia simples que sirven para
muchas aplicaciones que no tienen que guardar gran volumen de datos, como
dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra
manera se resuelven con documentos u hojas de cálculo) para lo cual no
hacen falta grandes bases de datos.

Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley
pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir
ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están
tipo los UUID's por ejemplo.

Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en
nada creo.

La duda que me surge es como coordinar después la instalación de todo lo
necesario para que funcione cada cosa y, además, como hacer con los
paquetes que se repiten, es decir que se necesitan en más de uno de los
demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).

¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna
idea al respecto? (A mi lo primero que se me ocurre es hacer algunos
scripts simples que hagan la carga secuencial de lo que se necesita).

Saludos y gracias!

--
============================================
Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
Arduino Software  http://www.arduinosoftware.com
PasswordsPro  http://www.passwordspro.com
greensecure.blogspot.com germanarduino.blogspot.com
============================================
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

sebastianconcept@gmail.co
che no lo anuncié y estoy a full como para hacer un tutorial pero si quieren jugar un poco, publiqué Aggregates

corré esto en un Pharo fresco (no se como va en distros squeak pero no hay razones para pensar que portarlo seria quilombo)

        Gofer it
                squeaksource: 'fs';
                package: 'ConfigurationOfFilesystem';
                load.

        (Smalltalk at: #ConfigurationOfFilesystem) project latestVersion load.

        Gofer it
                squeaksource: 'MetacelloRepository';
                package: 'ConfigurationOfOmniBase';
                load.

        (Smalltalk at: #ConfigurationOfOmniBase) project latestVersion load.

        Gofer new
                squeaksource: 'odb';
                package: 'omnibasePatch';
                package: 'omnibaseExtensions';
                load.

        Gofer new
                squeaksource: 'BTree';
                package: 'Collections-BTree';
                load.

        Gofer new
                url: 'http://ss3.gemstone.com/ss/SASExtensions';
                package: 'FilesystemExtensions';
                load.
               
        Gofer new
                url: 'http://ss3.gemstone.com/ss/Aggregates';
                package: 'Aggregate';
                load.
       
después podés hacer esto en un workspace:
       

        odb := ARODBPool onPath: 'odbTest'.
        odb exists.
       
        "initialize the repo"
        odb commit:[
                odb root at: #storage put: ARStorage new.
                ARDummyPerson indices do:[:anIndex|
                        (odb root at: #storage) addIndex: anIndex]].
       
        guy := ARDummyPerson new firstName: 'tu'; lastName: 'nombre'.

        odb commit:[guy save].
       
        odb readOnly: [ARDummyPerson findAll asArray].

have fun

sebastian

o/





On Nov 22, 2012, at 11:17 AM, Germán Arduino wrote:

> Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
>
> Estoy probando algunos esquemas de persistencia simples que sirven para muchas aplicaciones que no tienen que guardar gran volumen de datos, como dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra manera se resuelven con documentos u hojas de cálculo) para lo cual no hacen falta grandes bases de datos.
>
> Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están tipo los UUID's por ejemplo.
>
> Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en nada creo.
>
> La duda que me surge es como coordinar después la instalación de todo lo necesario para que funcione cada cosa y, además, como hacer con los paquetes que se repiten, es decir que se necesitan en más de uno de los demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
>
> ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna idea al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts simples que hagan la carga secuencial de lo que se necesita).
>
> Saludos y gracias!
>
> --
> ============================================
> Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
> Arduino Software  http://www.arduinosoftware.com
> PasswordsPro  http://www.passwordspro.com
> greensecure.blogspot.com germanarduino.blogspot.com
> ============================================
>

Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

Edgar De Cleene
In reply to this post by garduino
> Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
>
> Estoy probando algunos esquemas de persistencia simples que sirven para muchas
> aplicaciones que no tienen que guardar gran volumen de datos, como dice Ramón
> Leon, hay una gran cantidad de app tipo oficina (que de otra manera se
> resuelven con documentos u hojas de cálculo) para lo cual no hacen falta
> grandes bases de datos.
>
> Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley
> pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir
> ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están tipo
> los UUID's por ejemplo.
>
> Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en
> nada creo.
>
> La duda que me surge es como coordinar después la instalación de todo lo
> necesario para que funcione cada cosa y, además, como hacer con los paquetes
> que se repiten, es decir que se necesitan en más de uno de los demás. Para
> todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
>
> ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna idea
> al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts
> simples que hagan la carga secuencial de lo que se necesita).
>
> Saludos y gracias!


No se si te sirve, pero comparto mi experiencia con Cuis.
Antes que nada, no tengo ninguna duda que la implementacion de Juan es
superior, pero lamentablemente incompatible con Squeak / Pharo.

No creo que puedas cargar nada sin muuuuuuuuchoooo esfuerzo.

Mi ultima derivacion minima limpia esta ahi en el servidor, junto con la de
SqueakRos4dot 4

Hoy quise incluir el DependencyBrowser de Squeak que hizo Andreas Raab

Ahi te vas a enterar que te hacen falta StringHolder y CodeHolder ( si no lo
tendras que re escribir)

Cuando incorpores esas dos clases, te va a quedar la siguiente lista
haciendo

Undeclared removeUnreferencedKeys; inspect.

#BorderedSubpaneDividerMorph
#BrowserRequestor
#ChangesOrganizer
#CompiledM
ethodTrailer
#LayoutFrame
#MorphicTextEditor
#PluggableTextMorph
#Project
#S
malltalkImage
#SyntaxMorph
#TextRequestor
#ToolBuilder
#UIManager
#WindowCol
orSpec


Como hoy esta fresquito, viendo las referencias intentare limpiar.

Y queda el tema de la implementación de String en Cuis , que no se puede
cambiar

Edgar



Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

J. Vuletich (mail lists)
In reply to this post by garduino


Hola Germán,

Quoting Germán Arduino <[hidden email]>:

> Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
>
> Estoy probando algunos esquemas de persistencia simples que sirven para muchas aplicaciones que no tienen que guardar gran volumen de datos, como dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra manera se resuelven con documentos u hojas de cálculo) para lo cual no hacen falta grandes bases de datos.

Buenísimo!

> Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están tipo los UUID's por ejemplo.
>
> Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en nada creo.

Seguro. Después vamos viendo si parte de esas cosas es mejor integrar en Cuis o no... No hay nada escrito en piedra.

> La duda que me surge es como coordinar después la instalación de todo lo necesario para que funcione cada cosa y, además, como hacer con los paquetes que se repiten, es decir que se necesitan en más de uno de los demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
>
> ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna idea al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts simples que hagan la carga secuencial de lo que se necesita).

Los paquetes de Cuis (por ahora) no manejan prerequisitos. Tampoco versiones. Pero hay que pensar, e ir viendo. Me parece que agregar un número de versión a cada paquete no estaría mal. Se podría hacer que cada vez que salvás un paquete se actualice automáticamente. El problema sería que si dos personas bajan el mismo paquete y hacen cambios distintos, y graban, habría dos versiones con igual número y distinto contenido... Mi idea es que el manejo de paquetes se lleve lo mejor posible con Git / GitHub. Alguien sabe cómo se suele hacer esto con sistemas basados en archivos de texto? O sea, en GitHub, usualmente, la gente que usa C, Phyton, lo que sea, le suele poner número de versión a los archivos? O usan exclusivamente los ids de versiones de Git? Si lo usual es esto último, entonces la dependencia de paquetes de Cuis debería usar ésto también. Pero no es parte de los archivos, así que no veo cómo se podría validar al cargar paquetes...

Ideas, discusión, correcciones, se agradecen!

>

Cheers,
Juan Vuletich
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

garduino
In reply to this post by Edgar De Cleene
Hola Edgar!

Yo por el momento, el único Smalltalk que estoy usando es Cuis (y tengo
pendiente ver un poco S8 también). En Dolphin sólo mantengo el PasswordsPro
pero nada más, hasta que lo tenga en Cuis.

Estoy muy a gusto con Cuis......muy.

Hay cosas que son innegables como las que vos decís, pero es el costo a
pagar.

A cambio hay mucho también, un sistema que puedo entender casi
todo....velocidad, compacto, no hay un millón de proyectos y mails todos
los días intentando descubrir el agujero del mate.....lo cual da tiempo
para hacer cosas......sin tener que estar todo el tiempo mirando lo que
hacen los que pueden dedicarse a eso 24 horas/dia porque sino te perdiste
el último hit y lo próximo que hagas no va a andar.

Lógicamente se que son apreciaciones muy personales y son sólo eso, nada
más.

Ahora estoy portando (ya lo tengo casi listo, fueron unas pocas horas de
trabajo) un framework de persistencia simple de Ramón Leon.

Para los que les interese o sirva, todo lo que voy haciendo está en GitHub
y es MIT.

Saludos!



El 23 de noviembre de 2012 06:58, Edgar J. De Cleene <[hidden email]
> escribió:

> **
>
>
> > Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
> >
> > Estoy probando algunos esquemas de persistencia simples que sirven para
> muchas
> > aplicaciones que no tienen que guardar gran volumen de datos, como dice
> Ramón
> > Leon, hay una gran cantidad de app tipo oficina (que de otra manera se
> > resuelven con documentos u hojas de cálculo) para lo cual no hacen falta
> > grandes bases de datos.
> >
> > Pense en hacer algún driver para alguna embebida por ejemplo tipo
> Berkeley
> > pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir
> > ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están
> tipo
> > los UUID's por ejemplo.
> >
> > Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode
> en
> > nada creo.
> >
> > La duda que me surge es como coordinar después la instalación de todo lo
> > necesario para que funcione cada cosa y, además, como hacer con los
> paquetes
> > que se repiten, es decir que se necesitan en más de uno de los demás.
> Para
> > todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
> >
> > ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna
> idea
> > al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts
> > simples que hagan la carga secuencial de lo que se necesita).
> >
> > Saludos y gracias!
>
> No se si te sirve, pero comparto mi experiencia con Cuis.
> Antes que nada, no tengo ninguna duda que la implementacion de Juan es
> superior, pero lamentablemente incompatible con Squeak / Pharo.
>
> No creo que puedas cargar nada sin muuuuuuuuchoooo esfuerzo.
>
> Mi ultima derivacion minima limpia esta ahi en el servidor, junto con la de
> SqueakRos4dot 4
>
> Hoy quise incluir el DependencyBrowser de Squeak que hizo Andreas Raab
>
> Ahi te vas a enterar que te hacen falta StringHolder y CodeHolder ( si no
> lo
> tendras que re escribir)
>
> Cuando incorpores esas dos clases, te va a quedar la siguiente lista
> haciendo
>
> Undeclared removeUnreferencedKeys; inspect.
>
> #BorderedSubpaneDividerMorph
> #BrowserRequestor
> #ChangesOrganizer
> #CompiledM
> ethodTrailer
> #LayoutFrame
> #MorphicTextEditor
> #PluggableTextMorph
> #Project
> #S
> malltalkImage
> #SyntaxMorph
> #TextRequestor
> #ToolBuilder
> #UIManager
> #WindowCol
> orSpec
>
> Como hoy esta fresquito, viendo las referencias intentare limpiar.
>
> Y queda el tema de la implementación de String en Cuis , que no se puede
> cambiar
>
> Edgar
>
>  
>



--
============================================
Germán S. Arduino  <gsa @ arsol.net>   Twitter: garduino
Arduino Software  http://www.arduinosoftware.com
PasswordsPro  http://www.passwordspro.com
greensecure.blogspot.com germanarduino.blogspot.com
============================================
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

Angel Java Lopez
In reply to this post by J. Vuletich (mail lists)
Hola gente!

Algo puedo aportar sobre Git/GitHub (no tanto sobre bajar un archivo de Git
(digamos cuis.zip), sino sobre las versiones del codigo que esta en un repo
Git)

Git tiene el concepto de branch y de tag

Un branch es una rama de desarrollo, por ejemplo master, la mas comun, la
"actual", y por otro lado podria tener "dev" ver por ejemplo
https://github.com/hugoruscitti/pilas/branches

un engine de juegos en Python.

Pero creo que lo que importa para esta discusion, es que cada branch
(p.ej., en general el master) tiene tag, que es un simple string, por
ejemplo v0.0.1
ver:
https://github.com/hugoruscitti/pilas/tags

El que nos lo muestre como .zip, es una facilidad de GitHub (no creo que de
Git). Para Git, es un punto, un mojon, en el branch X (en este ejemplo de
arriba, en el branch master)

No hay DOS personas que pongan el mismo tag. Lo que hay es

- Una o varias personas tienen acceso al repo principal
- Una persona cualquier puede forkear el repo principal (fork es una
utilidad de GitHub, sino en Git puro yo tendria que clonearme el repo
original,  luego manejarlo localmente, y probablemente guardarlo en un
proyecto de una cuenta mia en alguna parte, sin tener acceso de escritura
al repo original)
- Esa persona nueva, cambia lo que quiera en su repo, clonado del original
- Luego hace un pull request al repo original, donde alguien acepta o no el
cambio

https://help.github.com/articles/using-pull-requests

Otra variante: el nuevo contributor hace fork del repo original. Y crea un
branch ahi por cada nueva idea/fix/feature. Y hace pull request por cada
uno de esos branch, al repo original. Esto pasa cuando el contributor tiene
varias cosas para arreglar o fixear, o sugerir mejoras.

Para los strings de tags, se puede usar cualquier cosa. Pero muchos usan
Semantic Versioning
http://semver.org/

Se entendio?

Comentarios, correcciones?

Nos leemos!

Angel "Java" Lopez
@ajlopez
gh:ajlopez

2012/11/23 Juan Vuletich (mail lists) <[hidden email]>

> **
>
>
> Hola Germán,
>
> Quoting Germán Arduino <[hidden email]>:
>
>    Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
>
> Estoy probando algunos esquemas de persistencia simples que sirven para
> muchas aplicaciones que no tienen que guardar gran volumen de datos, como
> dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra
> manera se resuelven con documentos u hojas de cálculo) para lo cual no
> hacen falta grandes bases de datos.
>
>
> Buenísimo!
>
>
>
> Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley
> pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir
> ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están
> tipo los UUID's por ejemplo.
>
> Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en
> nada creo.
>
>
> Seguro. Después vamos viendo si parte de esas cosas es mejor integrar en
> Cuis o no... No hay nada escrito en piedra.
>
>
>     La duda que me surge es como coordinar después la instalación de todo
> lo necesario para que funcione cada cosa y, además, como hacer con los
> paquetes que se repiten, es decir que se necesitan en más de uno de los
> demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
>
> ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna
> idea al respecto? (A mi lo primero que se me ocurre es hacer algunos
> scripts simples que hagan la carga secuencial de lo que se necesita).
>
>
> Los paquetes de Cuis (por ahora) no manejan prerequisitos. Tampoco
> versiones. Pero hay que pensar, e ir viendo. Me parece que agregar un
> número de versión a cada paquete no estaría mal. Se podría hacer que cada
> vez que salvás un paquete se actualice automáticamente. El problema sería
> que si dos personas bajan el mismo paquete y hacen cambios distintos, y
> graban, habría dos versiones con igual número y distinto contenido... Mi
> idea es que el manejo de paquetes se lleve lo mejor posible con Git /
> GitHub. Alguien sabe cómo se suele hacer esto con sistemas basados en
> archivos de texto? O sea, en GitHub, usualmente, la gente que usa C,
> Phyton, lo que sea, le suele poner número de versión a los archivos? O usan
> exclusivamente los ids de versiones de Git? Si lo usual es esto último,
> entonces la dependencia de paquetes de Cuis debería usar ésto también. Pero
> no es parte de los archivos, así que no veo cómo se podría validar al
> cargar paquetes...
>
> Ideas, discusión, correcciones, se agradecen!
>
>  Cheers,
> Juan Vuletich
>
>  
>
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

J. Vuletich (mail lists)


Hola Angel,

Quoting Angel Java Lopez <[hidden email]>:

> Hola gente!
>
> Algo puedo aportar sobre Git/GitHub (no tanto sobre bajar un archivo de Git (digamos cuis.zip), sino sobre las versiones del codigo que esta en un repo Git)
>
>
> Git tiene el concepto de branch y de tag
>
>
> Un branch es una rama de desarrollo, por ejemplo master, la mas comun, la "actual", y por otro lado podria tener "dev" ver por ejemplo
> https://github.com/hugoruscitti/pilas/branches 
>
>
> un engine de juegos en Python.
>
>
> Pero creo que lo que importa para esta discusion, es que cada branch (p.ej., en general el master) tiene tag, que es un simple string, por ejemplo v0.0.1
> ver:
> https://github.com/hugoruscitti/pilas/tags 
>
>
> El que nos lo muestre como .zip, es una facilidad de GitHub (no creo que de Git). Para Git, es un punto, un mojon, en el branch X (en este ejemplo de arriba, en el branch master)
>
>
> No hay DOS personas que pongan el mismo tag. Lo que hay es
>
>
> - Una o varias personas tienen acceso al repo principal
> - Una persona cualquier puede forkear el repo principal (fork es una utilidad de GitHub, sino en Git puro yo tendria que clonearme el repo original,  luego manejarlo localmente, y probablemente guardarlo en un proyecto de una cuenta mia en alguna parte, sin tener acceso de escritura al repo original)
> - Esa persona nueva, cambia lo que quiera en su repo, clonado del original
> - Luego hace un pull request al repo original, donde alguien acepta o no el cambio
>
>
> https://help.github.com/articles/using-pull-requests 
>
>
> Otra variante: el nuevo contributor hace fork del repo original. Y crea un branch ahi por cada nueva idea/fix/feature. Y hace pull request por cada uno de esos branch, al repo original. Esto pasa cuando el contributor tiene varias cosas para arreglar o fixear, o sugerir mejoras.
>
>
> Para los strings de tags, se puede usar cualquier cosa. Pero muchos usan Semantic Versioning
> http://semver.org/ 
>
>
> Se entendio?
>
>
> Comentarios, correcciones?
>
>
> Nos leemos!
>
>
> Angel "Java" Lopez
> @ajlopez
> gh:ajlopez

Está bien, pero la pregunta que hago es cómo hacer que Cuis pueda validar la versión del paquete. Cuando se crea un nuevo tag en Git, eso no forma parte de ninguno de los archivos que estás commiteando. Yo quiero dejar el manejo de versiones en Git (no quiero hacer lo que hace Monticello). Así que el problema es que Cuis no tiene acceso al tag, y no puede validar dependencias.

Cómo se maneja ésto en un ambiente convencional (basado en files)? Se deja la validación de versiones de las dependencias en manos del programador?

> 2012/11/23 Juan Vuletich (mail lists) <[hidden email]>
>
>
> > Hola Germán,
> >
> > Quoting Germán Arduino <[hidden email]>:
> >
> > > Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
> > >
> > > Estoy probando algunos esquemas de persistencia simples que sirven para muchas aplicaciones que no tienen que guardar gran volumen de datos, como dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra manera se resuelven con documentos u hojas de cálculo) para lo cual no hacen falta grandes bases de datos.
> >
> > Buenísimo!
> >
> > > Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están tipo los UUID's por ejemplo.
> > >
> > > Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en nada creo.
> >
> > Seguro. Después vamos viendo si parte de esas cosas es mejor integrar en Cuis o no... No hay nada escrito en piedra.
> >
> > > La duda que me surge es como coordinar después la instalación de todo lo necesario para que funcione cada cosa y, además, como hacer con los paquetes que se repiten, es decir que se necesitan en más de uno de los demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
> > >
> > > ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna idea al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts simples que hagan la carga secuencial de lo que se necesita).
> >
> > Los paquetes de Cuis (por ahora) no manejan prerequisitos. Tampoco versiones. Pero hay que pensar, e ir viendo. Me parece que agregar un número de versión a cada paquete no estaría mal. Se podría hacer que cada vez que salvás un paquete se actualice automáticamente. El problema sería que si dos personas bajan el mismo paquete y hacen cambios distintos, y graban, habría dos versiones con igual número y distinto contenido... Mi idea es que el manejo de paquetes se lleve lo mejor posible con Git / GitHub. Alguien sabe cómo se suele hacer esto con sistemas basados en archivos de texto? O sea, en GitHub, usualmente, la gente que usa C, Phyton, lo que sea, le suele poner número de versión a los archivos? O usan exclusivamente los ids de versiones de Git? Si lo usual es esto último, entonces la dependencia de paquetes de Cuis debería usar ésto también. Pero no es parte de los archivos, así que no veo cómo se podría validar al cargar paquetes...
> >
> > Ideas, discusión, correcciones, se agradecen!
> >
> >
> > >
> >
> > Cheers,
> > Juan Vuletich

Cheers,
Juan Vuletich
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

Angel Java Lopez
Hola gente!

Ah, Juan... voy entendiendo... A ver, por lo que vi, el validar un paquete
(llamemos a esto un conjunto de archivos que me baje de Git, puede ser todo
el repo, o un directorio donde esta el paquete que quiero), se deja en
manos del manejador de paquetes que se use. Por ejemplo, en
Node.js/Javascript se usa npm, y este pide que haya un package.json que
describa el paquete que me acabo de bajar. Ahi ve la version y tambien ahi
ve las dependencias que tenga. Un ejemplo mio:

https://github.com/ajlopez/SimpleRemote/blob/master/package.json

Un ejemplo mio en un tag v0.0.1:
https://github.com/ajlopez/SimpleMessages/blob/v0.0.1/package.json

Un ejemplo de nuget (manejador de paquetes de .NET):

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>jQuery</id>
    <version>1.8.2</version>
    <title>jQuery</title>
    <authors>John Resig</authors>
    <owners>John Resig</owners>
    <licenseUrl>http://jquery.org/license</licenseUrl>
    <projectUrl>http://jquery.com/</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>jQuery is a new kind of JavaScript Library.
        jQuery is a fast and concise JavaScript Library that simplifies
HTML document traversing, event handling, animating, and Ajax interactions
for rapid web development. jQuery is designed to change the way that you
write JavaScript.</description>
    <summary>jQuery is a fast and concise JavaScript Library that
simplifies HTML document traversing, event handling, animating, and Ajax
interactions for rapid web development.</summary>
    <language>en-US</language>
    <tags>jQuery</tags>
  </metadata>
</package>

y asi. El de arriba, es de jQuery.1.8.2. El autor preparo este archivo,
para cuando empaqueto la libreria PARA NUGET. Para otros manejadores,
seguramente habra armado otros archivos.

Espero haber entendido tu pregunta. En resumen:

- Hay un archivo en lo que uno se baja, que describe la version y las
dependencias que tiene
- El formato de ese archivo depende del manejador de paquetes

Nos leemos!

Angel "Java" Lopez
@ajlopez
gh:ajlopez


2012/11/23 Juan Vuletich (mail lists) <[hidden email]>

> Hola Angel,
>
> Quoting Angel Java Lopez <[hidden email]>:
>
>    Hola gente!
>
> Algo puedo aportar sobre Git/GitHub (no tanto sobre bajar un archivo de
> Git (digamos cuis.zip), sino sobre las versiones del codigo que esta en un
> repo Git)
>
> Git tiene el concepto de branch y de tag
>
> Un branch es una rama de desarrollo, por ejemplo master, la mas comun, la
> "actual", y por otro lado podria tener "dev" ver por ejemplo
> https://github.com/hugoruscitti/pilas/branches
>
> un engine de juegos en Python.
>
> Pero creo que lo que importa para esta discusion, es que cada branch
> (p.ej., en general el master) tiene tag, que es un simple string, por
> ejemplo v0.0.1
> ver:
> https://github.com/hugoruscitti/pilas/tags
>
> El que nos lo muestre como .zip, es una facilidad de GitHub (no creo que
> de Git). Para Git, es un punto, un mojon, en el branch X (en este ejemplo
> de arriba, en el branch master)
>
> No hay DOS personas que pongan el mismo tag. Lo que hay es
>
> - Una o varias personas tienen acceso al repo principal
> - Una persona cualquier puede forkear el repo principal (fork es una
> utilidad de GitHub, sino en Git puro yo tendria que clonearme el repo
> original,  luego manejarlo localmente, y probablemente guardarlo en un
> proyecto de una cuenta mia en alguna parte, sin tener acceso de escritura
> al repo original)
> - Esa persona nueva, cambia lo que quiera en su repo, clonado del original
> - Luego hace un pull request al repo original, donde alguien acepta o no
> el cambio
>
> https://help.github.com/articles/using-pull-requests
>
> Otra variante: el nuevo contributor hace fork del repo original. Y crea un
> branch ahi por cada nueva idea/fix/feature. Y hace pull request por cada
> uno de esos branch, al repo original. Esto pasa cuando el contributor tiene
> varias cosas para arreglar o fixear, o sugerir mejoras.
>
> Para los strings de tags, se puede usar cualquier cosa. Pero muchos usan
> Semantic Versioning
> http://semver.org/
>
> Se entendio?
>
> Comentarios, correcciones?
>
> Nos leemos!
>
> Angel "Java" Lopez
> @ajlopez
> gh:ajlopez
>
>
>   Está bien, pero la pregunta que hago es cómo hacer que Cuis pueda
> validar la versión del paquete. Cuando se crea un nuevo tag en Git, eso no
> forma parte de ninguno de los archivos que estás commiteando. Yo quiero
> dejar el manejo de versiones en Git (no quiero hacer lo que hace
> Monticello). Así que el problema es que Cuis no tiene acceso al tag, y no
> puede validar dependencias.
>
> Cómo se maneja ésto en un ambiente convencional (basado en files)? Se deja
> la validación de versiones de las dependencias en manos del programador?
>
>     2012/11/23 Juan Vuletich (mail lists) <[hidden email]>
>
>> **
>>
>>
>>
>> Hola Germán,
>>
>> Quoting Germán Arduino <[hidden email]>:
>>
>>    Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
>>
>> Estoy probando algunos esquemas de persistencia simples que sirven para
>> muchas aplicaciones que no tienen que guardar gran volumen de datos, como
>> dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra
>> manera se resuelven con documentos u hojas de cálculo) para lo cual no
>> hacen falta grandes bases de datos.
>>
>>
>> Buenísimo!
>>
>>
>>
>> Pense en hacer algún driver para alguna embebida por ejemplo tipo
>> Berkeley pero me gustó más esto todo Smalltalk. El tema es que tengo que
>> seguir ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no
>> están tipo los UUID's por ejemplo.
>>
>> Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode
>> en nada creo.
>>
>>
>> Seguro. Después vamos viendo si parte de esas cosas es mejor integrar en
>> Cuis o no... No hay nada escrito en piedra.
>>
>>
>>     La duda que me surge es como coordinar después la instalación de
>> todo lo necesario para que funcione cada cosa y, además, como hacer con los
>> paquetes que se repiten, es decir que se necesitan en más de uno de los
>> demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
>>
>> ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna
>> idea al respecto? (A mi lo primero que se me ocurre es hacer algunos
>> scripts simples que hagan la carga secuencial de lo que se necesita).
>>
>>
>> Los paquetes de Cuis (por ahora) no manejan prerequisitos. Tampoco
>> versiones. Pero hay que pensar, e ir viendo. Me parece que agregar un
>> número de versión a cada paquete no estaría mal. Se podría hacer que cada
>> vez que salvás un paquete se actualice automáticamente. El problema sería
>> que si dos personas bajan el mismo paquete y hacen cambios distintos, y
>> graban, habría dos versiones con igual número y distinto contenido... Mi
>> idea es que el manejo de paquetes se lleve lo mejor posible con Git /
>> GitHub. Alguien sabe cómo se suele hacer esto con sistemas basados en
>> archivos de texto? O sea, en GitHub, usualmente, la gente que usa C,
>> Phyton, lo que sea, le suele poner número de versión a los archivos? O usan
>> exclusivamente los ids de versiones de Git? Si lo usual es esto último,
>> entonces la dependencia de paquetes de Cuis debería usar ésto también. Pero
>> no es parte de los archivos, así que no veo cómo se podría validar al
>> cargar paquetes...
>>
>> Ideas, discusión, correcciones, se agradecen!
>>
>>  Cheers,
>> Juan Vuletich
>>
>>
>>
>
>     Cheers,
> Juan Vuletich
>
Reply | Threaded
Open this post in threaded view
|

Re: [Cuis] Paquetes en Cuis

J. Vuletich (mail lists)


Hola Angel,

Quoting Angel Java Lopez <[hidden email]>:

> Hola gente!
>
>
> Ah, Juan... voy entendiendo... A ver, por lo que vi, el validar un paquete (llamemos a esto un conjunto de archivos que me baje de Git, puede ser todo el repo, o un directorio donde esta el paquete que quiero), se deja en manos del manejador de paquetes que se use. Por ejemplo, en Node.js/Javascript se usa npm, y este pide que haya un package.json que describa el paquete que me acabo de bajar. Ahi ve la version y tambien ahi ve las dependencias que tenga. Un ejemplo mio:
>
>
> https://github.com/ajlopez/SimpleRemote/blob/master/package.json 
>
>
> Un ejemplo mio en un tag v0.0.1:
> https://github.com/ajlopez/SimpleMessages/blob/v0.0.1/package.json 
>
>
> Un ejemplo de nuget (manejador de paquetes de .NET):
>
> <?xml version="1.0"?>
> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
>   <metadata>
>     <id>jQuery</id>
>     <version>1.8.2</version>
>     <title>jQuery</title>
>     <authors>John Resig</authors>
>     <owners>John Resig</owners>
>     <licenseUrl>http://jquery.org/license</licenseUrl>
>     <projectUrl>http://jquery.com/</projectUrl>
>     <requireLicenseAcceptance>false</requireLicenseAcceptance>
>     <description>jQuery is a new kind of JavaScript Library.
>         jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.</description>
>     <summary>jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.</summary>
>     <language>en-US</language>
>     <tags>jQuery</tags>
>   </metadata>
> </package>  
>
>
> y asi. El de arriba, es de jQuery.1.8.2. El autor preparo este archivo, para cuando empaqueto la libreria PARA NUGET. Para otros manejadores, seguramente habra armado otros archivos.
>
>
> Espero haber entendido tu pregunta. En resumen:
>
>
> - Hay un archivo en lo que uno se baja, que describe la version y las dependencias que tiene
> - El formato de ese archivo depende del manejador de paquetes

Creo que entiendo. Entonces, el hecho de que en tu ejemplo, el tag sea "v0.0.1", y la versión del paquete (indicada dentro de package.json) sea "0.0.1" es porque vos controlaste que sea asi, no? O sea, la consistencia es a mano?

Gracias por tomarte el tiempo de contestar!

> Nos leemos!
>
>
> Angel "Java" Lopez
> @ajlopez
> gh:ajlopez

> 2012/11/23 Juan Vuletich (mail lists) <[hidden email]>
>
>
> > Hola Angel,
> >
> > Quoting Angel Java Lopez <[hidden email]>:
> >
> > > Hola gente!
> > >
> > > Algo puedo aportar sobre Git/GitHub (no tanto sobre bajar un archivo de Git (digamos cuis.zip), sino sobre las versiones del codigo que esta en un repo Git)
> > >
> > >
> > > Git tiene el concepto de branch y de tag
> > >
> > >
> > > Un branch es una rama de desarrollo, por ejemplo master, la mas comun, la "actual", y por otro lado podria tener "dev" ver por ejemplo
> > > https://github.com/hugoruscitti/pilas/branches 
> > >
> > >
> > > un engine de juegos en Python.
> > >
> > >
> > > Pero creo que lo que importa para esta discusion, es que cada branch (p.ej., en general el master) tiene tag, que es un simple string, por ejemplo v0.0.1
> > > ver:
> > > https://github.com/hugoruscitti/pilas/tags 
> > >
> > >
> > > El que nos lo muestre como .zip, es una facilidad de GitHub (no creo que de Git). Para Git, es un punto, un mojon, en el branch X (en este ejemplo de arriba, en el branch master)
> > >
> > >
> > > No hay DOS personas que pongan el mismo tag. Lo que hay es
> > >
> > >
> > > - Una o varias personas tienen acceso al repo principal
> > > - Una persona cualquier puede forkear el repo principal (fork es una utilidad de GitHub, sino en Git puro yo tendria que clonearme el repo original,  luego manejarlo localmente, y probablemente guardarlo en un proyecto de una cuenta mia en alguna parte, sin tener acceso de escritura al repo original)
> > > - Esa persona nueva, cambia lo que quiera en su repo, clonado del original
> > > - Luego hace un pull request al repo original, donde alguien acepta o no el cambio
> > >
> > >
> > > https://help.github.com/articles/using-pull-requests 
> > >
> > >
> > > Otra variante: el nuevo contributor hace fork del repo original. Y crea un branch ahi por cada nueva idea/fix/feature. Y hace pull request por cada uno de esos branch, al repo original. Esto pasa cuando el contributor tiene varias cosas para arreglar o fixear, o sugerir mejoras.
> > >
> > >
> > > Para los strings de tags, se puede usar cualquier cosa. Pero muchos usan Semantic Versioning
> > > http://semver.org/ 
> > >
> > >
> > > Se entendio?
> > >
> > >
> > > Comentarios, correcciones?
> > >
> > >
> > > Nos leemos!
> > >
> > >
> > > Angel "Java" Lopez
> > > @ajlopez
> > > gh:ajlopez
> >
> > Está bien, pero la pregunta que hago es cómo hacer que Cuis pueda validar la versión del paquete. Cuando se crea un nuevo tag en Git, eso no forma parte de ninguno de los archivos que estás commiteando. Yo quiero dejar el manejo de versiones en Git (no quiero hacer lo que hace Monticello). Así que el problema es que Cuis no tiene acceso al tag, y no puede validar dependencias.
> >
> > Cómo se maneja ésto en un ambiente convencional (basado en files)? Se deja la validación de versiones de las dependencias en manos del programador?
> >
> > > 2012/11/23 Juan Vuletich (mail lists) <[hidden email]>
> > >
> > >
> > > > Hola Germán,
> > > >
> > > > Quoting Germán Arduino <[hidden email]>:
> > > >
> > > > > Hola Juan y demás gente de SqueakRos (llueve y refrescó!!):
> > > > >
> > > > > Estoy probando algunos esquemas de persistencia simples que sirven para muchas aplicaciones que no tienen que guardar gran volumen de datos, como dice Ramón Leon, hay una gran cantidad de app tipo oficina (que de otra manera se resuelven con documentos u hojas de cálculo) para lo cual no hacen falta grandes bases de datos.
> > > >
> > > > Buenísimo!
> > > >
> > > > > Pense en hacer algún driver para alguna embebida por ejemplo tipo Berkeley pero me gustó más esto todo Smalltalk. El tema es que tengo que seguir ensuciando el Cuis.....digo, tengo que portar cosas que en cuis no están tipo los UUID's por ejemplo.
> > > > >
> > > > > Eso no pasa nada no? Digo, mientras lo deje a nivel de paquetes no jode en nada creo.
> > > >
> > > > Seguro. Después vamos viendo si parte de esas cosas es mejor integrar en Cuis o no... No hay nada escrito en piedra.
> > > >
> > > > > La duda que me surge es como coordinar después la instalación de todo lo necesario para que funcione cada cosa y, además, como hacer con los paquetes que se repiten, es decir que se necesitan en más de uno de los demás. Para todo eso se hizo Monticello/Metacello (versiones, prereq, etc).
> > > > >
> > > > > ¿Pensás que algo así puede llegar a ser necesario en Cuis? ¿Tenés alguna idea al respecto? (A mi lo primero que se me ocurre es hacer algunos scripts simples que hagan la carga secuencial de lo que se necesita).
> > > >
> > > > Los paquetes de Cuis (por ahora) no manejan prerequisitos. Tampoco versiones. Pero hay que pensar, e ir viendo. Me parece que agregar un número de versión a cada paquete no estaría mal. Se podría hacer que cada vez que salvás un paquete se actualice automáticamente. El problema sería que si dos personas bajan el mismo paquete y hacen cambios distintos, y graban, habría dos versiones con igual número y distinto contenido... Mi idea es que el manejo de paquetes se lleve lo mejor posible con Git / GitHub. Alguien sabe cómo se suele hacer esto con sistemas basados en archivos de texto? O sea, en GitHub, usualmente, la gente que usa C, Phyton, lo que sea, le suele poner número de versión a los archivos? O usan exclusivamente los ids de versiones de Git? Si lo usual es esto último, entonces la dependencia de paquetes de Cuis debería usar ésto también. Pero no es parte de los archivos, así que no veo cómo se podría validar al cargar paquetes...
> > > >
> > > > Ideas, discusión, correcciones, se agradecen!
> > > >
> > > >
> > > > >
> > > >
> > > > Cheers,
> > > > Juan Vuletich
> >
> > Cheers,
> > Juan Vuletich
>
>

Cheers,
Juan Vuletich

Links:
------
[1] mailto:[hidden email]?subject=Re%3A%20%5BsqueakRos%5D%20%5BCuis%5D%20Paquetes%20en%20Cuis
[2] http://ar.groups.yahoo.com/group/squeakRos/post;_ylc=X3oDMTJwYXBtZHJyBF9TAzk3NDkwNDI5BGdycElkAzYyNTAyMDYEZ3Jwc3BJZAMxNjcwMzk5MDk5BG1zZ0lkAzU2MjEEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMzUzNjg3MDUy?act=reply&amp;messageNum=5621
[3] http://ar.groups.yahoo.com/group/squeakRos/message/5614;_ylc=X3oDMTM0cnJnb3IwBF9TAzk3NDkwNDI5BGdycElkAzYyNTAyMDYEZ3Jwc3BJZAMxNjcwMzk5MDk5BG1zZ0lkAzU2MjEEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMzUzNjg3MDUyBHRwY0lkAzU2MTQ-

emoxg5c6yb@gator167.hostgator.com (3K) Download Attachment
68x49r32ml@gator167.hostgator.com (62 bytes) Download Attachment