-
-
Notifications
You must be signed in to change notification settings - Fork 135
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simplify/document the technical details to help contributors get into it #218
Comments
@sharun-s : you're probably right, even if some of this info is already available.
Regarding the archive file formats :
Regarding the different content injection modes :
Regarding the geolocation feature :
|
I would really love to have more contributors on this project. After writing the comment above, I feel that a "quick win" would be to remove legacy code and drop compatibility for Evopedia, geolocation feature, and Phonegap. I'll try when I find time to do it (pull requests are always welcome). @sharun-s : with the explanations above, what would be your expectation about documentation? I would suggest putting more detail on the 2 (or 3) injection modes in the README : would it be enough? (supposing I also drop the legacy code mentioned above) |
@mossroy Thanks for the detailed reply. Appreciate it! Some examples of issues that weren't clear to me as a newcomer to the code (please take it with a pinch of salt, as I haven't been through the entire code yet) -
That said I see now (thanks to your notes) that the code is in transition (Evo=>FirefoxOS=>WebExtension) and these things will clear up eventually. I don't think anything has to be deleted right now. But thinking about explicit naming/interfaces/better docs going forward will make things much clearer even during transition the next time. I'll add some suggestions when I am done with my notes. Will post in a day or two. |
I am taking my own sweet time plodding through the code. Will submit docs when done. Just wanted to make a note here on something I observed. I am realizing there are 4-5 "app modes" existing side by side with this project -
Each one operating under slightly different constraints (mostly related to cross-domain access and local file access policy) and supporting different use cases/features. The UI and the configurable data needs to be handled differently depending on the mode. I see why this has happened as most of the code is reusable across all modes, but this is also complicating life. When I see an issue, it is not clear which mode to target the fix for, or if the fix can apply to all modes (for eg what I mentioned using a URL as a way to directly access content - #177 this is easy to do (with FirefoxOS/Cordova) by adding a archiveName param to the url to match against files on device, but not straightforward for the others ). One way maybe to deal with these modes is to add a "mode" tag to each issue. And maybe down the road build targeting specific modes. To devs, it will help get an idea which mode has which issues and support/require which features. Right now I can say creating docs involves writing a lot of if conditions. |
You also can multiply these "app modes" by the different browsers/versions, which can have different behaviors ;-) And there are also other ideas like making an Electron desktop app... I don't know exactly what notes/docs you're making, but don't spend too much time on all these different modes. As I said earlier, some of them might be removed to reduce the effort of documenting & maintaining. Using tags on issues can be a good idea. But we need to keep them simple, like having only one tag to identify issues on secondary modes : something like "not-main-usage"? |
@mossroy I tend to think that code which is not used and where we do not have immediate plan to use should be removed (still in the history) or for parts which might be still of interest, just put in a dedicated branch. Having a code base which is easily understandable for new comers is important - keeping only the pieces of code which are effectively useful in the current product, is an easy step to do to implement that vision. |
Issue with "non-main-usage" tag is that the meaning of main usage has changed over time and it's hard to say it won't again in future ( given your luck ;-) ) . For example I have been using the code from a month back and service worker mode doesn't work. Would be convenient to lookup a tagged feature commit, but I leave it to you as I am no git expert. There are probably ways to search and find it. The Readme should have a line with something like - A simple summary of the ZIM file format would have helped me greatly at the outset. Like so-
I don't know how many times I visited the openzim page and closed it because the first thing I saw was just the header table referring to terms as yet undefined. Even though the image makes sense in hindsight, a short summary makes that page much less intimidating. Since Title.js has been removed references to Title object can/should also be removed. Need a comment somewhere on TitleID All that said good to see things are looking much simpler! |
After reading the code again, I agree with you that the notions of Title (and TitleId) are unclear, I'll try to refactor that. Regarding explanations on the ZIM file format, I thing it would be better to put everything in the openzim web page, so that it is always up-to-date, and available for all the applications using this file format. |
@mossroy ok. Just post comments if any there right? |
Please post your comments in the PR itself |
The ZIM format specs has been created and put on the wiki pretty quickly. I agree that we should improve them. That said I do not really have a process clear in my mind about how to do that. I suspect we should have a proper rewrite of that spec next time we will make a major change, which I hope will happen before end of year. Meanwhile, I think it would be helpful to gather complains about the spec explanaition directly in the taslk page http://www.openzim.org/wiki/Talk:ZIM_file_format People will be contacted back at the time we would be so far. |
I close this issue as it is mainly fixed by PR #241 and the previous ones. |
As initally mentioned by @sharun-s in #196 :
The text was updated successfully, but these errors were encountered: