Recent

Author Topic: Ideas for a Free Pascal / Lazarus Community Project (on Google App Engine)?  (Read 14911 times)

mjustin

  • Full Member
  • ***
  • Posts: 199
    • Habarisoft
Currently I am working on web applications which run on Google App Engine, a highly scalable environment for applications written in Java, Python and Go. I am also writing Delphi and Free Pascal components and libraries and open source tools since over ten years.

As a personal contribution to the open source "ecosystem", I would like to invest some of my spare time creating a web based community project for the users of Free Pascal and Lazarus.

This could be, for example,

... a online database for libraries and components for Free Pascal / Lazarus, where users can post reviews and ratings
or
... a web application which is integrated in the Lazarus IDE over a JSON / XML (REST)
or
... a service which uses a template engine to generate boiler plate source code (like http://hbm2pascal.appspot.com/ does)
or
... (your idea here) *)

*) but not yet another bug tracker, forum or chat system

The App Engine infrastructure provides a lot of data storage capacity and CPU usage in its free account, and also many services for caching, image processing, messaging (XMPP), Ajax Push, task queues and cron jobs, so such a web application could offer very advanced functionality.

Example Project Online
For a first impression how the look and feel of such a web application could be, there is my current project for users of the madExcept bug report add-on for Delphi at http://madxnet2.appspot.com/. Delphi bug reports / crash reports can be uploaded over HTTP and browsed online. The madxnet service is free of charge, and no signup is required to submit and see bug reports in the test instance.

Summary
* in my spare time I would like to build a web application which is specially designed for useful tasks in the interest of Free Pascal / Lazarus developers
* this app would run in the cloud and would be free of charge
* I have no idea yet which service it should provide, so I am asking for suggestions ...

Please feel free to post your ideas here or send them to info@habarisoft.com

Thanks and regards
--
Michael Justin
habarisoft - Enterprise Messaging Software for Delphi
http://www.habarisoft.com/
« Last Edit: November 06, 2011, 03:38:38 pm by mjustin »

jwdietrich

  • Hero Member
  • *****
  • Posts: 1232
    • formatio reticularis
Great idea!

Useful additional functions could cover:
  • A search engine for ObjectPascal code snippets
  • A search interface for the Lazarus Code and Component Repository
  • A cross-platform infrastructure for Xgrid services
« Last Edit: November 06, 2011, 04:11:33 pm by jwdietrich »
function GetRandomNumber: integer; // xkcd.com
begin
  GetRandomNumber := 4; // chosen by fair dice roll. Guaranteed to be random.
end;

http://www.formatio-reticularis.de

Lazarus 2.2.6 | FPC 3.2.2 | PPC, Intel, ARM | macOS, Windows, Linux

mica

  • Full Member
  • ***
  • Posts: 196
You can post this on the lazarus mailing list for greater audience

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4468
  • I like bugs.
... a online database for libraries and components for Free Pascal / Lazarus, where users can post reviews and ratings
or
... a web application which is integrated in the Lazarus IDE over a JSON / XML (REST)
or
... a service which uses a template engine to generate boiler plate source code (like http://hbm2pascal.appspot.com/ does)

An idea that many people had is installing libraries and components from remote servers directly from Lazarus.
It would use the already existing FPMake and FPpkg. See:

 http://wiki.lazarus.freepascal.org/FPMake
 http://wiki.lazarus.freepascal.org/fppkg

Unfortunately I don't know much details about it.

To actually implement it you need to dig information from mailing list and existing source. New development features are not always advertised much and there is a danger of doing duplicate work.
Once you know what already is there and what needs to be done then just go ahead.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
An idea that many people had is installing libraries and components from remote servers directly from Lazarus.
It would use the already existing FPMake and FPpkg. See:

+1, seems like a very worthwhile idea: it gives people an easier way to not reinvent the wheel by using existing packages  :D
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

mjustin

  • Full Member
  • ***
  • Posts: 199
    • Habarisoft
Many thanks for the suggestions so far, I will have a closer look at the fppkg and fpmake tools. If there are pointers to mailing list posts which give additional hints about 'what needs to be done' this would be helpful, if I understand correctly the service would be a repository for fppkg description files?

As described in http://www.mail-archive.com/lazarus@lists.lazarus.freepascal.org/msg12073.html :

Quote
The mechanism is basically functional. What needs to be done is using it:

Setting up a server with all packages installed, and testing that.
« Last Edit: November 07, 2011, 07:58:56 am by mjustin »

JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4468
  • I like bugs.
This is one thread where an installer was discussed:
 http://lazarus.freepascal.org/index.php/topic,12827.0.html

Darius was implementing a Lazarus Package Manager but I didn't even know about it then.

Now I just tried it but can't figure out how to use it. Maybe I just don't have proper fpmake packages.

If user can easily search and install packages, like in good Linux distros, it would a really cool feature.
The master source of many Lazarus packages will be in their authors servers / repositories. Should the installation server copy them and maybe create fpmake files for them? Or should it just link to the existing packages?
How do other programming environments handle it? For example Perl's CPAN is often mentioned.
A comprehensive and easy-to-use package repository has partly made Perl and Python so popular.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

mjustin

  • Full Member
  • ***
  • Posts: 199
    • Habarisoft
It looks like fppkg already supports installing packages from remote repositories:

Code: [Select]
>fppkg list
Name                 Installed        Available
embweb               -                0.9.0-926
gecko                -                0.9.0-1504
jquery               -                0.9.0-842
lazmkunit            -                0.9.2-1
lnet                 -                0.6.4-2534
webdesign            -                0.9.0-906

the fppkg install comand then is meant to download and install the package.

If this is already implemented and working, my part could be to build a web application which provides more public and private repositories, and allows authors to upload their own packages.

Would this basically be what is needed? (I do not plan to implement new extensions inside Free Pascal and Lazarus or its command line utilities).


JuhaManninen

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 4468
  • I like bugs.
It looks like fppkg already supports installing packages from remote repositories:

How is the remote repository configured? There is a "mirrors.xml" link or similar in Lazarus Package Manager configuration.

Quote
the fppkg install comand then is meant to download and install the package.

If this is already implemented and working, my part could be to build a web application which provides more public and private repositories, and allows authors to upload their own packages.

Would this basically be what is needed? (I do not plan to implement new extensions inside Free Pascal and Lazarus or its command line utilities).

Could you explain your plan for public and private repositories. Is it like SourceForge or GitHub hosting projects?
Or is it like Torry's place where people can upload their own free or commercial SW.

To make your service interesting you must have many packages available. Then people may start to copy their stuff voluntarily.
If you only wait for the packages to come ... it will never happen. Then your site will be another "nice idea" but nobody really cares.

In practice you must find packages for Lazarus. There are quite many of them around but some are difficult to find.
Then send mails to their authors and ask them to support FPMake, but they are busy and won't do it so you can provide patches for it.
You can also copy the packages yourself if the license permits.

Or, maybe you should just link to the original location, I don't know.

For a smooth user experience the Lazarus side must be reworked, too. I tried the Lazarus Package Manager and I got only errors. It seems like completely broken to me.

Juha
Mostly Lazarus trunk and FPC 3.2 on Manjaro Linux 64-bit.

mjustin

  • Full Member
  • ***
  • Posts: 199
    • Habarisoft
Please understand that I am not an active Free Pascal / Lazarus user and never used fppkg / fpmake before. So I am still in browsing mode, hopefully not hurting anybody :)

Today I tried to install a package from the web with FPC 2.4.4 and already hit an error (see fppkg lazmkunit - "no method in an ancestor class to be overridden"). It looks like this unit is stored with some broken code in the official Free Pascal web repository. Where should I report this?

But it is much more than I expected: there is a working package repository online, it contains a rather short list of packages, the download can be initiated using fppkg install packagename. And it even resolves dependencies and downloads these first, just like other package managers do.

I guess there needs to be some documentation about the repository structure and 'design':

- are there different web repository areas per platform or per Free Pascal release?
- does the repository only contain source code or also precompiled binaries? (I guess it is only the source)?
- how does uploading to the web repository work, or is it a one-way system only?
- maybe there is some kind of metadata in the package source which contains developer / maintainer contact information.

If all these things get clearer and easier to use, I guess developers will enjoy it.

Regarding private repositories: for some projects (or for early project stages like alpha releases), developer or developer teams might prefer being invisible. The public repository would not list these projects until the project administrator pushes the button. It is not meant to be a way to separate commercial / closed source versus open source projects. (I guess that commercial users are not interested to store sources in the cloud).

 

TinyPortal © 2005-2018