{"action":"opened","number":2139,"pull_request":{"url":"https://api.github.com/repos/buildbot/buildbot/pulls/2139","id":66960076,"html_url":"https://github.com/buildbot/buildbot/pull/2139","diff_url":"https://github.com/buildbot/buildbot/pull/2139.diff","patch_url":"https://github.com/buildbot/buildbot/pull/2139.patch","issue_url":"https://api.github.com/repos/buildbot/buildbot/issues/2139","number":2139,"state":"open","locked":false,"title":"Use sphinxcontrib-spelling to check docs spelling","user":{"login":"rutsky","id":46573,"avatar_url":"https://avatars.githubusercontent.com/u/46573?v=3","gravatar_id":"","url":"https://api.github.com/users/rutsky","html_url":"https://github.com/rutsky","followers_url":"https://api.github.com/users/rutsky/followers","following_url":"https://api.github.com/users/rutsky/following{/other_user}","gists_url":"https://api.github.com/users/rutsky/gists{/gist_id}","starred_url":"https://api.github.com/users/rutsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rutsky/subscriptions","organizations_url":"https://api.github.com/users/rutsky/orgs","repos_url":"https://api.github.com/users/rutsky/repos","events_url":"https://api.github.com/users/rutsky/events{/privacy}","received_events_url":"https://api.github.com/users/rutsky/received_events","type":"User","site_admin":false},"body":"This PR:\r\n\r\n1. Adds `spelling` target to doc's Makefile that runs `sphinxcontrib-spelling` to check spelling.\r\n\r\n2. Adds all words that currently considered as misspelled to `spelling_wordlist.txt` dictionary.\r\n\r\n3. Adds configuration to run spellcheck on Travis.\r\n\r\n4. Fixes `Buildbot` project name capital letter (or add appropriate quotations/semantic formatting like `:file:`, `:py:mod:`).\r\n\r\n\r\nDuring fixing `Buildbot` I noticed that `sphinxcontrib-spelling` not always points to proper place of error in the source file and misses some words. This is not good, but better than nothing.\r\nI noticed only one false positive: it doesn't handle words in URLs if URL is not explicitly marked as URL. E.g. `sphinxcontrib-spelling` considers error here:\r\n\r\n```\r\nvisit http://nine.buildbot.net/ site\r\n```\r\n\r\nwhich may be workarounded by adding explicit formatting to URL:\r\n\r\n```\r\nvisit `<http://nine.buildbot.net/>`__ site\r\n```\r\n\r\nI suggest to merge this PR with ignored most of typos and fix those typos/formatting in separate pull requests.\r\n\r\nI propose not to only fix typos, but also semantic formatting (`:py:mod:`, `:file:`), case sensitivity (`URL` instead of `url`) and proper project names (`AppVeyor` instead of `Appveyor`).\r\n\r\nAlso when someone will fix typos I suggest to do `git grep some-typo` to fix this typo not only in docs, but in source code/scripts.\r\n","created_at":"2016-04-19T04:51:20Z","updated_at":"2016-04-19T04:51:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/buildbot/buildbot/pulls/2139/commits","review_comments_url":"https://api.github.com/repos/buildbot/buildbot/pulls/2139/comments","review_comment_url":"https://api.github.com/repos/buildbot/buildbot/pulls/comments{/number}","comments_url":"https://api.github.com/repos/buildbot/buildbot/issues/2139/comments","statuses_url":"https://api.github.com/repos/buildbot/buildbot/statuses/79991cfae7dbc0b93dd319a33e36f6129b5337e0","head":{"label":"rutsky:docs-sphinx-spelling","ref":"docs-sphinx-spelling","sha":"79991cfae7dbc0b93dd319a33e36f6129b5337e0","user":{"login":"rutsky","id":46573,"avatar_url":"https://avatars.githubusercontent.com/u/46573?v=3","gravatar_id":"","url":"https://api.github.com/users/rutsky","html_url":"https://github.com/rutsky","followers_url":"https://api.github.com/users/rutsky/followers","following_url":"https://api.github.com/users/rutsky/following{/other_user}","gists_url":"https://api.github.com/users/rutsky/gists{/gist_id}","starred_url":"https://api.github.com/users/rutsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rutsky/subscriptions","organizations_url":"https://api.github.com/users/rutsky/orgs","repos_url":"https://api.github.com/users/rutsky/repos","events_url":"https://api.github.com/users/rutsky/events{/privacy}","received_events_url":"https://api.github.com/users/rutsky/received_events","type":"User","site_admin":false},"repo":{"id":48515771,"name":"buildbot","full_name":"rutsky/buildbot","owner":{"login":"rutsky","id":46573,"avatar_url":"https://avatars.githubusercontent.com/u/46573?v=3","gravatar_id":"","url":"https://api.github.com/users/rutsky","html_url":"https://github.com/rutsky","followers_url":"https://api.github.com/users/rutsky/followers","following_url":"https://api.github.com/users/rutsky/following{/other_user}","gists_url":"https://api.github.com/users/rutsky/gists{/gist_id}","starred_url":"https://api.github.com/users/rutsky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rutsky/subscriptions","organizations_url":"https://api.github.com/users/rutsky/orgs","repos_url":"https://api.github.com/users/rutsky/repos","events_url":"https://api.github.com/users/rutsky/events{/privacy}","received_events_url":"https://api.github.com/users/rutsky/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rutsky/buildbot","description":"Python-based continuous integration testing framework; your pull requests are more than welcome!","fork":true,"url":"https://api.github.com/repos/rutsky/buildbot","forks_url":"https://api.github.com/repos/rutsky/buildbot/forks","keys_url":"https://api.github.com/repos/rutsky/buildbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rutsky/buildbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rutsky/buildbot/teams","hooks_url":"https://api.github.com/repos/rutsky/buildbot/hooks","issue_events_url":"https://api.github.com/repos/rutsky/buildbot/issues/events{/number}","events_url":"https://api.github.com/repos/rutsky/buildbot/events","assignees_url":"https://api.github.com/repos/rutsky/buildbot/assignees{/user}","branches_url":"https://api.github.com/repos/rutsky/buildbot/branches{/branch}","tags_url":"https://api.github.com/repos/rutsky/buildbot/tags","blobs_url":"https://api.github.com/repos/rutsky/buildbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rutsky/buildbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rutsky/buildbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/rutsky/buildbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rutsky/buildbot/statuses/{sha}","languages_url":"https://api.github.com/repos/rutsky/buildbot/languages","stargazers_url":"https://api.github.com/repos/rutsky/buildbot/stargazers","contributors_url":"https://api.github.com/repos/rutsky/buildbot/contributors","subscribers_url":"https://api.github.com/repos/rutsky/buildbot/subscribers","subscription_url":"https://api.github.com/repos/rutsky/buildbot/subscription","commits_url":"https://api.github.com/repos/rutsky/buildbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/rutsky/buildbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/rutsky/buildbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/rutsky/buildbot/issues/comments{/number}","contents_url":"https://api.github.com/repos/rutsky/buildbot/contents/{+path}","compare_url":"https://api.github.com/repos/rutsky/buildbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rutsky/buildbot/merges","archive_url":"https://api.github.com/repos/rutsky/buildbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rutsky/buildbot/downloads","issues_url":"https://api.github.com/repos/rutsky/buildbot/issues{/number}","pulls_url":"https://api.github.com/repos/rutsky/buildbot/pulls{/number}","milestones_url":"https://api.github.com/repos/rutsky/buildbot/milestones{/number}","notifications_url":"https://api.github.com/repos/rutsky/buildbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rutsky/buildbot/labels{/name}","releases_url":"https://api.github.com/repos/rutsky/buildbot/releases{/id}","deployments_url":"https://api.github.com/repos/rutsky/buildbot/deployments","created_at":"2015-12-23T23:45:15Z","updated_at":"2016-02-23T02:43:36Z","pushed_at":"2016-04-19T04:39:38Z","git_url":"git://github.com/rutsky/buildbot.git","ssh_url":"git@github.com:rutsky/buildbot.git","clone_url":"https://github.com/rutsky/buildbot.git","svn_url":"https://github.com/rutsky/buildbot","homepage":"http://buildbot.net","size":42172,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"buildbot:master","ref":"master","sha":"e2a3a9fb6fb8f4970ce66d5c4b39b5091bcf42e0","user":{"login":"buildbot","id":324515,"avatar_url":"https://avatars.githubusercontent.com/u/324515?v=3","gravatar_id":"","url":"https://api.github.com/users/buildbot","html_url":"https://github.com/buildbot","followers_url":"https://api.github.com/users/buildbot/followers","following_url":"https://api.github.com/users/buildbot/following{/other_user}","gists_url":"https://api.github.com/users/buildbot/gists{/gist_id}","starred_url":"https://api.github.com/users/buildbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/buildbot/subscriptions","organizations_url":"https://api.github.com/users/buildbot/orgs","repos_url":"https://api.github.com/users/buildbot/repos","events_url":"https://api.github.com/users/buildbot/events{/privacy}","received_events_url":"https://api.github.com/users/buildbot/received_events","type":"Organization","site_admin":false},"repo":{"id":760165,"name":"buildbot","full_name":"buildbot/buildbot","owner":{"login":"buildbot","id":324515,"avatar_url":"https://avatars.githubusercontent.com/u/324515?v=3","gravatar_id":"","url":"https://api.github.com/users/buildbot","html_url":"https://github.com/buildbot","followers_url":"https://api.github.com/users/buildbot/followers","following_url":"https://api.github.com/users/buildbot/following{/other_user}","gists_url":"https://api.github.com/users/buildbot/gists{/gist_id}","starred_url":"https://api.github.com/users/buildbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/buildbot/subscriptions","organizations_url":"https://api.github.com/users/buildbot/orgs","repos_url":"https://api.github.com/users/buildbot/repos","events_url":"https://api.github.com/users/buildbot/events{/privacy}","received_events_url":"https://api.github.com/users/buildbot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/buildbot/buildbot","description":"Python-based continuous integration testing framework; your pull requests are more than welcome!","fork":false,"url":"https://api.github.com/repos/buildbot/buildbot","forks_url":"https://api.github.com/repos/buildbot/buildbot/forks","keys_url":"https://api.github.com/repos/buildbot/buildbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/buildbot/buildbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/buildbot/buildbot/teams","hooks_url":"https://api.github.com/repos/buildbot/buildbot/hooks","issue_events_url":"https://api.github.com/repos/buildbot/buildbot/issues/events{/number}","events_url":"https://api.github.com/repos/buildbot/buildbot/events","assignees_url":"https://api.github.com/repos/buildbot/buildbot/assignees{/user}","branches_url":"https://api.github.com/repos/buildbot/buildbot/branches{/branch}","tags_url":"https://api.github.com/repos/buildbot/buildbot/tags","blobs_url":"https://api.github.com/repos/buildbot/buildbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/buildbot/buildbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/buildbot/buildbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/buildbot/buildbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/buildbot/buildbot/statuses/{sha}","languages_url":"https://api.github.com/repos/buildbot/buildbot/languages","stargazers_url":"https://api.github.com/repos/buildbot/buildbot/stargazers","contributors_url":"https://api.github.com/repos/buildbot/buildbot/contributors","subscribers_url":"https://api.github.com/repos/buildbot/buildbot/subscribers","subscription_url":"https://api.github.com/repos/buildbot/buildbot/subscription","commits_url":"https://api.github.com/repos/buildbot/buildbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/buildbot/buildbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/buildbot/buildbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/buildbot/buildbot/issues/comments{/number}","contents_url":"https://api.github.com/repos/buildbot/buildbot/contents/{+path}","compare_url":"https://api.github.com/repos/buildbot/buildbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/buildbot/buildbot/merges","archive_url":"https://api.github.com/repos/buildbot/buildbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/buildbot/buildbot/downloads","issues_url":"https://api.github.com/repos/buildbot/buildbot/issues{/number}","pulls_url":"https://api.github.com/repos/buildbot/buildbot/pulls{/number}","milestones_url":"https://api.github.com/repos/buildbot/buildbot/milestones{/number}","notifications_url":"https://api.github.com/repos/buildbot/buildbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/buildbot/buildbot/labels{/name}","releases_url":"https://api.github.com/repos/buildbot/buildbot/releases{/id}","deployments_url":"https://api.github.com/repos/buildbot/buildbot/deployments","created_at":"2010-07-06T17:56:53Z","updated_at":"2016-04-19T02:11:08Z","pushed_at":"2016-04-19T02:59:59Z","git_url":"git://github.com/buildbot/buildbot.git","ssh_url":"git@github.com:buildbot/buildbot.git","clone_url":"https://github.com/buildbot/buildbot.git","svn_url":"https://github.com/buildbot/buildbot","homepage":"http://buildbot.net","size":91134,"stargazers_count":2111,"watchers_count":2111,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":868,"mirror_url":null,"open_issues_count":24,"forks":868,"open_issues":24,"watchers":2111,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/buildbot/buildbot/pulls/2139"},"html":{"href":"https://github.com/buildbot/buildbot/pull/2139"},"issue":{"href":"https://api.github.com/repos/buildbot/buildbot/issues/2139"},"comments":{"href":"https://api.github.com/repos/buildbot/buildbot/issues/2139/comments"},"review_comments":{"href":"https://api.github.com/repos/buildbot/buildbot/pulls/2139/comments"},"review_comment":{"href":"https://api.github.com/repos/buildbot/buildbot/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/buildbot/buildbot/pulls/2139/commits"},"statuses":{"href":"https://api.github.com/repos/buildbot/buildbot/statuses/79991cfae7dbc0b93dd319a33e36f6129b5337e0"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":3,"additions":910,"deletions":76,"changed_files":23}}