kiwix/kiwix-js

Release v4.1.0

Closed this issue ยท 9 comments

We're overdue a new release of the Browser Extension, as we have a major new feature (the Popover feature), plus some key elements of Zimit2 support and a number of bugfixes. It's been some six months since the last release, and we normally release this app quarterly...

These are the steps to complete a new release:

While testing on Firefox OS, I found that this old OS doesn't support innerText in some contexts, so I need to test for that and substitute textContent in two places in the popover code. As this is a trivial change to get the code working on Firefox OS (textContent is nearly the same as innerText, certainly for our purposes), I'll go ahead and do that so I can continue testing.

EDIT: Done in df0ec68

And while testing fallback extensions (Manifest V2 for Firefox and Chromium, Manifest V3 for Firefox, I realized that I forgot to internationalize these manifests in line with the changes made to the Chromium Manifest V3. Again, this is a trivial change just copying the new fields to these manifests.

EDIT: Done in 8ece250

@audiodude I've finished testing as indicated in the checked boxes above (or as we say in British English: the "ticked boxes" ๐Ÿ˜‰). Apart from Chrome / Firefox / Edge extensions on Windows, plus some old browsers, I tested the offline webapp version in Safari 17 on an iPad Pro 2021, and Safari 14.1 on Big Sur (macOS) via BrowserStack.

I didn't attempt to test the packaged extensions themselves in macOS Chrome or Firefox via BrowserStack because it's not possible to test extensions that are not in one of the Stores in BrowserStack, given that access to files is severely locked down in macOS on BrowserStack. Please note we do not publish an extension for Safari, but the offline webapp version can still be used with full features in Safari. Users can install the extension in Chrome or Firefox on macOS.

My testing is pretty comprehensive, but do you want to do any further testing? If so, I can explain an easy way to test the code using the development webapp, or a more involved way of installing a temporary extension (which is a bit fiddly).

If you don't need to test further on macOS, then I'm pretty ready to start the release process once you're happy with the CHANGELOG PR.

If you don't need to test further on macOS, then I'm pretty ready to start the release process once you're happy with the CHANGELOG PR.

I'll trust your judgement and do additional testing if you think it is required. I have a macOS 10.15 Catalina system with an M3.

Thanks @audiodude I have tested now in Firefox 126 and Chrome 125 on Catalina, and in Safari on the latest Sonoma (both via BrowserStack). So I think we're covered. There is no native code running in Kiwix JS, only JavaScript, so running on any chip that supports a full copy of Firefox or Chrome (or indeed a recent Safari) works fine.

FYI, on iOS, the app only works as a webapp in Safari, because for now Apple blocks the use of Service Workers in any browser other than Safari (on iOS, not on macOS). But users would be better off using the dedicate iOS app on iOS rather than running this Extension as a webapp, so while I test on iOS to be sure that we maintain compatibility, I'm not targeting it here, or optimizing UX for it.

The Firefox extension update is already published: https://addons.mozilla.org/en-US/firefox/addon/kiwix-offline/ (also in Spanish and French). Edge is in review with newly translated information and graphics now that the internationalization of Chromium store entries is enabled in the packages. I'll upload Ubuntu touch and Chrome tomorrow.

Let me know when it's time for ๐Ÿพ and ๐ŸŽ‰ , I'm ready!

As the two most important browser stores (Mozilla and Chrome) have certified the extension, and people will be receiving updates, I've made some publicity for this release: see Reddit post and Mastodon post.

Even though the Edge Store is ridiculously slow to certify (they say 5 working days, and it usually does take that), people will already be seeing the update if they use the default ServiceWorker mode (the vast majority), because the extension runs as an instantly updating offline PWA in that mode due to previously mentioned severe restrictions in local Chromium browser extensions.

Edge Store finally certified, and all publicity done, so we can close.