* * *

Author Topic: Online Package Manager  (Read 65675 times)

BBasile

  • Sr. Member
  • ****
  • Posts: 282
Re: Online Package Manager
« Reply #30 on: October 06, 2016, 06:40:23 pm »
Hi,

 I decided to implement the online package manager(opkman). The first alpha version is ready and it works like this: the packages are zipped and stored in a webserver(repository) along with a json file. I chose zip to minimize server load. The json file contains all the necessary info about the packages. Once installed into the IDE, the opkman downloads, then serialize the json file into a package list. The list is  displayed in a tree. On request the packages can be downloaded or/and installed. For now the repository is read-only, it contains only eight, well known(I guess?) packages. The nature/type of the eight package is irrelevant for now, since we are only testing the functionality of the opkman. Few notes

It looks nice. Why don't you use a GitHub or BitBucket repository ?

molly

  • Hero Member
  • *****
  • Posts: 1561
Re: Online Package Manager
« Reply #31 on: October 06, 2016, 07:26:18 pm »
@GetMem:
You are already getting enough feedback from experienced programmers so i'll stop adding (more) confusion :-)

However, Juha made some good valid points. You can always opt for keeping (manual) control on the package description files yourself.

It is always possible (further down the road) to have different signed packages, official, semi-official, community, and user packages (just to name a few categories). That way it would be possible for individual users to let their own packages be managed by the packagemanager, yet do not bear (any) impact on the official packages. If users  wish to do so they can share their packages amongst each other by providing the descriptions or add personal url repositories to their own copy of the package manager.

It would perhaps be interesting to implement such approach as it allows for users to experiment creating their packages before asking permission to have them added in an 'upgraded' fashion, e.g. from user, to community, from community to semi-official to finally end up in official state (if that would ever happen).

Initially it would be more interesting to get things started, and along the way slowly decide what would be better to implement and what not. There is many many many food for thoughts there.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2848
  • I like bugs.
Re: Online Package Manager
« Reply #32 on: October 06, 2016, 08:27:55 pm »
Quote
from user, to community, from community to semi-official to finally end up in official state

Such classification will not work in practice and is not even useful.
There will be good and popular packages, then there will be less good and less popular ones.
Or, maybe an automatic integration to GitHub and SourceForge (if possible) would give "user" packages while the managed packages from server are the "community" packages.
The package manager must differentiate between those 2.

A useful classification would be a user feedback and voting system. It will need server side SW and maybe user authentication.
Let's not think about it yet.

Lazarus distribution has some "official" packages. Some of the current ones can be moved elsewhere when the online system works. One example is the Industrial package.
Ideally Lazarus distribution should include only packages the IDE itself needs. It keeps the distribution slim.

shobits1

  • Sr. Member
  • ****
  • Posts: 275
  • .
Re: Online Package Manager
« Reply #33 on: October 06, 2016, 08:30:17 pm »
I think it should show the status of the current Installed package more visually, maybe using color codes:
Green: for the already installed packages.
Yellow: for the installed and need update packages.
Neutral: for the other packages.

It may also be helpful(when the list grows) to have checkbox filter for those status.

shobits1

  • Sr. Member
  • ****
  • Posts: 275
  • .
Re: Online Package Manager
« Reply #34 on: October 06, 2016, 08:33:02 pm »
It should be helpful to provide (if available) URL for Wiki, documentation, Tutorial, Demos... in the package info.

JanRoza

  • Sr. Member
  • ****
  • Posts: 433
    • http://www.silentwings.nl
Re: Online Package Manager
« Reply #35 on: October 06, 2016, 09:29:01 pm »
It works great but I see that packages installed via opkman are placed in a subfolder 'Packages' under the opkman folder whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder.
I think opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.
Other than that: opkman is a great Lazarus add-on.

lainz

  • Hero Member
  • *****
  • Posts: 1840
  • Nace una flor, todos los días sale el sol...
    • BGRABitmap
Re: Online Package Manager
« Reply #36 on: October 06, 2016, 09:43:05 pm »
I think opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.

I think that is not a good idea.

What if I have multiple lazarus (I have) and I want all the components installed in all of them. I can use this package manager to achieve that but only if the folder is as now: no duplicates, no lost packages.

BBasile

  • Sr. Member
  • ****
  • Posts: 282
Re: Online Package Manager
« Reply #37 on: October 06, 2016, 09:43:15 pm »
Quote
opkman should save the packages in the same location as Lazarus does to keep things uniform and simple.
No, under Linux it would suck because authentification would be required (Lazarus Components folder is not writable without sudo)

GetMem

  • Hero Member
  • *****
  • Posts: 2042
Re: Online Package Manager
« Reply #38 on: October 06, 2016, 09:50:50 pm »
Quote
@BBasile
It looks nice. Why don't you use a GitHub or BitBucket repository ?
I will do my best to support GitHub, BitBucket, SourceForge, but at a later stage.

Quote
@molly
Initially it would be more interesting to get things started, and along the way slowly decide what would be better to implement and what not. There is many many many food for thoughts there.
My thoughts exactly.

@Juha
Did you get the chance to run a few tests?

Quote
@shobits1 I think it should show the status of the current Installed package more visually, maybe using color codes:
Green: for the already installed packages.
Yellow: for the installed and need update packages.
Neutral: for the other packages.
Actually this was implemented, but the package manager looked like a cockatoo bird.  :D Too many colors, I gave up.

Quote
@shobits1
It may also be helpful(when the list grows) to have checkbox filter for those status.
Please see attachment.

Quote
@JanRoza
whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder
Under linux and osx the component folder sometimes is read only. Even under windows(especially win 10) you can run into privilege issues.

Phil

  • Hero Member
  • *****
  • Posts: 2041
Re: Online Package Manager
« Reply #39 on: October 06, 2016, 09:56:14 pm »
Visually it looks pretty good. One minor typo:

Dependecies --> Dependencies.

If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:

https://macpgmr.github.io/MacXPlatform/LazXProj.html

lainz

  • Hero Member
  • *****
  • Posts: 1840
  • Nace una flor, todos los días sale el sol...
    • BGRABitmap
Re: Online Package Manager
« Reply #40 on: October 06, 2016, 10:03:29 pm »
Visually it looks pretty good. One minor typo:

Dependecies --> Dependencies.

If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:

https://macpgmr.github.io/MacXPlatform/LazXProj.html

Good question. BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.

GetMem

  • Hero Member
  • *****
  • Posts: 2042
Re: Online Package Manager
« Reply #41 on: October 06, 2016, 10:36:58 pm »
Quote
@Phil
isually it looks pretty good. One minor typo:
Dependecies --> Dependencies.
Thanks! Corrected, link updated.

Quote
If a zip has more than one .lpk, will each package have its own checkbox? Eg, lazxproj_src.zip has two .lpk, one runtime, one installable:
Yes, each package will have its own checkbox. I have to redesign the serialization.

Quote
@lainz
Good question. BGRA Bitmap has 4 packages on it, what is installed? the packages are one for lcl, fpgui, nogui and open gl.
One by default, the others is up to user? Except when one depends on the other. This is getting very complicated fast.  :)

shobits1

  • Sr. Member
  • ****
  • Posts: 275
  • .
Re: Online Package Manager
« Reply #42 on: October 06, 2016, 11:05:21 pm »
Quote
@shobits1
It may also be helpful(when the list grows) to have checkbox filter for those status.
Please see attachment.
It needs a filter for the packages with available new updates.

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2848
  • I like bugs.
Re: Online Package Manager
« Reply #43 on: October 06, 2016, 11:56:57 pm »
It works great but I see that packages installed via opkman are placed in a subfolder 'Packages' under the opkman folder whereas all other packages installed in Lazarus reside in the folder 'components' under the Lazarus folder.

Not true.
Only the packages included in Lazarus distribution reside under 'components' folder. Other packages can be placed anywhere.

lainz

  • Hero Member
  • *****
  • Posts: 1840
  • Nace una flor, todos los días sale el sol...
    • BGRABitmap
Re: Online Package Manager
« Reply #44 on: October 07, 2016, 12:03:39 am »
GetMem you can host your package manager on GitHub, so it's easy to get a newer version when you're developing it.

 

Recent

Get Lazarus at SourceForge.net. Fast, secure and Free Open Source software downloads Open Hub project report for Lazarus