|
| 1 | +# 9 September 2024 | MessageFormat Working Group Teleconference |
| 2 | + |
| 3 | +### Attendees |
| 4 | +- Addison Phillips - Unicode (APP) - chair |
| 5 | +- Mihai Niță - Google (MIH) |
| 6 | +- Eemeli Aro - Mozilla (EAO) |
| 7 | +- Mark Davis - Google (MED) |
| 8 | +- Tim Chevalier - Igalia (TIM) |
| 9 | +- Richard Gibson - OpenJSF (RGN) |
| 10 | +- Harmit Goswami - Mozilla (HGO) |
| 11 | + |
| 12 | +Scribe: HGO |
| 13 | + |
| 14 | +## Topic: LDML46 and the end of Technical Preview |
| 15 | +_The v46 release is upcoming. There is also a desire to finish the 2.0 release (exit technical preview). Let’s discuss the practical considerations for doing both, including the possibility of a 46.1. This is also the section of the meeting in which we’ll set out the goals for the next 2-3 days._ |
| 16 | + |
| 17 | +[APP]: Current plan for #46 is to bookmark where we’re at and run the spec out. We still call it a technical preview but release out to-date work |
| 18 | + |
| 19 | +[MED]: Deadline is 25th for tech preview, we need time for back-and-forth and review, I don’t see time for that so we should target end of November to be done in this community |
| 20 | + |
| 21 | +[EAO]: Why do we need to complete this in this calendar year? |
| 22 | + |
| 23 | +[MED]: Funding issues, also without a forcing factor, this group might take ages. A deadline helps us to get done |
| 24 | + |
| 25 | +[EAO]: My concern with finishing the tech preview is that we will need to await on external inputs (Although I like the deadline) |
| 26 | + |
| 27 | +[MED]: If this is done properly, we can fix problems later (if it’s done properly). Trying to perfect it now is risky. |
| 28 | + |
| 29 | +[APP]: I think we can do enough to go ask the larger community prior to finishing the core issues remaining. We can run off a copy of #46 as a ‘stake in the ground’ |
| 30 | + |
| 31 | +[MED]: Sounds good, we don't want to force things into the tech preview since there’s only a week. |
| 32 | + |
| 33 | +[EAO]: Wanted to clarify the parts of the spec that are not able to be complete within the week. If people outside this group have different thoughts, I’m concerned the balance between opinions and decisions we can make will get out of hand, and worst-case can lead to a v3 release |
| 34 | + |
| 35 | +[APP]: Most of the concerns are regarding syntax. I agree, but people who don’t like the syntax will either have to live with it or create their own standard. We’ve reached our goals with what we wanted to accomplish with the syntax, other people can discuss whitespace, etc., but that won’t be in MF2. We can’t keep opening that box. |
| 36 | + |
| 37 | +[APP]: On monday, we’ll finalize what to add in, and submit on wednesday. |
| 38 | + |
| 39 | +## Topic: PR Review |
| 40 | +Timeboxed review of items ready for merge. |
| 41 | + |
| 42 | + |
| 43 | +## Topic: … (#879) |
| 44 | +[Merged] |
| 45 | + |
| 46 | +## Topic: … (#878) |
| 47 | +[MED and EAO approve, merged] |
| 48 | + |
| 49 | + |
| 50 | +## Topic: Selection-declaration (#824, #873, #872) |
| 51 | +_Discuss the design options seeking WG consensus. Timeboxed to 15 minutes._ |
| 52 | + |
| 53 | +- https://github.com/unicode-org/message-format-wg/blob/main/exploration/selection-declaration.md |
| 54 | +- https://github.com/unicode-org/message-format-wg/issues/873 |
| 55 | +- https://github.com/unicode-org/message-format-wg/issues/872 |
| 56 | + |
| 57 | +[APP]: There wasn’t a consensus on #873, but solution F seems to be getting an emergent consensus. I think that’s the proposal on the table, any challenges? |
| 58 | + |
| 59 | +[MED]: I think it’s suboptimal, but can be extensively modified in the future (see solution E). I think it’s good for release 46. |
| 60 | + |
| 61 | +[APP]: I’m also unhappy with it currently |
| 62 | + |
| 63 | +[EAO]: If there’s a desire to make this backwards extensible, then we need to reserve the space in the syntax, opposed to what we currently do |
| 64 | + |
| 65 | +[APP]: Or we look at our stability guarantee to see if we can make that change |
| 66 | + |
| 67 | +[MED]: The key thing people want is backwards compatibility |
| 68 | + |
| 69 | +[EAO]: In our current stability policy, the 2.0 parser should parse without syntax error a message made in 2.1 … 2.n version. So then I feel we must reserve the space |
| 70 | + |
| 71 | +[MED]: I think it’s a mistake to promise the syntax is forwards and backwards compatible, since that ties our hands for the future. Changing forward compatibility needs a good reason, but tying our hands now can be bad, as I’ve seen in my career |
| 72 | + |
| 73 | +[EAO]: I’d be okay with no forwards compatibility. This also lets us drop all the reserved structures from the syntax. |
| 74 | + |
| 75 | +[MIH]: I have mixed feelings about dropping. L10n tools would work, which is the main benefit. On the other hand, currently having reserved structures is clunky, so I’m okay with removing forwards compatibility |
| 76 | + |
| 77 | +[APP]: I think it’s a reasonable evil. I doubt we’ll use the structure but I could be wrong. |
| 78 | + |
| 79 | +[EAO]: I’d be okay with losing forwards compatibility, partly due to this, but also because it’ll help us simplify a lot, and can get rid of all the reserved stuff. Effectively, everything that’s an error can be fixed later. It’d also make me less unhappy about rushing this out of the tech preview, since we have more options in the future |
| 80 | + |
| 81 | +[APP]: We’re suggesting that we can make additions to the syntax that won’t break your compatibility? [All: yes] |
| 82 | + |
| 83 | +[APP]: Okay so we need to rework our guarantee (MED: to guarantee backwards compat, but not forwards), remove reserved structures, and move forward with solution F? [MED]: Yup [APP]: EAO, we should do a PR for solution F first, then make 2 additional PRs |
| 84 | + |
| 85 | +## Topic: Disallow “whitespace or special char” prefixed `.` in reserved-statement’s body (#840) |
| 86 | +_Discuss making this technical change in the reserved-statement syntax._ |
| 87 | + |
| 88 | +[APP]: Now out of scope! |
| 89 | + |
| 90 | +## Topic: Bidi design (#811) |
| 91 | +_Bidi and whitespace options need to be discussed in light of the design document._ |
| 92 | + |
| 93 | +https://github.com/unicode-org/message-format-wg/blob/main/exploration/bidi-usability.md |
| 94 | + |
| 95 | + |
| 96 | +[APP]: A piece of homework for this topic was to review the ALM mark, which has an effect when used BEFORE a sequence of characters, but not when you add it to the end of a token. The way we use strong characters in the syntax, there’s not many ways you can incorporate ALM into it. |
| 97 | + |
| 98 | +[EAO]: So you propose we drop ALM from the allowed things? |
| 99 | + |
| 100 | +[APP]: It’s an allowed character but not allowed in the syntax |
| 101 | + |
| 102 | +… |
| 103 | + |
| 104 | + |
| 105 | +## Topic: Standard, Optional, and Unicode Namespace Function Set maintenance (#634) [was “registry maintenance”] |
| 106 | +_This is the function registry maintenance procedure design. Let’s review with an eye towards using as a template for other work._ |
| 107 | + |
| 108 | +[APP]: Should I add this in as proposed and we iterate later? [No objections] |
| 109 | + |
| 110 | +## Topic: Uniqueness (#869, #847) |
| 111 | +_String equality (used in key matching or operand uniqueness) is affected by Unicode Normalization concerns. We need to decide whether to require a specific normalization form (typically NFC) or whether we warn users about the consequences of using denormalized values._ |
| 112 | + |
| 113 | +[APP]: We should address string equality, given the nature of Unicode. |
| 114 | + |
| 115 | +[EAO]: Mentioning that we have option and attribute names checking for uniqueness |
| 116 | + |
| 117 | +[MIH]: My take is that I strongly favor comparing strings as they are without normalization. If you want to normalize, you are free to do it outside, but in terms of preprocessing, what gets to MF2 is processed as is. |
| 118 | + |
| 119 | +[MED]: Almost every process nowadays has access to NFC normalization, if the dataset is small. You can do a very quick check to see if a text looks suspicious or not. I’m more worried about odd errors hitting people, since one implementation normalizes and another does not. This won’t affect European languages as much, but it’ll hit other languages a lot |
| 120 | + |
| 121 | +[APP]: I’ve always wanted people to check for normalization. If we want broad adoption, not insisting on normalization will help, but then we have to warn people that naming variables “options” and “operand”, etc. is a bad idea. |
| 122 | + |
| 123 | +[MED]: I see two issues. One, if all comparisons are within MF2 itself, and the second, if it depends on parameters and whether or not the parameters are normalized. I think it’s a mistake not to have a ‘SHOULD’ that comparisons should be done with normalization if possible. |
| 124 | + |
| 125 | +[EAO]: Agree with MED, SHOULD is good but MUST is too much of a fight |
| 126 | + |
| 127 | +[APP]: Should is hard to test though |
| 128 | + |
| 129 | +[MED]: I don’t think it’s too hard, you can easily provide such test cases. You can mark the test cases as they’re SHOULD |
| 130 | + |
| 131 | +[APP]: If we give authoring guidance that you should use normalized values, but the implementation doesn’t require normalization, then you can get yourself into trouble since it may sometimes work and other times won't. If you write a normalization-sensitive message, then it’s liable to cause problems, and there should be a warning |
| 132 | + |
| 133 | +[EAO]: I still think we should have a SHOULD. In the spec, you can get noticeable differences in behavior between normalized and non-normalized messages. |
| 134 | + |
| 135 | +[APP]: Agreed, it should be given to the author. |
| 136 | + |
| 137 | +[MED]: If we don’t go for MUST, then we should go with ‘MF2 text should be normalized with NFC, and parameters should be compared with normalization’. There can also be a section of the site that talks about implementation features, and this isn’t as formal so can be modified easily over time. |
| 138 | + |
| 139 | +[APP]: Normalizing the whole message is a bad idea since we have quoted text pieces that we promise as verbatim. That’s why I say it should be inside the comparison. I understand EAOs point, but if some messages behave differently in different environments, then I think it’s okay to just put a warning sticker there. |
| 140 | + |
| 141 | +[EAO]: It’s either we enforce with a MUST, or recommend with SHOULD, and handle the diverging corner cases |
| 142 | + |
| 143 | +[MED]: Agreed. The SHOULD should be put on building the message and comparisons. |
| 144 | + |
| 145 | +[MIH]: We still have to say the comparison should be normalized away. The comparison should be there no matter what. As an implementer, I don't really care since I implement on top of ICU. I’m still reluctant to ask for normalization behavior at runtime, but whatever |
| 146 | + |
| 147 | +[EAO]: Comparisons is the only place we should put the SHOULD, since that’s the only thing we control [All agree] |
| 148 | + |
| 149 | +[EAO]: We might also want to include a definition for ‘unique’ and ‘duplicate’, so we can point to those definitions in the PR |
| 150 | + |
| 151 | +[MIH]: I’m reluctant to claim a user should normalize an ArgMap, it’s just not that obvious. There might be use-cases where I want the denormalized form, and I can imagine a use-case |
| 152 | + |
| 153 | +[EAO]: My implementation plan won’t include normalizing the ArgMap, since it’ll be ASCII only. |
| 154 | + |
| 155 | + |
| 156 | +## Topic: Issue review |
| 157 | +https://github.com/unicode-org/message-format-wg/issues |
| 158 | +Currently we have 56 open (was 60 last time). |
| 159 | +- 14 are Preview-Feedback |
| 160 | +- 1 is resolve-candidate and proposed for close. |
| 161 | +- 3 are Agenda+ and proposed for discussion. |
| 162 | +- 1 is a ballot |
| 163 | + |
| 164 | + |
| 165 | + |
| 166 | +## Topic: AOB? |
| 167 | + |
0 commit comments