Andreas, What if you subclassed ChangesLog, say with something called NoChangesLog and installed that as its DefaultInstance (as accessed by #default), with an #install class side message.
Then override #logChange: and #logSnapshot:andQuit: to do nothing. No need to subscribe to system announcements. To install, you do NoChangesLog install. To get back, you do ChangesLog reset. I think that could/would work (the code in System-Sources was refactored quite well). HTH, Sven > On 7 Jun 2017, at 04:19, Andreas Sunardi <a.suna...@gmail.com> wrote: > > For now, in my 'deployed' image, I have: > 1. Disabled SourceFilesArray >> forceChangesToDisk > I did not find any code branch that would avoid this, so for now I just made > it do nothing. Maybe I should disable ChangesLog >> logChange: instead. > > 2. Disabled PharoFilesOpener >> changesFileOrNil > Same story. But this only causes warning get printed out, not error. > Disabling it removes the warning message. > > 3. Set changesFileStream to nil (SourceFiles changesFileStream: nil). > Some code does have guard against nil value for this changes stream. > > This works for me if I do not have the changes file with the image. If I have > the changes file and it's read-only, that's a different problem. > > It seems that this was possible before, judging from the older links I found > in my original email and the existence of some guards against non-existence > changes file. > > I'll check those links and perhaps see if I can be helpful there, but I right > now have delivery to make. And I can't wait to try Pharo 6 too. > > -- > Andreas > > > On Tue, Jun 6, 2017 at 6:37 PM, Ben Coman <b...@openinworld.com> wrote: > > > On Wed, Jun 7, 2017 at 3:23 AM, Andreas Sunardi <a.suna...@gmail.com> wrote: > Hi Stef, > > I can't have changes file bundled with the tool because the tool is installed > in a centralized location in my network and multiple users will run it. So > the image is in a central location and read-only and so is the changes file > (if I must have a changes file). The tool is only a processor. It does not > need to keep/save its state. > > Hence, I cannot have multiple users writing to that one and the same changes > file. > > I'm trying to dissect the call chain to ChangesLog and try to cut it so Pharo > won't write to the changes file. I'm sure I should not do this. There must be > a better way. > > I guess this use case just hasn't been critical for other people (there are > lots of competing priorities) and they've found ways of working around it, > like making your network located tool a script that copies itself itself to a > use folder and run from there. But of course it would be better for Pharo to > work cleanly without a changes file. To make it better, someone has to do it, > so feel free to propose some code changes (with discussion of such on > pharo-dev list). > > Here is one hint (something related I worked on recently)... > https://pharo.fogbugz.com/f/cases/20074/Red-pane-of-death-when-sources-file-missing > To view the changes, open image 60494 (easiest using PharoLauncher) > and load the slice. > > Filtering the issue tracker on "changes file" pops up a few other > possibilities (I haven't reviewed them, and you might find others) > https://pharo.fogbugz.com/f/cases/11204/Crash-if-changes-file-is-not-writable > https://pharo.fogbugz.com/f/cases/11426/Extract-the-logic-that-opens-the-sources-and-changes-files > > cheers -ben > > > > On Tue, Jun 6, 2017 at 11:55 AM, Stephane Ducasse <stepharo.s...@gmail.com> > wrote: > We started to work on making the system ready to stop using these files. > There are two things. > - the changes are a tape that logs what you are doing and right now > the system is not done to accept not to log > So I imagine that you can remove the changes file but then do not compile > code. > - I do not get the "so I can't have changes file bundled with the tool." > you do not have a bat or script that launches the application that is > somewhere in a folder where you have the vm and the image? you could > have the changes file there. > > We are interested in your scenario because last year I got a guy > working on making pharo silent. I do not know if its changes got > integrated into pharo. > This is really something that we want to have. > - having sources and changes in a specific location > - having no source and no changes (even if it means lose your code). > - ... > > Stef > > On Tue, Jun 6, 2017 at 8:14 PM, Andreas Sunardi <a.suna...@gmail.com> wrote: > > Sorry to bring this up again. But it turns out that I had the image > > directory writable by myself, so it created a new changes file. That's why > > Pharo didn't complain about missing changes file. When I removed write > > permission in the tool installation, Pharo gives error for not having or not > > able to write to changes file. > > > > I guess I'm back to the problem how to deploy a tool without changes file. I > > have multiple users that will be running this tool, which is installed in a > > centralized site, so I can't have changes file bundled with the tool. > > > > On Mon, Jun 5, 2017 at 5:47 PM, Andreas Sunardi <a.suna...@gmail.com> wrote: > >> > >> I had my changes and sources files in the bundle but has their write > >> permission removed, and that causes the error. Simply deploying the tool > >> without the changes file seems to fix it. Pharo5 doesn't complain if the > >> changes file isn't there. > >> > >> However, without the sources file, I get this warning that pharo cannot > >> locate the sources file. Including the sources file in the deployed tool is > >> fine with me. > >> > >> So, I think that's my solution. Thanks! > >> > >> > >> On Mon, Jun 5, 2017 at 5:07 PM, Andreas Sunardi <a.suna...@gmail.com> > >> wrote: > >>> > >>> I found this StackOverflow question: > >>> > >>> https://stackoverflow.com/questions/14737695/is-it-possible-to-deploy-a-pharo-image-without-changes-and-sources-files/14747328 > >>> > >>> and this older forum thread: > >>> > >>> https://www.mail-archive.com/pharo-project@lists.gforge.inria.fr/msg21170.html > >>> > >>> I'm using Pharo5.0 and neither of these options is available anymore. > >>> What is the new way to do this? > >>> > >>> -- > >>> Andreas Sunardi > >> > >> > > > > > >