On Dec 3, 2009, at 6:51 PM, Simon Denier wrote:
On 3 déc. 2009, at 13:56, Stéphane Ducasse wrote:
*About the Moose process* I dont think the Pharo process and the Moose process compare.
I think that you are wrong. they both need a map. A specification of what to load
I do not see why saving XXX and not be able to reload XXX package is cool to your eyes. It makes no sense! with the current process: you publish X Y Z and I put Y1 after and you cannot reload your X Y Z so you are fucked up.
Let's be stupid: I can reload X Y Z, it's just not so easy sometimes.
come on simon. if we want to generate data automatically we cannot tinkle for example for a new paper lukas rebuild all the pier versions since the beginning and rerun all the tests and run the smalllint rules. adrian could do the same
Now you say map1 = X Y Z and I say map2 = X Y1 Z and we can all reload what you want.
You do not have to oppose map or absence behind a process. You can publish map without having to run test.
With your approach we have no way to spot a vicious bug that requires to go back in time. In pharo sometimes we are forced to do that.
This is a technical problem and it has nothing to do with process. We should have maps.
The Pharo process is about integrating fixes from packages which are supposed to do one and only one thing, and do it well and is tested.
The Moose process is about developers making incremental changes to the code base so that they can work and share it immediately. Which means it can break other things. Now I'm pretty sure I dont want a release every time someone commits a package in Moose, because I'm pretty sure this someone didn't run all the tests before committing. So making a release for each new commit makes no sense for me. We dont integrate changes, we just merge when there are some divergent branches. That's why we are always working with the dev version and the 'default' is one way to do it.
I disagree. Totally.
You did not convince me :)
my point is without we cannot do anything at ***all***. with a map we could reason on it and perform semi automatic merging, testing.... Now we just load the latest version and pray.
If we want historical data about Moose, I guess it's still possible to retrieve all latest packages at a given date. It will not be very different from what we used at this date.
This is a crappy and bad way of doing that. This is a SVN regression. Let us study the commit fingerprint to know what where the files that worked together: but we know it and we have a tools to save it.
Now about the *release* process for Moose: sure I would like that there will be more releases. Now as Doru said, when we do a release, we should do it for every sub projects and it's bit difficult with the current tools.
- One way to do automatically it is to use the test server to at least create a new version from the latest dev version and blessed it as 'tested' if 100% tests passed or 'broken'
it will not work because we do not have good test coverage. Now we know that a version is composed of a set of specific compoentns so just save it.
At one point in time, we just know that the branch in which we are working may be ok (partially, because we dont test everything). Meanwhile, there are plenty of other changes. I just want to be clear that with this development process, we can not take any development version as a precise picture of the status of Moose at the time of development, because in general it is a branch.
sure then you flag it.
So I proposed something in a later mail about creating 'dev' version. Then one sould be careful it's a dev, not a stable version, so I want a different name and different numbering schema like 1.3.x
probably.
Problem is I dont think Metacello can handle automatic numbering.
But I dont want such versions to pollute the manual versions, which are supposed to be stronger. So something like create automatically 'testedVersionXXX' with tests or broken as possible blessing.
We are talking about the wrong tool to fix the problem.
- Then we can do manual release from time to time (every two weeks, every months?), which requires more work as we have to do it for the different subprojects first, and blessed it as beta or stable.
come on it worked in moose in store, it worked with Moose-all (modulo the subprojects even if I prefered Moose-all than the current situation).
Did not scale with Moose-All. Everytime someone committed Moose-All before you did, you had to be careful with merging.
Yes now we are not careful with merging at all. It works by accident. Now with a systematic map we have the same but in addition we can reproduce it and build tools on top of it.
I can give a try and during the next two weeks damage Moose randomly you will see you will have a terrible time to chase them besides throwing away all the packages I commit. So this is clearly a clear lack of maps.
-- Simon
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev