Recent

Author Topic: FreeSparta is OpenSource  (Read 83681 times)

hnb

  • Sr. Member
  • ****
  • Posts: 270
FreeSparta is OpenSource
« on: March 22, 2015, 06:44:07 pm »
Hello,

FreeSparta is now really free.
I have hope that Lazarus team can merge some changes to main trunk of Lazarus (maybe with some changes/better naming for classes and methods) :)

What is FreeSparta:

https://www.youtube.com/watch?v=6FOjWCLDScQ
www.freesparta.com

Repo and more info:

https://github.com/dathox/freesparta

What was improved

components\customdrawn\source\customdrawnextras.pas
PersistentDeleted event

components\pl_GlassDocking\* (modification of AnchorDocking library)
Delphi like active docked form header
New X icon ;)
Fix for message window (http://bugs.freepascal.org/view.php?id=18538)
Fix for closing wrong tab (for clones of module)

components\ideintf\laz_images.res
New icons :)

components\ideintf\componenteditors.pas
New class TIDEComponentsMaster. Utils for hiding non visual components.

components\ideintf\componentreg.pas
Extended „Component Added Event”  for new components palette in Sparta
„Multi Select” option for components palette (for new components palette in Sparta and for existing Delphi like components palette)

components\ideintf\formeditingintf.pas
Designer Base Class system (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)
Utils functions IsFormDesign and LookupRoot

components\ideintf\idewindowintf.pas
Changes for „IDETabMaster” system (Code/Designer pages for modules)

components\ideintf\lazideintf.pas
Changes for „IDETabMaster” system (Code/Designer pages for modules)
Infrastructure for other (user defined) tab assigned to module (like History Tab from Delphi)

components\ideintf\objectinspector.pp
Fix for copy/paste problem for integrated IDE with GlassDocking/AnchorDocking package

components\ideintf\propedits.pp
New event „Persistent Deleted”. Useful for statistics for designed form (for example count of object, or for refresing state of sparta design time utils)

components\ideintf\srceditorintf.pas
New events called after a Window is shown/hidden (semWindowShow/semWindowHide)

components\ideintf\unitresources.pas
Designer Base Class system (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)

designer\controlselection.pp
Designer Base Class system (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)
Show/Hide non visual components (by DEComponentsMaster)

designer\customnonformdesigner.pas
Many changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)

designer\designer.pp
Extended „Component Added Event”  for new components palette in Sparta
Show/Hide non visual components (by DEComponentsMaster)
Changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)
New event „Persistent Deleted”. Useful for statistics for designed form (for example count of object, or for refresing state of sparta design time utils)
Fix for painting points (for Design tab of Module)

designer\framedesigner.pas
Many changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)

designer\noncontroldesigner.pas
Many changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)

ide\codeexplorer.pas
Fix for switching Code/Designer (use KeyDown insted of KeyUp)

ide\componentlist.pas
Extended „Component Added Event”  for new components palette in Sparta
„Multi Select” option for components palette (for new components palette in Sparta and for existing Delphi like components palette)

ide\componentpalette.pas
Extended „Component Added Event”  for new components palette in Sparta
„Multi Select” option for components palette (for new components palette in Sparta and for existing Delphi like components palette)

ide\customformeditor.pp
Changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)

ide\main.pp
Fix for copy/paste problem for integrated IDE with GlassDocking/AnchorDocking package
Show/Hide components palette button for integrated IDE with GlassDocking/AnchorDocking package
CodeTyphon buttons layout
Extended „Component Added Event”  for new components palette in Sparta
Fix for switching Code/Designer
Changes for „IDETabMaster” system (Code/Designer pages for modules)
JumpToCompilerMessage event

ide\mainbar.pas
Changes for Show/Hide components palette button

ide\mainbase.pas
Changes for „IDETabMaster” system (Code/Designer pages for modules)

ide\sourceeditor.pp
New notifications semWindowShow and semWindowHide
Bug fix for current ActiveEditor in docked IDE
Modification for plugable PageControl (fix for problem with finding SourceEditor), changes for „IDETabMaster” system (Code/Designer pages for modules)

ide\sourcefilemanager.pas
Changes for „Designer Base Class system” (now any "Designer Base Class" like TForm, TFrame, TDataModule can be replaced by plugin)
Changes for „IDETabMaster” system (Code/Designer pages for modules)

lcl\include\wincontrol.inc
Bug fix for method TWinControl.AlignControls (conditional expression "if NeedAlignWork then" is commented). Sometimes when we add only one control, and we will use scroolbars properties in ObjectInspector on the form, then the control is scrolled in wrong way (vertically instead of horizontal).

lcl\include\win32\win32callback.inc
Bug fix for OverlayWindowProc function (window used by GetDesignerDC is moved when scroolbars are modified at designtime)

lcl\controls.pp
TDockManager. GetChildSite new method (used to hide/show in docked version of IDE some parts by resizing window, for example to show/hide components palette by using dedicated button)

Best Regards,
Maciej Izak
« Last Edit: March 22, 2015, 07:31:20 pm by hnb »
Checkout NewPascal initiative and donate beer - ready to use tuned FPC compiler + Lazarus for mORMot project

best regards,
Maciej Izak

Takeda

  • Full Member
  • ***
  • Posts: 157
Re: FreeSparta is OpenSource
« Reply #1 on: March 22, 2015, 07:39:17 pm »
Cool... BTW actually your works on sparta is very cool...

Hmm, Sir... Would you mind to share the "bin libraries"  ?

Thanks in advance,
Takeda
Call me Takeda coz that's my true name.
Pascal coding using Lazarus => "Be native in any where.."

ƪ(˘⌣˘)┐ ƪ(˘⌣˘)ʃ ┌(˘⌣˘)ʃ

bobihot

  • New Member
  • *
  • Posts: 44
Re: FreeSparta is OpenSource
« Reply #2 on: March 22, 2015, 11:22:59 pm »
Hi,
I cannot to enter on my old account, include with password reset by e-mail?
Thanks
PS
New version is a old version?
« Last Edit: March 23, 2015, 01:16:21 am by bobihot »

hnb

  • Sr. Member
  • ****
  • Posts: 270
Re: FreeSparta is OpenSource
« Reply #3 on: March 23, 2015, 04:56:46 pm »
Hi,

New version is a old version?

New version is avaible only on repository. There is a lot of bug fixes.

Hmm, Sir... Would you mind to share the "bin libraries"  ?

Sorry :( you need to build Sparta using instruction included in github repo, or you can wait when I will find some free time to create some installer.

The page was not updated. There is the old content. The only news: I locked the shop.

Best regards,
Maciej Izak
Checkout NewPascal initiative and donate beer - ready to use tuned FPC compiler + Lazarus for mORMot project

best regards,
Maciej Izak

avra

  • Hero Member
  • *****
  • Posts: 2582
    • Additional info
Re: FreeSparta is OpenSource
« Reply #4 on: March 24, 2015, 10:33:02 am »
Hello Maciej,

You have really put a lot of work into FreeSparta and I am sorry to hear that your business model has not met your expectations. I hope that your disappointment is only temporary and that community will hear more from you in the future. We are all grateful for your release, but I am not sure that we will see any benefit if it doesn't end up in Lazarus official bugtracker. I know it sounds bureaucratic and requests more work from your side, but it seams there isn't any other way. It doesn't look to me that anyone in Lazarus team has a task to monitor Typhon, FreeSparta, or any other Lazarus enhancement and apply it automatically. Although the license would let them do it (if the patch is compatible with their vision), they are pretty busy with their own tasks and schedule and the only way to achieve the goal seams to be through bugtracker. Therefore, please, please consider that additional effort, since no one else understands what you fixed or introduced better then you.

Whatever you decide, I thank you once more for all your hard work!
« Last Edit: March 24, 2015, 10:36:01 am by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

hnb

  • Sr. Member
  • ****
  • Posts: 270
Re: FreeSparta is OpenSource
« Reply #5 on: March 24, 2015, 11:08:38 pm »
Hello Avra. Thanks!

There is ofc bugtracker issue/patch:
http://bugs.freepascal.org/view.php?id=27710

This release is prepared for Lazarus (but initially it was planed only for Typhon). Anyway I decide to donate my code back to Lazarus as priority (but it's probably a waste of time). All description above are related to changes in Lazarus. I created special patch that is free of any Typhon changes. For Lazarus team.

There is Patch in 2 formats :


Description of changes for Pure Lazarus distro is included in this topic also in:

https://github.com/dathox/freesparta

and in PDF file:

https://github.com/dathox/freesparta/blob/master/instruction.pdf 

There isn't any single question from core team. I think Lazarus team don't want my improvements. Additionaly all changes are marked with comments dathox, and sometimes with short description.

Now I don't expect that Lazarus core team will merge changes from Sparta.

Only Typhon team want my changes. I think that any my future work will be related with CodeTyphon. Their forum is more friendly and always someone answers me :).

Sparta idea was simple:

- bring back "Lazarus about box" in Typhon IDE, improve quality of critical parts (like copy/paste problem in GlassDocking/AnchorDocking) - "about box" is only thing that I don't like in Typhon IDE.
- foundation for improving IDE and FPC compiler with some budget ( http://forum.lazarus.freepascal.org/index.php?topic=25642.0 )
- Sparta commercial packages/plugins/ (Sparta Professional) libraries (Generics.Collections) to prepare foundation budget.

But no one was interested. Sorry there is one very kind topic :D

https://jonlennartaasenden.wordpress.com/2015/01/03/free-sparta-and-codetyphoon-violates-gpl/

Now I can't do more. No one is interested.

Best reagards,
Maciej Izak
Checkout NewPascal initiative and donate beer - ready to use tuned FPC compiler + Lazarus for mORMot project

best regards,
Maciej Izak

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4673
  • I like bugs.
Re: FreeSparta is OpenSource
« Reply #6 on: March 25, 2015, 12:12:33 am »
Now I don't expect that Lazarus core team will merge changes from Sparta.

Don't loose your hope! I assigned the issue for myself. I try to look at it already tomorrow but I promise to study it properly during next weekend.
In fact I took a brief look earlier but I didn't realize there are patches. They will make things easier.

Yes, I understand your feelings. Lazarus developers typically have their own agendas. Some patches have been ignored for longer than they should.
One option for you would be to become a Lazarus developer. Then you wouldn't need to worry about agendas of other people. That is only if you want it, I don't want to push it for you or anybody.

Quote
Only Typhon team want my changes. I think that any my future work will be related with CodeTyphon. Their forum is more friendly and always someone answers me :).

They have done many things right. Cross-compilation is one thing and I think support is another.
I am only puzzled about their forking policy. I am not against it but I am puzzled.
I am also puzzled how they will merge their changes into their Lazarus fork. Their code is more and more diverse but still their base is the latest Lazarus.
Ok, maybe they are just clever.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

JanRoza

  • Hero Member
  • *****
  • Posts: 738
    • http://www.silentwings.nl
Re: FreeSparta is OpenSource
« Reply #7 on: March 25, 2015, 12:19:58 am »
What the f*** is happening in the Lazarus community?
I see good ideas coming and going and all that happens is that Lazarus remains the same and all kind of new Lazarus spin offs like CodeTyphon and FreeSparta come along.
Is it so hard hard to join forces and concentrate on making Lazarus better?
Why all this resistance against ready to use solutions that only need to be picked up, we all like those ready developed solution but we all let them fade away again?
Is this a power game or are we a bunch of Pascal lovers who want to make the best Pascal development environment there is?
Stop banging heads or ignoring each other, listen and talk! Exchange ideas and ready to use solutions.
We should all be on the same team. Is that so hard?
OS: Windows 11 / Linux Mint 22.2
       Lazarus 4.4 RC FPC 3.2.2
       CodeTyphon 8.90 FPC 3.3.1

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: FreeSparta is OpenSource
« Reply #8 on: March 25, 2015, 12:42:05 am »
What the f*** is happening in the Lazarus community?
I see good ideas coming and going and all that happens is that Lazarus remains the same and all kind of new Lazarus spin offs like CodeTyphon and FreeSparta come along.
add to that GetLazarus by sysrpl. That's not a spin-off of lazarus but a special build of Lazarus, with some ready to go components in place :)

Is it so hard hard to join forces and concentrate on making Lazarus better?...We should all be on the same team. Is that so hard?
It is extremely hard.
1) You have to be in the team, thus you've to deal with other's opinion that's different in 66% of the time.
Thus you might end up a lot of efforts in talking and arguing rather than actual development (mailing list archive is a proof to that)
2) You have to following teams bureaucracy: such as following style standard (a lot of sent patches needs that), answer questions (don't be rude!). Update and track mantis. Keep up with repository merges. Yes, you need to do that in your spare time. Or during your work hours, if you're lucky.
3) Maintain your code, but even worse  code written by others. As well as respect the idea of LCL (we cannot do everything with custom drawn components). You've to deal with problems caused by changes done by someone else in some other part of the system that affects yours. That's really annoying.

In the end, it might be easier to fork Lazarus and come up with your own solution, there you don't have a team, where you have yourself. In this case a lot of the points above are much easier to handle. Just because you don't have a team to follow, or the rules that you need to follow are made up by you (and thus you can always bypass them, if want to).

avra

  • Hero Member
  • *****
  • Posts: 2582
    • Additional info
Re: FreeSparta is OpenSource
« Reply #9 on: March 25, 2015, 01:43:57 am »
I created special patch that is free of any Typhon changes. For Lazarus team.
That is very nice!  :D
I think acceptance chances would be bigger with several bugtracker issues covering each separate topic, but I do not worry since Juha is going to take a look.

What the f*** is happening in the Lazarus community?
No need for such strong words. New features and small patches can easily be accepted, but changing some core things needs careful thinking. For example, we would have docking and embedded form designer years ago but the team has decided that all past proposals were hacks without proper maintainable foundations. They choose long term over temporal benefits, and I respect that although I do not need to always like it. There is a place for Debian and there is a place for Ubuntu. If there was only one person who didn't like Unity then there would never be Mint, etc. It is quite normal that people think different and want to try another approach. Even if there is a place for everyone to enjoy nice shadow of one big tree, some people will choose smaller tree with lesser shadow. Thanks to that we have Lazarus and Typhon, but also MSEide and fpGui. Do I need to mention Delphi, Oxygene and Smart Mobile Studio? People will say that we are not such big community that can afford to split even more, but that is in humans nature and sooner we get used to it the better will be. Without such splits there would be much less place for innovation...
« Last Edit: March 25, 2015, 01:49:11 am by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4673
  • I like bugs.
Re: FreeSparta is OpenSource
« Reply #10 on: March 25, 2015, 01:18:30 pm »
Patch file:
https://github.com/dathox/freesparta/blob/master/lazarus_sparta.patch

The patch has 363214 lines. Yes, that was three hundred sixtythree thousand + some lines!
Most of them are CodeTyphon libraries added as new files.
For some reason there are 2 identical copies of everything, or at least of the blocks I checked.

"components/pl_BGRAbitmap/..." occupies a big number of the lines.
Then there is a copy of AnchorDocking fork "components/pl_GlassDocking/..."
It is basically AnchorDocking code run through Jedi Code Formatter (yes I have studied the code).
And so on ...

Are you seriously suggesting we should add all those pl_... libraries to Lazarus?

The changes for real Lazarus units occupy few thousand lines which is also quite much.
They have no explanations about which issue is solved by which change.

Quote
Now I can't do more. No one is interested.

Yeah ...
You would make sane patches if you truly wanted to contribute your changes.
It may be difficult because you made your changes against CodeTyphon code which differs already quite much from Lazarus.
Still, complaining that Lazarus developers don't care and then offering a patch that looks like a joke is not fair.

Your textual list of solved bugs and improvements was impressive. Please create smaller patches, one for each bug fix and improvement.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4673
  • I like bugs.
Re: FreeSparta is OpenSource
« Reply #11 on: March 25, 2015, 01:26:52 pm »
Why all this resistance against ready to use solutions that only need to be picked up, we all like those ready developed solution but we all let them fade away again?

By this comment you just volunteered to help with this "solution that only needs to be picked up".
Please divide the lazarus_sparta.patch into small meaningful patches, one patch per issue.
Co-operate with Maciej Izak if you need to. Finally upload the patches to this bug tracker report :
  http://bugs.freepascal.org/view.php?id=27710
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4673
  • I like bugs.
Re: FreeSparta is OpenSource
« Reply #12 on: March 25, 2015, 04:53:26 pm »
I did some digging. The output from
Code: [Select]
$ grep "^Index: " lazarus_sparta.patch
is attached. I tried to copy it here but max length (20000) chars was exceeded.

Now it looks like only customdrawnextras and the pl_GlassDocking package have 2 copies. maybe I tested just them earlier.

I extracted the Lazarus file diffs and tried to apply. There are merge conflicts especially in component palette code because it got other changes recently.
I can solve some conflicts and apply some code. Separate patches would be better of course.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

hnb

  • Sr. Member
  • ****
  • Posts: 270
Re: FreeSparta is OpenSource
« Reply #13 on: March 25, 2015, 10:38:11 pm »
Hi Juha Manninen, sorry for the mess. I would like to clarify a few things:

It took me few weeks to create Open Source version. I am only single developer, after many days of voluntary work - the lazarus_sparta.patch file, can contains few mistakes. This is not my wrong will.  From the file should be excluded:

-pl_BGRAbitmap
-pl_BGRAcontrols
-pl_GlassDocking

All these directories have been uploaded to https://github.com/dathox/freesparta/tree/master/lazarus_sparta_patch/components to facilitate testing and installation of sparta packages and should not be included in the lazarus_sparta.patch file. I'm sorry.

Patch should be splitted into several logical parts:

1. Lazarus patch (lazarus_sparta_patch directory, compatible with rev. 48023)
2. Typhon patch (typhon_sparta_patch directory, can be ignored, it is only for Typhon team)
3. Tested components required by Sparta packages taken from Typhon IDE: pl_BGRAbitmap, pl_BGRAcontrols, pl_GlassDocking (included in lazarus_sparta_patch/components).
4. Sparta packages (1_spartaBasic, 2_spartaStarter, 3_spartaProfessional). Changes from point 1 allow us to create many projects like Sparta - same as we can handle few plugins for docked IDE.

Important 1: Sparta packages depends on Generics.Collections library, introduced by Sparta  (not yet included into FPC trunk, but reported http://bugs.freepascal.org/view.php?id=27206 - because patch is not included into FPC trunk, the simplest way to test Sparta packages with pure Lazarus code is following instructions at github, where is used Typhon Studio to get right FPC compiler versions and Generics.Collections library).
Important 2: In the near future, should be removed dependencies mentioned in point 2 (pl_BGRAbitmap, pl_BGRAcontrols).

Quote
Now I can't do more. No one is interested.
Yeah ...
You would make sane patches if you truly wanted to contribute your changes.
It may be difficult because you made your changes against CodeTyphon code which differs already quite much from Lazarus.
Still, complaining that Lazarus developers don't care and then offering a patch that looks like a joke is not fair.

Your textual list of solved bugs and improvements was impressive. Please create smaller patches, one for each bug fix and improvement.

Don't loose your hope! :) I can create smaller patches but one patch depends on the other...

One option for you would be to become a Lazarus developer. Then you wouldn't need to worry about agendas of other people. That is only if you want it, I don't want to push it for you or anybody.

It would be great. This is a motivating idea. In my TODO OpenSource list is: Delphi ToolsAPI compatible interface (it depends on Sparta packages), Project Manager, better interface to plug other languages into Lazarus IDE, maybe history tab. How can I become a Lazarus developer? :)

Best Regards,
Maciej Izak
« Last Edit: March 25, 2015, 10:41:25 pm by hnb »
Checkout NewPascal initiative and donate beer - ready to use tuned FPC compiler + Lazarus for mORMot project

best regards,
Maciej Izak

zeljko

  • Hero Member
  • *****
  • Posts: 1828
    • http://wiki.lazarus.freepascal.org/User:Zeljan
Re: FreeSparta is OpenSource
« Reply #14 on: March 26, 2015, 08:33:00 am »
I did some digging. The output from
Code: [Select]
$ grep "^Index: " lazarus_sparta.patch
is attached. I tried to copy it here but max length (20000) chars was exceeded.

Now it looks like only customdrawnextras and the pl_GlassDocking package have 2 copies. maybe I tested just them earlier.

I extracted the Lazarus file diffs and tried to apply. There are merge conflicts especially in component palette code because it got other changes recently.
I can solve some conflicts and apply some code. Separate patches would be better of course.

Juha, my proposal over sparta patches would be to create separate branch of lazarus until it's fully implemented (without typhoon components), and  then merged into trunk as big feature for 1.6.

 

TinyPortal © 2005-2018