codefrau / Smalltalk78

A Smalltalk-78 VM in Javascript
https://codefrau.github.io/Smalltalk78/
49 stars 8 forks source link

What's the best way to PR fixes or new features? #5

Open aadsm opened 11 months ago

aadsm commented 11 months ago

Hi,

While trying to use the "standalone" version for my own purposes, I found some bugs in the image itself and in the Smalltalk78.js file. I've fixed them and have them locally, but to be honest while I was debugging and understanding how everything work together, the whole development process seems a bit chaotic to me. Here's what I found that looks confusing, at least to me that has never seen this project before.

As far as I can see there are a couple of different versions or deviations of the code here:

I've also added some new features that I needed (what led me to this rabbit hole in the first place). I wanted to do PRs with my fixes, etc. but not really sure the best way to do that, and on which branch. I will be pushing these to my fork pretty soon though: https://github.com/aadsm/Smalltalk78/.

codefrau commented 10 months ago

Hi! Sorry for taking so long to respond. Back in November ... I couldn't.

You are right that development appears to be a bit "chaotic". That's mostly because until very recently it was only Dan and me working on this (after the initial work leading up to the paper in 2014), and Dan prefers to use the live system rather than git, and we moved from the lively-web site to smalltalkzoo. I'm now referring to the Smalltalk Zoo as our "lively" version. Probably

I added a "final" changeset to the lively-web update stream that automatically changes the image's updateURL to the smalltalkzoo stream. And I changed the lively page there to direct visitors to the Zoo site.

See #6 for some recent discussions around collaborating.

When Dan publishes an update on the Smalltalkzoo site, I need to go in manually and push that to the smalltalkzoo branch, and then merge that into main. Similarly, if I commit an update to main, I need to merge that into the smalltalkzoo branch and pull on the Smalltalkzoo site. Both git and zoo are supposed to be identical. Update 363 is there now, it just took me a log time to merge (it was only in the Smalltalkzoo stream but not committed to git).

I recently added copy/paste to the stand-alone version too, as well as support for HTTP put so you can work with local files more easily (I added a dev server accepting PUT requests, too).

I initially intended the stand-alone version only for testing, but it is useful in its own right, partly because it loads so much faster than Lively, and can be used without an internet connection.

I have not had time to look at your fork yet but would welcome PRs (relative to my main). I hope the above makes some sense, I'm happy to work on finding a process that's comfortable for every contributor (thank you so much!)

You can find the additional methods for the NoteTaker's Display morph by bringing up the lively halo for the display, and clicking its orange script handle (see screenshot below)

image