[squeak-dev] Packages, Packages, Packages

Igor Stasenko siguctua at gmail.com
Sat Dec 12 21:17:30 UTC 2009

2009/12/12 Miguel Cobá <miguel.coba at gmail.com>:
> On Sat, Dec 12, 2009 at 12:39 PM, Igor Stasenko <siguctua at gmail.com> wrote:
>> I found my own solution to this problem. Simple as smalltalk is.
>> Create an MC package in your project, named
>> MyProject-loader
>> and tell users to load this package if they want to install the project.
>> The rest of stuff about what load , in what order and using what means
>> is solved easily by putting a code into the
>> MyProjectLoader class>>initialize.
>> Keep it simply stupid.
> I don't know towards who was this offense directed but a "real"
> package management code
> isn't stupid nor its intent to build makes the people stupid.

I meant no offense at all.

> About your example, it has a lot of shortcommings that the package
> manager solve.
> It must be changed every time that a new package in your dependencies
> change. E.g. if
> your package OwnPackage dependes on PackageA version 2 and PackageB
> version 3 you somehow
> hardcode those versions on your initialize method.
> If fow any reason, the mantainer of PackageA found a bug and fix it on
> version 3, suddently your
> package is using the wrong version. If you happen to be on holidays or
> unreachable, the package won't
> be updated to use the new correct version 3 for PackageA.
> If a million people install your package before you update your
> configuration, a million people will be using
> the wrong versions.

Look, same applied to <put your preferable> dependency management tool.
There is virtually nothing which you can't solve using code, which
executed directly and doing what you, as maintainer, it should do.
So, i don't see any shortcomings of such approach comparing to some
dependency management tool.
A tool also written by someone and contains code which does something.
What makes you assume that code written by
maintainer is automatically worse than code written for that tool?

> What a package manager (as Metacello does) is to depende on PackageA
> (no matter what version is currently,
> although you can also specify a given version or a version greater or
> lower than a given version).
> This way no matter how many new versions the mantainer of PackageA
> does, your Package doesn't need
> to be updated each time and can always work.

It is all up to you, whether update it or not. I don't see anything,
which i can't do by simply implementing it in my code,
putting my own knowledge and preferences how i think this should be
done best for installing my software.

> Cheers,
> Miguel Cobá
> http://miguel.leugim.com.mx

Best regards,
Igor Stasenko AKA sig.

More information about the Squeak-dev mailing list