Squeak needs a third-party package updater

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Squeak needs a third-party package updater

Christoph Thiede

Hi all,


maybe I am missing some central Squeak tool, but I have never been happy with the current way to update all installed third-party packages in Squeak - because I don't know anyone. Please allow me to give you a short outline of the tool I would like to use for updating packages:


There should be a simple button in the Squeak Menu, just below "Update image", named "Update packages", that enables you to install the latest versions of all installed packages for which a remote does exist.  In addition, if I made any change to a package, it should be possible to merge the updates into my working copy. In particular, this does not only include Squeaksource packages but also packages from GitHub, BitBucket, etc. Great packages such as Autocompletion, MethodWrappers, Vivide, or Squot (see below) that are all hosted on GitHub and can be installed using a Metacello script.


So how much of this is reality and how much is fiction today?
For packages installed from Squeaksource, I can open them in the Monticello Browser and load or merge the latest version. At least, this works, but we could need a button to do this for all available packages where a "default remote" is selected.
But for packages managed via git, this is not possible at all! The Monticello Browser does not know their remote repositories that were used to install the packages originally. Without extra settings made per repository baseline, you cannot even re-load a package again via the install script, see also this open issue: https://github.com/Metacello/metacello/issues/513 Meanwhile, I have made a habit of cloning all interesting projects via Squot in order to update them, even if I do not plan to commit to them ...

I believe there is also something like SqueakMap which has an "Update" and an "Upgrade" button, but this tool is only made for accessing the Squeaksource, is this correct? From what I can see, Squeaksource and SqueakMap have become less important compared to GitHub (the reasons might include better visibility/explorability of projects, a more efficient VCS, and features like issues/pull requests; but that's probably not the point here).

What do you think? Am I the only one facing this issue? How would a roadmap for such a tool look like? Looking forward to your ideas! :-)

Best,
Christoph


Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

Eliot Miranda-2
Hi Christoph,

On Sat, Sep 12, 2020 at 12:19 PM Thiede, Christoph <[hidden email]> wrote:

Hi all,


maybe I am missing some central Squeak tool, but I have never been happy with the current way to update all installed third-party packages in Squeak - because I don't know anyone. Please allow me to give you a short outline of the tool I would like to use for updating packages:


There should be a simple button in the Squeak Menu, just below "Update image", named "Update packages", that enables you to install the latest versions of all installed packages for which a remote does exist.  In addition, if I made any change to a package, it should be possible to merge the updates into my working copy. In particular, this does not only include Squeaksource packages but also packages from GitHub, BitBucket, etc. Great packages such as Autocompletion, MethodWrappers, Vivide, or Squot (see below) that are all hosted on GitHub and can be installed using a Metacello script.


So how much of this is reality and how much is fiction today?
For packages installed from Squeaksource, I can open them in the Monticello Browser and load or merge the latest version. At least, this works, but we could need a button to do this for all available packages where a "default remote" is selected.
But for packages managed via git, this is not possible at all! The Monticello Browser does not know their remote repositories that were used to install the packages originally. Without extra settings made per repository baseline, you cannot even re-load a package again via the install script, see also this open issue: https://github.com/Metacello/metacello/issues/513 Meanwhile, I have made a habit of cloning all interesting projects via Squot in order to update them, even if I do not plan to commit to them ...

I believe there is also something like SqueakMap which has an "Update" and an "Upgrade" button, but this tool is only made for accessing the Squeaksource, is this correct? From what I can see, Squeaksource and SqueakMap have become less important compared to GitHub (the reasons might include better visibility/explorability of projects, a more efficient VCS, and features like issues/pull requests; but that's probably not the point here).

What do you think? Am I the only one facing this issue? How would a roadmap for such a tool look like? Looking forward to your ideas! :-)

I've been wanting something like this for the VMMaker development system too.  And for FFI.  Any system builder who uses Squeak as a base, who has on-going development, could benefit from such a system.  And us making it easy to develop is I think a great idea.  So keep going, This is an excellent direction.

I would also extend the idea with being able to upgrade the VM and dlls within it, but for now that should be on the back burner.  Getting image-level support for update of non-trunk packages is the mosyt important thing.  Thank you.

Best,
Christoph

_,,,^..^,,,_
best, Eliot


Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

Chris Muller-3
Hi Christoph,

A solution made several years ago is still around today, including for FFI and VMMaker.  Simply find the package in the SqueakMap browser, expand the tree, select the "head" version, yellow-click "install".

image.png

It will do a merge, starting with the lowest level dependent packages.  How to do this using MCConfigurations is documented here, under the heading, Guidelines for writing the script for the head release.

   http://wiki.squeak.org/squeak/6182

I know this is not quite "all" packages, but I do see a "Upgrade all" few choices lower which may do what you want or, if not, could trivially be made to.  The important thing is, you get to maintain the finer-grained control of being able to load at any node point in the package hierarchy structure (including lower-level packages).

This hierarchy was defined for many packages as an upgrade to Installer several years ago.  The upgrade solves your use-case and several others including for configuration and deployment.  If you select "Edit Release" on that (head) selection for FFI, you can see it executes just a one-line workspace:

    Installer new merge: #ffi

That feature is documented here:


But, as you mentioned, none of this is git, so this has limited the interest from the community.

I'm most interested in interacting with git via the GraphQL API, but when I went to study the schema, I was shocked to see it had hundreds upon hundreds of types, so I didn't have time to try to make a tidy client.

HTH,
   Chris


On Sat, Sep 12, 2020 at 2:26 PM Eliot Miranda <[hidden email]> wrote:
Hi Christoph,

On Sat, Sep 12, 2020 at 12:19 PM Thiede, Christoph <[hidden email]> wrote:

Hi all,


maybe I am missing some central Squeak tool, but I have never been happy with the current way to update all installed third-party packages in Squeak - because I don't know anyone. Please allow me to give you a short outline of the tool I would like to use for updating packages:


There should be a simple button in the Squeak Menu, just below "Update image", named "Update packages", that enables you to install the latest versions of all installed packages for which a remote does exist.  In addition, if I made any change to a package, it should be possible to merge the updates into my working copy. In particular, this does not only include Squeaksource packages but also packages from GitHub, BitBucket, etc. Great packages such as Autocompletion, MethodWrappers, Vivide, or Squot (see below) that are all hosted on GitHub and can be installed using a Metacello script.


So how much of this is reality and how much is fiction today?
For packages installed from Squeaksource, I can open them in the Monticello Browser and load or merge the latest version. At least, this works, but we could need a button to do this for all available packages where a "default remote" is selected.
But for packages managed via git, this is not possible at all! The Monticello Browser does not know their remote repositories that were used to install the packages originally. Without extra settings made per repository baseline, you cannot even re-load a package again via the install script, see also this open issue: https://github.com/Metacello/metacello/issues/513 Meanwhile, I have made a habit of cloning all interesting projects via Squot in order to update them, even if I do not plan to commit to them ...

I believe there is also something like SqueakMap which has an "Update" and an "Upgrade" button, but this tool is only made for accessing the Squeaksource, is this correct? From what I can see, Squeaksource and SqueakMap have become less important compared to GitHub (the reasons might include better visibility/explorability of projects, a more efficient VCS, and features like issues/pull requests; but that's probably not the point here).

What do you think? Am I the only one facing this issue? How would a roadmap for such a tool look like? Looking forward to your ideas! :-)

I've been wanting something like this for the VMMaker development system too.  And for FFI.  Any system builder who uses Squeak as a base, who has on-going development, could benefit from such a system.  And us making it easy to develop is I think a great idea.  So keep going, This is an excellent direction.

I would also extend the idea with being able to upgrade the VM and dlls within it, but for now that should be on the back burner.  Getting image-level support for update of non-trunk packages is the mosyt important thing.  Thank you.

Best,
Christoph

_,,,^..^,,,_
best, Eliot



Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

Chris Muller-3
In reply to this post by Christoph Thiede
Just to be clear, SqueakMap is not a VCS but a portal.  Since it's just a database of Smalltalk scripts, it works as a portal to configure via anything -- Monticello, Git, Bitbucket, SVN, CVS, ENVY, whether a development workstation or end-user app.  It's meant to be the place that answers the question, "How do I load XYZ package?"

 - Chris

On Sat, Sep 12, 2020 at 2:19 PM Thiede, Christoph <[hidden email]> wrote:

Hi all,


maybe I am missing some central Squeak tool, but I have never been happy with the current way to update all installed third-party packages in Squeak - because I don't know anyone. Please allow me to give you a short outline of the tool I would like to use for updating packages:


There should be a simple button in the Squeak Menu, just below "Update image", named "Update packages", that enables you to install the latest versions of all installed packages for which a remote does exist.  In addition, if I made any change to a package, it should be possible to merge the updates into my working copy. In particular, this does not only include Squeaksource packages but also packages from GitHub, BitBucket, etc. Great packages such as Autocompletion, MethodWrappers, Vivide, or Squot (see below) that are all hosted on GitHub and can be installed using a Metacello script.


So how much of this is reality and how much is fiction today?
For packages installed from Squeaksource, I can open them in the Monticello Browser and load or merge the latest version. At least, this works, but we could need a button to do this for all available packages where a "default remote" is selected.
But for packages managed via git, this is not possible at all! The Monticello Browser does not know their remote repositories that were used to install the packages originally. Without extra settings made per repository baseline, you cannot even re-load a package again via the install script, see also this open issue: https://github.com/Metacello/metacello/issues/513 Meanwhile, I have made a habit of cloning all interesting projects via Squot in order to update them, even if I do not plan to commit to them ...

I believe there is also something like SqueakMap which has an "Update" and an "Upgrade" button, but this tool is only made for accessing the Squeaksource, is this correct? From what I can see, Squeaksource and SqueakMap have become less important compared to GitHub (the reasons might include better visibility/explorability of projects, a more efficient VCS, and features like issues/pull requests; but that's probably not the point here).

What do you think? Am I the only one facing this issue? How would a roadmap for such a tool look like? Looking forward to your ideas! :-)

Best,
Christoph



Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

timrowledge


> On 2020-09-12, at 3:22 PM, Chris Muller <[hidden email]> wrote:
>
> Just to be clear, SqueakMap is not a VCS but a portal.  Since it's just a database of Smalltalk scripts, it works as a portal to configure via anything -- Monticello, Git, Bitbucket, SVN, CVS, ENVY, whether a development workstation or end-user app.  It's meant to be the place that answers the question, "How do I load XYZ package?"

And it's a damn good answer - when it's kept up to date properly. Any ways we can be better at this should be considered.  Not least making sure the SM server is kept up to date and running well so that the package scripts can be easily maintained.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Shift to the left!  Shift to the right!  Pop up, push down, byte, byte, byte!



Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

Christoph Thiede

Hi all,


according to the activity of this thread, there seems to be a rather great demand for a solution to this problem indeed.


Do I hear that it could be an option to make SqueakMap support different repository sources as well? Only theoretically, would this only require to change some URLs and SM already works with Metacello repositories, or would it be necessary to write a larger amount of adapter logic between both components?


I would also extend the idea with being able to upgrade the VM and dlls within it, but for now that should be on the back burner.


From my perspective, developing an updater for every host system would be a larger task, considering the different application registries for Windows, Linux, etc. ... Wouldn't it be simpler to put the VM into the different stores, i.e. Windows Store for Windows, apt for Linux etc.?


So keep going, This is an excellent direction.


Just to be clear, at the moment this was only a question arisen from curiosity. :-) My list of interesting Squeak projects is already long enough to fill a couple of years, it's all about prioritization ... :-)

Best,
Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]>
Gesendet: Sonntag, 13. September 2020 01:28:54
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Squeak needs a third-party package updater
 


> On 2020-09-12, at 3:22 PM, Chris Muller <[hidden email]> wrote:
>
> Just to be clear, SqueakMap is not a VCS but a portal.  Since it's just a database of Smalltalk scripts, it works as a portal to configure via anything -- Monticello, Git, Bitbucket, SVN, CVS, ENVY, whether a development workstation or end-user app.  It's meant to be the place that answers the question, "How do I load XYZ package?"

And it's a damn good answer - when it's kept up to date properly. Any ways we can be better at this should be considered.  Not least making sure the SM server is kept up to date and running well so that the package scripts can be easily maintained.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Shift to the left!  Shift to the right!  Pop up, push down, byte, byte, byte!





Reply | Threaded
Open this post in threaded view
|

Re: Squeak needs a third-party package updater

Jakob Reschke-2
Am Mo., 14. Sept. 2020 um 13:49 Uhr schrieb Thiede, Christoph
<[hidden email]>:
>
> Do I hear that it could be an option to make SqueakMap support different repository sources as well? Only theoretically, would this only require to change some URLs and SM already works with Metacello repositories, or would it be necessary to write a larger amount of adapter logic between both components?
>

As far as I know SqueakMap just hosts scripts, which can be anything,
including `Metacello new baseline: '...'; repository: '...'; load`.