← Back to team overview

kicad-developers team mailing list archive

Re: Plugin/3rd party content manager

 

OK, I refreshed my memory. I have a group in github (not gitlab):
https://github.com/kc-plugin-publishers. You can check out there what I
have written. There are three things: the manager script (plugin), example
dummy plugins to be installed, and the description files (.plugininfo
files). Now when I look back, the instructions aren't super clear. But you
should be able to see what's going on.

Notice that the script was written with KiCad python plugins in mind at
first, but also for more generic use. There's nothing which prevents
applying this to any file content. You can see in the description file
template that any files can be installed. If I remember correctly the
limitation right now is that you can't install to any location. That should
be changed so that the destination directory is configurable by the end
user (but not by the content description file) so that e.g. KiCad libraries
can be installed to their own directories.

It should be needless to say that nothing is set in stone - names,
architecture, file format, language etc. This was just a proof of concept.
The number one lesson is that you can use the existing infrastructures
(downloadable files in net or even local files) to create a simple content
manager where anyone can write a content description file and publish it
(without being a developer or having any special priviledges or skills),
and the content manager can download, install and uninstall those packages.
There's no need to "package" anything. The upstream developers of content
don't have to know anything about this. You can test this by writing a
.plugininfo file for an existing plugin.

Eeli Kaikkonen

ti 26. marrask. 2019 klo 10.23 Eeli Kaikkonen (eeli.kaikkonen@xxxxxxxxx)
kirjoitti:

> I'm in a hurry right now, so I just give few points. You can find some
> discussions in the forum (I'll find them later). What I learned when I did
> some coding is this:
>
> - Ideal content manager is a separate backend and frontend and reusable
> for other projects, too.
> - It's really general purpose and actually not tied to KiCad, at least the
> backend.
> - It doesn't need (and shouldn't) be tied to KiCad even with code, except
> minimally. It can be a plugin or separate application - there's no need to
> change KiCad.
> - It can use existing infrastructures like github, gitlab or any zip files.
> - Anyone can easily write a description file for a package and publish it.
> There's no need for actual packages (a zip file of the content is enough,
> or even any downloadable files).
> - It's difficult to decide what it should and should not do so that it
> doesn't become a full fledged package management system, is simple enough
> but also powerful and flexible enough. (Think about versioning of content
> and automatic handling of dependencies.)
> - I suggest using python so that it can be a plugin.
> - Technically the most difficult part is probably networking (needs all
> the boring stuff like error handling and should be asyncronous to be good;
> that's where I left off).
>
> I already coded a command line script which can work as plugin. It can
> install itself from gitlab when I click the KiCad plugin menu item, so it
> basically shows how the infrastructure works. Actually it's possible to
> write a package description file for any KiCad plugin and it will install
> it. I already did some.
>
> Eeli Kaikkonen
>
>
> ti 26. marrask. 2019 klo 3.46 Andrew Lutsenko (anlutsenko@xxxxxxxxx)
> kirjoitti:
>
>> Hi Seth,
>>
>> Yes, I planned to write up my design in google doc and open it to
>> comments. I think that works best for public discussion, even though it
>> requires having a google account.
>>
>> Design I'm thinking about requires 0 custom backend work. It will rely
>> entirely on publicly available infra such as github/gitlab hosting and
>> ci/cd pipelines. Admittedly that imposes some limitations on what we can do
>> (and I will outline them in my doc) but we can always add custom backend
>> system later to complement free infra.
>> Assuming design is accepted I am interested in doing at least a minimally
>> functional implementation. I have a lot of ideas but some of them will have
>> to be implemented later because it's not a trivial task.
>>
>> Ok, I'll start working on it and will hopefully share the doc by end of
>> this week.
>>
>> Andrew
>>
>> On Mon, Nov 25, 2019 at 4:16 PM Seth Hillbrand <seth@xxxxxxxxxxxxx>
>> wrote:
>>
>>> On 11/25/19 3:21 PM, Andrew Lutsenko wrote:
>>>
>>> Hi all,
>>>
>>> Is anyone currently working on some sort of plugin manager or 3rd party
>>> library manager?
>>> https://bugs.launchpad.net/kicad/+bug/1823733
>>>
>>> I have some ideas that I want to write down in a form of high level
>>> design document and share with the group for discussion. If there is
>>> already some work done in that direction I'd like to avoid duplication of
>>> efforts.
>>>
>>> Regards,
>>> Andrew
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>> Hi Andrew-
>>>
>>> There are a few ongoing discussions about what needs to be included and
>>> the backend server design needed in addition to how the software would
>>> interact with the data.
>>>
>>> I'd be interested to see the design document you come up with.  If you
>>> are interested in doing the full implementation, it would be good to see
>>> your thoughts in the design document.  If you do write this up, please
>>> include it in a format/locate that allows for content-level suggestions
>>> such as Google Documents or markdown document on GitLab/GitHub.
>>>
>>> Thanks!
>>> -Seth
>>>
>>> --
>>> KiCad Services Corporation [image: KiCad Services Corporation Logo]
>>> Seth Hillbrand
>>> *Lead Developer*
>>> +1-530-302-5483‬ <+12126039372>
>>> Davis, CA
>>> www.kipro-pcb.com    info@xxxxxxxxxxxxx
>>> https://twitter.com/KiProEDA <https://twitter.com/KiProEDA>
>>> https://www.linkedin.com/company/kicad
>>> <https://www.linkedin.com/company/kicad>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
>

References