Closed
Bug 1434434
Opened 7 years ago
Closed 4 years ago
Align and improve the fluent.js <--> mozilla-central build integration
Categories
(Core :: Internationalization, enhancement, P3)
Core
Internationalization
Tracking
()
RESOLVED
FIXED
People
(Reporter: zbraniecki, Unassigned)
References
(Blocks 2 open bugs)
Details
The current integration of fluent.js code into mozilla-central is suboptimal on several levels:
- rollup doesn't produce code we can put into m-c without changes
- our linting rules are in conflict with mozilla's
- we don't have docs in intl/l10n/ to explain how to pull new fluent.js into Gecko
- we need to agree on how to express customizations of Fluent classes for Gecko
Comment 1•7 years ago
|
||
> - we don't have docs in intl/l10n/ to explain how to pull new fluent.js
> into Gecko
Zibi -- can you sketch how this works here? Easier than docs, but will help me understand some things about how Fluent integrates into m-c.
Flags: needinfo?(gandalf)
Reporter | ||
Comment 2•7 years ago
|
||
> Zibi -- can you sketch how this works here?
Currently it works like this:
1) clone https://github.com/projectfluent/fluent.js
2) go to fluent-gecko directory
3) npm i
4) make
5) In ./dist directory you now have MessageContext.jsm, Localization.jsm, DOMLocalization.jsm and l10n.js
Those files are built using packages `fluent` and `fluent-dom` and some custom code from `fluent-gecko/src`.
Now, rollup did most of the work, but not all, so we unfortunately can't just copy&paste those files into `mozilla-unified/intl/l10n` like we would like to.
Instead we'll apply them there, and then go through `hg diff` and manually look for which changes should be and which are now obsolete.
This is the wrinkle that I aim to remove as it basically puts a bus factor 1 with me being the only person who without a hassle knows what the diff should look like.
There's a diff that one can use to get a general sense in `https://searchfox.org/mozilla-central/source/intl/l10n/fluent.js.patch` - those are the changes that recently were between the output of `fluent-gecko/dist` and m-u/intl/l10n.
This of course doesn't apply cleanly whenever we land a patch in Gecko, so I need to sync it.
There were several patches that landed in m-c at the end of 60 cycle and one more that landed today into 61. I plan to upstream it to fluent.js repo and work on separating out GeckoLocalization and GeckoDOMLocalization classes to make the `fluent.js.patch` smaller.
From the perspective of vendoring in Node modules - if we could vendor in npm packages `fluent` and `fluent-dom` and somehow load them into .jsm files, I would be able to remove the whole integration and just keep the fluent-gecko code in Gecko.
Which is what I hope we'll end up with :)
Flags: needinfo?(gandalf)
Reporter | ||
Comment 3•4 years ago
|
||
This is fixed now and we're vendoring in fluent-rs.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•