On Mon, Mar 14, 2022 at 10:01 AM Michal Wallace <michal.wall...@gmail.com> wrote: > In j-kvm (that console library I've been working on), I implemented a > simple verb that I really wish had a standard name in J: > > of =: {{ (x,'__y')~ [ y }}"1 0
Conceptually, the isi people have set things up so that people in the community can submit well thought out changes. They have provided a variety of mechanisms here. Of course, there's scripting that we all use. But, beyond that, there's support involving git and github. (*) If you have a github account (which is free to create), you can create an addon which anyone can install (though of course you have to make this known). An example here is Brian Schott ('zerowords' on github) who has created the 'tgsjo' addon. To install or update it: install'github:zerowords/tgsjo' NB. install https://github.com/zerowords/tgsjo as an addon And then, you can use it using require'zerowords/tgsjo' or load'zerowords/tgsjo' or you can open the top level file in jqt's editor using open'zerowords/tgsjo' Like any addon, this needs a manifest.ijs. But that's pretty straightforward. Once you have published an addon for other people to use, you would probably want to be able to alpha/beta releases. J's github install process installs the 'master' branch from github. If you want to install a different branch, you can append it. But, rather than for example install'zerowords/tgsjo/tree/version1' you would use install'zerowords/tgsjo@version1'. It would be nice if the pacman ui would let you scan for updates to installed github addons, but let me come back to this issue in a bit... (*) You can also fork a copy of one of jsoftware's addons. This gives it a new name (with your username as a prefix, and the github name as a suffix), but other than that, the mechanics are rather similar to other addons. Not all of the jsoftware repositories represent addons, but many of them are: https://github.com/orgs/jsoftware/repositories Modify at your own risk, of course (just like any other changes you make on your own machine). As you can see, they have put in a tremendous amount of development effort into this over the years. (*) If you have changes that you have organized and developed, and pushed to some branch on github, you can also submit them back to isi as a pull request against the repository. Note acceptance into github is not the same thing as publishing an update to the addon -- that's a separate step. It would be good to supply a test suite for any changes you submit. This is an area which could use some thought and improvement. (There's a tension, in test suites, between tedious or slow and lightweight and convenient.) (*) Also, in addition to discussion on the forums, topic and addon specific notes can be left in the github issue tracker for a repository (or as comments on a pull request). For example, it would be nice if J's pacman could scan for changes to addons which were installed from github. That would be a change to https://github.com/jsoftware/base9 -- so I could fork the repository, implement and test a change to pacman, maybe sleep on it a few days and figure out if there are any important interface issues that should get test suite support, for stability, maybe talk it out on the forums, with instructions on how other people could test the changes (inviting comments, feedback and hopefully not too much silliness) and if it goes well I could eventually submit my changes for everyone to use, in a pull request. (Pull requests were designed to be a process which optionally involves discussion and push-back and/or delay and/or rejection. There's a lot of possibilities here.) A similar process might work with dictionary support, though given the wide variety of possibilities, I would expect rather slow progress here -- it's all-too-often not the case that the first available implementation would offer the best approach. That said, small well-thought-out changes offering convenience (like your 'of') might be a good use of the limited 'short words space'. Thanks, -- Raul ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm