Hi
in my project I defined on Pharo2.0
I did
project: 'Grease Core' with: [
spec
className: 'ConfigurationOfGrease';
loads: #('Core' );
file: 'ConfigurationOfGrease';
repository: 'http://smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main' ];
Now it loads Grease-Core.pmm.76
and not Name: Grease-Core-MattSpr.77 which correctly handles trim extension..
I tried
(ConfigurationOfGrease project version: #stable) record
a MetacelloNullRecordingMCSpecLoader(linear load :
linear load : 1.0.8 [ConfigurationOfGrease]
load : ConfigurationOfRefactoringBrowser
linear load : 1.0.8 [ConfigurationOfGrease]
load : Grease-Core-pmm.72
load : Grease-Pharo20-Core-pmm.1
load : Grease-Slime-topa.15)
So I thought that it woudl be better.
I tried so change my configuration to load the "stable" version
project: 'Grease Core' with: [
spec
className: 'ConfigurationOfGrease';
loads: #('Core' );
versionString: #stable;
file: 'ConfigurationOfGrease';
repository: 'http://smalltalkhub.com/mc/Seaside/MetacelloConfigurations/main' ];
and it crashed on me.
Grease-Pharo20-Core.pmm.1 GRDelegatingStream is not there.
So is there a version loading well (without dirty packages) in Pharo2.0?
I tried to use the development version and I still dirty packages…….
Thanks
Stef
Hi all,
We are checking the build server for failed tests, checking what the problem is:
I found problems in Glamour. It used a wrong symbol in its configuration, that caused CollectionExtensions not to load. It caused test fails in GToolkit.
I found problems with method categories. There are some tests, that are more or less roassal tests, or at least use roassal, so do not belong in Moose-Algos. I think some methods should be moved to *roassal-paintings … or maybe *roassal-moose-algos and the tests should move along with them. I cannot write in roassal,
if someone gives me a good method category and write access to roassal, I will move these methods.
I found failed tests in Orion, but it looks like we caused them with our change in moose entity, so I will take a closer look and fix it, or write another mail.
Cheers,
Stephan and Diego
Alexandre wrote:
> Problem: Some packages related to the Algorithm have wrongly packaged dependencies. This create problem when these algos are loaded and not Roassal.
>
> A solution to this problem:
> 1 - I've open a Moose panel, imported all the packages that match *Algo* and *Roassal-*
> 2 - Open a Roassal easel on the model packages and do it the following visualization:
Beautiful! I've learned something today.
Stephan
Hello,
I am starting to use GraphET and looks really nice. While learning to
script with it, I stumbled upon this script that does not place x-axis
label in the correct place. In fact the x-axis label is superimposed on
y-axis one. Here's how you can reproduce it:
tmpBrowser := GLMDashboard new.
tmpBrowser addPaneNamed: #first.
tmpBrowser transmit to: #first; andShow: [:a |
a graphET
title: 'First Chart with ET';
chart: [:chart :mooseModel|
chart verticalBarDiagram
models: (1 to: 3);
xAxisLabel: 'Test label';
yAxisLabel: 'Another';
regularAxis.
].
].
tmpBrowser openOn: 1
Hi All,
I found a stray package "collectionextensions" version 32 in the moose repository, while the most recent (and referenced in the configuration) package is version 34 in the folder Moose/CollectionExtensions.
Any objections if I remove this package?
Cheers,
Diego
When trying to walk smalltalkhub and import latest versions to find invocations,
we needed to make the following changes to make it work:
FAMIXAccess>variable: aStructuralEntity
(aStructuralEntity isKindOf: FAMIXAnnotationInstanceAttribute) ifFalse: [
variable := FMMultivalueLink on: self
update: #incomingAccesses
from: self variable
to: aStructuralEntity]
Add
MooseMonticelloVisitor>visitScriptDefinition: aMCPostscriptDefinition
"TODO"
MooseMonticelloHTTPImporter>setRepositoryCache: aCache.
repositoryCache := aCache
MooseMonticelloMethodPopulator>ensureAnnotationType: aRBPragmaNode
^self importer ensureAnnotationType: aRBPragmaNode.
And change for performance:
MooseGroupRuntimeStorage>add: anElement
| key group |
key := anElement class.
group := byType
at: key
ifAbsentPut: [ OrderedCollection new ].
group add: anElement.
elements add: anElement.
byName at: anElement mooseName asSymbol put: anElement.
^ anElement
MooseGroupRuntimeStorage >at: uniqueName ifAbsent: exceptionBlock
| entity na |
na := uniqueName asSymbol.
"look first by name and if not found"
entity := byName at: na ifAbsent: [nil].
entity notNil ifTrue: [
entity mooseName asSymbol = na ifTrue: [
^entity]
ifFalse: [
byName at: na put: nil.
byName at: entity mooseName asSymbol put: entity.
self halt. "Should this be happening?"
]].
^ exceptionBlock value
Would they be safe to commit?
Hi all,
I like moose a lot, but I have a problem with the way the moose configurations are used. So I would like to discuss this on the developers list. I would like to know if more people experience these problems.
First of all, I like the way the development works out. All development configurations simply do not use any version numbers, and therefor return the latest version. Maybe we should create an actual development version, that is empty, except for the packages we want to be a fixed version. But this is a minor point.
But once moose is released, a snapshot is taken, it is no longer a proper configuration. Main drawback is that all groups and such are removed. But also referred configurations are no longer used.
I believe it should be possible to upgrade to the stable version of a configuration in the place where a development version was used. Especially when the development version is released. Taking snapshots prevents this, since it no longer contains groups.
Also I think that bug fixes of used configurations should be imported automatically. Taking snapshots prevents this, since they do not use used configurations.
Finally there is a scenario that actually breaks configurations downstream. When I load version 1.6-baseline of PetitParser and sub sequentially ask for the current version, it returns 1.7-snapshot. But since I try to load the 'Core' group of PetitParser, I can no longer use my configuration. It simply halts on the error that the group 'Core' could not be found.
I have two suggestions to improve the process:
> We either choose to stick to snapshots for the releases, since this is a very reliable way to reproduce a build (with all known bugs). But for this we create a class SnapshotOf<projectname>, for each project, with all the methods needed, to indicate it is not a configuration. We could add previous releases to this class.
> We create a proper stable version, in the way configurations are meant to be. We bless these methods with release and only update versions if it is a bug fix. We also create a new development version at the moment we make the release, so we can continue development, without breaking the release
For the last suggestion I have updated my Metaceller tool (part of GToolkit). It is still beta, but it produces proper release version for a single configuration, based on the current state of the image.
Regards,
Diego
While trying to import some monticello packages from smalltalkhub with a
MooseMonticelloHTTPImporter, we noticed some less nice behavior from
the MooseGroupRuntimeStorage. at: ifAbsent is really slow when
byName contains 128 elements and elements 64K. What is the usecase for
putting the elements in an OrderedCollection?
Doing
byName at: anElement mooseName asSymbol put: anElement.
in add:
makes it perform a lot better. Is there a usecase where you don't want
byName to be filled immediately?
Diego & Stephan