From a84e036622e4c0e6aaa23db82571d763c51f5fbd Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Fri, 2 Jan 2015 13:49:38 +0100 Subject: [PATCH] development process updates: bb->gh, hg->git --- CHANGES | 4 +- doc/_templates/indexsidebar.html | 4 +- doc/develop.rst | 6 +- doc/devguide.rst | 101 ++++++++++++++++++++----------- doc/ext/extlinks.rst | 6 +- doc/extensions.rst | 6 +- doc/install.rst | 6 +- sphinx/cmdline.py | 2 +- utils/release-checklist | 10 +-- 9 files changed, 87 insertions(+), 58 deletions(-) diff --git a/CHANGES b/CHANGES index 110a8d184..921c099c3 100644 --- a/CHANGES +++ b/CHANGES @@ -1220,5 +1220,5 @@ Previous versions ================= The changelog for versions before 1.0 can be found in the file ``CHANGES.old`` -in the source distribution or `at BitBucket -`__. +in the source distribution or `at Github +`__. diff --git a/doc/_templates/indexsidebar.html b/doc/_templates/indexsidebar.html index 4a350ae47..1a207bb5c 100644 --- a/doc/_templates/indexsidebar.html +++ b/doc/_templates/indexsidebar.html @@ -7,7 +7,7 @@

{%trans%}This documentation is for version {{ version }}, which is not released yet.{%endtrans%}

{%trans%}You can use it from the - Mercurial repo or look for + Git repo or look for released versions in the Python Package Index.{%endtrans%}

{% else %} @@ -30,4 +30,4 @@ are also available.{%endtrans%}

{%trans%}or come to the #sphinx-doc channel on FreeNode.{%endtrans%}

{%trans%}You can also open an issue at the - tracker.{%endtrans%}

+ tracker.{%endtrans%}

diff --git a/doc/develop.rst b/doc/develop.rst index aad3ff1ef..756c8c44b 100644 --- a/doc/develop.rst +++ b/doc/develop.rst @@ -5,10 +5,10 @@ Sphinx development Sphinx is a maintained by a group of volunteers. We value every contribution! -* The code can be found in a Mercurial repository, at - https://bitbucket.org/birkenfeld/sphinx/. +* The code can be found in a Git repository, at + https://github.com/sphinx-doc/sphinx/. * Issues and feature requests should be raised in the `tracker - `_. + `_. * The mailing list for development is at `Google Groups `_. * There is also the #sphinx-doc IRC channel on `freenode diff --git a/doc/devguide.rst b/doc/devguide.rst index fccdd3fa7..04ef5b2a6 100644 --- a/doc/devguide.rst +++ b/doc/devguide.rst @@ -7,10 +7,9 @@ Sphinx Developer's Guide system used by developers to document systems used by other developers to develop other systems that may also be documented using Sphinx. -The Sphinx source code is managed using `Mercurial`_ and is hosted on -`BitBucket`_. +The Sphinx source code is managed using Git and is hosted on Github. - hg clone https://bitbucket.org/birkenfeld/sphinx + git clone git://github.com/sphinx-doc/sphinx .. rubric:: Community @@ -23,15 +22,12 @@ sphinx-dev #sphinx-doc on irc.freenode.net IRC channel for development questions and user support. -.. _`BitBucket`: https://bitbucket.org/ -.. _`Mercurial`: http://mercurial.selenic.com/ - Bug Reports and Feature Requests -------------------------------- If you have encountered a problem with Sphinx or have an idea for a new -feature, please submit it to the `issue tracker`_ on BitBucket or discuss it +feature, please submit it to the `issue tracker`_ on Github or discuss it on the sphinx-dev mailing list. For bug reports, please include the output produced during the build process @@ -43,42 +39,59 @@ Including or providing a link to the source files involved may help us fix the issue. If possible, try to create a minimal project that produces the error and post that instead. -.. _`issue tracker`: https://bitbucket.org/birkenfeld/sphinx/issues +.. _`issue tracker`: https://github.com/sphinx-doc/sphinx/issues Contributing to Sphinx ---------------------- The recommended way for new contributors to submit code to Sphinx is to fork -the Mercurial repository on BitBucket and then submit a pull request after +the repository on Github and then submit a pull request after committing the changes. The pull request will then need to be approved by one of the core developers before it is merged into the main repository. +#. Check for open issues or open a fresh issue to start a discussion around a + feature idea or a bug. +#. If you feel uncomfortable or uncertain about an issue or your changes, feel + free to email sphinx-dev@googlegroups.com. +#. Fork `the repository`_ on Github to start making your changes to the + **default** branch for next major version, or **stable** branch for next + minor version. +#. Write a test which shows that the bug was fixed or that the feature works + as expected. +#. Send a pull request and bug the maintainer until it gets merged and + published. Make sure to add yourself to AUTHORS_ and the change to + CHANGES_. + +.. _`the repository`: https://github.com/sphinx-doc/sphinx +.. _AUTHORS: https://github.com/sphinx-doc/sphinx/blob/master/AUTHORS +.. _CHANGES: https://github.com/sphinx-doc/sphinx/blob/master/CHANGES + Getting Started ~~~~~~~~~~~~~~~ These are the basic steps needed to start developing on Sphinx. -#. Create an account on BitBucket. +#. Create an account on Github. -#. Fork the main Sphinx repository (`birkenfeld/sphinx - `_) using the BitBucket interface. +#. Fork the main Sphinx repository (`sphinx-doc/sphinx + `_) using the Github interface. #. Clone the forked repository to your machine. :: - hg clone https://bitbucket.org/USERNAME/sphinx-fork - cd sphinx-fork + git clone https://github.com/USERNAME/sphinx + cd sphinx #. Checkout the appropriate branch. For changes that should be included in the next minor release (namely bug fixes), use the ``stable`` branch. :: - hg checkout stable + git checkout stable For new features or other substantial changes that should wait until the - next major release, use the ``default`` branch. + next major release, use the ``master`` branch. #. Optional: setup a virtual environment. :: @@ -86,6 +99,10 @@ These are the basic steps needed to start developing on Sphinx. . ~/sphinxenv/bin/activate pip install -e . +#. Create a new working branch. Choose any name you like. :: + + git checkout -b feature-xyz + #. Hack, hack, hack. For tips on working with the code, see the `Coding Guide`_. @@ -113,28 +130,31 @@ These are the basic steps needed to start developing on Sphinx. * For bug fixes, first add a test that fails without your changes and passes after they are applied. -#. Please add a bullet point to :file:`CHANGES` if the fix or feature is not trivial - (small doc updates, typo fixes). Then commit:: + * Tests that need a sphinx-build run should be integrated in one of the + existing test modules if possible. New tests that to ``@with_app`` and + then ``build_all`` for a few assertions are not good since *the test suite + should not take more than a minute to run*. - hg commit -m '#42: Add useful new feature that does this.' +#. Please add a bullet point to :file:`CHANGES` if the fix or feature is not + trivial (small doc updates, typo fixes). Then commit:: - BitBucket recognizes `certain phrases`__ that can be used to automatically + git commit -m '#42: Add useful new feature that does this.' + + Github recognizes certain phrases that can be used to automatically update the issue tracker. For example:: - hg commit -m 'Closes #42: Fix invalid markup in docstring of Foo.bar.' + git commit -m 'Closes #42: Fix invalid markup in docstring of Foo.bar.' would close issue #42. - __ https://confluence.atlassian.com/display/BITBUCKET/Resolve+issues+automatically+when+users+push+code +#. Push changes in the branch to your forked repository on Github. :: -#. Push changes to your forked repository on BitBucket. :: + git push origin feature-xyz - hg push - -#. Submit a pull request from your repository to ``birkenfeld/sphinx`` using - the BitBucket interface. +#. Submit a pull request from your branch to the respective branch (``master`` + or ``stable``) on ``sphinx-doc/sphinx`` using the Github interface. #. Wait for a core developer to review your changes. @@ -162,9 +182,6 @@ The following are some general guidelines for core developers: * When committing code written by someone else, please attribute the original author in the commit message and any relevant :file:`CHANGES` entry. -* Using Mercurial named branches other than ``default`` and ``stable`` is not - encouraged. - Locale updates ~~~~~~~~~~~~~~ @@ -191,9 +208,9 @@ identifier and put ``sphinx.po`` in there. Don't forget to update the possible values for :confval:`language` in ``doc/config.rst``. The Sphinx core messages can also be translated on `Transifex -`_. There exists a client tool named ``tx`` in the Python -package "transifex_client", which can be used to pull translations in ``.po`` -format from Transifex. To do this, go to ``sphinx/locale`` and then run +`_. There exists a client tool named ``tx`` in the +Python package "transifex_client", which can be used to pull translations in +``.po`` format from Transifex. To do this, go to ``sphinx/locale`` and then run ``tx pull -f -l LANG`` where LANG is an existing language identifier. It is good practice to run ``python setup.py update_catalog`` afterwards to make sure the ``.po`` file has the canonical Babel formatting. @@ -235,11 +252,23 @@ Debugging Tips * Use ``node.pformat()`` and ``node.asdom().toxml()`` to generate a printable representation of the document structure. -* Set the configuration variable :confval:`keep_warnings` to True so warnings - will be displayed in the generated output. +* Set the configuration variable :confval:`keep_warnings` to ``True`` so + warnings will be displayed in the generated output. -* Set the configuration variable :confval:`nitpicky` to True so that Sphinx +* Set the configuration variable :confval:`nitpicky` to ``True`` so that Sphinx will complain about references without a known target. * Set the debugging options in the `Docutils configuration file `_. + +* JavaScript stemming algorithms in `sphinx/search/*.py` (except `en.py`) are + generated by this + `modified snowballcode generator `_. + Generated `JSX `_ files are + in `this repository `_. + You can get the resulting JavaScript files using the following command: + + .. code-block:: bash + + $ npm install + $ node_modules/.bin/grunt build # -> dest/*.global.js diff --git a/doc/ext/extlinks.rst b/doc/ext/extlinks.rst index d8bcaa524..90324cc1c 100644 --- a/doc/ext/extlinks.rst +++ b/doc/ext/extlinks.rst @@ -15,7 +15,7 @@ so by providing aliases to base URLs, so that you only need to give the subpage name when creating a link. Let's assume that you want to include many links to issues at the Sphinx -tracker, at :samp:`http://bitbucket.org/birkenfeld/sphinx/issue/{num}`. Typing +tracker, at :samp:`http://github.com/sphinx-doc/sphinx/issues/{num}`. Typing this URL again and again is tedious, so you can use :mod:`~sphinx.ext.extlinks` to avoid repeating yourself. @@ -27,11 +27,11 @@ The extension adds one new config value: short alias names to a base URL and a *prefix*. For example, to create an alias for the above mentioned issues, you would add :: - extlinks = {'issue': ('https://bitbucket.org/birkenfeld/sphinx/issue/%s', + extlinks = {'issue': ('https://github.com/sphinx-doc/sphinx/issues/%s', 'issue ')} Now, you can use the alias name as a new role, e.g. ``:issue:`123```. This - then inserts a link to https://bitbucket.org/birkenfeld/sphinx/issue/123. + then inserts a link to https://github.com/sphinx-doc/sphinx/issues/123. As you can see, the target given in the role is substituted in the base URL in the place of ``%s``. diff --git a/doc/extensions.rst b/doc/extensions.rst index b2adbc1a8..1c297f55c 100644 --- a/doc/extensions.rst +++ b/doc/extensions.rst @@ -41,14 +41,14 @@ You can find several extensions contributed by users in the `Sphinx Contrib`_ repository. It is open for anyone who wants to maintain an extension publicly; just send a short message asking for write permissions. -There are also several extensions hosted elsewhere. The `Wiki at BitBucket`_ -maintains a list of those. +There are also several extensions hosted elsewhere. The `Sphinx extension +survey `__ contains a +comprehensive list. If you write an extension that you think others will find useful or you think should be included as a part of Sphinx, please write to the project mailing list (`join here `_). -.. _Wiki at BitBucket: https://bitbucket.org/birkenfeld/sphinx/wiki/Home .. _Sphinx Contrib: https://bitbucket.org/birkenfeld/sphinx-contrib diff --git a/doc/install.rst b/doc/install.rst index bf6538722..323cf4299 100644 --- a/doc/install.rst +++ b/doc/install.rst @@ -9,11 +9,11 @@ Since Sphinx is written in the Python language, you need to install Python Sphinx packages are available on the `Python Package Index `_. -You can also download a snapshot from the Mercurial development repository: +You can also download a snapshot from the Git repository: -* as a `.tar.bz2 `_ +* as a `.tar.bz2 `_ file or -* as a `.zip `_ file +* as a `.zip `_ file There are introductions for several environments: diff --git a/sphinx/cmdline.py b/sphinx/cmdline.py index ec24d9026..69817e444 100644 --- a/sphinx/cmdline.py +++ b/sphinx/cmdline.py @@ -292,5 +292,5 @@ def main(argv): 'can be provided next time.') print >>error, ( 'A bug report can be filed in the tracker at ' - '. Thanks!') + '. Thanks!') return 1 diff --git a/utils/release-checklist b/utils/release-checklist index ab234f3ea..6a8e4c0fd 100644 --- a/utils/release-checklist +++ b/utils/release-checklist @@ -1,21 +1,21 @@ Release checklist ================= -* Check hg status +* Check git status * Make check * Update version info in sphinx/__init__.py * Update release date in CHANGES -* hg commit +* git commit * make clean * python setup.py release bdist_wheel sdist upload * For all other versions: pythonX.Y setup.py release bdist_wheel upload (remove build/ before each one) * Check PyPI release page for obvious errors -* hg tag +* git tag * Merge default into stable if final major release * Update homepage (release info), regenerate docs (+printable!) * Add new version/milestone to tracker categories * Write announcement and send to mailing list/python-announce * Update version info, add new CHANGES entry for next version -* hg commit -* hg push +* git commit +* git push