From 567f1c19dff12fae45d9cb6c50604989e63c683b Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Wed, 17 Apr 2024 10:29:29 -0500 Subject: [PATCH] Starting MultiPack multi package manager. --- README.md | 8 ++++++-- src/ExoRepo/MultiPack.class.st | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/ExoRepo/MultiPack.class.st diff --git a/README.md b/README.md index 411282f..11c1b58 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,12 @@ Metacello new 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. 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. -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. \ No newline at end of file +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. \ No newline at end of file diff --git a/src/ExoRepo/MultiPack.class.st b/src/ExoRepo/MultiPack.class.st new file mode 100644 index 0000000..a1b5d2e --- /dev/null +++ b/src/ExoRepo/MultiPack.class.st @@ -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 +]