You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2015/07/13 20:15:15 UTC

[1/7] allura git commit: [#5943] ticket:815 Option to run setup-app w/o creating test data

Repository: allura
Updated Branches:
  refs/heads/master 48d7c563f -> f245736af


[#5943] ticket:815 Option to run setup-app w/o creating test data


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/b6772643
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/b6772643
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/b6772643

Branch: refs/heads/master
Commit: b67726431b88dc1baaaaf3542f6ba5bdf0581e94
Parents: 48d7c56
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Jul 9 15:02:33 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:36 2015 +0000

----------------------------------------------------------------------
 Allura/allura/websetup/bootstrap.py | 168 ++++++++++++++++++-------------
 1 file changed, 98 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/b6772643/Allura/allura/websetup/bootstrap.py
----------------------------------------------------------------------
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index ed76c15..37e250e 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -75,6 +75,8 @@ def bootstrap(command, conf, vars):
         REGISTRY.register(ew.widget_context,
                           ew.core.WidgetContext('http', ew.ResourceManager()))
 
+    create_test_data = asbool(os.getenv('ALLURA_TEST_DATA', True))
+
     # if this is a test_run, skip user project creation to save time
     make_user_projects = not test_run
 
@@ -101,7 +103,7 @@ def bootstrap(command, conf, vars):
     index = EnsureIndexCommand('ensure_index')
     index.run([''])
 
-    if asbool(conf.get('cache_test_data')):
+    if create_test_data and asbool(conf.get('cache_test_data')):
         if restore_test_data():
             h.set_context('test', neighborhood='Projects')
             return
@@ -114,7 +116,25 @@ def bootstrap(command, conf, vars):
         display_name='Anonymous')
 
     # never make a user project for the root user
-    root = create_user('Root', make_project=False)
+    if create_test_data:
+        root = create_user('Root', make_project=False)
+    else:
+        # TODO: ask user to provide username/password for root
+        root_name = raw_input('Enter username for root user (default "root"): ').strip()
+        if not root_name:
+            root_name = 'root'
+        ok = False
+        while not ok:
+            root_password1 = raw_input('Enter password: ').strip()
+            root_password2 = raw_input('Confirm password: ').strip()
+            if len(root_password1) == 0:
+                log.info('Please, provide password')
+                return
+            if root_password1 != root_password2:
+                log.info("Passwords don't match")
+                return
+            root = create_user(root_name, password=root_password1, make_project=False)
+            ok = True
 
     n_projects = M.Neighborhood(name='Projects', url_prefix='/p/',
                                 features=dict(private_projects=True,
@@ -128,18 +148,12 @@ def bootstrap(command, conf, vars):
                                            max_projects=None,
                                            css='none',
                                            google_analytics=False))
-    n_adobe = M.Neighborhood(
-        name='Adobe', url_prefix='/adobe/', project_list_url='/adobe/',
-        features=dict(private_projects=True,
-                      max_projects=None,
-                      css='custom',
-                      google_analytics=True))
+
     assert tg.config['auth.method'] == 'local'
     project_reg = plugin.ProjectRegistrationProvider.get()
     p_projects = project_reg.register_neighborhood_project(
         n_projects, [root], allow_register=True)
     p_users = project_reg.register_neighborhood_project(n_users, [root])
-    p_adobe = project_reg.register_neighborhood_project(n_adobe, [root])
 
     def set_nbhd_wiki_content(nbhd_proj, content):
         wiki = nbhd_proj.app_instance('wiki')
@@ -164,30 +178,37 @@ def bootstrap(command, conf, vars):
 
         [[projects show_total=yes]]
         '''))
-    set_nbhd_wiki_content(p_adobe, dedent('''
-        This is the "Adobe" neighborhood.  It is just an example of having projects in a different neighborhood.
-
-        [Neighborhood administration](/adobe/admin)
-
-        [[projects show_total=yes]]
-        '''))
+    if create_test_data:
+        n_adobe = M.Neighborhood(
+            name='Adobe', url_prefix='/adobe/', project_list_url='/adobe/',
+            features=dict(private_projects=True,
+                          max_projects=None,
+                          css='custom',
+                          google_analytics=True))
+        p_adobe = project_reg.register_neighborhood_project(n_adobe, [root])
+        set_nbhd_wiki_content(p_adobe, dedent('''
+            This is the "Adobe" neighborhood.  It is just an example of having projects in a different neighborhood.
+
+            [Neighborhood administration](/adobe/admin)
+
+            [[projects show_total=yes]]
+            '''))
+        # add the adobe icon
+        file_name = 'adobe_icon.png'
+        file_path = os.path.join(
+            allura.__path__[0], 'public', 'nf', 'images', file_name)
+        M.NeighborhoodFile.from_path(file_path, neighborhood_id=n_adobe._id)
 
     ThreadLocalORMSession.flush_all()
     ThreadLocalORMSession.close_all()
 
-    # add the adobe icon
-    file_name = 'adobe_icon.png'
-    file_path = os.path.join(
-        allura.__path__[0], 'public', 'nf', 'images', file_name)
-    M.NeighborhoodFile.from_path(file_path, neighborhood_id=n_adobe._id)
-
-    # Add some test users
-    for unum in range(10):
-        make_user('Test User %d' % unum)
+    if create_test_data:
+        # Add some test users
+        for unum in range(10):
+            make_user('Test User %d' % unum)
 
     log.info('Creating basic project categories')
     cat1 = M.ProjectCategory(name='clustering', label='Clustering')
-
     cat2 = M.ProjectCategory(name='communications', label='Communications')
     cat2_1 = M.ProjectCategory(
         name='synchronization', label='Synchronization', parent_id=cat2._id)
@@ -202,36 +223,40 @@ def bootstrap(command, conf, vars):
     cat3_2 = M.ProjectCategory(
         name='engines_servers', label='Engines/Servers', parent_id=cat3._id)
 
-    log.info('Registering "regular users" (non-root) and default projects')
-    # since this runs a lot for tests, separate test and default users and
-    # do the minimal needed
-    if asbool(conf.get('load_test_data')):
-        u_admin = make_user('Test Admin')
-        u_admin.preferences = dict(email_address='test-admin@users.localhost')
-        u_admin.email_addresses = ['test-admin@users.localhost']
-        u_admin.set_password('foo')
-        u_admin.claim_address('test-admin@users.localhost')
-        ThreadLocalORMSession.flush_all()
-
-        admin_email = M.EmailAddress.get(email='test-admin@users.localhost')
-        admin_email.confirmed = True
-    else:
-        u_admin = make_user('Admin 1', username='admin1')
-        # Admin1 is almost root, with admin access for Users and Projects
-        # neighborhoods
-        p_projects.add_user(u_admin, ['Admin'])
-        p_users.add_user(u_admin, ['Admin'])
-
-        p_allura = n_projects.register_project('allura', u_admin, 'Allura')
-    u1 = make_user('Test User')
-    p_adobe1 = n_adobe.register_project('adobe-1', u_admin, 'Adobe project 1')
-    p_adobe.add_user(u_admin, ['Admin'])
-    p0 = n_projects.register_project('test', u_admin, 'Test Project')
-    p1 = n_projects.register_project('test2', u_admin, 'Test 2')
-    p0._extra_tool_status = ['alpha', 'beta']
+    if create_test_data:
+        log.info('Registering "regular users" (non-root) and default projects')
+        # since this runs a lot for tests, separate test and default users and
+        # do the minimal needed
+        if asbool(conf.get('load_test_data')):
+            u_admin = make_user('Test Admin')
+            u_admin.preferences = dict(email_address='test-admin@users.localhost')
+            u_admin.email_addresses = ['test-admin@users.localhost']
+            u_admin.set_password('foo')
+            u_admin.claim_address('test-admin@users.localhost')
+            ThreadLocalORMSession.flush_all()
+
+            admin_email = M.EmailAddress.get(email='test-admin@users.localhost')
+            admin_email.confirmed = True
+        else:
+            u_admin = make_user('Admin 1', username='admin1')
+            # Admin1 is almost root, with admin access for Users and Projects
+            # neighborhoods
+            p_projects.add_user(u_admin, ['Admin'])
+            p_users.add_user(u_admin, ['Admin'])
+
+            p_allura = n_projects.register_project('allura', u_admin, 'Allura')
+        u1 = make_user('Test User')
+        p_adobe1 = n_adobe.register_project('adobe-1', u_admin, 'Adobe project 1')
+        p_adobe.add_user(u_admin, ['Admin'])
+        p0 = n_projects.register_project('test', u_admin, 'Test Project')
+        p1 = n_projects.register_project('test2', u_admin, 'Test 2')
+        p0._extra_tool_status = ['alpha', 'beta']
 
     sess = session(M.Neighborhood)  # all the sessions are the same
-    for x in (n_adobe, n_projects, n_users, p_projects, p_users, p_adobe):
+    _list = (n_projects, n_users, p_projects, p_users)
+    if create_test_data:
+        _list += (n_adobe, p_adobe)
+    for x in _list:
         # Ming doesn't detect substructural changes in newly created objects
         # (vs loaded from DB)
         state(x).status = 'dirty'
@@ -249,24 +274,27 @@ def bootstrap(command, conf, vars):
         create_trove_categories = CreateTroveCategoriesCommand('create_trove_categories')
         create_trove_categories.run([''])
 
-        p0.add_user(u_admin, ['Admin'])
-        log.info('Registering initial apps')
-        with h.push_config(c, user=u_admin):
-            p0.install_apps([{'ep_name': ep_name}
-                for ep_name, app in g.entry_points['tool'].iteritems()
-                if app._installable(tool_name=ep_name,
-                                    nbhd=n_projects,
-                                    project_tools=[])
-            ])
-
-    # reload our p0 project so that p0.app_configs is accurate with all the
-    # newly installed apps
+        if create_test_data:
+            p0.add_user(u_admin, ['Admin'])
+            log.info('Registering initial apps')
+            with h.push_config(c, user=u_admin):
+                p0.install_apps([{'ep_name': ep_name}
+                    for ep_name, app in g.entry_points['tool'].iteritems()
+                    if app._installable(tool_name=ep_name,
+                                        nbhd=n_projects,
+                                        project_tools=[])
+                ])
+
     ThreadLocalORMSession.flush_all()
     ThreadLocalORMSession.close_all()
-    p0 = M.Project.query.get(_id=p0._id)
-    sub = p0.new_subproject('sub1', project_name='A Subproject')
-    with h.push_config(c, user=u_admin):
-        sub.install_app('wiki')
+
+    if create_test_data:
+        # reload our p0 project so that p0.app_configs is accurate with all the
+        # newly installed apps
+        p0 = M.Project.query.get(_id=p0._id)
+        sub = p0.new_subproject('sub1', project_name='A Subproject')
+        with h.push_config(c, user=u_admin):
+            sub.install_app('wiki')
 
     ThreadLocalORMSession.flush_all()
     ThreadLocalORMSession.close_all()


[2/7] allura git commit: [#5943] ticket:815 Improve root user creation in setup-app

Posted by br...@apache.org.
[#5943] ticket:815 Improve root user creation in setup-app


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/e94786f3
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/e94786f3
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/e94786f3

Branch: refs/heads/master
Commit: e94786f3e7dcfd0eca65ec5642d655449775ed05
Parents: 5f3e726
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Jul 10 12:34:07 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:37 2015 +0000

----------------------------------------------------------------------
 Allura/allura/websetup/bootstrap.py | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/e94786f3/Allura/allura/websetup/bootstrap.py
----------------------------------------------------------------------
diff --git a/Allura/allura/websetup/bootstrap.py b/Allura/allura/websetup/bootstrap.py
index 37e250e..33a3f3c 100644
--- a/Allura/allura/websetup/bootstrap.py
+++ b/Allura/allura/websetup/bootstrap.py
@@ -119,20 +119,20 @@ def bootstrap(command, conf, vars):
     if create_test_data:
         root = create_user('Root', make_project=False)
     else:
-        # TODO: ask user to provide username/password for root
+        from getpass import getpass
         root_name = raw_input('Enter username for root user (default "root"): ').strip()
         if not root_name:
             root_name = 'root'
         ok = False
         while not ok:
-            root_password1 = raw_input('Enter password: ').strip()
-            root_password2 = raw_input('Confirm password: ').strip()
+            root_password1 = getpass('Enter password: ')
             if len(root_password1) == 0:
-                log.info('Please, provide password')
-                return
+                log.info('Password must not be empty')
+                continue
+            root_password2 = getpass('Confirm password: ')
             if root_password1 != root_password2:
                 log.info("Passwords don't match")
-                return
+                continue
             root = create_user(root_name, password=root_password1, make_project=False)
             ok = True
 


[3/7] allura git commit: [#5943] ticket:815 Mention how to run paster-app w/o creating test data in INSTALL*.markown

Posted by br...@apache.org.
[#5943] ticket:815 Mention how to run paster-app w/o creating test data in INSTALL*.markown


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/14ed0bde
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/14ed0bde
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/14ed0bde

Branch: refs/heads/master
Commit: 14ed0bde3f4677424d9adc005ac6561a5f0ecaf5
Parents: b677264
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Jul 9 17:20:59 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:37 2015 +0000

----------------------------------------------------------------------
 INSTALL-docker.markdown | 4 ++++
 INSTALL.markdown        | 6 ++++++
 2 files changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/14ed0bde/INSTALL-docker.markdown
----------------------------------------------------------------------
diff --git a/INSTALL-docker.markdown b/INSTALL-docker.markdown
index 5330084..923b080 100644
--- a/INSTALL-docker.markdown
+++ b/INSTALL-docker.markdown
@@ -72,6 +72,10 @@ Initialize database with test data:
 
     ~$ docker-compose run web bash -c 'cd Allura && paster setup-app docker-dev.ini'
 
+If you want to skip test data creation you can instead run:
+
+    ~$ docker-compose run web bash -c 'cd Allura && ALLURA_TEST_DATA=False paster setup-app docker-dev.ini'
+
 Start containers in background:
 
     ~$ docker-compose up -d

http://git-wip-us.apache.org/repos/asf/allura/blob/14ed0bde/INSTALL.markdown
----------------------------------------------------------------------
diff --git a/INSTALL.markdown b/INSTALL.markdown
index d141988..361afb2 100644
--- a/INSTALL.markdown
+++ b/INSTALL.markdown
@@ -139,8 +139,14 @@ Allura uses a background task service called "taskd" to do async tasks like send
 
 In order to initialize the Allura database, you'll need to run the following:
 
+For development setup:
+
     (env-allura)~/src/allura/Allura$ paster setup-app development.ini
 
+For production setup:
+
+    (env-allura)~/src/allura/Allura$ ALLURA_TEST_DATA=False paster setup-app development.ini
+
 This shouldn't take too long, but it will start the taskd server doing tons of stuff in the background.  Once this is done, you can start the application server:
 
     (env-allura)~/src/allura/Allura$ nohup paster serve --reload development.ini  > /var/log/allura/allura.log 2>&1 &


[6/7] allura git commit: [#5943] ticket:815 Document anchored & prohibited tools

Posted by br...@apache.org.
[#5943] ticket:815 Document anchored & prohibited tools


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/a3d87857
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/a3d87857
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/a3d87857

Branch: refs/heads/master
Commit: a3d8785766f14b11d2e60a88feb9b9656480fb12
Parents: ccbd34f
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Jul 9 19:10:37 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:37 2015 +0000

----------------------------------------------------------------------
 Allura/docs/getting_started/using.rst | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/a3d87857/Allura/docs/getting_started/using.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/using.rst b/Allura/docs/getting_started/using.rst
index a1952fa..e16c36f 100644
--- a/Allura/docs/getting_started/using.rst
+++ b/Allura/docs/getting_started/using.rst
@@ -55,14 +55,26 @@ TODO
 Anchored Tools
 ^^^^^^^^^^^^^^
 
-TODO
+Anchored tools allow you to "anchor" specific tools at the beginning of the topbar menu for all projects belonging to the neighborhood.  If specified tool does not exist in the project, it will be created automatically.  This tools can not be removed by the project.
+
+To configure them, go to "Neighborhood Admin -> Overview".  Use the following
+format "tool_name:The Label, another_tool:Another Label", e.g.
+
+.. code-block:: text
+
+    wiki:Wiki, activity:Activity
+
 
 .. _prohibited-tools:
 
 Prohibited Tools
 ^^^^^^^^^^^^^^^^
 
-TODO
+Prohibited tools allow you to forbid installation of specific tools for all the projects belonging to the neighborhood. Tools, already installed in the project, will not be automatically removed. To configure it, just list tool names using comma as separator. E.g.
+
+.. code-block:: text
+
+  blog, discussion, svn
 
 
 Configuring your project


[4/7] allura git commit: [#5943] ticket:815 Describe project templates

Posted by br...@apache.org.
[#5943] ticket:815 Describe project templates


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/5f3e726e
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/5f3e726e
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/5f3e726e

Branch: refs/heads/master
Commit: 5f3e726e58dc021b623bd444fa7a56add7ff8f9d
Parents: a3d8785
Author: Igor Bondarenko <je...@gmail.com>
Authored: Fri Jul 10 12:29:12 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:37 2015 +0000

----------------------------------------------------------------------
 Allura/docs/getting_started/using.rst | 45 +++++++++++++++++++++++++++++-
 1 file changed, 44 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/5f3e726e/Allura/docs/getting_started/using.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/using.rst b/Allura/docs/getting_started/using.rst
index e16c36f..1425dde 100644
--- a/Allura/docs/getting_started/using.rst
+++ b/Allura/docs/getting_started/using.rst
@@ -48,7 +48,50 @@ This interface allows you to:
 Project Templates
 ^^^^^^^^^^^^^^^^^
 
-TODO
+Allows to specify a template for newly created projects. The template controls default tools, permissions, labels, etc for a project. It is formatted as JSON dictionary with the following structure:
+
+.. code-block:: javascript
+
+  {
+    "private": false,
+    "tools": {
+        "tool_name": {               /* e.g. wiki, git, tickets, etc */
+          "label": "Tool Label",     /* Required */
+          "mount_point": "url-path"  /* Required */
+          "options": {}              /* Any other tool's options here. Optional */
+        }
+    },
+    "groups": [
+      {
+        "name": "Admin",        /* Default groups are: Admin, Developer, Member */
+        "usernames": ["admin1"] /* Add existing users to existing group */
+      },
+      {
+        "name": "New Group",     /* You can also create a new group */
+        "usernames": ["user1"],  /* and add existing users to it */
+        /*
+         * Then you need to specify permissions for newly created group.
+         * Supported permissions are: admin, create, update, read
+         */
+        "permissions": ["read", "update"]
+      }
+    ],
+    "tool_order": ["wiki", "tickets", "git"], /* tools order in the topbar menu */
+    "labels": ["Open Source", "web"],
+    "trove_cats": {
+      /*
+       * Available trove types are: root_database, license, developmentstatus,
+       * audience, os, language, topic, natlanguage, environment.
+       */
+      "trove_type": [905, 869]  /* TroveCategory ids */
+    },
+    "icon": {
+      "url: "http://img.host/path/to/image.png",  /* Required */
+      "filename": "default-project-icon.png"      /* Required */
+    }
+  }
+
+Top level keys are optional.
 
 .. _anchored-tools:
 


[7/7] allura git commit: [#5943] some grammar improvements; add local TOC; fix INSTALL-docker capitalization

Posted by br...@apache.org.
[#5943] some grammar improvements; add local TOC; fix INSTALL-docker capitalization


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f245736a
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f245736a
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f245736a

Branch: refs/heads/master
Commit: f245736af57c81eb7f72323bc87767e8405f361b
Parents: e94786f
Author: Dave Brondsema <db...@slashdotmedia.com>
Authored: Mon Jul 13 18:14:14 2015 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:38 2015 +0000

----------------------------------------------------------------------
 Allura/docs/getting_started/using.rst | 25 ++++++++++++++-----------
 INSTALL.markdown                      |  2 +-
 2 files changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/f245736a/Allura/docs/getting_started/using.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/using.rst b/Allura/docs/getting_started/using.rst
index 1425dde..b8fb6f3 100644
--- a/Allura/docs/getting_started/using.rst
+++ b/Allura/docs/getting_started/using.rst
@@ -19,27 +19,27 @@
 Using Allura
 ************
 
+.. contents::
+   :local:
 
-We don't have much end-user help for Allura yet.  SourceForge projects use Allura,
-though, so their support documentation may be useful to anyone using Allura:
 
 .. _what-are-neighborhoods:
 
 What are neighborhoods?
 -----------------------
 
-You can think of neighborhoods as groups of logically related projects, which all have the same default options. Allura has two default neighborhoods: "Projects" and "Users". The "Users" neighborhood is special, it contains a project for every user registered on a site. This user projects contain a few special tools, e.g. "Profile" and "Statistics".   The "Projects" contains all other projects.
+You can think of neighborhoods as groups of logically related projects, which all have the same default options. Allura has two default neighborhoods: "Projects" and "Users". The "Users" neighborhood is special, it contains a project for every user registered on a site. These user projects contain a few special tools, e.g. "Profile" and "Statistics".   The "Projects" neighborhood contains all other projects.
 
-Each neighborhood has admin interface. You can get there by clicking "Neighborhood administration" from the home page of the neighborhood or by "Admin" icon in the top toolbar.
+Each neighborhood has an admin interface. You can get there by clicking "Neighborhood administration" from the home page of the neighborhood or by "Admin" icon in the top toolbar.
 
 This interface allows you to:
 
 - add a new project to the neighborhood
-- change neighborhood's name
-- change neighborhood icon
+- change the neighborhood's name
+- change the neighborhood's icon
 - configure redirect from neighborhood's main page to other url
-- specify :ref:`project template <project-templates>` for newly created projects
-- specify project list url (the link will be displayed under neighborhood name in page header)
+- specify a :ref:`project template <project-templates>` for newly created projects
+- specify a project list url (the link will be displayed under neighborhood name in page header)
 - :ref:`anchor tools <anchored-tools>` in the top menu for each project in the neighborhood
 - :ref:`prohibit installation of specific tools <prohibited-tools>` in all projects of this neighborhood
 
@@ -48,7 +48,7 @@ This interface allows you to:
 Project Templates
 ^^^^^^^^^^^^^^^^^
 
-Allows to specify a template for newly created projects. The template controls default tools, permissions, labels, etc for a project. It is formatted as JSON dictionary with the following structure:
+Allows you to specify a template for newly created projects. The template controls default tools, permissions, labels, etc for a project.  If a template is specified, it is used during project creation and no tool choices are possible.  It is formatted as JSON dictionary with the following structure:
 
 .. code-block:: javascript
 
@@ -98,7 +98,7 @@ Top level keys are optional.
 Anchored Tools
 ^^^^^^^^^^^^^^
 
-Anchored tools allow you to "anchor" specific tools at the beginning of the topbar menu for all projects belonging to the neighborhood.  If specified tool does not exist in the project, it will be created automatically.  This tools can not be removed by the project.
+Anchored tools allow you to "anchor" specific tools at the beginning of the topbar menu for all projects belonging to the neighborhood.  If the specified tool does not exist in the project, it will be created automatically.  These tools can not be removed by the project.
 
 To configure them, go to "Neighborhood Admin -> Overview".  Use the following
 format "tool_name:The Label, another_tool:Another Label", e.g.
@@ -113,7 +113,7 @@ format "tool_name:The Label, another_tool:Another Label", e.g.
 Prohibited Tools
 ^^^^^^^^^^^^^^^^
 
-Prohibited tools allow you to forbid installation of specific tools for all the projects belonging to the neighborhood. Tools, already installed in the project, will not be automatically removed. To configure it, just list tool names using comma as separator. E.g.
+Prohibited tools allow you to forbid installation of specific tools for all the projects belonging to the neighborhood. Tools already installed in the project will not be automatically removed. To configure prohibited tools , just list tool names using comma as separator. E.g.
 
 .. code-block:: text
 
@@ -123,6 +123,9 @@ Prohibited tools allow you to forbid installation of specific tools for all the
 Configuring your project
 ------------------------
 
+We don't have much end-user help for Allura yet.  SourceForge projects use Allura,
+though, so their support documentation may be useful to anyone using Allura:
+
 See SourceForge help page: https://sourceforge.net/p/forge/documentation/Create%20a%20New%20Project/
 
 Note there are some SourceForge-specific references that don't apply to other Allura instances.

http://git-wip-us.apache.org/repos/asf/allura/blob/f245736a/INSTALL.markdown
----------------------------------------------------------------------
diff --git a/INSTALL.markdown b/INSTALL.markdown
index 361afb2..eab7dfd 100644
--- a/INSTALL.markdown
+++ b/INSTALL.markdown
@@ -19,7 +19,7 @@
 
 # Step-by-Step Installation
 
-For a simpler setup using Docker images, see INSTALL-Docker.markdown instead.
+For a simpler setup using Docker images, see INSTALL-docker.markdown instead.
 
 In these instructions, we'll use [VirtualBox](http://www.virtualbox.org) and [Ubuntu 14.04](http://ubuntu.com) (12.04 works too) to create a disposable sandbox for Allura development/testing.  Allura should work on other Linux systems (including OSX), but setting up all the dependencies will be different.
 


[5/7] allura git commit: [#5943] ticket:815 Post-setup docs

Posted by br...@apache.org.
[#5943] ticket:815 Post-setup docs


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/ccbd34f6
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/ccbd34f6
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/ccbd34f6

Branch: refs/heads/master
Commit: ccbd34f67544034592d264bd65a70d15c2942941
Parents: 14ed0bd
Author: Igor Bondarenko <je...@gmail.com>
Authored: Thu Jul 9 18:06:13 2015 +0300
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Jul 13 18:14:37 2015 +0000

----------------------------------------------------------------------
 Allura/docs/getting_started/administration.rst |  1 +
 Allura/docs/getting_started/installation.rst   | 51 ++++++++++++++++++++-
 Allura/docs/getting_started/using.rst          | 41 +++++++++++++++++
 3 files changed, 92 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/ccbd34f6/Allura/docs/getting_started/administration.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/administration.rst b/Allura/docs/getting_started/administration.rst
index 2b49c4e..fc56e5a 100644
--- a/Allura/docs/getting_started/administration.rst
+++ b/Allura/docs/getting_started/administration.rst
@@ -22,6 +22,7 @@ Administration
 .. contents::
    :local:
 
+.. _site-admin-interface:
 
 Site Admin Interface
 ====================

http://git-wip-us.apache.org/repos/asf/allura/blob/ccbd34f6/Allura/docs/getting_started/installation.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/installation.rst b/Allura/docs/getting_started/installation.rst
index 9c08692..30425b4 100644
--- a/Allura/docs/getting_started/installation.rst
+++ b/Allura/docs/getting_started/installation.rst
@@ -24,10 +24,59 @@ Our step-by-step setup instructions are in our INSTALL.markdown file.  You can r
 
 For a faster and easier setup, see our `Vagrant/VirtualBox installation guide <https://forge-allura.apache.org/p/allura/wiki/Install%20and%20Run%20Allura%20-%20Vagrant/>`_
 
+That's all for the development setup.  For the production setup see :ref:`next section <post-setup-instructions>`.
+
+.. _post-setup-instructions:
+
+Post-setup instructions
+-----------------------
+
+Create project for site-admin
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+First of all you need to create a project, which will serve as a container for keeping site administrators (users who will have access to the :ref:`admin interface <site-admin-interface>`).
+
+In order to do that:
+
+- open main page of the site in your browser
+- go to "Projects" neighborhood (:ref:`what-are-neighborhoods`)
+- click "Register a new project" link
+
+By default all admins of "allura" project in "Projects" neighborhood are treated as site admins. If you want to use different project for that, change `site_admins_project` in :file:`development.ini`.
+
+Change default configuration
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In the :file:`development.ini`:
+
+Change `[handler_console]` section, so that logs go to a file and will include background tasks info.
+
+.. code-block:: ini
+
+    class = allura.lib.utils.CustomWatchedFileHandler
+    args = ('/path/to/allura.log', 'a')
+
+Add write permissions to the :file:`/path/to/allura.log` for the user you use to run allura proccess.
+
+Change "secrets".
+
+.. code-block:: ini
+
+    beaker.session.secret = <your-secret-key>
+    beaker.session.validate_key = <yet-another-secret-key>
+
+The first one is used for simple cookies, the latter is used for encrypted cookies.
+
+You can use the following command to generate a good key:
+
+.. code-block:: bash
+
+    ~$ python -c 'import os; l = 20; print "%.2x" * l % tuple(map(ord, os.urandom(l)))'
+
 Configuring Optional Features
 -----------------------------
 
-The `development.ini` file has many options you can explore and configure.  It is geared towards development, so you will want to review
+The :file:`development.ini` file has many options you can explore and configure.  It is geared towards development, so you will want to review
 carefully and make changes for production use.
 
 To run SVN and Git services, see the :doc:`scm_host` page.

http://git-wip-us.apache.org/repos/asf/allura/blob/ccbd34f6/Allura/docs/getting_started/using.rst
----------------------------------------------------------------------
diff --git a/Allura/docs/getting_started/using.rst b/Allura/docs/getting_started/using.rst
index 84d9f93..a1952fa 100644
--- a/Allura/docs/getting_started/using.rst
+++ b/Allura/docs/getting_started/using.rst
@@ -23,6 +23,47 @@ Using Allura
 We don't have much end-user help for Allura yet.  SourceForge projects use Allura,
 though, so their support documentation may be useful to anyone using Allura:
 
+.. _what-are-neighborhoods:
+
+What are neighborhoods?
+-----------------------
+
+You can think of neighborhoods as groups of logically related projects, which all have the same default options. Allura has two default neighborhoods: "Projects" and "Users". The "Users" neighborhood is special, it contains a project for every user registered on a site. This user projects contain a few special tools, e.g. "Profile" and "Statistics".   The "Projects" contains all other projects.
+
+Each neighborhood has admin interface. You can get there by clicking "Neighborhood administration" from the home page of the neighborhood or by "Admin" icon in the top toolbar.
+
+This interface allows you to:
+
+- add a new project to the neighborhood
+- change neighborhood's name
+- change neighborhood icon
+- configure redirect from neighborhood's main page to other url
+- specify :ref:`project template <project-templates>` for newly created projects
+- specify project list url (the link will be displayed under neighborhood name in page header)
+- :ref:`anchor tools <anchored-tools>` in the top menu for each project in the neighborhood
+- :ref:`prohibit installation of specific tools <prohibited-tools>` in all projects of this neighborhood
+
+.. _project-templates:
+
+Project Templates
+^^^^^^^^^^^^^^^^^
+
+TODO
+
+.. _anchored-tools:
+
+Anchored Tools
+^^^^^^^^^^^^^^
+
+TODO
+
+.. _prohibited-tools:
+
+Prohibited Tools
+^^^^^^^^^^^^^^^^
+
+TODO
+
 
 Configuring your project
 ------------------------