Hi,
as some of you might already know "Tonel" is a file-per-class format for monticello repositories [1]. In Pharo land many projects are already converted to it - as regular "file tree" solution faces issues with git handling due to very long file names / deep file hierarchy (often leading to trouble on Windows). Dales's Rowan (a new project/package manager for Smalltalk) supports FileTree and also Tonel repositories [2]. There is also a tool to convert from STORE (VisualWorks Source-Code Versioning System) to Tonel format [3]. So I wonder about adoption of Tonel in Squeak land. Any status/comments? Thx T. [1] https://github.com/pharo-vcs/tonel [2] https://github.com/GemTalk/Rowan [3] https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-tools-for-pharo6-1/ |
On Thu, Feb 14, 2019 at 3:17 PM Torsten Bergmann <[hidden email]> wrote: Hi, Jakob is working on a Tonel port, but I don't know more about it. Fabio
|
Yes that is true, I have a fork of the Pharo Tonel repository, but I don't work on it often because I do not use it myself. The current state is that you can have Tonel repositories in Monticello and they handle like FileTree repositories without metadata. Which means pretty awkward, since you cannot access any history from the tools. Moreover there are no method timestamps because Tonel does not store them. Here it is: https://github.com/j4yk/tonel/tree/squeak I see that I have not adapted the readme file for the proper install procedure yet... sorry. The plan is to integrate the serializer/deserializer with the Git tooling that you can obtain from the Do menu since Squeak 5.2, which should vastly improve the usability. Am Do., 14. Feb. 2019, 16:54 hat Fabio Niephaus <[hidden email]> geschrieben:
|
In reply to this post by Torsten Bergmann
I think that we should at least support the input/output of tonel packages for inter-operability. Since the git repositories are metadataless, we can't do much more without a lot of work. Since tonel has no support for timestamps, it looses authorship (it is replaced by committer-ship). If we don't want to loose authorship, then we need to port whole history to git with known initials <-> git(hub) account database. This is currently working for single package with complex graph (to filetree format, but could work for Tonel too). If you want to commit several MC packages in same git repository, then it's currently impossible to support complex history. There is generally no information that enables inter-MC-package synchronization (unless some sort of MCConfigurationMap is used, which at least gives a few sync point in history...). If we want to perform essential operations like commit/pull/merge or access essential information as history/revisions/diffs then we have to - either reproduce the very hard work that began in Pharo: program a git client inside the image, - or loose inside image tools. Squeak MC tools are much more productive than Pharo MC tools: - they scale well even for massive changes (i did check with auto generated Smallapack interface) - they support cherry-picking: you see and control what you commit - they are quasi bugfree - the magma backend provides a few additional features (revisions...) Pharo team has produced huge effort for the github switch, but it does not go without pain. Despite the importance of being visible on github, and profit by state of the art web collaborating tools, i don't see Squeak able to take this major turn in near future. If we want to have mix development with packages maintained both in a MC repository and a git metadataless repository, then we have the problem of finding a common ancestor. I think that this could be doable with some conventions (like storing the .last_known_mc_ancestor in a file) Of course, it's re-introduction of metadata, but the minimal possible, and leads to easy to resolve conflicts (that can be automated)... The last grief I have with Tonel is that it is not syntax agnostic. Since we have a language where we can define compilerClass/parserClass, that's unfortunate (The application i developed in the 90's did use such important feature, it's not just theoretical) It could have been language agnostic with very little effort (remember the discussion on Pharo-dev, just using an arbitrary number of [[[ ]]] as method body separators would suffice) For most packages, that will not be a problem though. Le jeu. 14 févr. 2019 à 15:17, Torsten Bergmann <[hidden email]> a écrit : Hi, |
Hi Torsten,
Thank you very much for asking about this, and thanks to Nicolas for the explanations. As a package maintainer (OSProcess and others), I want to be able to provide continued support for Pharo users, and it would probably be helpful if I could read and write to Tonel as an external format. I am also interested in being able to browse and read the projects (many of them quite excellent) that are being developed in Pharo from my Squeak image. I am a big fan of git, but I do not care about integrating it with the image (Squeak/Pharo) because I prefer using the in-image tools in Squeak, and when I do use git, I prefer to use git tools directly. I am not well informed about this topic, but overall I would say that being able to read and write Tonel format from Squeak would be very helpful, and I would probably not care very much about version control integration. Thanks again for asking, Dave On Thu, Feb 14, 2019 at 11:15:23PM +0100, Nicolas Cellier wrote: > I think that we should at least support the input/output of tonel packages > for inter-operability. > Since the git repositories are metadataless, we can't do much more without > a lot of work. > > Since tonel has no support for timestamps, it looses authorship (it is > replaced by committer-ship). > If we don't want to loose authorship, then we need to port whole history to > git with known initials <-> git(hub) account database. > This is currently working for single package with complex graph (to > filetree format, but could work for Tonel too). > If you want to commit several MC packages in same git repository, then it's > currently impossible to support complex history. > There is generally no information that enables inter-MC-package > synchronization (unless some sort of MCConfigurationMap is used, which at > least gives a few sync point in history...). > > If we want to perform essential operations like commit/pull/merge or access > essential information as history/revisions/diffs then we have to > - either reproduce the very hard work that began in Pharo: program a git > client inside the image, > - or loose inside image tools. > > Squeak MC tools are much more productive than Pharo MC tools: > - they scale well even for massive changes (i did check with auto generated > Smallapack interface) > - they support cherry-picking: you see and control what you commit > - they are quasi bugfree > - the magma backend provides a few additional features (revisions...) > Pharo team has produced huge effort for the github switch, but it does not > go without pain. Despite the importance of being visible on github, and > profit by state of the art web collaborating tools, i don't see Squeak able > to take this major turn in near future. > > If we want to have mix development with packages maintained both in a MC > repository and a git metadataless repository, > then we have the problem of finding a common ancestor. > I think that this could be doable with some conventions (like storing the > .last_known_mc_ancestor in a file) > Of course, it's re-introduction of metadata, but the minimal possible, and > leads to easy to resolve conflicts (that can be automated)... > > The last grief I have with Tonel is that it is not syntax agnostic. > Since we have a language where we can define compilerClass/parserClass, > that's unfortunate (The application i developed in the 90's did use such > important feature, it's not just theoretical) > It could have been language agnostic with very little effort (remember the > discussion on Pharo-dev, just using an arbitrary number of [[[ ]]] as > method body separators would suffice) > For most packages, that will not be a problem though. > > > Le jeu. 14 f??vr. 2019 ?? 15:17, Torsten Bergmann <[hidden email]> a ??crit : > > > Hi, > > > > as some of you might already know "Tonel" is a file-per-class format for > > monticello repositories [1]. > > > > In Pharo land many projects are already converted to it - as regular "file > > tree" solution faces issues > > with git handling due to very long file names / deep file hierarchy (often > > leading to trouble on Windows). > > > > Dales's Rowan (a new project/package manager for Smalltalk) supports > > FileTree and also Tonel > > repositories [2]. There is also a tool to convert from STORE (VisualWorks > > Source-Code Versioning System) > > to Tonel format [3]. > > > > So I wonder about adoption of Tonel in Squeak land. > > > > Any status/comments? > > > > Thx > > T. > > > > [1] https://github.com/pharo-vcs/tonel > > [2] https://github.com/GemTalk/Rowan > > [3] > > https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-tools-for-pharo6-1/ > > > > > > > > > |
With these modest requirements, David, please try the port and open issues for anything that bugs you about it. Am Fr., 15. Feb. 2019, 02:14 hat David T. Lewis <[hidden email]> geschrieben: Hi Torsten, |
On Fri, Feb 15, 2019 at 8:58 AM Jakob Reschke <[hidden email]> wrote:
I believe Jakob's Git integration (see below) can also be controlled from within a workspace.
Agreed. Too bad Tonel has become the default format in Pharo already. If we want to support it, we also have to live with it's flaws...
Squeak's MC tools are great and I also thought Squeak can't support Git any time soon. It turns out Jakob has already done most of the heavy lifting as he worked on a Smalltalk implementation of Git. It even comes with a Sourcetree-like UI which supports the most important operations already. In case you haven't seen it, you can install it via "Do" > "Installer installGitInfrastructure" (Squeak-5.2 or later). You can then find it's UI under "Apps" > "Git Browser". Please file bugs at [1]. Unfortunately, the bus factor of this integration is still quite low, but I'd like to see more people working on it. Fabio
|
Le ven. 15 févr. 2019 à 09:45, Fabio Niephaus <[hidden email]> a écrit :
I think that Pharo is on the right path: if you want to be a mainstream language, you cannot always swim against the tide. In this battle, Pharo can't afford waiting for a better solution tomorrow, they prefer a good enough solution today. Perfect MC tools that would not integrate in github development (code review, issue tracker, test bots on feature branches/pull requests, ...) is not interesting them. It's a recipe for being categorized as bizarre and outdated. It's just that Squeak goals are a bit different. So yes, we have to live with it... Maybe it is time to refresh what these Squeak goals/directions are (based on last year inquiry?)
I'll be very happy to be proven wrong about near future :) I wish I had more time to support Squot... But even with very little time, the least we can do is to try it, report problems, make suggestions. Last time I checked, it was good enough for converting single package history to git, so we can do it. I did not take time to play with git integration though. A bit late for new year resolutions, but I promise I'll try again soon ;)
|
In reply to this post by Jakob Reschke
Thank you, I will try it.
Sorry - I overlooked your earlier message with the link: https://github.com/j4yk/tonel/tree/squeak Thanks, Dave On Fri, Feb 15, 2019 at 08:58:16AM +0100, Jakob Reschke wrote: > With these modest requirements, David, please try the port and open issues > for anything that bugs you about it. > > > Am Fr., 15. Feb. 2019, 02:14 hat David T. Lewis <[hidden email]> > geschrieben: > > > Hi Torsten, > > > > Thank you very much for asking about this, and thanks to Nicolas for the > > explanations. > > > > As a package maintainer (OSProcess and others), I want to be able to > > provide continued support for Pharo users, and it would probably be helpful > > if I could read and write to Tonel as an external format. I am also > > interested > > in being able to browse and read the projects (many of them quite > > excellent) > > that are being developed in Pharo from my Squeak image. > > > > I am a big fan of git, but I do not care about integrating it with the > > image (Squeak/Pharo) because I prefer using the in-image tools in Squeak, > > and when I do use git, I prefer to use git tools directly. > > > > I am not well informed about this topic, but overall I would say that being > > able to read and write Tonel format from Squeak would be very helpful, and > > I would probably not care very much about version control integration. > > > > Thanks again for asking, > > > > Dave > > > > > > On Thu, Feb 14, 2019 at 11:15:23PM +0100, Nicolas Cellier wrote: > > > I think that we should at least support the input/output of tonel > > packages > > > for inter-operability. > > > Since the git repositories are metadataless, we can't do much more > > without > > > a lot of work. > > > > > > Since tonel has no support for timestamps, it looses authorship (it is > > > replaced by committer-ship). > > > If we don't want to loose authorship, then we need to port whole history > > to > > > git with known initials <-> git(hub) account database. > > > This is currently working for single package with complex graph (to > > > filetree format, but could work for Tonel too). > > > If you want to commit several MC packages in same git repository, then > > it's > > > currently impossible to support complex history. > > > There is generally no information that enables inter-MC-package > > > synchronization (unless some sort of MCConfigurationMap is used, which at > > > least gives a few sync point in history...). > > > > > > If we want to perform essential operations like commit/pull/merge or > > access > > > essential information as history/revisions/diffs then we have to > > > - either reproduce the very hard work that began in Pharo: program a git > > > client inside the image, > > > - or loose inside image tools. > > > > > > Squeak MC tools are much more productive than Pharo MC tools: > > > - they scale well even for massive changes (i did check with auto > > generated > > > Smallapack interface) > > > - they support cherry-picking: you see and control what you commit > > > - they are quasi bugfree > > > - the magma backend provides a few additional features (revisions...) > > > Pharo team has produced huge effort for the github switch, but it does > > not > > > go without pain. Despite the importance of being visible on github, and > > > profit by state of the art web collaborating tools, i don't see Squeak > > able > > > to take this major turn in near future. > > > > > > If we want to have mix development with packages maintained both in a MC > > > repository and a git metadataless repository, > > > then we have the problem of finding a common ancestor. > > > I think that this could be doable with some conventions (like storing the > > > .last_known_mc_ancestor in a file) > > > Of course, it's re-introduction of metadata, but the minimal possible, > > and > > > leads to easy to resolve conflicts (that can be automated)... > > > > > > The last grief I have with Tonel is that it is not syntax agnostic. > > > Since we have a language where we can define compilerClass/parserClass, > > > that's unfortunate (The application i developed in the 90's did use such > > > important feature, it's not just theoretical) > > > It could have been language agnostic with very little effort (remember > > the > > > discussion on Pharo-dev, just using an arbitrary number of [[[ ]]] as > > > method body separators would suffice) > > > For most packages, that will not be a problem though. > > > > > > > > > Le jeu. 14 f??vr. 2019 ?? 15:17, Torsten Bergmann <[hidden email]> a > > ??crit : > > > > > > > Hi, > > > > > > > > as some of you might already know "Tonel" is a file-per-class format > > for > > > > monticello repositories [1]. > > > > > > > > In Pharo land many projects are already converted to it - as regular > > "file > > > > tree" solution faces issues > > > > with git handling due to very long file names / deep file hierarchy > > (often > > > > leading to trouble on Windows). > > > > > > > > Dales's Rowan (a new project/package manager for Smalltalk) supports > > > > FileTree and also Tonel > > > > repositories [2]. There is also a tool to convert from STORE > > (VisualWorks > > > > Source-Code Versioning System) > > > > to Tonel format [3]. > > > > > > > > So I wonder about adoption of Tonel in Squeak land. > > > > > > > > Any status/comments? > > > > > > > > Thx > > > > T. > > > > > > > > [1] https://github.com/pharo-vcs/tonel > > > > [2] https://github.com/GemTalk/Rowan > > > > [3] > > > > > > https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-tools-for-pharo6-1/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
I am travelling and will not be able to look at this further for a
day or two, but just for initial feedback - I loaded the MonticelloTonel packages in my Squeak trunk image, and was able to open NC tools and browse my local cloned repository normally. This looks really good, thank you :-) Dave On Fri, Feb 15, 2019 at 09:02:54AM -0500, David T. Lewis wrote: > Thank you, I will try it. > > Sorry - I overlooked your earlier message with the link: > > https://github.com/j4yk/tonel/tree/squeak > > Thanks, > > Dave > > On Fri, Feb 15, 2019 at 08:58:16AM +0100, Jakob Reschke wrote: > > With these modest requirements, David, please try the port and open issues > > for anything that bugs you about it. > > > > > > Am Fr., 15. Feb. 2019, 02:14 hat David T. Lewis <[hidden email]> > > geschrieben: > > > > > Hi Torsten, > > > > > > Thank you very much for asking about this, and thanks to Nicolas for the > > > explanations. > > > > > > As a package maintainer (OSProcess and others), I want to be able to > > > provide continued support for Pharo users, and it would probably be helpful > > > if I could read and write to Tonel as an external format. I am also > > > interested > > > in being able to browse and read the projects (many of them quite > > > excellent) > > > that are being developed in Pharo from my Squeak image. > > > > > > I am a big fan of git, but I do not care about integrating it with the > > > image (Squeak/Pharo) because I prefer using the in-image tools in Squeak, > > > and when I do use git, I prefer to use git tools directly. > > > > > > I am not well informed about this topic, but overall I would say that being > > > able to read and write Tonel format from Squeak would be very helpful, and > > > I would probably not care very much about version control integration. > > > > > > Thanks again for asking, > > > > > > Dave > > > > > > > > > On Thu, Feb 14, 2019 at 11:15:23PM +0100, Nicolas Cellier wrote: > > > > I think that we should at least support the input/output of tonel > > > packages > > > > for inter-operability. > > > > Since the git repositories are metadataless, we can't do much more > > > without > > > > a lot of work. > > > > > > > > Since tonel has no support for timestamps, it looses authorship (it is > > > > replaced by committer-ship). > > > > If we don't want to loose authorship, then we need to port whole history > > > to > > > > git with known initials <-> git(hub) account database. > > > > This is currently working for single package with complex graph (to > > > > filetree format, but could work for Tonel too). > > > > If you want to commit several MC packages in same git repository, then > > > it's > > > > currently impossible to support complex history. > > > > There is generally no information that enables inter-MC-package > > > > synchronization (unless some sort of MCConfigurationMap is used, which at > > > > least gives a few sync point in history...). > > > > > > > > If we want to perform essential operations like commit/pull/merge or > > > access > > > > essential information as history/revisions/diffs then we have to > > > > - either reproduce the very hard work that began in Pharo: program a git > > > > client inside the image, > > > > - or loose inside image tools. > > > > > > > > Squeak MC tools are much more productive than Pharo MC tools: > > > > - they scale well even for massive changes (i did check with auto > > > generated > > > > Smallapack interface) > > > > - they support cherry-picking: you see and control what you commit > > > > - they are quasi bugfree > > > > - the magma backend provides a few additional features (revisions...) > > > > Pharo team has produced huge effort for the github switch, but it does > > > not > > > > go without pain. Despite the importance of being visible on github, and > > > > profit by state of the art web collaborating tools, i don't see Squeak > > > able > > > > to take this major turn in near future. > > > > > > > > If we want to have mix development with packages maintained both in a MC > > > > repository and a git metadataless repository, > > > > then we have the problem of finding a common ancestor. > > > > I think that this could be doable with some conventions (like storing the > > > > .last_known_mc_ancestor in a file) > > > > Of course, it's re-introduction of metadata, but the minimal possible, > > > and > > > > leads to easy to resolve conflicts (that can be automated)... > > > > > > > > The last grief I have with Tonel is that it is not syntax agnostic. > > > > Since we have a language where we can define compilerClass/parserClass, > > > > that's unfortunate (The application i developed in the 90's did use such > > > > important feature, it's not just theoretical) > > > > It could have been language agnostic with very little effort (remember > > > the > > > > discussion on Pharo-dev, just using an arbitrary number of [[[ ]]] as > > > > method body separators would suffice) > > > > For most packages, that will not be a problem though. > > > > > > > > > > > > Le jeu. 14 f??vr. 2019 ?? 15:17, Torsten Bergmann <[hidden email]> a > > > ??crit : > > > > > > > > > Hi, > > > > > > > > > > as some of you might already know "Tonel" is a file-per-class format > > > for > > > > > monticello repositories [1]. > > > > > > > > > > In Pharo land many projects are already converted to it - as regular > > > "file > > > > > tree" solution faces issues > > > > > with git handling due to very long file names / deep file hierarchy > > > (often > > > > > leading to trouble on Windows). > > > > > > > > > > Dales's Rowan (a new project/package manager for Smalltalk) supports > > > > > FileTree and also Tonel > > > > > repositories [2]. There is also a tool to convert from STORE > > > (VisualWorks > > > > > Source-Code Versioning System) > > > > > to Tonel format [3]. > > > > > > > > > > So I wonder about adoption of Tonel in Squeak land. > > > > > > > > > > Any status/comments? > > > > > > > > > > Thx > > > > > T. > > > > > > > > > > [1] https://github.com/pharo-vcs/tonel > > > > > [2] https://github.com/GemTalk/Rowan > > > > > [3] > > > > > > > > https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-tools-for-pharo6-1/ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
In reply to this post by Torsten Bergmann
Hi All, Hi Torsten, Hi Jakob, On Thu, Feb 14, 2019 at 6:17 AM Torsten Bergmann <[hidden email]> wrote: Hi, Last year I was given contract employment by Tudor Girba's feenk which in part was to involve me porting VMMaker.oscog to Pharo in order to reap the productivity benefits of the Glamorous Toolkit when applied to VMMaker. The major direction was to unify the opensmalltalk-vm repository with a Toned-Format repository holding the Smalltalk code. This project, though no fault of feenk's did not go well. A big part of it was my own emotional attachment to Squeak, my "muscle memory" with Squeak and my long experience with Smalltalk-80 derived meta programming which I make extensive use of in VMMaker.oscog. But a key issue was that I was not prepared to *move* VMMaker.oscog to Pharo; for me it is key that it can live in both places. In particular I will not risk VMMaker.oscog being stranded on Pharo as it moves away from the "image-based rendering model". This is not because I don't believe in pixel-independent rendering models, but because productivity in VMMaker depends much more than on GToolkit inspection on the key architectural feature of being completely, safely simulateable (not a real English word; but meaning capable of being simulated). As Pharo moves towards external libraries to implement its UI so the degree to which VMMaker is simulated is reduced. Thus crashes in external code cannot be handled with the same power as with errors presented within the Smalltalk environment itself, and this (as harsh experience over thirty five years has taught me) is far more important for overall productivity than having powerful tailorable inspectors. I therefore wanted a Tonel that could both function for Squeak's Monticello and for Pharo's Iceberg. I had modified the Tonel serialization a little to provide well-formatted support for method timestamps, which are still a key and extremely useful part of Squeak Monticello's "blame" equivalent. Until git author attribution can be imported into Squeak's Monticello (something I don't see happening) I wanted merely to be able to have a variant of Tonel, enabled for example by a class variable, and hence /not/ present in Pharo, that would allow VMMaker.oscog to use Tonel but still be functional inside Squeak. I asked Esteban and was met by a flat no. Not "OK, but this is an option only you will use", but a flat "not under any circumstance". So here I am joining in this thread reluctantly. I'm extremely frustrated by the state of Tonel in Squeak and between the two dialects. Clément had moved his Scorch optimizer to Tonel/git and I tried to use Metacello and Jakob's Tonel code to at least allow me to load that code and try and push forward on Sista/Scorch. The port *does not work*. Metacello fails to load Scorch. Neither Jakob nor Fabio, after putting in some effort, were able to fix the problem, and it is well beyond me. So I have accepted the fact that I will have to use the Monticello repository for Scorch/Sista. I had deep concerns that the pursuit of git integration would end up splitting the Pharo and Squeak communities and indeed this is now in progress. I am utterly unmotivated by the lack of cooperation, the sheer arrogance and bullying of those that say "you will move to git/tonel or else", and considering leaving VMMaker altogether. The only things that are keeping me interested are Ron Teitelbaum's Terf and me pursuing a PhD on register allocation in the context of Sista/Scorch with Robert Hirshfeld's group at HPI. Here's the kind of crap people like Ducasse throw at me: "Eliot At the end of the day I will probably ask the two phds that should work on language design to use truffle or pypy because let us face it we cannot work with the Pharo VM. Else we will simply have to fork it (because we do not want to have to jump over cuis, newspeak, squeak code constraints and I do not what) and it will be another drama is in the pico world of the “open” smalltalk VM. " I am so over this crap. _,,,^..^,,,_ best, Eliot |
On Sun, Feb 17, 2019 at 1:22 PM ducasse <[hidden email]> wrote:
Thank god for that.
_,,,^..^,,,_ best, Eliot |
In reply to this post by Eliot Miranda-2
On Sun, Feb 17, 2019 at 1:00 PM ducasse <[hidden email]> wrote:
What is common is that I discuss technical matters (difficulties in using Tonel/git, architectural issues with developing the VM) and organizational issues (Estebans' unhelpful response regarding an option in Tonel) and you immediately personalize, do not bring up a single technical issue, and then make grand pronouncements like :this is the last email I'll send you". Laughable and sad.
_,,,^..^,,,_ best, Eliot |
Eliot
Contrary to you I do not wish your death. So can you respect me? Stef
-------------------------------------------- Stéphane Ducasse 03 59 35 87 52 Assistant: Julie Jonas FAX 03 59 57 78 50 TEL 03 59 35 86 16 S. Ducasse - Inria 40, avenue Halley, Parc Scientifique de la Haute Borne, Bât.A, Park Plaza Villeneuve d'Ascq 59650 France |
In reply to this post by Eliot Miranda-2
Hi Eliot, hi all, (reducing the addressees to squeak-dev again because I suppose the Pharo or VM devs are not that much interested in the Tonel port) Am So., 17. Feb. 2019 um 21:27 Uhr schrieb Eliot Miranda <[hidden email]>:
Sorry to hear that. I understand your frustration.
For anybody who would like to work on this: IIRC the problem is that if you try to load a Tonel project with Metacello, it attempts to load it like a FileTree project, which obviously fails. My as-yet-unverified theory is that there is something in Gofer or about the github:// Monticello repository code that hardcodes the use of FileTree instead of any other reader. If that is correct, one must find this code and extend it to look out for Tonel repositories and use the TonelReader when required. Maybe there are some changes to cherry-pick from Pharo. Personally, I am very fond of the use of Git instead of Monticello, but not convinced of Tonel so far. Yet we can expect Tonel to be something we will have to live with for some time (just like Monticello's overreliance on unique version names seen in other current threads, though the latter is an old problem and the adoption of Tonel is a new one). And I would not like to see the pool of available libraries for Squeak become even more limited because of the lack of support for a file-out format. I have spent my free time on Squeak only sporadically during the past year. As much as I would have liked to help Eliot further, it didn't appeal to me to spend a free evening or weekend digging through Metacello's code. Kind regards, Jakob |
On Sun, 17 Feb 2019, Jakob Reschke wrote:
> Hi Eliot, hi all, > (reducing the addressees to squeak-dev again because I suppose the Pharo or VM devs are not that much interested in the Tonel port) > > Am So., 17. Feb. 2019 um 21:27 Uhr schrieb Eliot Miranda <[hidden email]>: > I therefore wanted a Tonel that could both function for Squeak's Monticello and for Pharo's Iceberg. I had modified the Tonel serialization a little to provide well-formatted support for > method timestamps, which are still a key and extremely useful part of Squeak Monticello's "blame" equivalent. Until git author attribution can be imported into Squeak's Monticello > (something I don't see happening) I wanted merely to be able to have a variant of Tonel, enabled for example by a class variable, and hence /not/ present in Pharo, that would allow > VMMaker.oscog to use Tonel but still be functional inside Squeak. I asked Esteban and was met by a flat no. Not "OK, but this is an option only you will use", but a flat "not under any > circumstance". > > > Sorry to hear that. I understand your frustration. > > So here I am joining in this thread reluctantly. I'm extremely frustrated by the state of Tonel in Squeak and between the two dialects. Clément had moved his Scorch optimizer to > Tonel/git and I tried to use Metacello and Jakob's Tonel code to at least allow me to load that code and try and push forward on Sista/Scorch. The port *does not work*. Metacello fails > to load Scorch. Neither Jakob nor Fabio, after putting in some effort, were able to fix the problem, and it is well beyond me. So I have accepted the fact that I will have to use the > Monticello repository for Scorch/Sista. > > > For anybody who would like to work on this: IIRC the problem is that if you try to load a Tonel project with Metacello, it attempts to load it like a FileTree project, which obviously fails. My > as-yet-unverified theory is that there is something in Gofer or about the github:// Monticello repository code that hardcodes the use of FileTree instead of any other reader. If that is correct, one > must find this code and extend it to look out for Tonel repositories and use the TonelReader when required. Maybe there are some changes to cherry-pick from Pharo. > > Personally, I am very fond of the use of Git instead of Monticello, but not convinced of Tonel so far. Yet we can expect Tonel to be something we will have to live with for some time (just like > Monticello's overreliance on unique version names seen in other current threads, though the latter is an old problem and the adoption of Tonel is a new one). And I would not like to see the pool of > available libraries for Squeak become even more limited because of the lack of support for a file-out format. I have spent my free time on Squeak only sporadically during the past year. As much as I > would have liked to help Eliot further, it didn't appeal to me to spend a free evening or weekend digging through Metacello's code. What does Metacello add to the mix? Can't we just map each git commit to an mcz? Levente > > Kind regards, > Jakob > > |
Am Mo., 18. Feb. 2019, 01:39 hat Levente Uzonyi <[hidden email]> geschrieben:
Strictly speaking, Metacello is not required. But you would have to resolve the package dependencies yourself and gather them from external repositories, which is the main benefit of Metacello. So I understand that Eliot wants it to work. There is no mcz to map to. If one were to create a new kind of MCRepository that maps commits to MCVersions, you would have 0..* MCVersions per commit because each commit may touch multiple packages or none. Each commit describes a particular configuration of package versions, so one could generate an artificial MCConfiguration for each commit. Note that Squot / the Git Browser already supports these scenarios for FileTree repositories, albeit without using Monticello for the version control. |
In reply to this post by David T. Lewis
I can share a bit my experience with tonel and Pharo. I have been using
Tonel on Pharo now for DrGeo code. However I don't use git for several reasons, I use Launchpad/Bazzar. So it will be a bit the same situation as Squeak with Tonel content commited to GIT repo. So all in all from the image I don't have access to versioning, I have to do it externally from the bzr line command or Launchpad web interface[1] and it is pretty nice. So it is not very different when developing with other system. This is so far an acceptable trade-off, but I am so far only one developer on this repository. Hilaire [1] https://bazaar.launchpad.net/~drgeo-developers/drgeo/trunk/files/head:/src/ Le 15/02/2019 à 02:14, David T. Lewis a écrit : > I am a big fan of git, but I do not care about integrating it with the > image (Squeak/Pharo) because I prefer using the in-image tools in Squeak, > and when I do use git, I prefer to use git tools directly. > > I am not well informed about this topic, but overall I would say that being > able to read and write Tonel format from Squeak would be very helpful, and > I would probably not care very much about version control integration. -- Dr. Geo http://drgeo.eu |
In reply to this post by Stéphane Ducasse
Yes, please cool down, this is a pathetic spectacle. What is needed in
our community is cooperation, and we can extend it to humanity if we want to overcome the greatest difficulties ahead of us... We have the right to not agree, but we have the moral obligation to respect each other and keep the discussion gentle. Hilaire Le 18/02/2019 à 06:37, Tudor Girba a écrit : > Gentlemen, > > I am really sad to read through this animosity. Please, let’s go back to technical discussions. > > Tudor -- Dr. Geo http://drgeo.eu |
In reply to this post by Jakob Reschke
On Mon, 18 Feb 2019, Jakob Reschke wrote:
> Am Mo., 18. Feb. 2019, 01:39 hat Levente Uzonyi <[hidden email]> geschrieben: > > Is it a must to use Metacello to load code in Tonel format? > What does Metacello add to the mix? > Can't we just map each git commit to an mcz? > > Levente > > > Strictly speaking, Metacello is not required. But you would have to resolve the package dependencies yourself and gather them from external repositories, which is the main benefit of Metacello. So I > understand that Eliot wants it to work. > > There is no mcz to map to. If one were to create a new kind of MCRepository that maps commits to MCVersions, you would have 0..* MCVersions per commit because each commit may touch multiple packages > or none. Each commit describes a particular configuration of package versions, so one could generate an artificial MCConfiguration for each commit. Note that Squot / the Git Browser already supports > these scenarios for FileTree repositories, albeit without using Monticello for the version control. Looking at the repository in question[1], there seem to be multiple packages stored in it[2]: BaselineOfScorch, Scorching, ScorchingDev, ScorchingTests, ScorchingVMTests. My impression is that these could be converted to individual mczs for each commit, which would mean that the same code would be available as MC packages. Then you could load the code with MC/Metacello/whatever from the .mczs. Am I missing something? Levente [1] https://github.com/clementbera/Scorch [2] https://github.com/clementbera/Scorch/tree/master/repository > > |
Free forum by Nabble | Edit this page |