Go Back   vb.org Archive > Community Central > vBulletin.org Site Feedback
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 10-13-2009, 09:26 PM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Developer Collaboration

Hi,

This is somewhat of a branch off Wayne's topic, but I don't want to disrupt that as there is a slight difference in goals.

Floris has been posting some good ideas lately, and I think we have all the tools we need in order to effectively work together on them without requiring any major infrastructure changes here at vBulletin.org.

Before I go any further, I'd be willing to help with this idea by posting tutorials and encouraging other people to give it a try. These tools are meant for huge collaboration projects, so they are definitely powerful enough to handle vBulletin products.



Version Control

First and foremost, we need to use version control. The two most popular contenders are Subversion and Git. I have been favoring Git lately, but either way will work. Git has an edge over Subversion, as it allows users to easily branch off each others work and projects will no longer fail because the original author has given up or has no time. In this model, it does not matter, because anybody can take over without messing up permissions or rights.

Collaboration Platform / Management

Next, we need a way to easily manage this source code. There are two very popular websites for this: SourceForge for Subversion, and GitHub for Git. This is where users can browse the code, track issues, and prepare packages for downloading.

Development Tools

I have been complaining for years about how ineffective working with the product system is for developers, and recently I have released a solution called VDE - vBulletin Development Environment. This tackles the problem on two points: 1) product data is split into separate files, so they can easily be managed by version control software, and 2) it automatically loads this data into memory as if it were active, so you don't have to import products either.



Where to start? I have been watching Floris' vBulletin Security Audit Product in the hatchery. I have also been looking for some example mods to use for VDE, as I don't have any good examples yet. Honestly, I've been wanting to help out on the project, but it's too much of a hassle to actually download the product, work on it, and re-upload it, because it's up to the original author to try and merge the code together. With products, this can sometimes be very difficult. With VDE in place, it would be very trivial to perform changes, and to actually watch them get placed into the master branch again. It takes very little effort on the original author's part.

I am willing to bet good money that with such a system in place, even as an experiment, you will see a huge surge in developer collaboration, and these mods will flourish. For the other developers here who have already taken some initiate with VDE, or with the audit project, please post some feedback here. I think we can do this, and it's easier than a lot of you think.
Reply With Quote
  #2  
Old 10-14-2009, 04:31 AM
TheLastSuperman's Avatar
TheLastSuperman TheLastSuperman is offline
Senior Member
 
Join Date: Sep 2008
Location: North Carolina
Posts: 5,844
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm curious to see how this develops, I like the Security Audit product and even mentioned to Floris about perhaps getting with you in regards to the development environment I love both these new ideas and support them 100%

I'd love to see more of this in vB already, 4.0 changes a lot of things but this can grow as well into something that helps all of us and remedy the need for confusion here by posting 4 different versions of the same mod because not matter how big bold and colored your text is saying compatible with all vB versions some members will not even visit that forum, I've heard it before and most do not know a 3.5 product might work on a 3.6 or 3.7/8 board. Again, I fully support both ideas, the audit product helped me save time, I had begun doing many changes to my new site before launching already and it saved me a massive amount of time simply clicking again to see what remained (chmod etc). I can't wait to see more getting involved with this too Adrian .

Mike
Reply With Quote
  #3  
Old 10-16-2009, 04:15 PM
Carnage Carnage is offline
 
Join Date: Jan 2005
Location: uk
Posts: 760
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm not familiar with git, however I do know its superior in many ways to svn.

I'm designing something like this; the idea being that it integrates with vbulletin and svn. I felt that you went the wrong way with your mod; instead of bringing the power of svn into vbulletin you pulled all of the files outside of vb.
Reply With Quote
  #4  
Old 10-16-2009, 05:18 PM
wilsoufra wilsoufra is offline
 
Join Date: Oct 2009
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by SirAdrian View Post
Hi,

This is somewhat of a branch off Wayne's topic, but I don't want to disrupt that as there is a slight difference in goals.

Floris has been posting some good ideas lately, and I think we have all the tools we need in order to effectively work together on them without requiring any major infrastructure changes here at vBulletin.org.

Before I go any further, I'd be willing to help with this idea by posting tutorials and encouraging other people to give it a try. These tools are meant for huge collaboration projects, so they are definitely powerful enough to handle vBulletin products.



Version Control

First and foremost, we need to use version control. The two most popular contenders are Subversion and Git. I have been favoring Git lately, but either way will work. Git has an edge over Subversion, as it allows users to easily branch off each others work and projects will no longer fail because the original author has given up or has no time. In this model, it does not matter, because anybody can take over without messing up permissions or rights.

Collaboration Platform / Management

Next, we need a way to easily manage this source code. There are two very popular websites for this: SourceForge for Subversion, and GitHub for Git. This is where users can browse the code, track issues, and prepare packages for downloading.

Development Tools

I have been complaining for years about how ineffective working with the product system is for developers, and recently I have released a solution called VDE - vBulletin Development Environment. This tackles the problem on two points: 1) product data is split into separate files, so they can easily be managed by version control software, and 2) it automatically loads this data into memory as if it were active, so you don't have to import products either.



Where to start? I have been watching Floris' vBulletin Security Audit Product in the hatchery. I have also been looking for some example mods to use for VDE, as I don't have any good examples yet. Honestly, I've been wanting to help out on the project, but it's too much of a hassle to actually download the product, work on it, and re-upload it, because it's up to the original author to try and merge the code together. With products, this can sometimes be very difficult. With VDE in place, it would be very trivial to perform changes, and to actually watch them get placed into the master branch again. It takes very little effort on the original author's part.

I am willing to bet good money that with such a system in place, even as an experiment, you will see a huge surge in developer collaboration, and these mods will flourish. For the other developers here who have already taken some initiate with VDE, or with the audit project, please post some feedback here. I think we can do this, and it's easier than a lot of you think.
This is an interesting discussion. thank you for sharing
However I think you should vary more examples to your writing much more interesting !

__________________
Faire simulation pret personnel en ligne | Faire calcul taux pret personnel en ligne | Demander un financement simulation credit personnel
Reply With Quote
  #5  
Old 10-16-2009, 05:35 PM
Adrian Schneider's Avatar
Adrian Schneider Adrian Schneider is offline
 
Join Date: Jul 2004
Posts: 2,528
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Carnage- View Post
I'm not familiar with git, however I do know its superior in many ways to svn.

I'm designing something like this; the idea being that it integrates with vbulletin and svn. I felt that you went the wrong way with your mod; instead of bringing the power of svn into vbulletin you pulled all of the files outside of vb.
Feel free to share more details. I've been fighting with vBulletin + SVN for about 3 years now which is why I have taken this route.

I have talked to Floris and he has let me use his product as an example.... when I get some time I will be putting it up.
Reply With Quote
  #6  
Old 10-16-2009, 06:29 PM
Carnage Carnage is offline
 
Join Date: Jan 2005
Location: uk
Posts: 760
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i'm taking inspiration from http://divmod.org/trac/wiki/DivmodCombinator a python tool for use with svn, it made my life so much easier with developing python modules I wanted something similar for vbulletin.

I'm probably going to mock something up in the next couple of hours, so I may have more details then.

--------------- Added [DATE]1255727698[/DATE] at [TIME]1255727698[/TIME] ---------------

Been playing around, found that there are very few (1) hooks in the plugins page which wasn't really of much use.

Copied some of the export code into a file and modfied it to export to the file system putting each plugin hook into its own file in ./products/plugins/hookname.php did the same for template and install code.

The idea is to use http://www.php.net/manual/en/book.svn.php the pecl svn module to create and update an svn repo for the code. Also there will need to be something to take it the other way and import from the file system into vbulletin.

Essentially a php file that provide the following functions:
  • Export product to ./products/ directory (currently only templates, plugins and install code done)
  • Manage svn repository pre product. (create, commit, rollback,checkout etc)
  • Import from file system to vbulletin.
  • Add a field in products table for additional files which will be copied to the products directory and included in import/export operations.
  • Creates a Full product export; includeing additional files when a product is exported from vbulletin.
  • Syncs product version and svn revision number (using branches or tags or something)

--------------- Added [DATE]1255733636[/DATE] at [TIME]1255733636[/TIME] ---------------

brainwave: If designed right, it wouldn't matter which backend version control system was used. The vbversion product could have plugins to use either svn git or cvs depending on personal preferance...
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 06:54 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.07770 seconds
  • Memory Usage 2,233KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (6)post_thanks_box
  • (6)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (6)post_thanks_postbit_info
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete