Starting MultiPack multi package manager.
This commit is contained in:
parent
8a34385a6a
commit
567f1c19df
@ -58,8 +58,12 @@ Metacello new
|
|||||||
While the Pharo ecosystem provides an unmatched development experience,
|
While the Pharo ecosystem provides an unmatched development experience,
|
||||||
some libraries are not available or mature enough in Pharo, despite its vibrant, but small community.
|
some libraries are not available or mature enough in Pharo, despite its vibrant, but small community.
|
||||||
So, for practical reasons, we have reached already the scenario where we need to rely on external pacakges to provide the functionality we need without developing it ourselves.
|
So, for practical reasons, we have reached already the scenario where we need to rely on external pacakges to provide the functionality we need without developing it ourselves.
|
||||||
Also, the context where we teach Pharo and Mallable Systems, includes universities with slow or behind proxy connections, where dowloading and unziping a single binary is quite faster than resolving packages dependencies and loading them, recursively from the network.
|
Also, the context where we teach Pharo and Mallable Systems, includes universities with slow or behind proxy connections,
|
||||||
|
where dowloading and unziping a single binary is quite faster than resolving packages dependencies and loading them, recursively from the network.
|
||||||
|
|
||||||
In that case, we opted for using self contained external binaries, packaged in a single executable file, derived from Free Libre Open Source Software repositories, written in languages that provide such small self contained binaries, like Nim and Go.
|
In that case, we opted for using self contained external binaries, packaged in a single executable file, derived from Free Libre Open Source Software repositories, written in languages that provide such small self contained binaries, like Nim and Go.
|
||||||
|
|
||||||
For ExoRepo, we rely on Restify, because Gitea repositories don't provide a external JSON API and restify allow us to query Gitea repositories obtaining a JSON response to leverage on NeoJSON and STON Pharo libraries, without implementing cumbersome HTML page parsers and adding a single binary was more agile that requiring full HTML parsing capabilites, just to query Gitea repositories.
|
For ExoRepo, we rely on Restify, because Gitea repositories don't provide a external JSON API.
|
||||||
|
So, [Restify](https://github.com/itzg/restify/) allow us to query Gitea repositories obtaining a JSON response, to leverage on NeoJSON and STON Pharo libraries,
|
||||||
|
without implementing cumbersome HTML page parsers
|
||||||
|
and adding a single binary was more agile that requiring full HTML parsing capabilites, just to query Gitea repositories.
|
27
src/ExoRepo/MultiPack.class.st
Normal file
27
src/ExoRepo/MultiPack.class.st
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
"
|
||||||
|
I'm a a front-end to use multiple package managers like [Scoop](https://scoop.sh/) on Windows and [Brew](https://brew.sh/) on MacOS and Gnu/Linux
|
||||||
|
"
|
||||||
|
Class {
|
||||||
|
#name : #MultiPack,
|
||||||
|
#superclass : #Object,
|
||||||
|
#instVars : [
|
||||||
|
'requirements',
|
||||||
|
'recommendations',
|
||||||
|
'repository'
|
||||||
|
],
|
||||||
|
#category : #ExoRepo
|
||||||
|
}
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
MultiPack >> recommendations: aDictionary [
|
||||||
|
recommendations := aDictionary
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
MultiPack >> repository: anObject [
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
MultiPack >> requirements: aDictionary [
|
||||||
|
requirements := aDictionary
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user