Author Topic: Team System aka Team Block idea  (Read 25183 times)

MariuszP

  • Guest
Team System aka Team Block idea
« on: August 24, 2006, 10:36:09 am »
Hello,

I'm going to write plugin that will bring some team work functionality into cb. I was thinking about making it a little bit similiar to Team System from Microsoft. TS is based on MSF while I wanted to my plugin to be based on something similiar to RUP or EUP. Key features are:
- making team work on project much much easier by bringing some task management features.
- risk management
- change management
- bugs management
- support for documantation management by providing views for browsing all the available documents for projects.
- integration with Subversion plugin.
- integration with UML plugin that would allow us to put all available uml documentation in the right place.

This are ine fact my first thoughts on that. It is all subject to change. For example I'm thinking if it is right choice to support RUP or any other framework. Maybe it would be much better to give user tool to define his own framework. If so - how should it look like. Is somebody got some ideas please post it here. We can discuss this and decide what should be put in final product.

I assume that this will take some time to write - mainly because I don't have so much spare time to work on it.

Offline PsYhLo

  • Almost regular
  • **
  • Posts: 157
Re: Team System aka Team Block idea
« Reply #1 on: August 24, 2006, 04:16:21 pm »
its great idea go on

Offline Phatency

  • Multiple posting newcomer
  • *
  • Posts: 65
Re: Team System aka Team Block idea
« Reply #2 on: August 24, 2006, 05:46:44 pm »
Sounds great, but also alot of work :P I hope you got time for this.

Offline lubos

  • Almost regular
  • **
  • Posts: 131
Re: Team System aka Team Block idea
« Reply #3 on: August 24, 2006, 07:51:13 pm »
relly cool  :D :D

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #4 on: August 25, 2006, 10:48:29 am »
I forgot to mention integrated unit tests. I plan to use either cppTests or cppunit.

I was also thinking about initial planning. When You create new project You don't usually start codeing. First You have to sort things out, create initial use cases, some documantation and so on. Personally i like to use some mind mapping software to sort things out, and to create project overview. So I thought that it could be nice if there would be something like this in Team Block. What do You think about that?

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #5 on: August 25, 2006, 01:26:19 pm »
I forgot to mention integrated unit tests. I plan to use either cppTests or cppunit.

I was also thinking about initial planning. When You create new project You don't usually start codeing. First You have to sort things out, create initial use cases, some documantation and so on. Personally i like to use some mind mapping software to sort things out, and to create project overview. So I thought that it could be nice if there would be something like this in Team Block. What do You think about that?


That would be great, I personally use FreeMind (I hate the Java interface though), be sure to check it's features.

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #6 on: August 25, 2006, 08:47:17 pm »
Personally I also use FreeMind. It's good tool, but i prefer MindManager. We are using this in company.
Anyway - I hope I will be able to create simple mind mapping functionality for use in Team Block...

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #7 on: August 28, 2006, 09:18:50 am »
Hello again,
I've made a deeper investigation during the weekend and found few issues that I have to figure out. First one is server/client issue. As Team Block will need some kind of server I have to find out what will be most appropriate. I was thinking about integrating this with SVN, but decided that this would be bad idea. Mainly because it would limit TB only to svn, while there are also another products. So right now I'm looking for something that would allow me to build connection between server and client. I was thinking about some kind of Corba or something like that. Maybe I'll give TAO another try, but if somebody knows some good Corba implementations then I would be gratefull for link.

Anyway - I've got some basic papers ready, and now I need to check if all my assumptions are correct. Then I will build some demo and check out how it works and what need to be adjusted.

Btw: I figured out that It would be nice to have some kind of database designer for cb. I plan to use sqlite as main db platform, and I don't know any good tools to sqlite that would work under linux. So i'm thinking about writing one. If I will decide to do so it will also be part of TB package.

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #8 on: August 28, 2006, 09:54:59 am »
Btw: I figured out that It would be nice to have some kind of database designer for cb. I plan to use sqlite as main db platform, and I don't know any good tools to sqlite that would work under linux. So i'm thinking about writing one. If I will decide to do so it will also be part of TB package.

Making a C::B plugin off the SqliteCC code would be even rather trivial :D
http://sqlitecc.sourceforge.net/

Offline eranif

  • Regular
  • ***
  • Posts: 256
Re: Team System aka Team Block idea
« Reply #9 on: August 28, 2006, 10:50:32 am »
Hi,

I personnaly use sqlitebrowser

http://sqlitebrowser.sourceforge.net/

But I think i will try sqlitecc
Eran

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #10 on: August 28, 2006, 11:13:51 am »
Hi,

I personnaly use sqlitebrowser

http://sqlitebrowser.sourceforge.net/

But I think i will try sqlitecc
Eran


It's almost the same, only made in wxWidgets. :)

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Team System aka Team Block idea
« Reply #11 on: August 28, 2006, 11:25:46 am »
It's almost the same, only made in wxWidgets. :)

Yes, only that it uses a very old version of wxSQLite which doesn't even support unicode.
Be patient!
This bug will be fixed soon...

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #12 on: August 28, 2006, 11:46:19 am »
It's almost the same, only made in wxWidgets. :)

Yes, only that it uses a very old version of wxSQLite which doesn't even support unicode.
Mmh, I saw an encoding menu showing UTF-8, are you sure?
I hadn't used it with unicode databases before so I don't know.
BTW it shouldn't be that difficult to update it to wxsqlite3 (that will have to be done anyways), or at least aknowledge the author by submitting a feature request.

I would be happy with having the current "non-unicode?" version for the moment.

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4315
    • Code::Blocks IDE
Re: Team System aka Team Block idea
« Reply #13 on: August 28, 2006, 11:58:16 am »
It's almost the same, only made in wxWidgets. :)

Yes, only that it uses a very old version of wxSQLite which doesn't even support unicode.
Mmh, I saw an encoding menu showing UTF-8, are you sure?

Yes, return values and arguments of functions are "char*". This fact alone makes it impossible to build without editing everything...

I would be happy with having the current "non-unicode?" version for the moment.

Sure you can. Just go at their site and download. But if you 're going to make a plugin for Code::Blocks, you do need unicode.

Anyway, let's not hijack this thread any longer :).
Be patient!
This bug will be fixed soon...

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #14 on: August 28, 2006, 12:25:11 pm »
Sure you can. Just go at their site and download. But if you 're going to make a plugin for Code::Blocks, you do need unicode.
True :P
The "submit a feature request" route will be better then (only if SF woulnd't give that much 500 - Internal Server Errors :/).

Anyway, let's not hijack this thread any longer :).

Right, so back on topic:

MariuszP, about "bugs management", do you plan to make a bugtracking system?
If that's so, a very good (and comfortable) solution would be to make a server-client (C++) C::B bugtracking plugin with an sqlite/mysql backend, and another implementation of the client in PHP, so that the bugtracking data can be viewed from both inside C::B local/remotely and from the web.

I don't know any free bugtracking software that can do that, and I can imagine it will be a very handy addition.

If you're looking after a very popular good inspiration (which seems to do most of the key features do you want to do), check out trac: it's a bugtracking system which integrates extremely nice with SVN, a Wiki, and Roadmap/Timeline management.

Offline eranif

  • Regular
  • ***
  • Posts: 256
Re: Team System aka Team Block idea
« Reply #15 on: August 28, 2006, 01:20:50 pm »
Hi,

Quote
If that's so, a very good (and comfortable) solution would be to make a server-client (C++) C::B bugtracking plugin with an sqlite/mysql backend, and another implementation of the client in PHP, so that the bugtracking data can be viewed from both inside C::B local/remotely and from the web.

Again, I want to recommend a very nice tool I was working with, both in php & mysql - phpbugtracker
http://sourceforge.net/projects/phpbt

Eran

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #16 on: August 28, 2006, 03:36:56 pm »
Thanks for giving me back my thread :D
Takeshi: Actually I was thinking about something like that. I Was even thinking about doing db access using php web services. Don't know if this would be good idea but surely it would be portable.
As for trac - I've heard a little bit about that. Don't know if I will follow that pattern or maybe create simpler system. As for one thing I'm quite sure - there is a need to create some links between bugs and their orgin, their resolution in connection to svn versions. I'mean - it would be good to attach information about: in which svn version this bug appeared for the first time, and in which it was resolved.

I plan to create simple solution during first few iterations, and then build up another features. Also - first few iterations will work with local server instead of remote as this is much easier to handle.

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #17 on: August 28, 2006, 11:49:32 pm »
Again, I want to recommend a very nice tool I was working with, both in php & mysql - phpbugtracker
http://sourceforge.net/projects/phpbt
Yes, I know it, and using it could serve as a start because it's made in PHP, but mind that it lacks the svn, wiki and roadmap integration.

As for trac - I've heard a little bit about that. Don't know if I will follow that pattern or maybe create simpler system.
Make sure to check it deeply, it haves the best integration I have found.

As for one thing I'm quite sure - there is a need to create some links between bugs and their orgin, their resolution in connection to svn versions. I'mean - it would be good to attach information about: in which svn version this bug appeared for the first time, and in which it was resolved.
Yes, trac just does that, and even shows automatically the code changes for a bug/revision.
The latest versions of TortoiseSVN now includes a Bug-ID string, so you'll want to use it.
See here: http://tortoisesvn.tigris.org/issuetrackers.html

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Team System aka Team Block idea
« Reply #18 on: August 29, 2006, 01:13:51 am »
I don't know if having the bug tracking application integrated into the IDE will give you that much of a benifite.  I use Xcode and SVN + Trac at work.  I have a browser almost open for viewing documentation and such.

What do you hope to achieve by reinventing trac and then recreating the interface within Code::Blocks?  If you really wanted that kind of information in the IDE, you could make a pluggin for trac that allows remote use, and then a C++ client for Code::Blocks and save yourself lots of time.

If my questions seem off base could you layout a clear set of features for what Team Blocks will contain?

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #19 on: August 29, 2006, 02:03:55 am »
What do you hope to achieve by reinventing trac and then recreating the interface within Code::Blocks? 
Speed and usability of course, it would be far more comfortable doing Right-click->Add issue inside C::B, navigating the current issues without leaving the IDE (thus with zero possible distraction), integrating TODO lists from C::B with it, and you can think a lot more possibilities.
The "I" in IDE is for Integrated, so sure you can use external documentation/bugtracking/compilers/whatever, but it's more comfortable to have everything in one place.

If you really wanted that kind of information in the IDE, you could make a plugin for trac that allows remote use, and then a C++ client for Code::Blocks and save yourself lots of time.
Well, that's a very good option too and it will save lots of time reinventing the wheel. :)
However it faces a little problem: trac itself and it's python dependency.
To put it simply, PHP is far more extendend in hostings than Python, aside that trac is not easy to install.

Having a SQlite backend (without more dependencies) as a C++ C::B plugin would mean that it will not requiere having to install any server software (be it apache/mysql/whatever) to use it in a local way (common usage for a 1-person development).
And having the DB in SQlite would mean that it will be easily accessed from PHP from a web interface (common usage for a team development).


But in a way, I think the best-fit-all solution would be to use the current Trac SQlite DB schema (and make compatible with it).
That will save from initially having to write the Web code, thus reusing Trac, and if it later proves to be worth, write a PHP version.
Put it simply, the C::B version will not have any Trac dependency, but it will be DB-compatible.
« Last Edit: August 29, 2006, 02:06:37 am by Takeshi Miya »

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Team System aka Team Block idea
« Reply #20 on: August 29, 2006, 06:43:21 am »
Again, what are really going to have here?  Issue tracking integration with Code::Blocks, team management with Code::Blocks, source control integration with Code::Blocks, or a generic implementation of all three? 

The OP has seem to have left the thread without a super clear layout of what he wanted to accomplish, we could argue the best ways to do issue tracking integration all day.

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #21 on: August 29, 2006, 09:07:50 am »
Game_Ender: I suggest You read the thread from beginning. This is supposed to be called Team Block - not bug block, bug related isuess are only one part of the whole system. I mentioned a lot of features, and I guess a lot of them will appear during the development. I'm not trying to create extra super detailed specification as this is one person project, and it is also supposed to be community driven so in the end it will be adjusted few times during development. It is quite normal for community projects.

Actually idea of Team Block came to me after taking a deeper look at Microsoft Team System. They are quite proud of their team system. So why we shouldn't be proud of our too? :D

Ideal solution would also bring support for continuous build, automated testing framework and many more. But i prefer to start from something simpler. Lets build small firework and then we move to building the space rocket ;)

Takeshi: I will think about reusing existing trac db structure. And hey - that is just great that TortoiseSVN now support bug-id string. I will download new version right now :D

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
Re: Team System aka Team Block idea
« Reply #22 on: August 29, 2006, 09:38:41 am »
This is a very nice idea, but I think it is better to make sepperate plugins for every functionality, so every one can choose which plugin it wants (some don't want bug tracking, other don't want to have svn support)
An other advantage of multiple plugins is that it is easier to maintain.
Just my 2 cents ;) (I am looking forward to a first release)
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #23 on: August 29, 2006, 09:45:13 am »
This is a very nice idea, but I think it is better to make sepperate plugins for every functionality, so every one can choose which plugin it wants
But there should be some kind of TeamBlocks SDK (it may be not trivial to make) for communicating eg. between SVN <-> bugtracking.
On the other (more easier) hand you could have the same functionality but toggleable at runtime.

AFAIK when going for the Trac DB route, it would be rather difficult not having everything in the same plugin because the issue tickets, revisions, wiki articles and everything is tightly integrated and kept in the same SQlite DB.
« Last Edit: August 29, 2006, 09:49:24 am by Takeshi Miya »

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #24 on: August 29, 2006, 09:58:26 am »
Eventually it will be set of separate plugins. But I don't plan to put bug tracking in one and change management in another. But for example svn will be separate plugin - that's for sure ;). Maybe I will even be able to reuse existing ones (as far as I know there is one).
If everything goes well then TM will be center for much more plugins. As I wrote - continuous builds and automated testing are just the few ideas that would be most helpfull.

mispunt: On more thing  - I plan to add some customization element. This is normal thing that every project in every company looks a little bit different. Some companies do not allow req changes during dev, other do, some handle bugs in one way, others do this in completely different way. So I plan to allow user to customize his view - does he need change management, should all the bugs be approved by somebody or maybe thay are moved to developer right after their appear in the system. There is so many combinations. And I plan to create TB as flexible as I can.

Takeshi: SDK. Well. Who knows. I think you are right. But i will think about this later.

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Team System aka Team Block idea
« Reply #25 on: August 29, 2006, 02:55:03 pm »
MazriuszP, I wasn't asking for a set in stone feature list or anything like that.  More like the roadmap  that the CB team has on the wiki.  If you want community involvement the community has to know what features are currently under development so they can lend a hand.  Just because you write down "For version 0.1.0 there will be X features" doesn't mean you can't change those features based on community feedback and time constraints.

VS Team System:
That Microsoft website was dog slow on my machine with firefox but after slogging through it does seem to a very broad product.  They have 5 or 6 editions  (or just split the product into 5 or 6 chuncks) and each has a different focus, from database designing, to software architecting, and software development.  The development one has issue tracking integration, profiling tools, source control, and automated test tools.

It would be awesome to see some of this stuff in Code::Blocks (we already have a gprof pluggin), good luck MazriuszP.  Where do you plan on hosting your project?

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #26 on: August 29, 2006, 08:42:23 pm »
Game_Ender: roadmap will eventually appear somewhere. As for now I'm still working on overall idea. I'm trying to figure out what architecture I could use ,I'm trying to find out what should be put in first versions. When I will have everything ready I will eventually write everything out and put somewhere. Actually I started this thread to check out what features will get most attention.

AS for VS Team System: Well - this is not definitelly not a speed demon ;). You are right that it's split into few sub products but there is also something called Team Suite that covers this all. And actualy I would be more than happy if we could put most of vs team system in Code blocks. (I like to see how Microsoft guys react on info that some features that VS lacks are already implemented in open source products). Company I'm working for is MS gold partner so I have access to most of the tools, and I have a chance to speak with MS or MS related guys from time to time.

I don't know yet where will I host TB. I guess I still have some time to decide :D

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #27 on: September 05, 2006, 09:15:58 pm »
Hi,
For last few days I've tried to create sample app that would use sqlite. I've been using sqlite previously under windows, but it was my first time when i tried to use it on linux platform. Right now it's 0:4 for sqlite. I just cannot make it work. I'm using wxSqlite. I found out that it works with sqlite 2.x while I plan to use 3.x. So I'v changed library and right now I got plenty of undefined symbol errors.

Heh. Right now, when I was writing this post I got some idea which seems to be good. I've checked sqlite home page and found out that actually it was impossible to find such methods, because instead of sqlite_open there is sqlite3_open. Damn. I lost 4 days. So right now I'm going to get myself a break ;)


Offline eranif

  • Regular
  • ***
  • Posts: 256
Re: Team System aka Team Block idea
« Reply #28 on: September 05, 2006, 09:33:22 pm »
Hi,

Have a look here (SVN) - http://opensvn.csie.org/CodeLite/
My little project (also for codeblocks) is using sqlite.

You can find an example for wxSQLite usage in addition to the updated dll for windows, makefile that will build it on linux etc.

Specifically, have a look at TagsDatabase class


HTH
Eran

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #29 on: September 05, 2006, 11:49:07 pm »
Thanx,
I'll take a look at this in the morning.
I'v been using wxSqlite but not under linux. It was about year ago. And, well I got stange impression that it looked a little bit different than now ;)

takeshimiya

  • Guest
Re: Team System aka Team Block idea
« Reply #30 on: September 06, 2006, 12:15:09 am »
And, well I got stange impression that it looked a little bit different than now ;)
You might got that impression because there are two different wxSQlite's:
 * wxSQlite: based on sqlite2, last time updated was more than 2 years ago, not recommended.
 * wxSQlite3: based on sqlite3, actively updated.

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #31 on: September 07, 2006, 07:53:16 am »
That explains a lot of things  :D. I hope that I will be able to take a deeper look at this in next few days.
Thanx for the informations. Somehow I just missed this ;)

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
Re: Team System aka Team Block idea
« Reply #32 on: September 22, 2006, 04:44:39 pm »
Is there any progress Marius?
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

MariuszP

  • Guest
Re: Team System aka Team Block idea
« Reply #33 on: September 28, 2006, 01:47:52 pm »
I got some doc's that need polishing and basic working code. But right now I don't have much time. We have bought a new flat and right now we are doing some extensive renovation. I mean - it's not who is working on this but it is a lot of work anyway. I have to buy a lot of things and...well, you should now this - it's a lot of work. So don't expect anything new anytime soon.

As soon as there will be something that will be ready to show I'm going to publish it.


Is there any progress Marius?