Skip to content

Commit bcda078

Browse files
authored
Create notes-2024-07-08.md
1 parent 661edfb commit bcda078

File tree

1 file changed

+213
-0
lines changed

1 file changed

+213
-0
lines changed

meetings/2024/notes-2024-07-08.md

Lines changed: 213 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
# 8 July 2024 | MessageFormat Working Group Teleconference
2+
3+
### Attendees
4+
- Eemeli Aro - Mozilla (EAO) - temporary chair
5+
- Harmit Goswami - Mozilla (HGO)
6+
- Richard Gibson - OpenJSF (RGN)
7+
- Mihai Niță - Google (MIH)
8+
- Luca Casonato - Deno (LCA)
9+
- Staś Małolepszy - Google (STA)
10+
- Toral Cowieson - Unicode (TDC)
11+
12+
Scribe: MIH
13+
14+
## Topic: Info Share
15+
16+
Luca Casonato: “I’ve spent the last few weeks working on some MF2 related projects that I’d like to get the groups’ feedback on. One is a proper website with docs + playground. The other is a very experimental VSCode extension and language server for MF2.”
17+
18+
EAO: Apparently, someone’s working on a go implementation: https://github.com/expect-digital/go-mf2
19+
20+
## Topic: Tech Preview
21+
22+
Let’s review the Task List:
23+
24+
https://github.com/unicode-org/message-format-wg/wiki/Things-That-Need-Doing
25+
26+
## Topic: PR Review
27+
Timeboxed review of items ready for merge.
28+
29+
### 806
30+
31+
EAO: TIM is not present. So unless anyone wants to talk about it we can skip it.
32+
33+
STA: did I understand that he said he will stop working on 806?
34+
35+
EAO: TIM has several documents. I think we (me and him) are getting closer.
36+
37+
### 814 Date - time discussion
38+
39+
40+
### 804 Error handling
41+
42+
We reached some agreement 2 weeks ago. Created a PR today.
43+
44+
MIH: I didn’t see if we have an AND or an OR in between these things. This should be made more clear. Addison said an implementation must return an error, fallback, or both. I think Addison is inclined towards OR (as am I) but the PR is still unclear on this issue.
45+
46+
EAO: both are in place, but they don't need to be fulfilled on every format call. Given a message and set of parameters, you must be able to get an error out of it, AND get a fallback string, but there can be two separate methods for this.
47+
48+
MIH: My issue is that I don’t agree with using AND, we shouldn’t make the implementation do both. Rather, it should be one, the other, OR both. There are no methods to do both. It doesn’t have to be my way, but I would like the discussion to capture this more clearly, since I wasn’t clear on what we agreed upon.
49+
50+
EAO: I understand that the consensus was the spec test reflected in the draft PR was that this was not sufficient. A valid implementation should also provide an error so the caller can understand what happened
51+
52+
MIH: This is not my understanding from the PR. Let’s continue this discussion on the PR later
53+
54+
EAO: Agreed, since Addison and Elango are not here either
55+
56+
[...]
57+
58+
MIH: I agree with Luca. The JS implementation is one thing, and we tried to consider all programming languages. In MF2, there will be a fallback, and that’s it. There is either a fallback or it will ‘explode’. We shouldn’t force programming languages and frameworks to handle errors OUR way, rather let them handle errors in their own way. Error handling is useful for tooling, but you don’t want the application to crash if we have a missing variable
59+
60+
LCA: I think that makes a lot of sense to me. A resource-constraint one might not even include code for error reporting. Maybe a compromise would be to say “if an implementation does error reporting, it should be this or that way”.
61+
62+
EAO: one aspect is resource constraint. Part of the discussion was if a boolean is enough.
63+
64+
EAO: will not solve it here.
65+
Please work on the GitHub issue / PR.
66+
67+
### 815 PR: Drop the machine readable registry
68+
69+
EAO: We’ve been punting on this for a long time.
70+
We have a text definition for how functions work, what parameters are accepted, etc.
71+
So we discussed last week if that is enough, and we can drop the registry format.
72+
That would close a whole slew of issues we have on this topic.
73+
74+
EAO: Any opinion LUC? A LSP might need that information.
75+
76+
LUC: I haven't thought about it too deeply.
77+
Also for markup, formats, matchers, private annotations.
78+
We can evolve it over time and independently.
79+
Can we use JSON schema? Maybe with some extensions.
80+
81+
MIH: A good example is BCP47, this describes how locale identifiers look like.
82+
And there is a registry with all the valid tags maintained by IANA (
83+
You have RFC standard for BCP47, but I don’t think the spec for the registry is part of the BCP47 standard
84+
85+
\[_Editor's note_: In fact, the registry specification is part of BCP47\]
86+
87+
### 803 Date / time format without arguments
88+
89+
MIH: Are you against using medium instead of long? ICU uses something similar to medium, where `DEFAULT = MEDIUM`. It would make sense to be consistent with ICU, and it's definitely better than short.
90+
91+
EAO: would be able to live with medium, as long as we move away from short.
92+
93+
### 812 Trailing spaces
94+
95+
EAO: Ready to merge?
96+
97+
MIH: I think I approved this one.
98+
99+
EAO: I’m going to merge this.
100+
101+
### 799
102+
103+
EAO: MIH, I think we were waiting for your opinion here?
104+
105+
MIH: I don’t think this improves anything. It doesn’t hurt, but it doesn’t help
106+
107+
EAO: It removes from the data model something that is purely a syntax consideration for MF2
108+
109+
STA: I don't think we should do this. I don’t think it simplifies anything, and I don’t think it is syntax only.
110+
Would be good to have some types in our data model, and input and declarations should be some of them.
111+
Looks like Elango and TIM are also not for it, so I don’t see much push for it.
112+
113+
EAO: I think this is one area where the data model does one thing that it should not do.
114+
When considering the use of the data model with syntax different from MF2 this is glaring as different.
115+
We can work on the PR. MIH, would be good if you provide some comment on the PR.
116+
117+
STA: I think you EAO look at this as syntax sugar. I try to model our data model on being too specific rather than too generic. So I would rather have two types, even if one is similar to the other.
118+
119+
EAO: in my experience working with the data model they behave very much the same.
120+
121+
STA: I don’t remember how we got to what we have right now.
122+
123+
EAO: variable expression was needed for the `.input` declaration.
124+
125+
STA: I was in fact thinking to double down on the input declaration vs local declaration.
126+
127+
EAO: this might be one of the last data model PR, unless we get somewhere with expression attributes.
128+
Let’s continue on the PR.
129+
I don’t think we have time for discussion on attributes.
130+
131+
EAO: Remaining PRs are about adding things to glossary, registry, no much time to talk about now.
132+
We can close early.
133+
134+
135+
## Topic: AOB?
136+
137+
### Luca Casonato joined for the first time.
138+
139+
Introductions.
140+
141+
LCA: I work at [Deno](https://deno.com/) (JS runtime), but here on my own.
142+
No i18n experience (other than as a user). Web dev. Find this fascinating. Working with RGN and AOE at TC39.
143+
The TC wanted proof of real use. So I tried to use this, and found it difficult to use.
144+
Very little documentation.
145+
What it is is very technically oriented, for implementers, not for a users.
146+
Working on a web site / page with better documentation, examples.
147+
Also working on a Language Server Protocol (LSP)..
148+
Working on a parser in Rust.
149+
150+
EAO: thank you very much for all the work.
151+
I would be happy to pass my work on LSP to you.
152+
153+
LCA: I can give a small demo
154+
https://messageformat.dev/
155+
Things are from things that I wrote, and TIM, and Ujjwal (USA)
156+
157+
MIH: There is the ICU MessageFormat doc (generic):
158+
https://unicode-org.github.io/icu/userguide/format_parse/messages/
159+
160+
LCA: Rust parser. Talked with Shane to see if it is an option to include this in ICU4X.
161+
TBD if that will happen. Might be too slow. Have not discussed that with Shane
162+
163+
LCA: giving a demo of the LSP.
164+
https://marketplace.visualstudio.com/items?itemName=nicolo-ribaudo.vscode-mf2
165+
166+
LCA: Very much focused on error detection and diagnostic.
167+
Can also be the base for a linter to be used on localized messages.
168+
169+
LCA: Questions: how to define what functions exist, what arguments they take, what markup is available, annotations, etc.
170+
171+
LCA: also envision this going into the playground.
172+
173+
EAO: syntax highlighting. What is the ruleset?
174+
175+
LCA: TextMate which is used by VSCode, but can be used across editors.
176+
177+
STA: was the syntax highlighting hard to write?
178+
179+
LCA: not very difficult.
180+
MF2 is very organized, and very self-consistent and no ambiguity.
181+
Some concerns: some newlines are special in some editors.
182+
MF2 does not care about multiple line. Either is a regular space.
183+
Needed different highlighting mode depending on simple / complex messages.
184+
185+
STA: any complaints about curly braces?
186+
187+
LCA: didn’t run into that. VSCode allows you to say “these are matching parentheses” and you can collapse them, or use matching colors.
188+
189+
EAO: we might adopt the messageformat.dev domain “as is”? I doubt we will duplicate this work somewhere else.
190+
191+
EAO: thank you for your contribution.
192+
193+
LCA: “complaints”
194+
195+
- Unclear what placeholders / selectors / markups do, how are they separate. Placeholders / matchers are functions. Markup are only for formatting?
196+
197+
- Annotations everywhere
198+
199+
- Annotations vs attributes: why do we have both?
200+
For example looking at the use cases, `translate=no`, this probably feels more like markup?
201+
202+
EAO: what you discovered are in fact areas that don’t have 100% consensus, and we are still working to clarify. They are open topics of conversation for us.
203+
204+
EAO: would be nice to open issues in the repo on these topics
205+
206+
STA: very valuable feedback. If you search our discussion you will find many arguments back and forth.
207+
208+
TDC: it was very nice being here during this exchange, with a fresh perspective.
209+
210+
### Toral Cowieson dropped-in
211+
212+
Introductions
213+

0 commit comments

Comments
 (0)