Recent

Author Topic: Online Package Manager  (Read 834827 times)

guest58172

  • Guest
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: 2330
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: 4458
  • 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.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

shobits1

  • Sr. Member
  • ****
  • Posts: 271
  • .
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: 271
  • .
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

  • Hero Member
  • *****
  • Posts: 672
    • 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.
OS: Windows 10 (64 bit) / Linux Mint (64 bit)
       Lazarus 3.2 FPC 3.2.2
       CodeTyphon 8.40 FPC 3.3.1

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
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.

guest58172

  • Guest
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)

balazsszekely

  • Guest
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: 2737
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: 4449
    • https://lainz.github.io/
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.

balazsszekely

  • Guest
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: 271
  • .
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: 4458
  • 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.
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
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.

 

TinyPortal © 2005-2018