On Fri, Oct 3, 2014 at 1:29 PM, Manpreet Kaur
<manpreetkaur9...@gmail.com> wrote:
> Hi! I am new to pywikibot and have been going through
> installation/contribution articles. I have two questions:
> 1. What is the difference b/w pywikibot-core/compat and core/compat? Do i
> need to install both?

Repeating what Amir and Fabian have said...

It is a good idea to clone both the compat and core repos.

http://git.wikimedia.org/summary/pywikibot%2Fcore.git

http://git.wikimedia.org/summary/pywikibot%2Fcompat.git

Also be aware that pywikibot-core has a subdirectory
'pywikibot/compat', which is a part of pywikibot-core intended to
assist old pywikipedia (i.e. 1.0) scripts to run on pywikibot (i.e.
2.0).

http://git.wikimedia.org/tree/pywikibot%2Fcore.git/master/pywikibot%2Fcompat

> 2. I wish to fix the bug 57995 - Add function for list=watchlistraw. On the
> gerrit page(https://gerrit.wikimedia.org/r/#/c/100363/). A couple of patches
> have been uploaded but I cant view the given links. Also, I am assuming that
> I need to continue where others left but how do I know what parts of the
> bugs have been fixed?

Gerrit 100363 added a _script_ called 'watchlist.py'.

http://git.wikimedia.org/blob/pywikibot%2Fcore.git/master/scripts%2Fwatchlist.py

Firstly, it has one major problem: it uses an uncached API call (line
89-90) and performs its own caching (line 102-7).  As the watchlist
can be very large, constantly refetching the watchlist from the server
is not a good idea.

In pywikipedia (v1.0), the software was built with lots of scripts
(like watchlist.py) providing critical tasks, and each script was
written a different way.  Therefore caching of data in watchlist.py is
using its own strategy.  In pywikibot (2.0), CachedRequest was added,
so all MediaWIki API responses may be cached in a uniform manner.

http://git.wikimedia.org/blob/pywikibot%2Fcore.git/master/pywikibot%2Fdata%2Fapi.py#L591

So we have bug 68988: "watchlist.py should use CachedRequest"

https://bugzilla.wikimedia.org/show_bug.cgi?id=68988

Using CachedRequest instead of Request only requires the addition of
an expiry parameter, so that part should be very simple.

A more significant improvement is that the watchlist functionality
should be part of the library , i.e. part of the APISite class, which
is in pywikibot/site.py .  That is what bug 57995 has requested.  That
involves moving some of the code from scripts/watchlist.py to
pywikibot/site.py, and rewriting it to be consistent with other
APISite methods.

For bonus points, the cached watchlist data should be invalidated when
a new page is added to the watchlist via Page.save / Page.watch.  See
als APISite.editpage

A really difficult improvement, which may not be desirable in many
cases (e.g. small watchlists), and may not be worth the overhead &
support costs: instead of invalidating the cached watchlist data,
pywikibot could update the cached list of watchlisted pages on the
client site.

I recommend that you join the IRC channel (
http://webchat.freenode.net/?channels=#pywikibot ) to chat with other
devs, who can help you get started, and discuss design decisions with
you.

-- 
John Vandenberg

_______________________________________________
Pywikipedia-l mailing list
Pywikipedia-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to