How to read about documentation regarding Parameterised transclusions

From GitHub notifications, I can see that @jeremyruston is constantly adding some commits regarding Parameterised transclusions including some documentation. I would like read those documentation about Parameterised transclusions. How to do that ?

Hi @arunnbabu81 the docs for the work on parameterised transclusion are not quite complete.

There is an overview of the changes at the top of the pull request:

You can see the raw documentation tiddlers starting here:

The plan is:

  1. complete the documentation
  2. publish a build of the PR to tiddlyhost to make it easier for the community to review it
  3. release v5.2.4 and merge the PR as v5.3.0-prerelease
1 Like

I see Parameterized Transclusion adds a lot of new features and open new windows for scripting in Tiddlywiki

  1. Is 5.3.0 still full backward compatible?
  2. Is there any plan to remove some old/inefficient features?

I admit I am concerned about the “Parameterised transclusions” being challenging for most users to make use of, I am no genius but do know my way around much of tiddlywiki, and I find “Parameterised transclusions” difficult. Perhaps this is due to the brevity used to describe them in GitHub, but there are new terms, selected because they need to differentiate between current terms but are close synonyms of current terms. There are also new conceptual models and even ways of using syntax that is illegal or inoperative in current tiddlywiki.

I don’t doubt the power in the new features and it is knocking down long standing barriers many of which I have voiced over the years, but I am genuinely concerned its going to be hard to learn, to teach and likely to generate code novices just can’t understand at all, and may scare people.

The brevity and collaboration between developers during the development of this solution was not easy for even a super user to participate in, both technically and emotionally. We must acknowledge, in many ways there is no “user acceptance testing” in the current upgrade process, at least for every day users.

Constructively, if we want this to proceed graciously we really need develop good documentation, in plain language, and even train the key influencers in talk.tiddlywiki so they too can help introduce these super revolutionary changes to tiddlywiki.

  • It takes time to develop the language and comparisons between current syntax and new syntax to help people to deal with change and decide when or why the new methods / syntax is in use.

The user defined widgets seem almost identical to procedures. What am I missing?

TBH, I thought it a remarkable bit of writing. Compact but brilliant …

… starts it.

TT

Perhaps here or in additional threads we could start a discussion about key elements of these changes so the community gets a heads up on this substantial development of tiddlywiki features. First I propose a discussion then we can create some wiki posts for a collated explanation.

What do you think - I already have some content.

As it stands now they are optional. So nobody is forced to use them.

That is importiant but my concern is if anyone wants to use it we need it well documented.

Yes, v5.3.0 is fully backwards compatible, and no, there are no plans to remove/deprecate older features at this point. That’s something we’ll come back to in a subsequent release.

@TW_Tones I think you mean “development process” rather than “upgrade process”?

The parameterised transclusion work is not yet complete, in particular the documentation is not complete. The work on these features is taking place on GitHub which I appreciate is not accessible to everyone. But you can at least see that there are a number of community members participating in the thread who do have a working understanding of the changes.

User defined widgets are effectively a syntactic sugar for procedures; the value they provide is that they make it much easier to pass structured content (ie the content of the widget doesn’t need to be quoted), and that they allow the core widgets to be overridden.

2 Likes

Yes, TiddlyWiki Release and features Development, that is reflected in upgrades to the core.

My comments here are not a criticism or complaint of anyone or anything just a desire to improve the quality of the outcomes, and support the community in which I participate.

I agree, but this is a necessary minimum. Also “The current community members participating” are self selecting and only those with a Github account and particular skill sets, not very representative of the whole community. I have contributed to this process and can see changes that reflect my comments, even if not acknowledged as such, but even now it’s harder for me to contribute.

Perhaps in the future we may find ways to engage a larger audience before large irreversible changes take place in the core.

A few of us, myself included, deal on a daily or weekly basis, communicating how to use TiddlyWiki with a broad audience of different skills levels. Some changes cause either more time and effort to be demanded of community volunteer’s, or causes them not respond or support because they don’t have the time available.

In many other cases we insist that a plugin be released before changes to the core, this makes something reversable? I expect its not likely but what if;

  • “Parametrised transclusions” first came out as a Plugin, even if it must overwrite core tiddlers, allowing to it mature before it was committed to the core and thus backwards compatibility obligations?.
  • This would give a wider audience a chance to test, experience and contribute.

GitHub PRs like this is where we do development work collaboratively. Everything we discuss there is based around the code that makes up TW (anything that doesn’t touch the code gets discussed here). So there is a knowledge threshold for useful participation in those threads.

It’s hard to see a way around that. It would be impossibly inefficient to discuss everything in the simplified terms that would make sense to all end users. I think we have to accept that the coding process is not conducive to broader involvement.

I don’t see “irreversible” here. Everything is provisional until release.

The prerelease process is very much oriented for the needs of end users, and is the opportunity for broader discussion within the community.

That would make the development enormously more complicated. These are fundamental changes to TiddlyWiki’s core code.

Can you give examples of where that has happened?

The essence of open source software is continuous improvement. I can see that it can cause anxiety for end users because it can be disorientating to encounter change, but what’s the alternative? Software rusts over time, without those continuous improvements it dies.

3 Likes

Jeremy, thanks for your comprehensive response.

Some simple responses;

I never suggested this, but I do believe we need to get more interaction and involvement.

Perhaps it is not but “addressing user needs, understanding the gaps they see and the areas they have difficulty understanding” is essential in any solution that is intended to satisfy the needs of a broad audience. I am not saying how, not asking current systems to change, I am pointing out I think there is an unnecessarily large gap between these two, and as a community I think we should seek to improve in this area.

Perhaps, but we tend to finally see everything in pre-release just before a new version release. The documentation which is essential to being able to evaluate a new feature is usually the last thing to arrive, meaning It is hard for others to even play with a new feature let alone contribute. We could have more engagement here.

If that is the case then that is the case, but the point is about engagement and contributions from a broader audience when posible.

There are a range of subject areas where users are often asking for help in the GG in the past and here. You only have to look at where we tend to spend most of the time, perhaps some illustrative examples are

  • The MAP and REDUCE filters which I don’t reject but then there may have being other more accessible words we could use.
  • The menu bar plugin is not as strait forward to use and customise as it could have being and I speak from the perspective of having developed a number of menu solutions.

You clearly misunderstand what I was saying to respond this way, It is not about change itself, or coping with change, but engaging people as broadly in the change process as practical. The more perspectives, ideas, input and criticism’s typically the better the results and I am pointing out where this is somewhat limited.

Please understand this is about constructive observations that I think need to be acknowledge and incorporated in future thinking. Sure we may dispute the degrees and examples but the points remain valid.

Yours sincerely, Tony

In the act of responding here one idea that may help that comes to mind is separating releases containing fixes and those that introduce features so fixes arrive quicker and features get more input and documentation before release.

  • I also think this could help make new features even better, more innovative and valuable.
  • An example may be a seperate demonstration wiki with Parameterised Transclusions before release.

I think it important to highlight here that:

  • the above next steps indicate that the new features under discussion are at least two TW releases away which in all likelihood means 6+ months given past release cycles.
  • despite how far the new features are from release, the reference documentation is already close to being complete thanks to Jeremy putting in countless hours on this front throughout the development of this PR to allow others to engage with it. Writing extensive documentation this early in the development process always leads to a high overhead in terms of having to redo it, sometimes almost entirely, as the code changes and matures.
  • the release plan provided above indicates a longer than usual pre-release period for v5.3.0 and that the intention is to potentially publish a build of the PR as a TiddlyWiki everyone can experiment with and explore even in advance of that with complete reference documentation, giving ample opportunity for community engagement and feedback.
  • the changes under discussion are completely backwards compatible and that existing code and knowledge of how to use it will still suffice if it does so today.

I also find this previous comment by Jeremy relevant here in terms of what is and is not realistic in terms of both development and user engagement for a small community like ours with limited resources. If anything I believe the end user engagement by TiddlyWiki developers is significantly higher than you will find in most open source communities.

3 Likes