Recent

Author Topic: More componenets.  (Read 15583 times)

seghele0

  • Full Member
  • ***
  • Posts: 173
More componenets.
« on: March 01, 2021, 10:59:46 am »
Why doesn't Lazarus make two installation options, like CodeTyphon, which is a standard installation(as current) and a large installation with all available components?
This option would also enrich the knowledge of not often used components.
 ;)


Handoko

  • Hero Member
  • *****
  • Posts: 5130
  • My goal: build my own game engine using Lazarus
Re: More componenets.
« Reply #1 on: March 01, 2021, 11:21:06 am »
The more components installed on Lazarus the more time and memory is needed to rebuild the IDE. I rebuild the IDE pretty often.

Lazarus already has OPM and I personally dislike bloatware. If you can inspect my computer, you will see there isn't any unused programs here. I also removed all the unnecessary 'things' that come from the default OS installation.  My computer is old and doesn't have the latest technology but it's still slim and sexy, running like a cheetah.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: More componenets.
« Reply #2 on: March 01, 2021, 01:16:24 pm »
Well that is what the online-package-manager is for.

Much more flexible. In the old days there were websites for Delphi, with hundreds of packages. You could chose between a dozen components doing almost the same, differing only in small details.
Leaving out the fact that their are currently not as many people contributing, and not as many packages available... It would not be practical to include several near identical components. Yet with the package-manager that is no problem.
And the package manager makes it easier for contributors to have their packages included.

Of course packages in the OPM are as provided by the contributor. We (the Lazarus team) do simple not have the resources to test every single package for every release we make.
If we included them in the main download, we still would not have that manpower. So we would potentially end up shipping broken packages. And while the OPM allows the contributor to submit a working version asap, if included it would be broken until the next release (and then removed, if no fix was contributed).

Here is the difference between CodeTyphon and Lazarus. We (Lazarus) spent our time on the IDE/LCL itself (and that already requires all of our time and more).
Codetyphon presumingly does not need to spent much time on development the IDE itself.  They use what we deliver. So they have time to spent on bundling packages.



So the question here is, do you simply want an all-inclusive download, or do you want the same amount of packages, but with more maintenance done? (i.e. Regular complete tests of all packages on OPM)?

Because maintenance, testing, making sure all version dependencies are accurate, etc.... All that is not a question of "inclusive download" vs "OPM".
That is a question of having someone (or even several people) who want and can spent the time.

If someone volunteers to do that, then it can all be done for OPM.

Same about having more packages on OPM => contacting authors, helping them.... Question of someone doing that.



As for visibility....

If all components where pre-installed, people would not see the forest for the trees.

Of course OPM itself could be flaunted more prominently (as could many features).
Currently it is
- in the menu
- in the dropdown, at the right side of the component palette.

I am not sure if it should have its own tab in the palette (imho not). But it could/should probably be interacting with the "Components" window (palette, right click "Show all"). It could have an option (checkbox), so that the "filter" would search online too. And a button to open the OPM.

If someone wants to work on that....



Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: More componenets.
« Reply #3 on: March 01, 2021, 01:24:32 pm »
And if this is about "needing to rebuild the IDE" to install a package....
Well, IMHO not a big deal, but opinions on this may of course differ.

Afaik there is work under way to have "loadable packages" that do not require a rebuild of the IDE.
However, I do not know the current progress, and it will almost definitely still be a good amount of time. (I.e. I guess the very earliest would be with Fpc 3.4.0, but even that is not guaranteed / And 3.4.0 is far away)

wp

  • Hero Member
  • *****
  • Posts: 11855
Re: More componenets.
« Reply #4 on: March 01, 2021, 02:45:03 pm »
I am against deploying Lazarus with "all available components" because it would put the burdon of maintaining "all components" on the Lazarus team. Having an unmaintained third-party component poses a large risk on Lazarus such that it could not compile any more when the component is broken by some changes in Laz or FPC. Even the current situation of having barely maintained component in the Online-Package-Manager is questionable because it puts an enormous amount of work on its inventor, GetMem. But having such components in the official product is even worse because a single incompatible component can stop Lazarus from working.

Handoko

  • Hero Member
  • *****
  • Posts: 5130
  • My goal: build my own game engine using Lazarus
Re: More componenets.
« Reply #5 on: March 01, 2021, 03:06:08 pm »
Having a big fat installer that includes all components has both advantages and disadvantages. Sure, some will like it and it really helps new users to 'see' all the available components without need to search and install them.

But managing a huge amount of components isn't easy. CodeTyphon makes it easier by taking over the codes, maintaining and developing them themselves. That explains why CT wants to make them their own version of the components.

But 'disconnecting' the codes from their original authors can be bad, unless the they really have a lot of skilled programmers in wide range of fields. Usually programmers are good in graphics programming are not so good in database programming. Programmers are skilled in network and internet may not as good for writing game engine. So the development of components should left for their original authors unless it has been abandoned.

Perhaps the manpower issue can be solved and the needing to rebuild the IDE no longer a problem. But how often should we release the big installer? Once a month, once a week or everyday? Each components are are improving, having bug fixed and new features added. Should we immediate release the big installer once one of the component release a new version? I don't like Firefox rapid releasing strategy (https://en.wikipedia.org/wiki/Firefox_version_history#Rapid_releases) and I hate downloading huge files.

I do not against  big installer concept but I just don't like it.

alaa123456789

  • Sr. Member
  • ****
  • Posts: 260
  • Try your Best to learn & help others
    • youtube:
Re: More componenets.
« Reply #6 on: March 01, 2021, 03:14:28 pm »
Afaik there is work under way to have "loadable packages" that do not require a rebuild of the IDE.
However, I do not know the current progress, and it will almost definitely still be a good amount of time. (I.e. I guess the very earliest would be with Fpc 3.4.0, but even that is not guaranteed / And 3.4.0 is far away)
i think OPM is good choice at the moment and it could be better if installing without rebuilding the IDE , which you (Lazarus teams) are working on wish you the best to make it sooner.

thanks

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4459
  • I like bugs.
Re: More componenets.
« Reply #7 on: March 01, 2021, 03:16:15 pm »
Why doesn't Lazarus make two installation options, like CodeTyphon, which is a standard installation(as current) and a large installation with all available components?
This option would also enrich the knowledge of not often used components.
You can easily install all available components from OPM. It rebuilds Lazarus IDE once and there you go.
Did you try it?

i think OPM is good choice at the moment and it could be better if installing without rebuilding the IDE , which you (Lazarus teams) are working on wish you the best to make it sooner.
Dynamic packages are overrated. Building the IDE is very easy.
Dynamic library interface also adds a layer of complexity.
« Last Edit: March 01, 2021, 03:19:37 pm by JuhaManninen »
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Handoko

  • Hero Member
  • *****
  • Posts: 5130
  • My goal: build my own game engine using Lazarus
Re: More componenets.
« Reply #8 on: March 01, 2021, 03:32:15 pm »
Building the IDE is very easy.

For someone you don't how to rebuilt the IDE, here is how to do it:
Alt + T > Build Lazarus with ... > Answer: Yes

If for some certain reasons it does not work on your computer, try this:
Lazarus main menu > Build Lazarus with ... > Answer: Yes

And if you install a component using OPM, you will be asked to rebuild the IDE, you just need to answer Yes and it will be performed automatically for you.

Dynamic packages are overrated ...
Dynamic library interface also adds a layer of complexity.

If I remember correctly, I heard dynamic packages feature may slow down the IDE a bit. If that so, I prefer no dynamic packages at all.
« Last Edit: March 01, 2021, 03:36:37 pm by Handoko »

funlw65

  • Full Member
  • ***
  • Posts: 148
    • Visual Pin Configurator for Nucleo 64pin boards
Re: More componenets.
« Reply #9 on: March 01, 2021, 05:58:51 pm »
When finally a decision will be made regarding which GUI to be made/used, then there will be rock solid stability. Then, the freepascal compiler should achieve that too - and then we will have long term, fewer releases.

Only then you will have long lasting OPM packages with no compilation problems. As it is now, you might have a complete installation of your desired packages, then after an update, you will have to start again from a clean, standard installation (you'll bless developers for sticking with that standard set of packages - and, if you develop an open source, you have to always consider that standard set of packages) as some of OPM packages might be broken.   
FreePascal 3.2.2, C 10.2.1, D 1.24 under Linux(init,musl,glibc), DragonflyBSD, NetBSD
gui: gtk2, qt5, raylib4.x+raygui3.x, nanovg 
tui: freevision, tvision2, termbox2+widgets, finalcut
db: typhoon-1.11...

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: More componenets.
« Reply #10 on: March 01, 2021, 06:36:43 pm »
When finally a decision will be made regarding which GUI to be made/used, then there will be rock solid stability.
What you mean by "GUI"?
To me that would mean Win-API vs Gtk,Qt,Cocoa? But that should affect only very few of the components?

But never mind, there will always be some amount of maintenance required. Happens with any open source package manager (or rather anything where packages/add-ons are contributed).  Node's npm, Perl's cpan, whatever the other languages call it.  ... Firefox add-ons (probably Chrome too?).
Of course if you look at something like npm, with myriads of contributors, there is either a patch readily available (but you have to apply it), or a fork or an alternative package....

Have you ever tried building gdb on Windows? You need either Cygwin or msys and mingw. And then you can start searching for all the right packages, and the right versions, and maybe patches to gdb sources. And usually the error comes a half an hour into the build. => Install a package in Lazarus, you will know in 2 or 3 minutes if it builds.

And packages for components will need updates, every time any OS/Framework changes its API. Nothing that can be done about it. As soon as any distribution changes the way they build/provide gtk, amendments may be needed.



In the end however the problem of having lots of pre-tested packages available would not be solved by shipping them in a big installer.

The reason that are 3rd party packages is, that the Lazarus team does not have enough people/time to develop/maintain all of them.
If we were putting them into a big installer, they would come with the same problems.

In conclusion, what we need is a volunteer (or several), who agree to do the maintenance work.
That is they would have too:
- regularly test all 3rd party packages against the Lazarus svn trunk => inform developers about needed changes, help them to fix it.
- 2 weeks before a release, update the OPM database. Update the compatibly list. Edit which package version to use with which Lazarus.
- Scour the web for new packages to be include. Contact the authors
- Help any author in adding their packages.
- Any other maintenance.
- Do that for all target os/wigetset: Mac,Linux,WinXP-Win10 / 32/64bit / QT or Win/Gtk/Cocoa / latest fpc, and previous fpc // in all combinations

This person we do not have. So if anyone wants to volunteer....

This person would also be required, if (subjunctive) we were to ship it all as an installer.
Because before building such an all-in-one installer you need a working set of components. And then you need someone to run the build script....
« Last Edit: March 01, 2021, 06:41:05 pm by Martin_fr »

trev

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2020
  • Former Delphi 1-7, 10.2 user
Re: More componenets.
« Reply #11 on: March 02, 2021, 12:07:31 am »
Why doesn't Lazarus make two installation options, like CodeTyphon...

Because it's not CodeTyphon maybe?

I think the FreeBSD Forum moderators put it best:

Quote
As of today, FreeBSD Forums staff will actively close down (and eventually remove) topics that serve no other purpose than to complain that "FreeBSD is not (like) Linux" (or Windows, or macOS, or any other operating system), or that "FreeBSD does not use systemd", or that "FreeBSD has no default GUI", or that "FreeBSD does not encrypt gremlins", etc. This also includes topics that devolve into that kind of debate.

Note that this is a general user and administrator forum, where the community aims to assist those who want to install, run, or upgrade FreeBSD as-is. Discussions about what FreeBSD needs to be, or needs to add, or needs to lose, are pointless on the forums. We do not maintain the operating system here.

Those discussions are best held on the FreeBSD mailing lists, where active development and maintenance of the operating system are discussed and performed in excruciating detail. If you do not know which mailing list to use, start at FreeBSD Questions. Do note that "Why is FreeBSD not more like Linux?" topics that do not go into specifics and serve no other purpose than to complain will not be welcomed there either.
.

I dare say the same could apply here.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4459
  • I like bugs.
Re: More componenets.
« Reply #12 on: March 02, 2021, 12:42:39 am »
When finally a decision will be made regarding which GUI to be made/used, ...
What are you talking about?
Quote
... then there will be rock solid stability.
Do you plan to fix all bugs to achieve rock solid stability? Good! Thanks in advance.

Because it's not CodeTyphon maybe?
Exactly.
It is a conscious strategy to keep Lazarus distribution slim and light.
In principle only components needed for Delphi compatibility or the IDE itself are included, although there are some exceptions.
Online package installation is essential in this strategy.
I don't understand why a rarely used component should be included in the distribution when it can easily be installed online. It would be dummy to include it.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: More componenets.
« Reply #13 on: March 02, 2021, 12:55:08 am »
I dare say the same could apply here.

Well, I would not go quite as far. Yes it is true, if you want to discuss a new idea with the actual core team, the mailing list may be the better place. But that is, if you actually seek to contribute yourself. Do some work yourself. And even then, in most cases you find that you will get responses on the forum.

New ideas are fine. Occasionally core devels have picked up one from the forum too (I know I have). But most of the cases, even good ideas will need someone to contribute.
That said, your contribution can be to lobby for some other user to implement your idea and contribute it. I don't recall having seen that successful (unless accompanied by a bounty).
But well yes, lobbying is fine too. (So long as you manage your expectation accordingly).

Anyway, the task has been outlined. Now, if someone shows up to whom the shoe fits...


Martin_fr

  • Administrator
  • Hero Member
  • *
  • Posts: 9792
  • Debugger - SynEdit - and more
    • wiki
Re: More componenets.
« Reply #14 on: March 02, 2021, 01:04:27 am »
Also include-all => still means you have to test each component, and without description may overlook plenty of its features.

On the other hand, if a maintainer (team) for OPM evolves, and works on the presentation...
https://packages.lazarus-ide.org/
- Add images.
- Make metadata like Catecgory, Widgetset, ... avail on the web - like it is in OPM.
...

That could be a much better mean to explore...

And yes, make sure people know about it.

 

TinyPortal © 2005-2018