Loading...
Use
Create
Develop
FAQ
Troubleshooting
History: Software_Project
View page
Source of version: 62
(current)
{maketoc} 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 [http://www.openmoko.org|Open Moko project], which uses several applications to manage its community. # [http://www.mediawiki.org/|MediaWiki] for the main site # Not [http://docs.openmoko.org/trac/|one] but [http://admin-trac.openmoko.org/trac|two] instances of [http://trac.edgewall.org/|Trac] for bug tracking, and more (they migrated from [http://www.bugzilla.org/|Bugzilla]) # [http://www.planetplanet.org/|Planet] for RSS aggregation # [http://gforge.org/|Gforge] for project management # [http://www.gnu.org/software/mailman/|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 ((tw: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"__ * not everything is done exactly the same. ** Tiki forums are not the same as mailman mailing lists, and Open Moko wiki cleverly notes [http://wiki.openmoko.org/wiki/Discussion_Forums#Why_aren.27t_there_Web_forums.3F|that "Apparently, there are two groups of people: one group does not like Web forums; the other group prefers Web forums"] so we should set-up the ((doc:Forum and List Synchronization)) ** Project management would be the Tiki way and not the [http://gforge.org/|gforge] way. * not all features are necessarily as advanced. * Some feature are just missing. ** [http://dev.tiki.org/wish1995|Tiki doesn't offer the svn browser feature that Trac does]. __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 [http://wordpress.org/|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 * Wiki * Forums ** ((doc:Forum and Mailing List Synchronization)) * Improve the ((Bug_Tracker)) profile * RSS aggregator * Categories * ((dev:Source browser)) * ((dev:Code review)) * etc Things we should improve to make Tiki an even more compelling software collaboration tool: * http://blog.lphuberdeau.com/wordpress/2009/01/25/adding-collaboration-and-durability-to-code-reviews/ Related: ((Support_Mozilla_com)) We'll start below {maketoc} ! Features & settings {CODE(caption=>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 {CODE} ! Creating a menu !! Top bar menu {CODE(caption=>YAML,wrap=1)} preferences: feature_sitemenu : y feature_topbar_id_menu: $profileobject:Software_Project_menu$ {CODE} !! Menu items {CODE(caption=>YAML,wrap=1)} 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 ] {CODE} ! Modules {CODE(caption=>YAML)} objects: - type: module ref: module_minichat data: name: minichat groups: [ Anonymous, Registered ] position: right order: 2 {CODE} ! 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 {CODE(caption=>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))))) {CODE} ((Software_Project_HomePage)) ! Hooks for version control {CODE(caption=>YAML, wrap=1)} 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 ] {CODE} Setting up data channels for: * ((Software_Project_RevisionInit)) * ((Software_Project_RevisionFileDelete)) * ((Software_Project_RevisionFileContent)) * ((Software_Project_RevisionBugMention)) And related files: * ((Software_Project_Template_RevisionHeader)) * ((Software_Project_Template_RevisionFileDelete)) * ((Software_Project_Template_RevisionFileContent)) * ((Software_Project_Template_RevisionBugMention)) ! 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:__ # PHP >= 5.2 with CLI # [http://pecl.php.net/package/svn/|PHP's Subversion extension] (tested with stable 1.0.0) # Cron to perform the check periodically ^This can run on a server independent from both Tiki and Subversion.^ __Steps:__ # Create a user in Tiki and add it to the group ''Repository'' (created by this profile). # Check-out [https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/version-control-bridge|version-control-bridge] from the Tiki repository __into a directory which is not web-accessible__.%%% {CODE(caption="check out files to current directory")}svn co https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/version-control-bridge/ .{CODE} # Create a configuration file (sample in [https://tikiwiki.svn.sourceforge.net/svnroot/tikiwiki/version-control-bridge/svnpull.php|svnpull.php]) # 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. # 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 * http://home.gna.org/forgeplucker/jailbreaking-the-forges.html -=alias=- * (alias(Code review))
Menu
Featured profiles
Profiles in Wizard
Profiles Todos
Handlers
Profiles Tester
Admin
of this site
Current Profiles
Tiki version
21.x
24.x
26.x
27.x
28.x
Deprecated
25.x
state
Not fully functional yet
alpha
beta
release
type
Available in the Profiles Wizard (12+)
Featured profiles
Full profile (out of the box & ready to go)
Learning profile (to show off feature)
Long tail
Mini-profile (can be included in other)
Profile-snippet (optional but needs another "parent" profile)
Security
Tests
Latest Changes
Voting_System
test_profile_change
Test_all_tracker_field_types_profile
Scheduler_Presets_20
Tracker_as_Calendar_09
Tracker_as_Calendar_10
Hide Fixed Top Nav Bar on Scroll 19
Easy_GeoBlog
Profiles_in_Wizard
Random_header_images_14
Hide Fixed Top Nav Bar on Scroll 19
How to Create Profiles
Test_All_Plugins
JonnyBs_Luxury_Tiki_Setup
...more
Similar pages
Project_Management
Learning_Center
Shopping_Cart
Barter_Market
Like almost all *.tiki.org sites, you can log in with your login from
https://tiki.org
(register over there)
Search
Find
Most Popular Tags
admin
agenda
alias
antibot
antibot captcha
app
archive
articles
banning
batch
blogs
calculations
calendars
cart
categories
cluster
codemirror
comments
computation
contact us
datachannel
debug
debug console
dropdown with other
error messages
features
file galleries
forums
geo
geocms
geolocation
group homepages
group watches
header
i18n
images
item link
items list
jquery
languages
location
map
maps
maths
menu
menupage
multilingual
ol3
ol5
openlayers
paypal
plugin
plugin alias
plugin datachannel
plugin fade
plugin tabs
plugin trackerlist
pretty trackers
print
project management
r
r project
realnames
rss
static
static text
statistics
stats
structures
syntax highlighter
tablesorter
template
trackers
user watches
visualization
watches
webservice
wiki
wiki argument variables
wiki structures
Tiki Newsletter
Subscribe to the Tiki newsletter.
Don't miss major announcements and other news!