Release 3.0.20170713 (13 July 2017) ==================================== Bugfixes (core) --------------- d9d1d02 Manage temporary readonly error (T154011) e533425 Unbreak wbGeoShape and WbTabularData (T166362) 3834b6c Clean up issue with _WbDataPage (T166362) b8a9c2f Re-enable xml for WikiStats with py2 (T165830) 461ffb0 Solve httplib.IncompleteRead exception in eventstreams (T168535) c697bfe Only force input_choise if self.always is given (T161483) 5ed60e0 Add colon when replacing category and file weblink (T127745) df097a6 API Request: set uiprop only when ensuring 'userinfo' in meta (T169202) 39843e8 Fix TestLazyLoginNotExistUsername test for Stewardwiki (T169458) Improvements (core) ------------------- 8b74d51 Introduce the new WbUnknown data type for Wikibase (T165961) 461f747 djvu.py: add replace_page() and delete_page() ee30a68 Build GeoShape and TabularData from shared base class 9aee0e0 Remove non-breaking spaces when tidying up a link (T130818) aef1b24 Replace private mylang variables with mycode in generate_user_files.py a5e5a3f FilePage: remove deprecated use of fileUrl e236757 Make socket_timeout recalculation reusable (T166539) b022690 FilePage.download(): add revision parameter to download arbitrary revision (T166939) 737b037 Make pywikibot.Error more precise (T166982) a0a6d16 Implement pywikibot support for adding thanks to normal revisions (T135409) ed61b0f Implement EventStreams (T158943) f5f4a60 Add -titleregexnot page filter eddcc95 Add exception for -namepace option (T167580) 4ea8d38 InteractiveReplace: Allow no replacements by default 633e69a Encode default globe in family file 3321a40 Add on to pywikibot support for thanking normal revisions (T135409) 98783dc Add log entry code for thanks log (T135413) 4be9336 Create superclass for log entries with user targets f6b0c7b Use relative reference to class attribute d12f60b Allow pywikibot to authenticate against a private wiki (T153903) 42443c5 Make WbRepresentations hashable (T167827) Updates (core) -------------- a6337f7 Update linktails 173becb Update languages_by_size be75fb9 Update cross_allowed (global bot wikis group) 1fbcccb Add atjwiki to wikipedia family file (T168049) beacf44 remove closed sites from languages_by_size list 447b045 Update category_redirect_templates for wikipedia and commons Family 7945c4a Update logevent type parameter list bc01242 Disable cleanUpSectionHeaders on jbo.wiktionary (T168399) 54b4f90 Add kbpwiki to wikipedia family file (T169216) 0679efa Remove anarchopedia family out of the framework (T167534) Bugfixes (scripts) ------------------ 1d8c1bd Fix ResourceWarning in wikimedia_sites.py (T166459) 02dbe77 imagecopy.py: page.site is not callable (T167062) 38d645d weblinkchecker.py: Use https for web.archive.org (T167463) ea80e13 redirect.py: Adjust _treat_counter (T167254) f24c082 misspelling.py: Fix comparing template name (T125328) 74f6c36 piper.py: fix bytes/str handling in python3 (T157215) fa830d6 Enable exceptions from fixes file (T142324) e229a13 revertbot.py: Don't loop over user contribs (T168666) e8bdc42 Use correct iterator method in interwikidata.py (T168575) 86f623f Don't fail TestProofreadPageValidSite.test_url_image (T169542) 54d24f7 Fix some of the invalid escape sequences (T164575) f577676 redirect.py: Handle PageSaveRelatedError exception (T169859) 48431e7 illustratewikidata: rename page_image key in page_image_free (T169447) 2684ffc checkimages: format string must be concatenated first (T170087) 7f2b925 interwikidata: Fix interwiki conflict detection (T168575) f645523 Fix ResourceWarning in wikimedia_sites.py with python3 (T166459) Improvements (scripts) ---------------------- 3343a7f Port followlive.py to core (T66854) 92f66ff replace.py: allow to edit modified text 4ee7fda Catch KeyboardInterrupt and finally print execution time in checkimages.py e79af64 proofreadpage.py: raise TypeError, not ValueError 7c5a078 category.py/tidy: Show page title at the bottom of the output (T166468) 8355c22 checkimages: Use site.namespaces.FILE.custom_name instead of "File:" e2c92e2 weblinkchecker.py: Sorting of carriage returns (T166934) a78df27 Stopme is done at exit time by default a360417 standardize spamremove.py cd5665a replace.py: do not overwrite exceptions given via CLI (T142324) 280f0a9 Create items with interwiki using interwikidata.py (T168575) c0a879b proofreadpage.py: add support for OCR feature (T159655) b11c819 Improve maintenance/wikimedia_sites.py 152d798 proofreadpage.py: Fallback to "html.parser" if "lxml" is not available (T169515) 09f56d4 Add support for item without link to harvest_template (T64014) c586403 Port ndashredir to core (T66875) 5435fd7 Show different message if the page doesn't have an item (T168575) 847cbb3 Merge items in interwikidata.py Updates (scripts) ----------------- b4ab2e1 noreferences.py: update frwiki dict c8d1e66 Remove panoramiopicker.py (Panoramio is no longer available) b0f0d92 Use bs4 for imageharvest, not BeautifulSoup v3 (T115428) 4c10c17 blockpageschecker: Add serbian localisation (T167599) b398a93 Update Czech (cs) summary in standardize_interwiki.py (T168798) 2b882ed Update Czech category name in category_redirect.py f088a04 Remove anarchopedia from wikimedia_sites.py maintenance script (T167534) 9b3a556 Add a French localisation for clean_sandbox 77f42c0 Add Hindi (hi) summary in standardize_interwiki.py Release 3.0.20170521 (21 Mai 2017) ==================================== Bugfixes (core) --------------- a79ce64 Increase the default socket_timeout to 75 seconds (T163635) 4c8acd8 use repr() of exceptions to prevent UnicodeDecodeErrors (T120222) 3727717 Handle offset mismatches during chunked upload (T156402) f4cc5ee Correct _wbtypes equality comparison (T160282) 46dff29 Re-enable getFileVersionHistoryTable() method (T162528) 6f7ecb4 Replaced the word 'async' with 'asynchronous' due to py3.7 (T106230) ac1d5ed Raise ImportError if no editor is available (T163632) 489741f templatesWithParams: cache and standardise params (T113892) 31eb055 getInternetArchiveURL: Retry http.fetch if there is a ConnectionError (T164208) 6d8c9e7 Remove wikidataquery from pywikibot (T162585) Improvements (core) ------------------- 345e677 Introduce user_add_claim and allow asynchronous ItemPage.addClaim (T87493) eade449 Enable private edit summary in specialbots (T162527) d74cb73 Make a decorator for asynchronous methods 4159a9c Provide options by a separate handler class ccdb71a Show a warning when a LogEntry type is not known (T135505) aa74f5c Add Wikibase Client extension requirement to APISite.unconnectedpages() 894d5b9 Update content after editing entity ae0d3f9 Make WbTime from Timestamp and vice versa (T131624) feaffb7 Add support for geo-shape Wikibase data type (T161726) f8fe0a1 Add async parameter to ItemPage.editEntity (T86074) a7c02e5 Make sparql use Site to access sparql endpoint and entity_url (T159956) df7ab6d timestripper: search wikilinks to reduce false matches e54e584 Set Coordinate globe via item 4e824eb use extract_templates_and_params_regex_simple for template validation e26c9b4 Add _items for WbMonolingualText c67e069 Allow date-versioned pypi releases from setup.py (T152907) 2b6509f Provide site to WbTime via WbTime.fromWikibase 165adc2 Provide preloading via GeneratorFactory.getCombinedGenerator() (T135331) f4af75f Accept QuitKeyboardInterrupt in specialbots.Uploadbot (T163970) a0c75d8 Remove unnecessary description change message when uploading a file (T163108) b5b721b Add 'OptionHandler' to bot.__all__ tuple 6a56c23 Use FilePage.upload inside UploadRobot b6962ab Add support for tabular-data Wikibase data type (T163981) 2d9e841 Get thumburl information in FilePage() (T137011) Updates (core) -------------- ec33c23 Update languages_by_size in family files d9b9913 wikisource_family.py: Add "pa" to languages_by_size 6f159c5 Config2: limit the number of retries to 15 (T165898) Bugfixes (scripts) ------------------ 3c3bfb8 Remove comments when parsing template in harvest_template.py (T127691) b6e5218 Assign object to Tkdialog if it cannot be imported from gui module (T164163) a8aa142 weblinkchecker.py: Retry get_memento_info if there is a ConnectionError (T164365) 09142d7 newitem.py: Test if the page actually exists (T86491) Improvements (scripts) ---------------------- d6dad3c use OptionHandler class for PageFromFileReader b6567e4 Do not use the deprecated pywikibot.setAction() in makecat.py 88bbb2a Update newitem.py to use WikidataBot.user_edit_entity (T87493) 07a4344 Improve redirect.py (T153883) da9021c use OptionHandler for redirect.RedirectGenerator bc59339 Enable a new option sdtemplate for customized sd template (T140624) cfaf7c0 Rewrite claimit.py (T69284) 2487c75 Replace private mylang variables with mycode in misspelling.py 37a4846 Use input_yn in states_redirect.py 0809a60 Use bot classes for table2wiki.py Updates (scripts) ----------------- f819ef4 Update cfr templates for cswiki Release 3.0.20170403 (03 April 2017) ==================================== This is a major release from master branch. All previous 2.0 branches and tags are deprecated. The following list shows main changes since 01 January 2017. Bugfixes (core) --------------- 0319439 Use default summary when summary value does not contain a string (T160823) 303ff08 Enable specialbots.py for PY3 (T161457) 2ddf680 Change tw(n)translate from Site.code to Site.lang dependency (T140624) dcf7567 Do not use the `imp` module in Python 3 (T158640) 6773f74 Make sure the order of parameters does not change (T161291) 3ff30a0 Use pywikibot.tools.Counter instead of collections.Counter (T160620) b6919aa Introduce a new site method page_from_repository() 83ef386 Add pagelist tag for replaceExcept (T151940) c9ade07 logging in python3 when deprecated_args decorator is used (T159077) 2275630 Avoid ResourceWarning using subprocess in python 3.6 (T159646) 52ef3d6 load_pages_from_pageids: do not fail on empty string (T153592) 3f848be Add missing not-equal comparison for wbtypes (T158848) fb7f54b textlib.getCategoryLinks catch invalid category title exceptions (T154309) 28d6dae Fix html2unicode (T130925) 29111b5 Ignore first letter case on 'first-letter' sites, obey it otherwise (T130917) 7d79fa4 textlib.py: Limit catastrophic backtracking in FILE_LINK_REGEX (T148959) 12987c8 FilePage.get_file_history(): Check for len(self._file_revisions) (T155740) 83c2f9a Fix for positional_arg behavior of GeneratorFactory (T155227) ca11a4c Fix broken LDAP based login (T90149) Improvements (core) ------------------- 3e738c0 Simplify User class b72e977 Renamed isImage and isCategory ff5ad7a Add -property option to pagegenerators.py 951d079 Add a new site method pages_with_property 5c8d8be Allow retrieval of unit as ItemPage for WbQuantity (T143594) 576d7db return result of userPut with put_current method 7167cb8 Provide a new generator which yields a subclass of Page a61d3ab Implement FilePage.download() d107d58 make general function to compute file sha 4e175bc Support adding units to WbQuantity through ItemPage or entity url (T143594) 37c45bf Make PropertyPage.get() return a dictionary aa74f5c Add Wikibase Client extension requirement to APISite.unconnectedpages() 829637f Make Wikibase Property provide labels data 851daa3 APISite.data_repository(): handle warning with re.match() (T156596) 0c33e28 GeneratorFactory: make getCategory respect self.site (T155687) b8e7f41 Fix and improve default regexes Updates (core) -------------- cbe7ac1 Update linktrails 12e12a1 Update languages_by_size 288e16a Updating global bot wikis, closed wikis and deleted wikis 5927889 Deprecate site.has_transcluded_data 222b919 update plural rules 3f5d316 Correcting month names in date.py for Euskara (eu) 9db741d Linktrail for Euskara 90439d3 Define template documentation subpages for es.wikibooks 72a8a99 self.doc_subpages for Meta-Wiki 575bfe1 Updating Wikibooks projects which allows global bots c206a52 Updated list of closed projects 161a35d Add 'Bilde' as a namespace alias for file namespace of nn Wikipedia (T154947) Bugfixes (scripts) ------------------ 187a23c archivebot.py:Fix string checking in all functions (T157742) 44d8566 nowcommons.py: ncTemplates is a method not a property (T144690) 8a8d7c2 checkimages.py: Prevent TypeError when self.num_notify is None (T157728) 12117d2 archivebot.py: fix Unicode encodings in py2 and py3 (T157045) 0c6e5ce solve_disambiguation.py: Don't ask for an option when -always is given (T147159) Improvements (scripts) ---------------------- cc612db Use page_from_repository for category_redirect.py d2e244e Rewrite setParameters() in checkimages.py dc23e28 use page_from_repository() method for fixing_redirects.py 6e589e3 Add L10N from wikibase for clean_sandbox.py e9f4203 remove misleading -force and -showdiff in wikisourcetext.py fac1801 djvu.py: added features and refactored 545b6cb proofreadpage.py: purge is skipped if redlinks are present 90ae09b checkimages.py: Add a paramater of maximum number of notifications per user per check (T157728) cf1136d Subclass PiperBot from AutomaticTWSummaryBot 897e2d2 Add [q] option for edit choice in add_text.py (T155045) Updates (scripts) ----------------- 1bb6204 Localize clean_sandbox.py to Czech 850c7c6 Localize clean_sandbox.py to Wikidata d17efd6 Localize blockpageschecker.py to Czech 13a731b Add French template in category.py 77d2e87 category_redirect: Add Romanian tracking category New scripts ----------- 9b1ff42 Add surnames_redirects.py script 03daaa6 Port table2wiki to core (T115104) TODO: add high level description of changes from pywikibot 2.0rc5 Release 2.0rc5 (17 August 2016) =============================== Bugfixes -------- de630d8 Establish the project's name, once and for all fcca7ad setup.py: Add Python 3.4 and 3.5 to pypi classifiers e8be996 Remove item count output in page generators de75825 Test Python 3.5 on Travis f39c8fa Fix docstring capitalization in return types and behavior 0e9ecb0 Stop reading 'cookieprefix' upon login 65d62ae Fix travis global environment variables 18a1574 Fix notifications building from JSON c846932 pywikibot: Store ImportError in imported variable 99d789b Use default tox pip install eba4d95 Add asteroids that are being used as locations 2b95d9e [bugfix] Fix test_translateMagicWords test 76fa79c Fix ID for Rhea 4491ed7 [bugfix] pass User page object to NotEmailableError ea0c637 Allow pywikibot to run on Windows 10 as well 8864e34 listpages.py: Fix help docstring 697b4f6 pwb.py: make sure pywikibot is correctly loaded before starting a script c66c463 win32_unicode: force truetype font in console 16d8ff0 Update main copyright year to 2016 ae0ddfc [L10N] add "sco" to redirected category pages 10dc22a date.py: fix Hungarian day-month title b47b202 Prevent from being destroyed c414088 [FIX] Page: Use repr-like if it can't be encoded ab2b9cc pywikibot.WARNING -> pywikibot.logging.WARNING c4f950c Do not expand text by default in getCategoryLinks 435f6c4 Typo fix 2c5944f Prevent AttributeError for when filename is None 02872b7 Split TestUserContribs between user and non-user Release 2.0rc4 (15 December 2015) ================================= Bugfixes (core) --------------- e42891d Remove dependency on pYsearch ecc39ce Require google>=0.7 fa431a4 Desupport Python 2.6 for Pywikibot 2.0 release branch b1f6f39 config: Don't crash on later get_base_dir calls 0925c51 cosmetic_changes: merge similar regexes 4bf39f3 Update revId upon claim change ea11626 Update WOW hostnames 2a5a4fa Mark site.patrol() as a user write action 4f568c5 Fix interwikiFormat support for Link 7cb6962 Changes are wrongly detected in the last langlink 5c5d658 getLanguageLinks: Skip own site 7ee8ec2 fix intersection of sets of namespaces 94b0c43 Import textlib.TimeStripper 584d7c1 Change "PyWikiBot" to "Pywikibot" 1f8d57e Stop crashing item loads due to support of units c19dcfa __all__ items must be bytes on Python 2 e6aa6ca Omit includeredirects parameter for allpages generator 687ec9e Performance fix for sites using interwiki_putfirst option 28db3d2 Fix Persian Wikipedia configuration 3944f5e rollback: Use Revision instance properly 860af34 Add must_be to DataSite write actions f8af8e0 Remove unneeded site argument to AutoFamily bf49a7d Fix ComparableMixin 1d36e45 Deprecate ParamInfo.query_modules_with_limits e83c6a3 be-x-old is renamed to be-tarask 19bbe7e Correctly identify qualifier from JSON Bugfixes (scripts) ------------------ 4e78c27 checkimages: Expect NoPage exception fbb6266 interwiki: Optimize/remove unneeded calls to Page.isEmpty() 428420a interwiki: Allow Subject.originPage to be updated a305d7b interwiki: Allow titletranslate.translate page to be None a786226 interwiki: '-ignore' parameter throws exception ab7abf5 interwiki: check for category before emptiness 0db2e87 interwiki: do not automatically log in 47ed5d5 nowcommons: Query at most one users Release 2.0rc3 (30 September 2015) ================================== Bugfixes (core) --------------- 6406479 New Wikipedia site: azb b503a1e Indexes in str.format d1854f5 MediaWikiVersion: Accept new wmf style 718e4a1 i18n: always follow master Release 2.0rc2 (9 July 2015) ============================ Bugfixes (scripts) ------------------ 8d76870 replace.py: remove line endings when reading from file bfe60b0 archive.py: Don't ignore "DoNotArchiveUntil" timestamps 0df272b redirect.py: Don't break the script for hidden pages. 9806a7a upload.py: allow all formats allowed by commons 1dcbfd8, 0592360 replace.py: fix handling of addedCat Small new features (scripts) ---------------------------- a47c0d7 clean_sandbox.py: Use pagegenerators 288b9ce replace.py: Inform about missing user-fixes.py Configuration updates --------------------- d721249 Changing the sandbox content template on Fa WP Family file updates ------------------- 21d6a8d Remove broken wikis from battlestarwiki family 3c2bcc5 Adding euskara and sicilianu languages to Vikidia family a3a3d53 WOW Wiki subdomains hr, ro & sr deleted 474c786 Add new Wikipedia languages gom and lrc Bugfixes (core) --------------- c7a12b5 fix UnicodeDecodeError on api error ea00683 pwb.py now correctly passes arguments to generate_family_file 3685a24 Fix Win32 config.editor detection 3333251 open_compressed: Wrap BZ2File in Py 2.7 f2309e5 Skip RC entries without a title ab9fdfb PatrolEntry: Allow cur/prev id to be str 156bdd0, 0b6fda9 Updates to i18n changes 49fc65f Do not use ParamInfo during action=login 796f273 Let pydot encode labels for Python 3 support 3488a4b Fix and test interwiki_graph ba6b671 textlib: replaceExcept: Handle empty matches Release 2.0rc1 (25 May 2015) ============================ Major improvements include: - Sphinx documentation at https://doc.wikimedia.org/pywikibot/ - Initial ProofreadPage support - Improved diff output, with context - Batch upload support - Compat scripts patrol.py and piper.py ported - isbn.py now supports wikibase - RecentChanges stream (rcstream) support Pywikibot API improvements include: - Python 3 ipaddress support - Support for Python warning system - Wikibase: - added ISBN support - added redirect support - Optionally uses external library for improved isbn validation - Automatically generating user files when -user, -family and -lang are provided to a script - Page.content_model added - Page.contributors() and Page.revision_count() added - APISite.compare added - Site.undelete and Page.undelete added - DataSite.search_entities support - FilePage.latest_file_info and FilePage.oldest_file_info added - ItemClaimFilterPageGenerator added Low-level changes include: - Switch to JSON-based i18n data format - Unicode_literals used throughout source code - API badtoken recovery - API client side prevention of anonymous writes - API layer support for boolean and date datatypes - Improved MediaWiki version detection Other changes include: - Python 3 support fixes - Daemonize support - Allow pywikibot to load without i18n data - Appveyor CI Win32 builds Release 2.0b3 (30 November 2014) ================================ Major changes include: - Library initialisation no longer connects to servers - generate_user_files.py rewritten - API Version 1.14 support - Support HTTPS for families with certificate validation errors (Python 2 only) - API HTTP(S) GET support - API simplified continuation support - Upload uses a fake filename to avoid various MIME encoding issues - API class ParamInfo inspects API modules - Several QueryGenerator efficiency improvements - Improved 'same title' detection and 'get redirect target' handling - Site interwiki methods now use dynamic Interwikimap - Site methods return Namespace object instead of int - New WikiStats module - New PatchManager module used for showDiff - New pagegenerators, including -intersect support - Several category_redirect.py improvements - archivebot: support more languages - reflinks: changed from GPL to MIT Release 2.0b2 (7 October 2014) ============================== TODO: add list of major changes Release 2.0b1 (26 August 2013) ================================ TODO: add high level description of changes from pywikibot 1.0