Form level import/export request

Discuss all feature requests you have for a new Servoy versions here. Make sure to be clear about what you want, provide an example and indicate how important the feature is for you

Form level import/export request

Postby david » Tue Feb 02, 2010 6:38 pm

I'd like to repeat a request made years ago: selective export and import of forms.

If I had this, I could dump the complete hassle that is the current Servoy-style SVN and Team Synchronization. It has to be the best example of a simple process made insanely complicated that I've ever had the displeasure of dealing with.

I bet not 1 in 20 Servoy developers are using any sort of Team Synchronization feature in Servoy currently beyond exporting modules and solutions. It is that confusing to use, hard to setup and buggy once you do get it all going.

In Servoy 3.5, I bet 9 out of 10 developers used the repository versioning feature -- it was that simple.

Additionally, who needs object level synchronization anyways when writing business software? You absolutely don't. Having more than one developer work on a screen or screenset at a time in different locals is highly inefficient. (If you want multiple developers working on the same formset you either team program at the same time or work incrementally by handing off.) Getting to the point where you have to merge two documents together is usually a sign that someone screwed up.

Object level synchronization makes more sense with other types of software development, but writing business software with Servoy is not rocket science. Making the process this complicated does not speed up the end result.

All you have to do to make the Servoy 3.5 method of versioning 10x's more powerful and usable for large teams is to let us choose which forms to export and import. Transporting changes among different developers would be just as easy and I could then use our SVN server for these transport files using a non-servoy -- and much easier -- SVN manager (and actually we may switch to doing this now anyways).

Most, if not all of the advantages of the current Servoy 5 implementation with 100x's less hassle. Which means 9 out of 10 Servoy developers would start using versioning again.

PS: anyone else remember the webinar with Bob Cusick and Jason Meunier stumbling around trying to introduce team sharing in Servoy 4? It was an unplanned comedy routine of "stop, you have to go here first...er, i think you forgot to press that button...", etc. :)
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1726
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Form level import/export request

Postby ngervasi » Wed Feb 03, 2010 3:43 am

Well, maybe the export functionality could be a nice add on but I've worked using SVN on 3 big projects since june 2008 in teams of 2 and 5 concurrent developers with excellent results. I gave a 2 days training to a company with 5 concurrent developers one year ago and I haven't received any request for help so far.
Yes, SVN is not an easy tool but that is due to the complex nature of team work.
I would never accept to work without object level synchronization, it's so convenient that I can't think how I could do without it. Very often I fix stuff on the GUI of a form while another team member is working on a form method and working concurrently on two different global methods is a daily operation.
What's the issues you are having using SVN to get other developers forms? If everyone always works on his set of forms SVN is pretty easy to use.
ngervasi
 
Posts: 1475
Joined: Tue Dec 21, 2004 12:47 pm
Location: Arezzo, Italy

Re: Form level import/export request

Postby Harjo » Wed Feb 03, 2010 12:35 pm

I agree with Nicola, the only issue we had was with subversive, so we switched to subclipse. (Robert Ivens has posted a nice video tutorial how to do that, very simple to do)

I bet not 1 in 20 Servoy developers are using any sort of Team Synchronization feature in Servoy currently beyond exporting modules and solutions.


I don't think that is true, at ServoyCAMP we spoke, with almost all attendees en almost everyone (in a team) is using some kind of SVN.
I agree, that the documentation/advices from Servoy, about the do's don'ts, best common practice, could be better.. There is a lot to be found on the forum, but a lot also outdated...
Harjo Kompagnie
Direct ICT / Servoy Hosting / ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
User avatar
Harjo
 
Posts: 4296
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Form level import/export request

Postby david » Wed Feb 03, 2010 11:49 pm

Am I completely wrong about this? I mean we use SVN, think it's a great concept, and even like it half the time -- kind of a love/hate relationship. Not sure about subclipse, maybe that will solve everything.

I think my main frustration is that nothing about it comes naturally. There are 2 perspectives, 50+ triggers points that are all in different spots so my eye is always searching for "Team..." in the context menu, I have to keep a cheat sheet around to remember how to merge database changes (I always forget the order in which I have to do the process), rolling back to a previous "release" is a challenge, terminology is all confusing ("Checkout" command from the "All solutions" node for example), and probably a few other things I can't think of right now. And this is after setting SVN up which takes two pages of step-by-step notes.

And now with the file system change from Servoy 4 to 5, renaming forms will mess up an SVN repository just like that. On the local side Servoy renames the form file and javascript file, but keeps the same UUID in both cases. Commit to SVN, and now you have two form files and two javascript files with separate names but the same UUID. Another developer updates their local from SVN and immediately starts seeing duplicated objects in the Solution Explorer due to the same UUID in multiple files. Try this with multiple developers cranking full out at the same time :)

ngervasi wrote:Well, maybe the export functionality could be a nice add on but I've worked using SVN on 3 big projects since june 2008 in teams of 2 and 5 concurrent developers with excellent results. I gave a 2 days training to a company with 5 concurrent developers one year ago and I haven't received any request for help so far.
Yes, SVN is not an easy tool but that is due to the complex nature of team work.
I would never accept to work without object level synchronization, it's so convenient that I can't think how I could do without it. Very often I fix stuff on the GUI of a form while another team member is working on a form method and working concurrently on two different global methods is a daily operation.
What's the issues you are having using SVN to get other developers forms? If everyone always works on his set of forms SVN is pretty easy to use.


SVN does take a day-long training session to get up to speed on it. Says something about it doesn't it? Just because it is powerful doesn't mean that it's the best way or the easiest way. If Servoy hadn't put all methods in one file would you need object level synchronization? And it would be a bit weird to use object level synchronization on form files.

In my opinion, if we had a way that was extremely easy for 90% of what we needed it for, we would use that process almost exclusively over something quite complex that does 100% of what we needed. For the other 10% missing in the first approach, I would just use an external SVN program with a much better interface. Sort of like using external SQL editors for doing stuff that the Servoy SQL editor is not great at.

Isn't there an easier way? Or is this it? Can we get a simple process to augment the powerful process?

(edited for grammar)
Last edited by david on Thu Feb 04, 2010 12:44 am, edited 1 time in total.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1726
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Form level import/export request

Postby Harjo » Thu Feb 04, 2010 12:18 am

You can also, use the team provider of Servoy itself.
It works (almost) the same as in 3.5

the only thing is, that when you are ready you have to commit (and maybe update) to the repository
No hassle to set it up, it comes as default..... but much more limited than SVN.
Harjo Kompagnie
Direct ICT / Servoy Hosting / ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
User avatar
Harjo
 
Posts: 4296
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Form level import/export request

Postby david » Thu Feb 04, 2010 12:38 am

Harjo wrote:You can also, use the team provider of Servoy itself.
It works (almost) the same as in 3.5

the only thing is, that when you are ready you have to commit (and maybe update) to the repository
No hassle to set it up, it comes as default..... but much more limited than SVN.


Yea, easy to setup. Still suffers the same user interface wackiness and difficulties in updating database changes though.

The thing I like about the form level import/export is that you have a file that leverages an easy and familiar process (import/export), all the databases changes can be done by checking one box, and the file can still be used with an external SVN server.

It is also an easy to understand container that models many of the ways developers work. A file can represent a team programming session, an individual day's work, an update to a production server, etc.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1726
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Form level import/export request

Postby Harjo » Thu Feb 04, 2010 12:51 pm

I see your point now,
you have my vote also!

AKA "The iPad Thread Killer"


You are keeping a good sence of humor... :lol: :lol:

EDIT: I see that the topic is REALLY deleted?? :shock: :shock:
Harjo Kompagnie
Direct ICT / Servoy Hosting / ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
User avatar
Harjo
 
Posts: 4296
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Form level import/export request

Postby ROCLASI » Thu Feb 04, 2010 1:04 pm

Hi David,

david wrote:It is also an easy to understand container that models many of the ways developers work. A file can represent a team programming session, an individual day's work, an update to a production server, etc.


You mean like a patch, a delta of changes. (Subclipse/Subversive has such an option)
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Twitter: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5322
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: Form level import/export request

Postby ROCLASI » Thu Feb 04, 2010 1:16 pm

Harjo wrote:EDIT: I see that the topic is REALLY deleted?? :shock: :shock:

That kind of proofs David W.'s point he made. Doesn't it....
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Twitter: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5322
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: Form level import/export request

Postby Harjo » Thu Feb 04, 2010 1:49 pm

ROCLASI wrote:
Harjo wrote:EDIT: I see that the topic is REALLY deleted?? :shock: :shock:

That kind of proofs David W.'s point he made. Doesn't it....


this is NOT good for the Servoy community..... :-(
Harjo Kompagnie
Direct ICT / Servoy Hosting / ServoyCamp
Servoy Certified Developer
Servoy Valued Professional
SAN Developer
User avatar
Harjo
 
Posts: 4296
Joined: Fri Apr 25, 2003 11:42 pm
Location: DEN HAM OV, The Netherlands

Re: Form level import/export request

Postby jcompagner » Thu Feb 04, 2010 3:46 pm

david wrote:Am I completely wrong about this? I mean we use SVN, think it's a great concept, and even like it half the time -- kind of a love/hate relationship. Not sure about subclipse, maybe that will solve everything.


dont know if for you subclipse or subversive would make a great difference, its kind of exactly the same, only a bit different in some ui stuff i think
Prolem with subversive is that it has some or at least one big bug, that when your eclipse crashes somehow and eclipse wants to recover it the next time you start, subversive start doing illegal stuff on different threads and because of that
you are not able to start servoy anymore.

i am personally more a fan of subclipse (use it already for years, i am signed and faxed a contract because my patches where a bit to big to be applied without some legal consensus :) ) it is also from the makers of svn itself.

No i dont say that svn is the holy grail, dont think so, it has some issues here and there.
I am also looking into GIT thats really powerful, but as long as there are no good eclipse integration plugins i wont touch it.

david wrote:I think my main frustration is that nothing about it comes naturally. There are 2 perspectives, 50+ triggers points that are all in different spots so my eye is always searching for "Team..." in the context menu, I have to keep a cheat sheet around to remember how to merge database changes (I always forget the order in which I have to do the process), rolling back to a previous "release" is a challenge, terminology is all confusing ("Checkout" command from the "All solutions" node for example), and probably a few other things I can't think of right now. And this is after setting SVN up which takes two pages of step-by-step notes.


The natural order of things should always be
first do an update, handle all merge conflicts, then when you are in a state with only outgoing changes do commit it.

The checkout command from the all solutions node is already enhanced a bit now it say "checkout from servoy repository" to be more clear what it really does.

SVN checkout can be done through File->import->SVN->Checkout projects from SVN
But i never use that, i always go through the SVN Repository view, select the dir/folder i want to checkout and tell it to checkout.

david wrote:
And now with the file system change from Servoy 4 to 5, renaming forms will mess up an SVN repository just like that. On the local side Servoy renames the form file and javascript file, but keeps the same UUID in both cases. Commit to SVN, and now you have two form files and two javascript files with separate names but the same UUID. Another developer updates their local from SVN and immediately starts seeing duplicated objects in the Solution Explorer due to the same UUID in multiple files. Try this with multiple developers cranking full out at the same time :)



and this is weird, UUID things or not shouldnt matter (thats just contents of a file), because you rename and a rename should be: move or lets say copy and delete
and that last word is the key, "delete" if you rename you should also see outgoing deletes of the previous file. That should be committed in one go to the svn repository.

Try for example to rename something, then look in the synchronize view (i always work through the sync view at all times, never just do updates or commits from the projects)
then you will see 2 things of that file one with a minus symbol and one with a plus symbol. When you commit that as once and a co worker checks it out
then it will first delete the current file and then get an update of the renamed file.. So your co worker shouldnt have duplicate files.

SVN is smart about this rename, it knows it was a rename from a specific file so you keep everything like history and the ability to go back..

david wrote:SVN does take a day-long training session to get up to speed on it. Says something about it doesn't it? Just because it is powerful doesn't mean that it's the best way or the easiest way. If Servoy hadn't put all methods in one file would you need object level synchronization? And it would be a bit weird to use object level synchronization on form files.


that would be quite horrible performance wise and disk space wise
We didnt change the file format we had in 4 for nothing in 5.
Large solutions where crawling because of the many many many files. And a solution that really was lets say 70MB was 1.2GB on disk because of the sectors and clustering.
So making all the script methods also a file by itself would even make that situation way worse.

Also i dont think that most people would way that is handy. Because i think most of us do edit a file things at once in a file. now you have a file per form so you can quickly with page up and down or CTRL-O go through the file
If you had a file per method you would have had to jump all around through editors and the editors that you would need to have open would just explode.

david wrote:In my opinion, if we had a way that was extremely easy for 90% of what we needed it for, we would use that process almost exclusively over something quite complex that does 100% of what we needed. For the other 10% missing in the first approach, I would just use an external SVN program with a much better interface. Sort of like using external SQL editors for doing stuff that the Servoy SQL editor is not great at.


you are fee to use a external SVN program if you like that one better. Thats not a problem


EDIT: even for one file (per method) you could have if you really work with 5-10 men on a solution have changes on the same file. You never can say that wont happen.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8217
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Form level import/export request

Postby ROCLASI » Thu Feb 04, 2010 3:59 pm

jcompagner wrote:I am also looking into GIT thats really powerful, but as long as there are no good eclipse integration plugins i wont touch it.


There is a GIT plugin for Eclipse.
http://www.eclipse.org/egit/

And for the other options that are out there there are plugins as well:
Bazaar
Mercurial

They do require Eclipse 3.4 and up so Servoy 4.x is not supported (uses Eclipse 3.3).
Robert Ivens
SAN Developer / Servoy Valued Professional / Servoy Certified Developer

ROCLASI Software Solutions / JBS Group, Partner
Twitter: @roclasi
--
ServoyForge - Building Open Source Software.
PostgreSQL - The world's most advanced open source database.
User avatar
ROCLASI
Servoy Expert
 
Posts: 5322
Joined: Thu Oct 02, 2003 9:49 am
Location: Netherlands/Belgium

Re: Form level import/export request

Postby jcompagner » Thu Feb 04, 2010 4:07 pm

yes i know about EGit i am monitoring it, hopefully they will get out of incubating soon and be a good implementation (it can take a while to be up to the standards of the CVS plugin in eclipse)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8217
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Form level import/export request

Postby david » Thu Feb 04, 2010 7:53 pm

ROCLASI wrote:Hi David,

david wrote:It is also an easy to understand container that models many of the ways developers work. A file can represent a team programming session, an individual day's work, an update to a production server, etc.


You mean like a patch, a delta of changes. (Subclipse/Subversive has such an option)


I checked out patches in this context and I couldn't figure out a way they would be useful. A patch isn't an entire container like a .servoy export file and you can't apply a patch to a production server.

I am definitely interested in figuring out a way to model chunks of work with SVN/subclipse/x brand.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1726
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Re: Form level import/export request

Postby david » Thu Feb 04, 2010 8:12 pm

jcompagner wrote:...

The natural order of things should always be
first do an update, handle all merge conflicts, then when you are in a state with only outgoing changes do commit it.

The checkout command from the all solutions node is already enhanced a bit now it say "checkout from servoy repository" to be more clear what it really does.

SVN checkout can be done through File->import->SVN->Checkout projects from SVN
But i never use that, i always go through the SVN Repository view, select the dir/folder i want to checkout and tell it to checkout.

...


Thanks for the indepth reply Johan. A number of things in there that are very helpful information.

But I'll say it again -- as much as this whole process can be really useful, it is a complex and confusing process. Even after a few months of working with it, we still find ourselves at going, "Am I doing this correct now...". Because there have been multiple occasions where we have gotten ourselves so turned around we don't know which direction is up.

Add in the file duplication issues (all I can say is that we've managed to hose our SVN server and the associated linked developer instances -- don't ask me how!) and the SVN bug hosing Servoy (not limited to SVN, we've had a number of other Eclipse plugins hose Servoy -- the Eclipse world is like a minefield of bugs it seems...) and we've learned to tread very carefully.

Seriously, I like Servoy in Eclipse and I like SVN. Mostly playing devil's advocate here because my biggest gripe is all the added complexity. With our transition to Servoy 5 I find myself asking quite often: "Why is this so complex? Does it have to be this complex? How would I make it dead simple?" With regards to SVN, a form level export file struck me as a dead simple process.
David Workman, Kabootit

Image
Everything you need to build great apps with Servoy
User avatar
david
 
Posts: 1726
Joined: Thu Apr 24, 2003 4:18 pm
Location: Washington, D.C.

Next

Return to Discuss Feature Requests

Who is online

Users browsing this forum: No registered users and 1 guest