<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Thanks Christopher, this seems like a pretty useful resource for
      add-on developers!</p>
    <p>Maybe we can try to keep postings on one list only as much as
      possible. I'd expect everyone on maildev is on tb-planning, and a
      significant overlap for the addons list too. (tb-planning vs
      maildev is confusing too, personally I don't see the need for the
      split since it doesn't work in practice)<br>
    </p>
    <p>  -Magnus<br>
    </p>
    <div class="moz-cite-prefix">On 15-10-2019 04:47, Christopher
      Leidigh wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:7f563dc7-bb8e-35e3-5475-a601e5ff0858@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p><b>xpiLib:</b><br>
        <br>
        Overview/Impetus:<br>
        <br>
        I believe all developers, core and extension, smartly peruse
        other people 's code for inspiration<br>
        and answers.  This is certainly how I began my journey with
        Thunderbird, and you need to do the same<br>
         more now than ever.  While there is DXR and Bugzilla, these
        only house references to the core code trees.<br>
        xpiLib is basically an attempt to provide a simplified version
        for ALL extension code in one place<br>
        regardless if the extension has its own repository on GH or some
        other repository site.  This<br>
        it is only part of the intended use.<br>
        <br>
        Currently there is a beta level release with the following:<br>
        <br>
        - Complete metadata (extension detail, versions and manifest
        files) - all 1339 existing extensions<br>
        - Extension source code for all TB68 and TB60 compatible
        extensions. - I will upload the remaining later<br>
        - A "basic, focused" search that can target the source library,
        issues and gists <br>
        - Use of the issue system for posting solutions, links, code
        snippets et cetera related to the library<br>
          or relevant external links<br>
        - Navigation to both the metadata and source from the extension
        list reports<br>
        <br>
        The library already houses over one gigabyte of data, over 20k
        files (not yet including the bulk of source code)<br>
        , however, this is new and evolving.<br>
        <br>
        I believe it is already useful and sufficiently populated  for
        the most likely purpose is currently.<br>
        Here are some brief notes on usage which I will augment as this
        progresses.<br>
        <br>
        The xpiLib Repository/Library: <br>
        <br>
        - Contained within the ThunderKdB GitHub repository<br>
        - xpiLib is implemented as a hybrid repository including the
        source code tree as well as GH pages<br>
          to accomplish the search as well as a nicer HTML UI<br>
        - Navigation is pretty basic and needs to be improved, the main
        entry point is the index<br>
        for the GitHub pages side:<br>
        <br>
                <a class="moz-txt-link-freetext"
          href="https://cleidigh.github.io/ThunderKdB/"
          moz-do-not-send="true">https://cleidigh.github.io/ThunderKdB/</a><br>
        <br>
        <br>
        - This gets you to the reports, xpiLib search, links to the
        repository directly and eventually other useful links<br>
        - Clicking any extension name on a report will take you to a
        details page which is still work in progress<br>
        - The details page is where you eventually will be able to get
        all metadata, including all old version information<br>
          currently it gives you pointers to the source tree.<br>
        - The source code trees are currently organized in a fashion to
        allow searching within three sets:<br>
           xall - top of the tree for extensions<br>
           x68 - all extensions that are 68 compatible <br>
           x60 - all extensions that are 60 compatible BUT NOT 68
        compatible<br>
           xOther - <60 compatible extensions (metadata only , source
        to be uploaded soon)<br>
        - The organization set up to specifically deal with how you can
        GitHub searches done on repository code<br>
        <br>
        Search Notes:<br>
        <br>
        - I am shamelessly letting GitHub do the hard work, therefore I
        have to follow with rules<br>
        - The current xpiLib search uses GitHub's URL search, NOT THE
        REST api. <br>
        - This means that there are some differences in capability since
        GH searches and renders the results<br>
        - Some specific limitations are:<br>
            - The search topic(s) ignores almost all special characters
        (this is crazy but true)<br>
            - Quoting GitHub:<br>
            <br>
            "You can't use the following wildcard characters as part of
        your search query:<br>
               . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( )
        { } [ ]. <br>
             The search will simply ignore these symbols."<br>
        <br>
            - Multiple word topics can be used enclosed in quotation
        marks, unfortunately it does not solve the above. (currently
        this is the best way to reduce results)<br>
            - I have not yet found the ability to define the number of
        results <br>
            - I have also not found a way to change the number of source
        code lines returned<br>
            - Some of the above could be fixed by using the actual API,
        but this would require doing all the results rendering <br>
        <br>
        - Search Filters/Pointers:<br>
            - Use the file filters to reduce results and increase
        specificity<br>
            - When searching for an XUL element, e.g. <datepicker>
        use just 'datepicker' (excluding quotes)<br>
              AND filter for XUL files only that help since you cannot
        rely on the < or > to be included<br>
            - I have filters for markup files, JavaScript files and a
        few others.  Additional file type suggestions welcome.<br>
            - You can also look for codes specifically within the 60 or
        68 trees or everything<br>
            - Another important note is that the search will also
        include issues and ultimately gists<br>
              this is where share developer information in the library
        really synchronize<br>
              It is importantly powerful in the sense that anyone can
        create an issue that provides guidance<br>
              as well as pointers to Code or information and these
        issues will be included in searches that are relevant.<br>
            - Once search results are returned, one can dive into the
        particular files or tree to get the full picture<br>
        <br>
        The issues and topic points:<br>
        <br>
         - Issues are viewed or created the core repository:<br>
        <br>
         The core repository link (not the GH pages root);<br>
        <br>
                <a class="moz-txt-link-freetext"
          href="https://github.com/cleidigh/ThunderKdB"
          moz-do-not-send="true">https://github.com/cleidigh/ThunderKdB</a><br>
        <br>
         - All developers can submit "issues" that get tagged for
        relevant topics that can point to <br>
           a particular extension solution, external content, gists et
        cetera<br>
         - This is really where the power of the library comes in,
        community participation, easy pointers to code<br>
         - The idea is to augment the forums which are good places to
        ask questions, xpiLib is a place to do searches<br>
           and ideally memorialize people solutions.  The utility will
        be proportional to community participation.<br>
         - The issue for datepicker is something I made from my
        experience looking to replace the deprecated date picker<br>
           it also includes references to how SendLater from Jonathan K.
        used the component from lightning.<br>
         - There is another example for the deprecation of listbox -
        something both myself and Klaus have faced<br>
        <br>
        Conclusion:<br>
        <br>
        - it's a work in progress, focused on the extension developer
        community<br>
        - I have lots of ideas to extend, and I am perfectly willing to
        do so if the community really finds this useful<br>
        - Suggestions are best done within the repository issues itself
        unless people want a wider discussion on the forums<br>
        - Thanks for suggestions from the few people who've taken a look
        at it already.<br>
        <br>
        I realize this is just one tool in the tool chest, I am really
        hoping it becomes more useful with participation!<br>
        <br>
        Saludos,<br>
        Christopher<br>
        <br>
      </p>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
tb-planning mailing list
<a class="moz-txt-link-abbreviated" href="mailto:tb-planning@mozilla.org">tb-planning@mozilla.org</a>
<a class="moz-txt-link-freetext" href="https://mail.mozilla.org/listinfo/tb-planning">https://mail.mozilla.org/listinfo/tb-planning</a>
</pre>
    </blockquote>
  </body>
</html>