Werner,
I can certainly sympathise with with your workload for maintaining the
OPM archive, and your reply was very useful. There are two threads that
lead from this for me. The first is to get IBX on OPM up-to-date and
that we should deal with by direct EMail. The second is really more
general and to hopefully have a wider discussion on the how the OPM
archive should be maintained in future.
Looking at your response, the issue that leapt out for me is
"accountability". You seem to be taking on too much accountability when
it comes to code published on the OPM archive and especially when it
comes to checking that the code is at least compilable and is of an
appropriate standard.
You said "There should be at least one sample project. Otherwise I have
no way to test whether the code is working (I am not willing to write
test projects for foreign code)."
This implies that you are going to compile, test and look at the results
for every package submitted to OPM and potentially for each update (i.e.
lots of work for you). In the case of IBX you do at least have 17
example projects to choose from plus a comprehensive regression test
suite with 29 individual tests for the main package and a further 22 for
the underlying Firebird Pascal Interface package (fbintf) - but you need
to set up your own Firebird server to perform the tests/examples.
The regression tests make for a very stable and reliable package, but it
seems to be asking a lot for you to check the results and validate the
package as "good to go". My day job has been in safety critical aviation
software and so I am well aware as to how much work goes into third
party software certification.
Have you thought about requiring that submitted packages are signed by
the author/submitter? The author can then take responsibility for at
least the provenance of the code, correct licensing and that it compiles
- I would not go as far as "fitness for purpose" as open source software
can only work if the user accepts that part of the deal.
That way you can limit your checks to when the package is first
submitted and with updates the checking can be limited to signature
verification with the occasional deeper check.
Do you also send out automated regular EMails (e.g. every 6 months after
a package was first submitted asking authors to re-affirm that the
package is up-to-date - and removing any where the author has gone
AWOL)? If not, then that would be one way of avoiding stale packages on
the archive.
Tony Whyman
On 11/01/2025 18:50, Werner Pamler via lazarus wrote:
First of all: OPM was written and maintained by Balazs Szekely (aka
GetMem). For a year, however, I have not heard from him any more - I
really really hope that he is doing fine. For the moment OPM is
maintained by myself.
Your questions:
Am 11.01.2025 um 16:17 schrieb Tony Whyman via lazarus:
1. Who makes the decision about what is uploaded to the OPM repository?
2. How is a package put there and what precautions are taken to
ensure that the package is genuine and does not contain malicious
code - especially when the upload was not done by the original author.?
3. How are the OPM repository maintainers told that a new version of
a package is now available?
When the package owner has the feeling that a new version should be
released to OPM he notifies the OPM maintainer by mail to
o...@lazarus-ide.com containing a link to the new version or a zipped
file as attachment. I look over the code, compile it and run some of
the sample projects provided.
Anybody can submit packages for inclusion in OPM. Of course, I don't
know any of the submitters personally, and I have no idea whether
he/she is the original author. So, sorry that the your IBX files made
it into OPM without your knowledge. But I don't see a way how to
improve that without building up a huge beaurocracy.
Criteria to accept a package are for me (maybe they were different for
Balasz):
* The library must be a package. Individual, isolated units cannot
be handled by OPM.
* It must contain a brief description in the meta data and package file.
* It must contain a statement on the license. Commercial licenses
are rejected. I also reject packages which "smell" like being
pirated (for example, when there is the original Borland header in
the units).
* The package and its files must be in English - this is an
international community, and there is no other way to communicate.
* It must compile at least under the current releases of
Lazarus/FPC. Of course, the more combinations are welcome. The
working combinations should be specified in the meta-data (json),
as well as the widgetset for which it works.
* There should be at least one sample project. Otherwise I have no
way to test whether the code is working (I am not willing to write
test projects for foreign code).
* Ideally there should be some documentation, either included as
help files in the package, or as a separate wiki page, or similar.
* The package submitter must express his/her commitment to maintain
the package if, for example, it does not compile any more due to
compiler or widgetset changes. Unfortunately we have many
unmaintained packages already now, and I tend to remove a
non-functioning unmaintained package.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus