QT4 CG Meeting 086 Agenda 2024-07-16

Agenda index / QT4CG.org / Dashboard / GH Issues / GH Pull Requests

Agenda

This meeting will be hosted on Zoom at 16:00BST (15:00GMT, 17:00CEST, 11:00EDT)

See the meeting logistics page for details.

1. Administrivia

1.1. Roll call

1.2. Approve the agenda

1.3. Approve minutes of previous meeting

Minutes of the previous meeting.

1.4. Next meeting

This meeting is planned for 16 July. The following meeting is scheduled for 23 July.

The CG will meet on 23 July but will then take a summer recess with no meetings from 30 July to 27 August, inclusive. We’ll start up again on 3 September.

1.5. Review of open action items [0/3]

(Items marked [X] are believed to have been closed via email before this agenda was posted.)

  • [ ] QT4CG-080-05: NW to add absolute property to the parse-uri output
  • [ ] QT4CG-080-07: NW to update the build instructions in the README
  • [ ] QT4CG-082-02: DN to work with MK to come to agreement on the fn:ranks proposal

1.6. Review of open pull requests and issues

1.6.1. Blocked

The following PRs are open but have merge conflicts or comments which suggest they aren’t ready for action.

  • PR #1231: 1193 Parsing Functions: Empty input
  • PR #1227: 150 PR resubmission for fn ranks
  • PR #1062: 150bis - revised proposal for fn:ranks
  • PR #529: 528 fn:elements-to-maps

1.6.2. Close without action

It has been proposed that the following issues be closed without action. If you think discussion is necessary, please say so.

  • Issue #1272: Add xsl:value-of/@as attribute

1.6.3. Substantive PRs

The following substantive PRs were open when this agenda was prepared.

  • PR #1296: 982 Rewrite of scan-left and scan-right
  • PR #1283: 77b: Update expressions
  • PR #1266: 1158 Add array mapping operator
  • PR #1263: 1224 Add xsl:accumulator-rule/@priority attribute
  • PR #1244: 566-partial Rewrite parse-uri
  • PR #1228: – Adding the BLAKE3 hashing algorithm to fn:hash
  • PR #1209: 1183 Add transient mode and the transient{} expression
  • PR #1185: 1179 array:values, map:values → array:get, map:get
  • PR #832: 77 Lookup returning path selection

1.6.4. Required for V4.0

The following issues are labeled “required for V4.0”.

  • Issue #1252: Add a new function `fn:html-doc`
  • Issue #1240: $sequence-of-maps ? info()
  • Issue #1238: XSLT on-no-match="shallow-copy-all" - revised rules
  • Issue #1235: Function Identity: Treating function items with identical bodies
  • Issue #1202: XQFO: Rendering of new/updated functions
  • Issue #1169: Maps & Arrays: Consistency & Terminology
  • Issue #1127: Binary resources
  • Issue #1045: Functions to manage namespace usage
  • Issue #1021: Extend `fn:doc`, `fn:collection` and `fn:uri-collection` with options maps
  • Issue #1014: Predicates, sequences of numbers: Feedback
  • Issue #1011: fn:transform() improvements
  • Issue #986: Numeric Comparisons
  • Issue #967: XPath Appendix I: Comparisons
  • Issue #868: fn:intersperse → fn:join, array:join($arrays, $separator)
  • Issue #826: Arrays: Representation of single members of an array
  • Issue #767: parse-html(): case of SVG element names
  • Issue #755: Expression for binding the Context Value
  • Issue #748: Parse functions: consistency
  • Issue #689: fn:stack-trace: keep, drop, replace with $err:stack-trace ?
  • Issue #675: XSLT streaming rules for new constructs
  • Issue #501: Error handling: Rethrow errors; finally block
  • Issue #490: Control over schema validation in parse-xml(), doc(), etc.
  • Issue #407: XSLT-specific context properties used in function items
  • Issue #272: Setting parameter values in xsl:use-package
  • Issue #69: fn:document, fn:function-available: default arguments

2. Technical Agenda

2.1. Community, communication, and consensus

Can we make our process less…fractious?

When a working group cannot discuss issues in an open, candid manner with mutal respect and understanding, it begins to break down. Let’s take a few minutes to reassure each other that we’re all on the same side here.

Some proposals succeed, some fail. Some issues are taken up in earnest, some languish. Sometimes the merits of our arguments are immediately recognized, sometimes they fall on deaf ears. Sometimes unanimity can be achieved, sometimes it cannot.

When unanimity cannot be achieved, we attempt to operate on the basis of “rough consensus”. If there’s a clear majority opinion, we choose to adopt that as the status quo. That doesn’t mean an issue cannot be revisited, that new information cannot arise which persuades us to change our minds, but it offers us a way to make incremental progress towards our goal.

If you find yourself in the majority, remember that the minority are smart and capable and arguing in good faith. That they have not been persuaded should be cause for sincere reflection. If you find yourself in the minority, remember that the majority are smart and capable and arguing in good faith. If your technical arguments were unpersuasive, repeating them more stridently with more dramatic metaphors isn’t likely to be persuasive either. Sometimes working groups make decisions that some individuals think are A Very Bad Idea™. There comes a point at which the most productive thing the minority can do is accept the decision with the understanding that the objections have been heard and recorded.

2.2. PR #1296: 982 Rewrite of scan-left and scan-right

See PR #1296

Let’s try to pick this up where we left off and see if we can come to consensus. Please review the minutes of the previous meeting before we continue this discussion.

2.3. PR #1283: 77b: Update expressions

See PR #1283

2.4. PR #1263: 1224 Add xsl:accumulator-rule/@priority attribute

See PR #1263

2.5. PR #1228: – Adding the BLAKE3 hashing algorithm to fn:hash

See PR #1228

2.6. PR #1209: 1183 Add transient mode and the transient{} expression

See PR #1209

2.7. PR #1185: 1179 array:values, map:values → array:get, map:get

See PR #1185

3. Any other business