Summary: Package Universes
Last updated at 1:30 pm UTC on 25 November 2015
In Squeak 5.0 the Universes browser has been removed as it was no longer functional. Universe classes still exist in the system.
Reported by Lex Spoon
What problems are being addressed
- Easy installation of packages written by other Squeakers, with reasonable likelihood that what you see will work in your current image. ("Gee, I'd like a regular expressions package, let me grab one.")
- Developing stable sets of packages, to go along with stable releases. ("Our software is the center of the business; we'd like stable packages, please, even if they are old.")
How it solves the problem
The approach is that every Squeak image lives within one "package universe". The image can only see packages that are available in that universe. If a developer uses that image publishes a package, it is only seen by other images that are in the same universe. Each universe has its own policies about what changes are allowed. By having different policies, one can support wild and crazy development in one universe, while squeezing out the bugs (at the expense of gaining new features) in another universe.
For coherence I think the author should write the sections above this line.
People can add what they want to these later sections, and can suggest that the author change the rest.
What's cool about it
- Simple dependencies work. It's enough to say things like "Scamper needs Network-HTML".
- Local, non-public package repositories are supported. Work groups can collaborate with each other without needing to publish all of their packages to the world. This might be called Privacy in the Infrastructure.
- Package names can be shorter, e.g. "Refactoring Browser" instead of "Refactoring Browser for 3.7".
- Likewise, package descriptions can be targeted to users in the current universe. There is no need for "if you are in a 3.5 image, then blah, but if you are in 3.8, then blarg".
- Package information is entered from scratch; it would be better to re-use information from the package instead of making developers type it all in again.
- The accounts management, used for posting new packages, is primitive and is separate from all the million other accounts management systems we have at this point (e.g., SqueakMap, SqueakPeople, SqueakSource).
Back to New Modules