提交 26b235cf authored 作者: delallea's avatar delallea

Merge pull request #11 from jaberg/goodbye_assembla

updating to remove assembla and hg references
...@@ -40,7 +40,7 @@ setup.py install``. ...@@ -40,7 +40,7 @@ setup.py install``.
Those interested in bleeding-edge features should obtain the latest development Those interested in bleeding-edge features should obtain the latest development
version, available via:: version, available via::
hg clone http://hg.assembla.com/theano Theano git clone git://github.com/Theano/Theano.git
You can then place the checkout directory on your ``$PYTHONPATH`` or use You can then place the checkout directory on your ``$PYTHONPATH`` or use
``python setup.py develop`` to install a ``.pth`` into your ``site-packages`` ``python setup.py develop`` to install a ``.pth`` into your ``site-packages``
......
...@@ -60,7 +60,7 @@ The following libraries and software are optional: ...@@ -60,7 +60,7 @@ The following libraries and software are optional:
For building the documentation. LaTeX_ and dvipng_ are also necessary For building the documentation. LaTeX_ and dvipng_ are also necessary
for math to show up as images. for math to show up as images.
`Mercurial <http://mercurial.selenic.com/>`_ `Git <http://git-scm.com>`_
To download bleeding-edge versions of Theano. To download bleeding-edge versions of Theano.
`pydot <https://code.google.com/p/pydot/>`_ `pydot <https://code.google.com/p/pydot/>`_
...@@ -142,31 +142,33 @@ A contributor made rpm package for Mandriva_ 2010.2 of Theano 0.3.1. ...@@ -142,31 +142,33 @@ A contributor made rpm package for Mandriva_ 2010.2 of Theano 0.3.1.
.. _Mandriva: http://mib.pianetalinux.org/mib/quick/basic-rpms/mib-rpms/975-theano-031 .. _Mandriva: http://mib.pianetalinux.org/mib/quick/basic-rpms/mib-rpms/975-theano-031
Bleeding-edge (developer) install instructions Bleeding-edge install instructions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are a developer of Theano, then check out the :ref:`dev_start_guide`. If you are a developer of Theano, then check out the :ref:`dev_start_guide`.
If you want the bleeding-edge without developing the code you can use If you want the bleeding-edge without developing the code you can use pip for
pip for this this with the command line below. Note that it will also try to download and
upgrade Theano's dependencies (like numpy and scipy). If you do not wish to do
so, add the ``--no-deps`` switch to it.
.. code-block:: bash .. code-block:: bash
pip install --upgrade hg+http://hg.assembla.com/theano pip install --upgrade git+git://github.com/Theano/Theano.git
or or (if you want to install to a custom directory):
.. code-block:: bash .. code-block:: bash
pip install --upgrade hg+http://hg.assembla.com/theano --install-option='--prefix=YOURPREFIX' pip install --upgrade git+git://github.com/Theano/Theano.git --install-option='--prefix=YOURPREFIX'
The following are general instructions that will set you up with the The following are general instructions that will set you up with the
bleeding-edge version of Theano and allow you to hack it. First, bleeding-edge version of Theano and allow you to hack it. First,
get the code using `Mercurial <http://mercurial.selenic.com/>`__: get the code using `Git <http://git-scm.com>`__:
.. code-block:: bash .. code-block:: bash
hg clone http://hg.assembla.com/theano Theano git clone git://github.com/Theano/Theano.git
From here, the easiest way to get started is From here, the easiest way to get started is
...@@ -177,9 +179,9 @@ From here, the easiest way to get started is ...@@ -177,9 +179,9 @@ From here, the easiest way to get started is
This will install a ``.pth`` file in your ``site-packages`` directory that This will install a ``.pth`` file in your ``site-packages`` directory that
tells Python where to look for your Theano installation (i.e. in the tells Python where to look for your Theano installation (i.e. in the
directory your just checked out of Mercurial). Using ``develop`` mode is directory your just checked out of Github). Using ``develop`` mode is
preferable to ``install`` as any modifications you make in the checkout preferable to ``install`` as any modifications you make in the checkout
directory (or changes you pull with Mercurial) will be automatically reflected directory (or changes you pull with Git) will be automatically reflected
in the "installed" version without re-running ``python setup.py install``. in the "installed" version without re-running ``python setup.py install``.
If you do not have permission to modify your ``site-packages`` directory you If you do not have permission to modify your ``site-packages`` directory you
...@@ -234,7 +236,7 @@ to your ``Theano`` folder and execute the following command: ...@@ -234,7 +236,7 @@ to your ``Theano`` folder and execute the following command:
.. code-block:: bash .. code-block:: bash
hg pull -u git pull
You should update frequently, bugs are fixed on a very regular basis. You should update frequently, bugs are fixed on a very regular basis.
...@@ -250,7 +252,7 @@ a Python (or IPython) interpreter, ...@@ -250,7 +252,7 @@ a Python (or IPython) interpreter,
>>> import theano >>> import theano
>>> theano.test() >>> theano.test()
You can also run them in-place from the Mercurial checkout directory by typing You can also run them in-place from the Git checkout directory by typing
.. code-block:: bash .. code-block:: bash
...@@ -368,7 +370,7 @@ Mac ...@@ -368,7 +370,7 @@ Mac
.. code-block:: bash .. code-block:: bash
$ sudo port install gcc44 py26-scipy mercurial $ sudo port install gcc44 py26-scipy git
This will install all the required Theano dependencies. Note that This will install all the required Theano dependencies. Note that
compiling gcc takes significant time (hours)! SciPy depends on ATLAS (a compiling gcc takes significant time (hours)! SciPy depends on ATLAS (a
...@@ -526,11 +528,9 @@ components as in Python(x,y) that are required by Theano, follow these steps: ...@@ -526,11 +528,9 @@ components as in Python(x,y) that are required by Theano, follow these steps:
At this point, whether you installed Python(x,y) or individual components, you At this point, whether you installed Python(x,y) or individual components, you
should have MinGW, Python, Numpy, Scipy and Nose installed. should have MinGW, Python, Numpy, Scipy and Nose installed.
In order to download Theano you will also need Mercurial, which you can get In order to download Theano you will also need Git, which you can get
`here <http://mercurial.selenic.com/downloads>`__. `here <http://git-scm.com/download>`__ (download the latest version of the
You may install either the command "Full installer for official Git" from the ``msysgit`` download page).
line Windows version or the TortoiseHG GUI version: it does not matter as
far as installing Theano is concerned.
Installing Theano Installing Theano
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
...@@ -547,7 +547,7 @@ used within a MinGW Shell (not available if you only installed Python(x,y)). ...@@ -547,7 +547,7 @@ used within a MinGW Shell (not available if you only installed Python(x,y)).
.. code-block:: bash .. code-block:: bash
hg clone http://hg.assembla.com/theano Theano git clone git://github.com/Theano/Theano.git
- Add (or edit) the ``PYTHONPATH`` environment variable (into Control - Add (or edit) the ``PYTHONPATH`` environment variable (into Control
Panel / System / Advanced / Environment Variables), so that it contains Panel / System / Advanced / Environment Variables), so that it contains
......
...@@ -22,33 +22,35 @@ To get up to speed, you'll need to ...@@ -22,33 +22,35 @@ To get up to speed, you'll need to
Accounts Accounts
-------- --------
To obtain developer access: register with `Assembla To obtain developer access: register with `GitHub
<http://www.assembla.com/>`_ and add yourself as a watcher on the `Theano <http://www.github.com/>`_ and create a fork of `Theano
space <http://www.assembla.com/spaces/theano>`_. Then send an email to an <http://www.github.com/Theano/Theano>`_.
admin asking to be promoted to a member of the project.
Clone your fork locally with
Theano code .. code-block:: bash
----------- git clone git@github.com:your_github_login/Theano.git
*To get the source via Mercurial,* you must have `Mercurial
<http://mercurial.selenic.com/>`__ installed.
The code that makes up Theano is in a `single repository and add a reference to the 'central' Theano repository with
<http://www.assembla.com/spaces/theano/trac_mercurial_tool>`__. As a developer,
you should clone this repository like this:
.. code-block:: bash .. code-block:: bash
git remote add central git://github.com/Theano/Theano.git
hg clone 'http://username:password@hg.assembla.com/theano' Theano When working on a new feature in your own fork, start from an up-to-date copy
of the trunk:
You can also clone the code anonymously:
.. code-block:: bash .. code-block:: bash
git fetch central
git checkout -b my_shiny_feature central/master
Once your code is ready for others to review, push your branch to your github fork:
hg clone http://hg.assembla.com/theano Theano .. code-block:: bash
git push -u origin my_shiny_feature
Then follow the :ref:`install_bleeding_edge`. then go to your fork's github page on the github website, select your feature
branch and hit the "Pull Request" button in the top right corner.
If you don't get any feedback, bug us on the theano-dev mailing list.
Details about ``PYTHONPATH`` Details about ``PYTHONPATH``
---------------------------- ----------------------------
...@@ -89,12 +91,21 @@ mailing list. ...@@ -89,12 +91,21 @@ mailing list.
.. _theano-users: https://groups.google.com/group/theano-users .. _theano-users: https://groups.google.com/group/theano-users
To update your library to the latest revision, change directory (``cd``) To update your library to the latest revision, you should have a branch
to your ``Theano`` folder and execute the following command: that tracks the main trunk. You can add one with:
.. code-block:: bash
git fetch central
git branch trunk central/master
Once you have such a branch, in order to update it, do:
.. code-block:: bash .. code-block:: bash
git checkout trunk
git pull
hg pull -u Keep in mind that this branch should be "read-only": if you want to patch
Theano, do it in another branch like described above.
Nightly test Nightly test
============ ============
......
.. _hg_primer:
================
hg in a Nutshell
================
Hg is the chemical symbol for mercury.
hg is the unix command that runs `Mercurial` the revision control system.
As a user of Theano, the commands you need to know are:
``hg clone 'https://hg.assembla.com/theano'``
Download the freshest version of the code from the remote repository.
``hg pull -u``
Update your files to the freshest versions from the remote repository.
As a developer of Theano, you may want to change the local code, and merge them
with the central version. This requires a bit more understanding of what's
going on. Working with hg means you have three logically seperate kinds of images of the
codebase: local files, local database, remote database(s).
Typically, your sequence of hg commands should look like this:
1. ``hg pull -u [remote address]``
(Copy from remote db -> local db -> local files)
#. ``<change local files>``
This will create differences between the local files and the local db.
Prefer using ``hg rm`` and ``hg mv`` to their unix counterparts.
#. ``hg st``
(Print out differences between local files and local db)
#. ``hg commit -m 'message about what you did' <files to which message applies>``
(Update the local db to match the files listed.)
#. ``hg pull -u``
(Download the remote db to the local db, and ``-u`` updates files too.)
#. ``[hg merge]``
(Downloading the remote db may have created a fork in the
local db. This command will try to merge any such fork, and it might bring up
an editor to merge some stuff manually. This step affects the local files, but
not the local db.)
#. ``[hg commit -m 'merge']``
(If you changed your files during the merge
operation, then you have to commit those changes, as usual.)
#. ``hg push [remote address]``
(Update the remote db to match the local db)
Note that *branching* in mercurial is as easy as ``cp <repo> <new name>`` in a
unix shell. If you want to make ``<repo>`` the default push location of your
new branch that do ``hg clone <repo> <new name>`` instead.
Failure to do these commands in the proper order can get you into a tricky
state, where you can't push because it would create a branch, and you can't pull
or update because it says it's done, and you can't commit because it says
nothing to commit, and you can't merge, and oh the pain.... so be careful!
If this happens to you, consider just re-cloning the repo and merging in your
old changes by hand.
For more info, check out the `homepage <http://www.selenic.com/mercurial/wiki/>`_ and `hg book <http://hgbook.red-bean.com/hgbook.html>`_.
Tip: Commit before pull
------------------------
"This is the general rule of thumb when using Mercurial: finish your work
and commit it before you start pulling in stuff from the outside world."
-Martin Geisler
(http://www.selenic.com/pipermail/mercurial/2008-April/018817.html)
Tip: Graph logs
---------------
Update your .hgrc::
[ui]
username = Foo Bar <barfoo@iro.umontreal.ca>
[extensions]
hgext.graphlog =
Now try::
hg glog
Troubleshooting
---------------
If you get message: "abort: push
creates new remote heads!", read `this thread
<http://www.selenic.com/pipermail/mercurial/2008-April/018804.html>`_
to understand.
...@@ -18,7 +18,7 @@ Get a fresh copy of the repository ...@@ -18,7 +18,7 @@ Get a fresh copy of the repository
Clone the code:: Clone the code::
hg clone http://hg.assembla.com/theano Theano-0.X git clone git://github.com/Theano/Theano.git
It does not have to be in your PYTHONPATH. It does not have to be in your PYTHONPATH.
...@@ -51,9 +51,9 @@ You will need to commit the previous changes, tag the resulting version, and ...@@ -51,9 +51,9 @@ You will need to commit the previous changes, tag the resulting version, and
push that into the original repository. The syntax is something like the push that into the original repository. The syntax is something like the
following:: following::
hg commit -m"modifications for 0.X release" setup.py doc/conf.py NEWS.txt HISTORY.txt theano/configdefaults.py doc/library/config.txt git commit -m "Modifications for 0.X.Y release" setup.py doc/conf.py NEWS.txt HISTORY.txt theano/configdefaults.py doc/library/config.txt
hg tag 0.X git tag -a rel-0.X.Y
hg push git push
The documentation will be automatically regenerated in the next few hours. The documentation will be automatically regenerated in the next few hours.
......
...@@ -17,5 +17,4 @@ If you're feeling ambitious, go fix some `pylint ...@@ -17,5 +17,4 @@ If you're feeling ambitious, go fix some `pylint
mammouth mammouth
metadocumentation metadocumentation
python python
hg_primer
how_to_release how_to_release
...@@ -134,7 +134,7 @@ be logged into ``ceylon``, Fred leaves a shell open for that.) ...@@ -134,7 +134,7 @@ be logged into ``ceylon``, Fred leaves a shell open for that.)
The cronjob executes the scripts The cronjob executes the scripts
``~/nightly_build/do_nightly_build_{theano,pylearn,deeplearning}``. ``~/nightly_build/do_nightly_build_{theano,pylearn,deeplearning}``.
These scripts perform an "hg pull -u" of theano (and pylearn, and These scripts perform an update of theano (and pylearn, and
DeepLearningTutorials too), and execute nosetests (in various settings). DeepLearningTutorials too), and execute nosetests (in various settings).
The output is emailed automatically to the `theano-buildbot`_ mailing list. The output is emailed automatically to the `theano-buildbot`_ mailing list.
......
...@@ -46,12 +46,3 @@ There are also some top-level imports that you might find more convenient: ...@@ -46,12 +46,3 @@ There are also some top-level imports that you might find more convenient:
Works like :func:`tensor.dot` for both sparse and dense matrix products Works like :func:`tensor.dot` for both sparse and dense matrix products
.. function:: __src_version__()
Returns the mercurial (hg) identifier of the current tip.
If there are uncommitted modifications, this function raises an Exception.
If the theano package is not under mercurial control, then again this function
raises an Exception.
...@@ -14,8 +14,6 @@ Wishlist: ...@@ -14,8 +14,6 @@ Wishlist:
- mailing list - mailing list
- reliability of hosting service - reliability of hosting service
Currently, [http://sharesource.org/ sharesource] and [http://www.assembla.com/ assembla] are the only hosting services that support mercurial that I know of. Sharesource is young, but supports all the required features. I'll make an account, and see what I can do with it...
Should we get a domain name? To my dismay, theano.org, theano.com and theano.net are all taken. The first two seem legit, but theano.net doesn't look like it has anything on it and expires on May 29, so maybe there's a chance we can snag it? -ob Should we get a domain name? To my dismay, theano.org, theano.com and theano.net are all taken. The first two seem legit, but theano.net doesn't look like it has anything on it and expires on May 29, so maybe there's a chance we can snag it? -ob
We could also get [http://www.theano.io]. -jpt We could also get [http://www.theano.io]. -jpt
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论