提交 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``.
Those interested in bleeding-edge features should obtain the latest development
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
``python setup.py develop`` to install a ``.pth`` into your ``site-packages``
......
......@@ -60,7 +60,7 @@ The following libraries and software are optional:
For building the documentation. LaTeX_ and dvipng_ are also necessary
for math to show up as images.
`Mercurial <http://mercurial.selenic.com/>`_
`Git <http://git-scm.com>`_
To download bleeding-edge versions of Theano.
`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.
.. _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 want the bleeding-edge without developing the code you can use
pip for this
If you want the bleeding-edge without developing the code you can use pip for
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
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
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
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
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
......@@ -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
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
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``.
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:
.. code-block:: bash
hg pull -u
git pull
You should update frequently, bugs are fixed on a very regular basis.
......@@ -250,7 +252,7 @@ a Python (or IPython) interpreter,
>>> import theano
>>> 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
......@@ -368,7 +370,7 @@ Mac
.. 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
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:
At this point, whether you installed Python(x,y) or individual components, you
should have MinGW, Python, Numpy, Scipy and Nose installed.
In order to download Theano you will also need Mercurial, which you can get
`here <http://mercurial.selenic.com/downloads>`__.
You may install either the command
line Windows version or the TortoiseHG GUI version: it does not matter as
far as installing Theano is concerned.
In order to download Theano you will also need Git, which you can get
`here <http://git-scm.com/download>`__ (download the latest version of the
"Full installer for official Git" from the ``msysgit`` download page).
Installing Theano
~~~~~~~~~~~~~~~~~
......@@ -547,7 +547,7 @@ used within a MinGW Shell (not available if you only installed Python(x,y)).
.. 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
Panel / System / Advanced / Environment Variables), so that it contains
......
......@@ -22,33 +22,35 @@ To get up to speed, you'll need to
Accounts
--------
To obtain developer access: register with `Assembla
<http://www.assembla.com/>`_ and add yourself as a watcher on the `Theano
space <http://www.assembla.com/spaces/theano>`_. Then send an email to an
admin asking to be promoted to a member of the project.
To obtain developer access: register with `GitHub
<http://www.github.com/>`_ and create a fork of `Theano
<http://www.github.com/Theano/Theano>`_.
Clone your fork locally with
Theano code
-----------
*To get the source via Mercurial,* you must have `Mercurial
<http://mercurial.selenic.com/>`__ installed.
.. code-block:: bash
git clone git@github.com:your_github_login/Theano.git
The code that makes up Theano is in a `single repository
<http://www.assembla.com/spaces/theano/trac_mercurial_tool>`__. As a developer,
you should clone this repository like this:
and add a reference to the 'central' Theano repository with
.. code-block:: bash
git remote add central git://github.com/Theano/Theano.git
hg clone 'http://username:password@hg.assembla.com/theano' Theano
You can also clone the code anonymously:
When working on a new feature in your own fork, start from an up-to-date copy
of the trunk:
.. 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``
----------------------------
......@@ -89,12 +91,21 @@ mailing list.
.. _theano-users: https://groups.google.com/group/theano-users
To update your library to the latest revision, change directory (``cd``)
to your ``Theano`` folder and execute the following command:
To update your library to the latest revision, you should have a branch
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
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
============
......
.. _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
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.
......@@ -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
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
hg tag 0.X
hg push
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
git tag -a rel-0.X.Y
git push
The documentation will be automatically regenerated in the next few hours.
......
......@@ -17,5 +17,4 @@ If you're feeling ambitious, go fix some `pylint
mammouth
metadocumentation
python
hg_primer
how_to_release
......@@ -134,7 +134,7 @@ be logged into ``ceylon``, Fred leaves a shell open for that.)
The cronjob executes the scripts
``~/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).
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:
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:
- mailing list
- 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
We could also get [http://www.theano.io]. -jpt
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论