Based on discussion in the this thread, I prepared concept for a new (enhanced) user’s library system - Public Library.
This I mean a library, which is public accesible and is in the a special form. This include a list of the contents, licence term, logo image, version number, etc. (can be defined by template).
This library can be accesible via gihub/gitlab or via url to zip file (as I wrote - in preddefined structure!).
Two types of the URL:
- URL to github/gitlab project
- URL to zip file anywhere in the internet
First URL can be extended by github features (issues, comments,…)
Second type of URL (zip file) is simple for sharing but without git based features.
This make easy to add a new library of these type.
Community libs can be next step.
Use of Public library
In the LibrePCB library manager can be new Tab (similar as Install library) with name “Public Library”. This Tab will include a new text field for entering a url for new public library.
After enter address, LibrePCB check destination for library present (and structure integrity of course). If yes, saves url into internal list of available public managed libraries. User can anytime can mark the libraries in the this list to install or upgrade.
List of the entered public libs will be saved into workspace configuration and can be exported/imported to/from text file for easiest sharing.
How to determine which libs are in the new version?
From my point of view it is simple: after start LibrePCB, background task check all public library url and compare remote version file with last installed. If difference found, user will be notified by message. Next steps are in the user’s hand, if he wish or not upgrade libs. If yes, upgrade can be done via library manager in same way as LibrePCB libraries with one difference:
before upgrade it, LibrePCB library manager archive actual library into zip file (create backup). User can anytime do downgrade it.
This use of public library can be helpful for beginners and for extend of LibrePCB use.
Yes, I know, it the LibrePCB library manager exist option for download public library from web. But this is only for a zip file without basic version control.
Using of the Public Library for users can be little bit easier, share friendly, and as good start for Community Library system.
Community Library system will be little bit complicated I think.
It’s controlled or enhanced public library concept.
Community admins should check all libraries before sharing, and users can rate, comment each library. And all things as you wrote.
And this will need more human forces.
What do you think dear users? Will be this concept better for sharing libraries and make LibrePCB more useable for beginners and designers?
What do you think @ubruhin ? It’s hard to implement?