Hi, (crosspost vm-dev, squeak-dev, pharo-dev) with more and more Metacello configurations for various well known Squeak and Pharo packages appearing in the metacello repository [1] I thought it would be a good idea to have one for VMMaker. It is based on a description by David (see [2]) and maybe he is able to help me keeping it maintained. Since Metacello is Smalltalk independent and therefore able to handle differences between the deployment systems the new 'ConfigurationOfVMMaker' includes two platform spec's - one for #pharo and one #squeak. (Pharo has FreeType preinstalled, and Squeak not). Unfortunately the Balloon3D stuff needs a little bit more cleaning (underscores, assigns to block args). Maybe Andreas is able to fix this. Until then one has to switch a preference in Pharo. However: it should be easy now to load and use VMMaker in both: In Squeak 3.11 #9236 ==================== Installer ss project: 'MetacelloRepository'; install: 'ConfigurationOfVMMaker'. ((Smalltalk at: #ConfigurationOfVMMaker) project version: '1.0') load In Pharo (core or dev) evaluate: ================================ Preferences setPreference: #allowBlockArgumentAssignment toValue: true. Gofer new squeaksource: 'MetacelloRepository'; package: 'ConfigurationOfVMMaker'; load. ((Smalltalk at: #ConfigurationOfVMMaker) project version: '1.0') load Feel free to have a look or use it to build shiny new VM's for the next interesting devices. For more infos on Metacello see [3] and [4]. Bye T. ------------------------------------------------------------------------------------ [1] http://squeaksource.com/MetacelloRepository.html [2] http://n4.nabble.com/Package-name-SharedPool-Speech-SharedPool-FFI-etc-td1299897.html [3] http://code.google.com/p/metacello/ [4] http://gemstonesoup.wordpress.com/2010/01/25/metacello-1-0-beta22-launches/ -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser |
On Fri, Feb 05, 2010 at 04:55:34PM +0100, Torsten Bergmann wrote: > Hi, (crosspost vm-dev, squeak-dev, pharo-dev) > > with more and more Metacello configurations for various well known Squeak and Pharo > packages appearing in the metacello repository [1] I thought it would be a good > idea to have one for VMMaker. It is based on a description by David (see [2]) > and maybe he is able to help me keeping it maintained. > > Since Metacello is Smalltalk independent and therefore able to handle differences > between the deployment systems the new 'ConfigurationOfVMMaker' includes two platform > spec's - one for #pharo and one #squeak. (Pharo has FreeType preinstalled, and > Squeak not). Wonderful! Thank you so much for doing this. I guess this means it's time for me to learn how to use Metacello ;-) Dave |
Hi David - Let's be a bit careful before jumping heads-on into the Metacello frenzy. I don't mind if people choose to use Metacello to load VMMaker but it shouldn't be the only option. Myself for example, I use customarily a variety of images, none of which support or are supported by Metacello. It would not be good if we require Metacello to load VMMaker. Cheers, - Andreas David T. Lewis wrote: > > On Fri, Feb 05, 2010 at 04:55:34PM +0100, Torsten Bergmann wrote: >> Hi, (crosspost vm-dev, squeak-dev, pharo-dev) >> >> with more and more Metacello configurations for various well known Squeak and Pharo >> packages appearing in the metacello repository [1] I thought it would be a good >> idea to have one for VMMaker. It is based on a description by David (see [2]) >> and maybe he is able to help me keeping it maintained. >> >> Since Metacello is Smalltalk independent and therefore able to handle differences >> between the deployment systems the new 'ConfigurationOfVMMaker' includes two platform >> spec's - one for #pharo and one #squeak. (Pharo has FreeType preinstalled, and >> Squeak not). > > Wonderful! Thank you so much for doing this. > > I guess this means it's time for me to learn how to use Metacello ;-) > > Dave > |
Torsten Bergmann wrote: > Andreas Raab wrote: >> Let's be a bit careful before jumping heads-on into the Metacello >> frenzy. > > Somehow I knew before that you will respond like this ... ;) Right. And that's the problem with prejudices. If you expect a response of a certain form you'll find a way to interpret what's being said to match your expectations even though the intention may have been completely different. What I was saying to David, not to you, is that we need to make sure that we don't introduce any undue dependencies on Metacello. Given the dependencies of Metacello itself I think there is an actual risk of that happening and I simply wanted to remind David that it's important for us to make sure VMMaker doesn't require Metacello. BTW, it is unfair to spam your message to both Squeak-dev and the Pharo list just to paint me as a nay-sayer in the community. Cheers, - Andreas >> I don't mind if people choose to use Metacello to load VMMaker >> but it shouldn't be the only option. > > Hey - Metacello is "just" a package management tool for Monticello using > descriptions of the dependencies and the versions that fit together. > Anything I did was to create such a configuration. > > Nobody forces you or other developers to use Metacello - having > such an (additional) config does not change the way you are working > right now. Use Monticello, SqueakSource, ... as you did before. You can > continue to use build scripts, installers, SqueakMap, Universe, > whatever ... to load VMMaker. > > But currently I dont see none of these "loaders" is well maintained (or only > with private scripts), anything I've found was a decription from David (see last mail) on the web. And how often does one ask which packages in which version fit > together to get VMMaker or other Squeak projects to work. Try to rebuild the > SqueakSource server and you know what I'm talking about! > > Providing and maintaining a metacello spec is simple and works. And the > interesting thing is that someone (Dale) is actively maintaining this tool > on several Smalltalks - even for Squeak. > > And as Fernando responded on the pharo list: > "And the ConfigurationOfXXX is allowing a new form of communication , unthinkable > just a couple of months ago...." > > Metacello easily allows to have reproducable builds for projects, applications, images ... > (see http://astares.blogspot.com/2010/01/pharo-10-release-candidate-2-and-image.html) > > Someone requires VMMaker in a specific version - just point him to "ConfigurationOfVMMaker" and you are done. > >> Myself for example, I use customarily a variety of images, none of which >> support or are supported by Metacello. > > Two things > - this has nothing to do with Metacello. Your images dont have to have Metacello. > So it is just an additional configuration, so why will you bother - it will > not affect the way you worked before > > - it is not the problem of the Squeak community if you use non-Squeak images > to build VM's. As community we all have to assure that VMMaker and its loading > (with or without Metacello) is well known and works on standard images and > the loading and VM building is reproducable by ANYONE! > Does the term "Truck Factor" ring a bell? > > At least your images seem to be able to use Monticello - so why lament. > You can continue to work as before and if David could invest a minute > to save others from annoying questions about VMMaker loading everything > is in good shape and even free's some time in the long term. > >> It would not be good if we require Metacello to load VMMaker. > > Is the Linux project in trouble when one create's and publishes a CD with > linux packages that fit together? No! Same applies here. You should really > have a look first before commenting on Metacello... > > Bye > T. > > > > > > > |
On 06.02.2010 00:18, Andreas Raab wrote: > > What I was saying to David, not to you, is that we need to make sure > that we don't introduce any undue dependencies on Metacello. Given the > dependencies of Metacello itself I think there is an actual risk of > that happening and I simply wanted to remind David that it's important > for us to make sure VMMaker doesn't require Metacello. Right. Try loading ConfigurationOfVMMaker though (no dependencies!) and you'll see what it really is. A declarative way to define the packages (and their versions) which need to be loaded to build a VMMaker image. You can do it manually without loading the tools used for automatic loading, or just unload the tools (gofer, metacello, configurationofxxx) after the functionality is actually loaded. I see it as improbable to make VMMaker depend on Metacello to work, as it currently is make it depend on .mcm's to work. If there's an obvious point I'm missing, please enlighten me, as I'm sure David is not the only one interested in what such undue dependencies on Metacello would actually entail. Cheers, Henry |
Henrik Sperre Johansen wrote: > > On 06.02.2010 00:18, Andreas Raab wrote: >> >> What I was saying to David, not to you, is that we need to make sure >> that we don't introduce any undue dependencies on Metacello. Given the >> dependencies of Metacello itself I think there is an actual risk of >> that happening and I simply wanted to remind David that it's important >> for us to make sure VMMaker doesn't require Metacello. > Right. Try loading ConfigurationOfVMMaker though (no dependencies!) and > you'll see what it really is. > A declarative way to define the packages (and their versions) which need > to be loaded to build a VMMaker image. > You can do it manually without loading the tools used for automatic > loading, or just unload the tools (gofer, metacello, configurationofxxx) > after the functionality is actually loaded. > I see it as improbable to make VMMaker depend on Metacello to work, as > it currently is make it depend on .mcm's to work. > If there's an obvious point I'm missing, please enlighten me, as I'm > sure David is not the only one interested in what such undue > dependencies on Metacello would actually entail. If there are none, that's great. However, the last time I loaded some Metacello stuff (which is a couple of weeks ago) it pulled in all sorts of things including OmniBrowser and left some modification in other packages. If that has been fixed since, all the better. Cheers, - Andreas |
On 06.02.2010 00:40, Andreas Raab wrote: > > Henrik Sperre Johansen wrote: >> >> On 06.02.2010 00:18, Andreas Raab wrote: >>> >>> What I was saying to David, not to you, is that we need to make sure >>> that we don't introduce any undue dependencies on Metacello. Given >>> the dependencies of Metacello itself I think there is an actual risk >>> of that happening and I simply wanted to remind David that it's >>> important for us to make sure VMMaker doesn't require Metacello. >> Right. Try loading ConfigurationOfVMMaker though (no dependencies!) >> and you'll see what it really is. >> A declarative way to define the packages (and their versions) which >> need to be loaded to build a VMMaker image. >> You can do it manually without loading the tools used for automatic >> loading, or just unload the tools (gofer, metacello, >> configurationofxxx) after the functionality is actually loaded. >> I see it as improbable to make VMMaker depend on Metacello to work, >> as it currently is make it depend on .mcm's to work. >> If there's an obvious point I'm missing, please enlighten me, as I'm >> sure David is not the only one interested in what such undue >> dependencies on Metacello would actually entail. > > If there are none, that's great. However, the last time I loaded some > Metacello stuff (which is a couple of weeks ago) it pulled in all > sorts of things including OmniBrowser and left some modification in > other packages. If that has been fixed since, all the better. > > Cheers, > - Andreas load with Metacello, then yes, it will pull that in. If a squeak-specific If you try to load Metacello with ConfigurationOfMetacello, it will load Gofer, which is the Installer-equivalent package it uses to load packages. If any of the prereqs include extension methods/overrides, then yes, you will have dirty packages afterwards, for the same reason you would get that when loading the package from Monticello manually. I think I see your point now though, no external packages only part of a ConfigurationOfMetacello should be required for VMMaker to work/alter the default behaviour of VMMaker in a way which is required for it to work. To this I agree fully, please note this is already the situation with the -Pools packages though, if you want to build all VMMaker-included plugins properly. Cheers, Henry PS. If you have loaded the ConfigurationOfVMMaker, you might want to look at the grouping feature. While the default is to load all plugins, it's easy (well, with the Metacello tools installed ;) ) to load just a core install, or a selection of the plugins you like as well. |
Henrik Sperre Johansen wrote: > If OmniBrowser is defined as a prerequisite for what you are trying to > load with Metacello, then yes, it will pull that in. One of the things that's really hard with Metacello is understanding what depends on Metacello and what depends on the application package. I'm pretty sure that when I tried it previously, it was Metacello itself that loaded OB, but since it's a while ago I could be misremembering. However, it appears that when loading the ConfigurationOfVMMaker it doesn't pull in OB (great!) and the only dirty package is the Freetype vs. Freetype-Plugin dependency. This is *much* better than what I've previously seen. > I think I see your point now though, no external packages only part of a > ConfigurationOfMetacello should be required for VMMaker to work/alter > the default behaviour of VMMaker in a way which is required for it to work. > To this I agree fully, please note this is already the situation with > the -Pools packages though, if you want to build all VMMaker-included > plugins properly. Yes, and I really dislike that situation, too. Cheers, - Andreas |
In reply to this post by Andreas.Raab
It's is not "just a package manager" it is huge and totally over engineered for the purpose you have in mind. You are talking 40 classes! VMMaker is at a far lower level than Seaside or other things Metacello is being used for. Installer has a mechanism that is much better suited to this purpose, a simple readable DSL for loading things. You can put scripts into InstallerScripts to be loaded using Installer install: 'VMMaker'. this is very simple, and you can publish variants for all different platforms.
I am certainly not convinced as to why you need Metacello, to achieve what Installer used to do in one class.
I don't agree. Nothing about Metacello strikes me as simple. I could comment on the rest of your post, I basically disagree with pretty much everything you say. Can Metacello publish and use definitions on a web page or wiki, can it load from squeakmap, or universes, can it access published bug fixes, can you override with your own local definitions, can it bootstrap from the source.st code inside a monticello package. If you look at the range of functionality in the existing tools we have had for along time, Metacello really isn't offering anything of interest, and is certainly overkill for VMMaker. cheers Keith |
In reply to this post by Torsten Bergmann
Hi Andreas, a simple question: why do you warn others about "jumping heads-on" into a "frenzy" technology, when you never had a deeper look at Metacello or the simple config I provided for VMMaker? I havent changed a single package in VMMaker, the loading order, etc. you can continue to load and use VMMaker as before. Even in your own custom images. Nothing has changed!!! The only thing that is different now is that there is an easy way for Metacello users to load VMMaker into Squeak or Pharo. If you dont like Metacello - no problem - you dont have to use it. As I said - the config is just additionally available. One can use it or ignore it - but we need feedback from David or other VM maintainers (like you) about the VMMaker Monticello package dependencies and Monticello file versions to keep this config maintained. If they change it would be good to update the config. Nothing more! >Given the dependencies of Metacello itself I think there is an actual >risk of that happening Please enlighten me. Where do you see that risk? Did we introduce a dependency for VMMaker on Universe or SqueakMap code when we registered VMMaker there? No! Sample applies to Metacello. >BTW, it is unfair to spam your message to both Squeak-dev and the Pharo >list just to paint me as a nay-sayer in the community. Now you are the one who is interpreting! I wrote my original mail and the response to all three lists and since I use a web browser for reading (sqf.org/pipermail) and answering (GMX) I didnt notice that you responded only on vm-dev. This is also the reason why I constantly create new threads (sorry guys). I think you paint yourself as nay-sayer. Why do you warn about someting that help others to move forward. When you work with VMMaker day by day it is easy for you to follow all the package changes and stay on track. But if someone wants to build a VM he will not start with google and search for the right packages. He will just load it with all dependencies. Metacello provides an easy way to do that. Nothing more. >If there are none, that's great. However, the last time I loaded some >Metacello stuff (which is a couple of weeks ago) it pulled in all sorts >of things including OmniBrowser and left some modification in other >packages. Will you blame Metacello for loading something that was depending on OmniBrowser or that someone created a configuration with packages overriding others? Then help to clean the config. Metacello is a vehicle to describe package dependencies and versions that fit together. You can even unload it easily after it brought in the code. Again - please invest a few minutes in learning about metacello! Thanks T. -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3.5 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser |
In reply to this post by Torsten Bergmann
Hi Keith, >It's is not "just a package manager" it is huge and totally over >engineered for the purpose you have in mind. I dont care if you think it is over engineered in it's internal core. The specs are easy to write and I can maintain/load them with Monticello. I can continue to use both: Squeak and Pharo for projects. And I can load my projects code and throw Metacello's overengineered code out of the image easily afterwards. It's just a vehicle. Since the spec is parsable I can switch if someone provides something better in the future. Currently it is available, maintained and working. Is Bob/Sake project meanwhile with public access? Are you back in Bob/Sake business? >VMMaker is at a far lower level than Seaside or other things >Metacello is being used for. Yes, like FFI, ExternalWebBrowsers, SQLite3 or others which are available via configurations. You may say it is overkill for such small projects - but you can construct more complex configs (like Seaside) from that. >... You can put scripts into InstallerScripts to be loaded using ... I know all this - but a) I want something that works on Squeak, Pharo, Gemstone, maybe other ST's later (since I use Seaside) b) I want to maintain versions in one file (here in one class) not in separate scripts for each version. I can use Monticello diffs to see how the config has changed, ... c) I want a declarative description instead of code since I may use it for other purposes too (deployment and dependency tools, ...) >I could comment on the rest of your post, I basically disagree with >pretty much everything you say. No problem for me ... you dont have to use it. It doesnt change anything on VMMaker or prevents you from using other loaders/installers. >Can Metacello publish and use definitions on a web page or wiki, can >it load from squeakmap, or universes, can it access published bug >fixes, can you override with your own local definitions, can it >bootstrap from the source.st code inside a monticello package. Again: Metacello does not care about SqueakMap, Universe, Mantis since it is not bound to Squeak. You compare apples with oranges. Lets play a short game: You will find ConfigurationOfMetaSource in the MetaSource project on SqS, that is able to load a whole seaside app right from a core image and keep it maintained with new versions. Show me that Installer/Sake/Bob is doing better here and is aligned with the goals in a) b) and c) Bye T. -- NEU: Mit GMX DSL über 1000,- ¿ sparen! http://portal.gmx.net/de/go/dsl02 |
In reply to this post by Torsten Bergmann
Hi Torsten - I am not interesting in arguing. I have looked at Metacello, quite seriously, a while ago. It's true, I didn't load your config before writing my note, for which I apologize. Things seem to have improved significantly from when I last looked at it, which is good news. Cheers, - Andreas Torsten Bergmann wrote: > > Hi Andreas, > > a simple question: why do you warn others about "jumping heads-on" > into a "frenzy" technology, when you never had a deeper look at > Metacello or the simple config I provided for VMMaker? > > I havent changed a single package in VMMaker, the loading order, etc. > you can continue to load and use VMMaker as before. Even in your own custom > images. Nothing has changed!!! > > The only thing that is different now is that there is an easy way > for Metacello users to load VMMaker into Squeak or Pharo. If you dont > like Metacello - no problem - you dont have to use it. > > As I said - the config is just additionally available. One can use it or > ignore it - but we need feedback from David or other VM maintainers (like you) > about the VMMaker Monticello package dependencies and Monticello file versions > to keep this config maintained. If they change it would be good to update the > config. Nothing more! > >> Given the dependencies of Metacello itself I think there is an actual >> risk of that happening > > Please enlighten me. Where do you see that risk? Did we introduce a > dependency for VMMaker on Universe or SqueakMap code when we registered VMMaker > there? No! Sample applies to Metacello. > >> BTW, it is unfair to spam your message to both Squeak-dev and the Pharo >> list just to paint me as a nay-sayer in the community. > > Now you are the one who is interpreting! I wrote my original mail and the response > to all three lists and since I use a web browser for reading > (sqf.org/pipermail) and answering (GMX) I didnt notice that you responded > only on vm-dev. This is also the reason why I constantly create new threads (sorry guys). > > I think you paint yourself as nay-sayer. Why do you warn about someting > that help others to move forward. When you work with VMMaker day by day > it is easy for you to follow all the package changes and stay on track. > > But if someone wants to build a VM he will not start with google and > search for the right packages. He will just load it with all dependencies. > Metacello provides an easy way to do that. Nothing more. > >> If there are none, that's great. However, the last time I loaded some >> Metacello stuff (which is a couple of weeks ago) it pulled in all sorts >> of things including OmniBrowser and left some modification in other >> packages. > > Will you blame Metacello for loading something that was depending > on OmniBrowser or that someone created a configuration with packages > overriding others? Then help to clean the config. > > Metacello is a vehicle to describe package dependencies > and versions that fit together. You can even unload it easily after > it brought in the code. > > Again - please invest a few minutes in learning about metacello! > > Thanks > T. > > > > > > |
In reply to this post by Torsten Bergmann
Well I cant help you there. But it would not be rocket science to port Installer, or sake because they were designed to be minimal. They were designed to be portable to other platforms as an enabling technology. Metacello only does one thing, whereas Sake is as general as make in theory.
This is a design flaw of Metacello, when you have mechanisms like inheritance, maintaining one definition for all contexts doesn't work. I have tried it.
(Package named: 'Seaside') latest load.
Sake uses fully declarative desriptions. |
A core image or ANY core image? LPF has an api for loading things into ANY image. #> squeak Squeak3.10.image http://ftp.squeak.org/3.11/scripts/LPF.st Installer install="Packages" Keith
|
In reply to this post by Andreas.Raab
On Fri, Feb 05, 2010 at 09:57:30AM -0800, Andreas Raab wrote: > > Hi David - > > Let's be a bit careful before jumping heads-on into the Metacello > frenzy. I don't mind if people choose to use Metacello to load VMMaker > but it shouldn't be the only option. Myself for example, I use > customarily a variety of images, none of which support or are supported > by Metacello. It would not be good if we require Metacello to load VMMaker. I understand and fully agree. Personally I use a 3.8 image for most VMMaker work for exactly this reason. If it works in Squeak 3.8 it usually works everywhere, modulo a few annoyances like SmalltalkImage current, and with the recently noted exception of Scratch ;) I'm also happy to see the Metacello support, because it will make VMMaker more accessible from images that do use Metacello. Dave |
In reply to this post by Torsten Bergmann
Andreas wrote: >I am not interesting in arguing. +1 >Things seem to have improved significantly from when I last looked at it, >which is good news. Yes. I will try to keep this separate metacello config for vmmaker maintained, but as I said I need a minimal support from vm-maintainers side to get notified when load order or packages change. Thanks in advance! David wrote: >I'm also happy to see the Metacello support, because it will make >VMMaker more accessible from images that do use Metacello. Thank you. Yes that was the goal. If a project is easy accessible more people are able to use it or learn or help. Thanks Torsten -- NEU: Mit GMX DSL über 1000,- ¿ sparen! http://portal.gmx.net/de/go/dsl02 |
Free forum by Nabble | Edit this page |