Making updates available for each locale is costing time on nightly build/signing machines:
generating the .mar files
generating the incremental .mar files
transferring the mar files between hosts to sign them and publish them
With the current resources we have, I think it risks increasing the time to provide updates on nightly builds too much. I think we could start by providing updates for a subset of locales only, and think about increasing that list later.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
I'm thinking of the example where we want to test a feature with a particular audience and we want to be sure to have the right locale for the audience.
Or does it make sense to use a different system other than the automatic nightly builds for this?
I'm thinking of the example where we want to test a feature with a particular audience and we want to be sure to have the right locale for the audience.
I think that's a good idea and we should do it.
Or does it make sense to use a different system other than the automatic nightly builds for this?
It's already hard to keep one system properly maintained and working, thus I don't think we should create yet another one.
Yes, I think we can have this list of locales in rbm.conf, and we can update it as needed.
I'm thinking of the example where we want to test a feature with a particular audience and we want to be sure to have the right locale for the audience.
Or does it make sense to use a different system other than the automatic nightly builds for this?
We would still be building all locales, so they can still all be tested. This ticket is only about automatic updates, so only some locales could be used with automatic updates. If we want a particular audience to use nightly builds every day, we can add that locale to the list, so I don't think we need a different system.
Yes, I think we can have this list of locales in rbm.conf, and we can update it as needed.
I'm thinking of the example where we want to test a feature with a particular audience and we want to be sure to have the right locale for the audience.
Or does it make sense to use a different system other than the automatic nightly builds for this?
We would still be building all locales, so they can still all be tested. This ticket is only about automatic updates, so only some locales could be used with automatic updates. If we want a particular audience to use nightly builds every day, we can add that locale to the list, so I don't think we need a different system.
Great. It seemed I actually mis-read the ticket first, but reducing the locales just for testing purposes first would have been a good plan anyway. :)
This removes the hack that was used to check if a locale is in the mar_locales list.
The update generation is following our bundle generation which is kind of split in two parts. The first part is used for en-US which is shipping no lang packs. The second part is used for all the other locales which ship with the respective lang pack.
It's confusing that you only patch the second part but include en-US in the mar_locales given that en-US is not in var/locales. I guess we might got lucky as I can still see things working (the en-US .mar gets built in the first part as var/build_mar is defined but gets ignored in your patch because IF mar_lang == lang; is never true. I find it error-prone as well that we continue to use at one hand [% IF c("var/build_mar") -%] and at the other hand [% IF build_mar -%] for deciding whether to create full .mar files or not.
Trac: Keywords: TorBrowserTeam201911R deleted, TorBrowserTeam201911 added Status: needs_review to needs_revision
This removes the hack that was used to check if a locale is in the mar_locales list.
The update generation is following our bundle generation which is kind of split in two parts. The first part is used for en-US which is shipping no lang packs. The second part is used for all the other locales which ship with the respective lang pack.
Yes. I'm wondering if we could simplify that and treat en-US like the other locales, maybe as a separate ticket.
It's confusing that you only patch the second part but include en-US in the mar_locales given that en-US is not in var/locales. I guess we might got lucky as I can still see things working (the en-US .mar gets built in the first part as var/build_mar is defined but gets ignored in your patch because IF mar_lang == lang; is never true.
I find it error-prone as well that we continue to use at one hand [% IF c("var/build_mar") -%] and at the other hand [% IF build_mar -%] for deciding whether to create full .mar files or not.
Hmm, I'm not sure how to make that less confusing. In the first case (for en-US) we only need to look at c("var/build_mar"). In the second case we need to use a local variable as it is more complicate. Would renaming the variable to something else than build_mar be less confusing?
Trac: Status: needs_revision to needs_review Keywords: TorBrowserTeam201911 deleted, TorBrowserTeam201911R added
This removes the hack that was used to check if a locale is in the mar_locales list.
The update generation is following our bundle generation which is kind of split in two parts. The first part is used for en-US which is shipping no lang packs. The second part is used for all the other locales which ship with the respective lang pack.
Yes. I'm wondering if we could simplify that and treat en-US like the other locales, maybe as a separate ticket.
I think we should fix that by moving to single-locale bundles which we want to do anyway for a number of reasons, see: #27466 (moved). Then the whole treatment of en-US vs. the other bundles vanishes for free. I am not sure whether it is worth filing a separate bug for the simplification part, though.
That's a good catch. However, I feel there is no need to iterate through all the locales just to hit the case that .mar files should not be built. Can't we get that change by just doing something like
IF c("var/nightly") && c("var/build_mar") once at the beginning?
[snip]
I find it error-prone as well that we continue to use at one hand [% IF c("var/build_mar") -%] and at the other hand [% IF build_mar -%] for deciding whether to create full .mar files or not.
Hmm, I'm not sure how to make that less confusing. In the first case (for en-US) we only need to look at c("var/build_mar"). In the second case we need to use a local variable as it is more complicate. Would renaming the variable to something else than build_mar be less confusing?
No, I think we should keep it that way if we need it because otherwise folks might just grep for var/build_mar while searching for the code parts they need to change and thereby missing some. This can already happen with your proposed changes if one greps for [% IF c("var/build_mar") -%] assuming all the update relevant checks are done that way. What we could do is setting build_mar earlier and then use [% IF build_mar -%] check everywhere in the tor-browser build script. But maybe it's enough someone actually working on that part of the code would just grep for build_mar, dunno. I think I could live with the status quo.
Trac: Keywords: TorBrowserTeam201911R deleted, TorBrowserTeam201911 added Status: needs_review to needs_revision
That's a good catch. However, I feel there is no need to iterate through all the locales just to hit the case that .mar files should not be built. Can't we get that change by just doing something like
IF c("var/nightly") && c("var/build_mar") once at the beginning?
I find it error-prone as well that we continue to use at one hand [% IF c("var/build_mar") -%] and at the other hand [% IF build_mar -%] for deciding whether to create full .mar files or not.
Hmm, I'm not sure how to make that less confusing. In the first case (for en-US) we only need to look at c("var/build_mar"). In the second case we need to use a local variable as it is more complicate. Would renaming the variable to something else than build_mar be less confusing?
No, I think we should keep it that way if we need it because otherwise folks might just grep for var/build_mar while searching for the code parts they need to change and thereby missing some. This can already happen with your proposed changes if one greps for [% IF c("var/build_mar") -%] assuming all the update relevant checks are done that way. What we could do is setting build_mar earlier and then use [% IF build_mar -%] check everywhere in the tor-browser build script. But maybe it's enough someone actually working on that part of the code would just grep for build_mar, dunno. I think I could live with the status quo.
If grepping for c("var/build_mar") however, it should be possible to see that we assign it to build_mar.
Trac: Keywords: TorBrowserTeam201911 deleted, TorBrowserTeam201911R added Status: needs_revision to needs_review