Le 12 oct. 2015 à 19:22, Dale Henrichs a écrit :

> 
> 
> On 10/12/2015 02:20 AM, Christophe Demarey wrote:
>> Le 11 oct. 2015 à 18:42, Dale Henrichs a écrit :
>> 
>>> 
>>> On 10/11/15 12:19 AM, stepharo wrote:
>>>> 
>>>> Le 11/10/15 00:40, Dale Henrichs a écrit :
>>>>> Christophe,
>>>>> 
>>>>> I still don't have a lot of time to read the paper and try to understand 
>>>>> what you are trying to accomplish,
>>>> you should read it. :)
>>>> We wrote it for that and it is not boring nor long.
>>> I scanned through it at the time and as I recall, I thought that the 
>>> functionality described was already covered by git and BaselineOf ... but I 
>>> did not read it in great detail and I did not (and still don't) have the 
>>> time to compose a long-winded response:)
>>>>> but I am curious how you think "package dependencies" will play with 
>>>>> git-based projects?
>>>>> 
>>>>> In git-based repositories I don't think you have the same type of 
>>>>> dependency issues that one might have with monticello repositories --- In 
>>>>> a monticello repository you have a whole range of possible package 
>>>>> versions to pick from, but in a git-based repository the range of package 
>>>>> versions is fixed to those that are committed together so the packages 
>>>>> that are meant to work together are committed together.
>>>> I think that this is only true for packages committed within the same repo.
>>>> Now between porjects published in different repo you have to express them.
>>>> I do not think that we all want to publish in the same repo and clone out 
>>>> everything.
>>> ... and inter-project dependencies is what a BaselineOf does .... which 
>>> brings me back to the conclusion that I reached when I scanned the paper:)
>>>>> In the bootstrap scenario, you would only have one version per package to 
>>>>> choose from, so the packages that are meant to work together are 
>>>>> committed together ....
>>>>> 
>>>>> I guess I don't know what you mean when you say:
>>>>>> we want to decouple a released version of a package from the working 
>>>>>> copy of the package version description (implies the creation of a 
>>>>>> package repository + a web interface on top of it to promote/search 
>>>>>> packages).
>>>>> Perhaps a description of the problem being solved would help me 
>>>>> understand.
>>>> We want to be able to have a package market place where tools can grab 
>>>> dependencies without to load code
>>>> and can compute the set of packages that should be loaded.
>>>> 
>>>> When a package is released into the market: then it externalise its 
>>>> metadata so that a crawler can automatically build
>>>> dependency graph and create specific distribution.
>>> Okay. This is a problem .... but it happens to be a problem that Metacello 
>>> "can solve/does solve" - so there must be something else (a deeper 
>>> problem?) that I don't quite understand.
>>> 
>>> With that said, if you are planning to replace Metacello, then I am 
>>> excited:) But I will repeat that I hope that you are considering cross 
>>> platform issues ...
>>> 
>>> Perhaps at this point in time, I'd like to read some code. Then I can skip 
>>> reading the paper and get a feel for how hard it will be to port to 
>>> GemStone:)
>> Well, the point is not to replace metacello but to go towards a per package 
>> metadata description allowing some flexibility with the introduction of 
>> virtual packages.
> Oh darn, you mean I have to continue to support Metacello:)
>> This will allow, in a first time, to set up a package repository and more 
>> important, a web site on top of it. In a second time, I also want to enable 
>> more flexibility in expressing dependencies constraints (eg. > 2.0, 3.*, 
>> etc.). To achieve that, you need a very performant dependency solver and I 
>> would like to reuse linux ones (it has be done for ocaml by example) through 
>> CUDF (check http://mancoosi.org/
> There are a couple of different schemes for expressing "version ranges" in 
> Metacello. Have you looked at them?

No, I did not check on latest Metacello versions.
What is supported?

> By reuse, do you mean that you will reimplement the algorithms in Smalltalk 
> or are you suggesting that depency resolution will only work on linux?

I would like to define the dependency solving as a rest service, so no need to 
support multiple platforms. the dependency solving can be hosted on linux.

> From a practical perspective I am curious what problems will be solved by 
> having "dependency constraints" expressed by anything more complicated than 
> what I use for github:
> 
>  github://dalehenrich/tode:v0.0.?/repository
> 
> Which translates to load the latest patch version of the tode project (where 
> major.minor.patch) ... I know that in theory more complicated schemes are 
> intersting, but that assumes that the developers assigning version numbers 
> are actually adhering to a rational version numbering scheme and from a 
> practical matter even the above pattern is risky business:)

you're right but we should encourage people to adopt semantic versionning. It's 
very powerful when semantic versioning policy is applied.

>> 
>> For now, I implemented a simple solver for static dependency constraints 
>> (=1.2). I checked Metacello implementation and it looked to me that 
>> approaches are a bit too far to be able to reuse the whole code. For sure, 
>> it is not as robust as Metacello is, because you enhanced it for years.
>> What I want now, is to experiment (let's name it) Cargo Package Manager to 
>> see if it fits the needs. Pharo bootstrap is the first use case.
> 
> okay, so this is just in the experimental phases .... so for the time being I 
> should be focussing my efforts on the minimal Metacello approach rather than 
> get involved in the Cargo Package Manager?

What I wanted to say is that is still experimental for me because it does not 
have yet users.
Maybe we could take Gemstone and GLASS/GSDevKit package as a use case and see 
if Cargo fits your needs. I would really enjoy to join forces and have a better 
solution.
What are your requirements for having GLASS/GSDevKit loadable into GemStone.
Do you have a deadline?
I will have more time starting November (for now, I work on the bootstrap with 
Max for 2 weeks).

Christophe

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to