History: Software_Project

Preview of version: 62 (current)



A software project profile is a high priority as it could help attract programmers to our project. Please see: http://en.wikipedia.org/wiki/Forge_(software)

As an example, let's look at the Open Moko project, which uses several applications to manage its community.

  1. MediaWiki for the main site
  2. Not one but two instances of Trac for bug tracking, and more (they migrated from Bugzilla)
  3. Planet for RSS aggregation
  4. Gforge for project management
  5. Mailman for the mailing lists/forums

They appear to have used the "best of breed" strategy when picking applications. However, now, it must be quite a challenge to integrate these various applications. Pretty much all this functionality could have been handled by a single all-in-one application like Tiki or with a framework/CMS with additional modules (like Drupal, Joomla!, Plone, Xoops, etc).

The following profile is to meet this use case. Open Moko is a fairly large project though so let's keep in mind that most projects are much smaller.

In using Tiki instead of the above combination:

The "bad"

The "good"
  • Tiki does have features that they may want.
    • For example, blogs and news articles. It would be even worse if they installed a WordPress blog on top of what they have.
    • Surveys
    • Etc.
  • Tiki would offer
    • Single Sign On (single user system, groups & permissions)
    • Global search engine
    • Consistent look & feel
  • Tighter integration permits better internal linking


In this profile, we need

Things we should improve to make Tiki an even more compelling software collaboration tool:

Related: Support_Mozilla_com


We'll start below

Table of contents



    Features & settings

    YAML
    preferences: feature_articles: y feature_file_galleries: y feature_forums: y feature_trackers: y feature_categories: y feature_search: y feature_minichat: y feature_wiki: y feature_wiki_print: y feature_wiki_attachments: y feature_wiki_comments: y feature_backlinks: y feature_useGroupHome: y allowRegister: y forgotPass: y feature_userPreferences: y wiki_edit_plugin: y sitetitle: Our software project sitesubtitle: Release early, release often feature_mytiki: y feature_tasks: y wikiplugin_proposal: y




    Creating a menu


    Top bar menu

    YAML
    preferences: feature_sitemenu : y feature_topbar_id_menu: $profileobject:Software_Project_menu$


    YAML
    objects: - type: menu ref: Software_Project_menu data: name: Top menu description: A menu containing the base navigation of the site collapse: none items: - name: Home url: ((HomePage)) groups: [ Anonymous, Registered ] - name: About url: ((About)) groups: [ Anonymous, Registered ] items: - name: History url: ((History)) groups: [ Anonymous, Registered ] - name: Team url: ((Team)) groups: [ Anonymous, Registered ] - name: Documentation url: ((Documentation)) groups: [ Anonymous, Registered ] - name: Forums url: tiki-forums.php groups: [ Anonymous, Registered ] - name: Bugs url: ((Bug_Tracker)) groups: [ Anonymous, Registered ] - name: Download url: tiki-list_file_gallery.php groups: [ Anonymous, Registered ] - name: Contact url: ((Contact us)) groups: [ Anonymous, Registered ] - name: Admin menu url: tiki-admin_menu_options.php?menuId=43 permissions: [ edit_menu_option ]





    Modules

    YAML
    objects: - type: module ref: module_minichat data: name: minichat groups: [ Anonymous, Registered ] position: right order: 2



    Permissions

    Uses: Community_Permissions

    dependencies:
    - $profiles.tiki.org:Community_Permissions:Community_Permissions
    - $profiles.tiki.org:Bug_Tracker:bug_tracker
    - $profiles.tiki.org:General_File_Gallery:General_File_Gallery
    - $profiles.tiki.org:General_Forum:General_Forum
    - $profiles.tiki.org:Sample_Articles_include:Sample_Articles_include
    - $profiles.tiki.org:Test_All_Themes:Test_All_Themes
    - $profiles.tiki.org:powered_by:powered_by # powered_by

    Dashboard

    YAML
    preferences: wikiplugin_list: y rating_advanced: y rating_recalculation: indexing feature_wiki_argvariable: y objects: - type: wiki_page ref: page_home data: name: HomePage content: wikicontent:Software_Project_HomePage - type: category ref: category_rejected data: name: Rejected - type: rating_config ref: adv_score data: name: Score formula: (add (attribute (object type object-id) (property tiki.proposal.accept) (default 0)) (mul -1 (attribute (object type object-id) (property tiki.proposal.reject) (default 0)))) - type: rating_config ref: adv_negative data: name: Negative formula: (min 1 (max 0 (add (mul -1 (attribute (object type object-id) (property tiki.proposal.accept) (default 0))) (attribute (object type object-id) (property tiki.proposal.reject) (default 0)))))


    Software_Project_HomePage

    Hooks for version control

    YAML
    permissions: Repository: description: Group allowed to trigger the data channels to create content based on commits from Subversion or other version control tools. Quality Team: description: Opinions that matter. Admins: objects: - type: wiki_page id: $channel_category allow: [ view, edit ] objects: - type: category ref: channel_category data: name: Data Channels items: - [ wiki_page, $page_init ] - [ wiki_page, $page_delete ] - [ wiki_page, $page_content ] - [ wiki_page, $page_bug ] - [ wiki_page, $template_header ] - [ wiki_page, $template_delete ] - [ wiki_page, $template_content ] - [ wiki_page, $template_bug ] - type: wiki_page ref: page_init data: name: RevisionInit content: wikidirect:Software_Project_RevisionInit - type: wiki_page ref: template_header data: name: Template_RevisionHeader content: wikidirect:Software_Project_Template_RevisionHeader - type: wiki_page ref: page_delete data: name: RevisionFileDelete content: wikidirect:Software_Project_RevisionFileDelete - type: wiki_page ref: template_delete data: name: Template_RevisionFileDelete content: wikidirect:Software_Project_Template_RevisionFileDelete - type: wiki_page ref: page_content data: name: RevisionFileContent content: wikidirect:Software_Project_RevisionFileContent - type: wiki_page ref: template_content data: name: Template_RevisionFileContent content: wikidirect:Software_Project_Template_RevisionFileContent - type: wiki_page ref: page_bug data: name: RevisionBugMention content: wikidirect:Software_Project_RevisionBugMention - type: wiki_page ref: template_bug data: name: Template_RevisionBugMention content: wikidirect:Software_Project_Template_RevisionBugMention - type: datachannel data: name: init_revision profile: $page_init groups: [ Repository ] - type: datachannel data: name: file_remove profile: $page_delete groups: [ Repository ] - type: datachannel data: name: file_content profile: $page_content groups: [ Repository ] - type: datachannel data: name: bug_mention profile: $page_bug groups: [ Repository ]


    Setting up data channels for:

    And related files:

    Connecting with Subversion


    This profile prepares a few data channels to connect with version control tools. For the connection to be complete, a few steps need to be performed. Tiki provides scripts that can be used to pull revisions from subversion and push them to Tiki.

    Requirements:
    1. PHP >= 5.2 with CLI
    2. PHP's Subversion extension (tested with stable 1.0.0)
    3. Cron to perform the check periodically

    This can run on a server independent from both Tiki and Subversion.


    Steps:
    1. Create a user in Tiki and add it to the group Repository (created by this profile).
    2. Check-out version-control-bridge from the Tiki repository into a directory which is not web-accessible.
      check out files to current directory
      svn co https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/version-control-bridge/ .
    3. Create a configuration file (sample in svnpull.php)
    4. Run `php svnpull.php | php tikipush.php`
      • In a first step, svnpull will extract revisions from the repository with some progress displayed
      • In a second step (sequential), tikipush will call the data channels and create pages in the wiki. Pages will contain the commit information such as the message, bugs referenced in it (such as fix 1234 or #233) and the content of any file modified.
    5. After a successful test, add the command to a cron job

    Supporting other version control tools:

    At this time, only Subversion is supported. To support other tools, svnpull.php must be replaced with a different script providing a similar JSON output. tikipush.php can still be used to call the data channels.


    Todo

    • Make an instruction page

    Related links


    alias

    History

    Information Version
    Tue 15 of Jun, 2010 16:57 GMT-0000 System Administrator 37
    Tue 15 of Jun, 2010 01:07 GMT-0000 Marc Laporte 36
    Tue 15 of Jun, 2010 01:06 GMT-0000 Marc Laporte yuk (other link gives an error) 35
    Mon 14 of Jun, 2010 23:57 GMT-0000 Marc Laporte 34
    Mon 14 of Jun, 2010 23:56 GMT-0000 Marc Laporte wrap 33
    Mon 14 of Jun, 2010 18:38 GMT-0000 System Administrator 32
    Mon 14 of Jun, 2010 18:26 GMT-0000 System Administrator 31
    Tue 18 of Aug, 2009 18:26 GMT-0000 Marc Laporte 30
    Fri 26 of Jun, 2009 16:11 GMT-0000 Marc Laporte 29
    Thu 14 of May, 2009 07:52 GMT-0000 Marc Laporte 28
    Sat 09 of May, 2009 19:20 GMT-0000 Marc Laporte 27
    Sat 09 of May, 2009 18:54 GMT-0000 Marc Laporte 26
    Sat 09 of May, 2009 18:37 GMT-0000 Marc Laporte 25
    Sat 09 of May, 2009 18:04 GMT-0000 Marc Laporte 24
    Sat 09 of May, 2009 17:59 GMT-0000 Marc Laporte 23
    Sat 09 of May, 2009 17:53 GMT-0000 Marc Laporte 22
    Sat 09 of May, 2009 17:16 GMT-0000 Marc Laporte 21
    Sat 09 of May, 2009 17:04 GMT-0000 Marc Laporte 20
    Thu 23 of Apr, 2009 19:00 GMT-0000 Marc Laporte 18
    Thu 23 of Apr, 2009 19:00 GMT-0000 Marc Laporte 17
    Sat 18 of Apr, 2009 03:34 GMT-0000 Marc Laporte 16
    Sat 18 of Apr, 2009 03:29 GMT-0000 Marc Laporte 15
    Wed 04 of Feb, 2009 16:02 GMT-0000 Marc Laporte 14
    Mon 02 of Feb, 2009 12:22 GMT-0000 Marc Laporte 13
    Thu 16 of Oct, 2008 00:58 GMT-0000 Marc Laporte 12