Re: [Gimp-developer] Progress of Asset / Plugin manager



Hi!

On Wed, Jan 2, 2019 at 1:57 AM Michal Vašut <michal vasut gmail com> wrote:

Happy new year,


Happy and fun new year!

I have 2 questions about plugin manager and since there is already thread,
I will use it.

1. Will the manager support binary extensions? ... Well scripts will run
anywhere (I think), but binary (compiled) extensions are platform specific
and there are some devs, that only creates extensions in their platform and
don't care about others. Wouldn't that (platform support) be somehow marked
in metadata?


Yes, but in order to distribute them, we will have to set up  build servers
(for various platforms) because our upstream repository server won't just
distribute third-party built binaries without any security nor review.
Though we will be able to add some exceptions for some plug-ins with safe
sources, such as G'Mic, created by a well known public research facility.


2. Will the manager support dealing with dependencies (like if the
extension requires some library I will download it or if no one uses this
library I will remove it) or every extension will have to contain every
library it needs?


It will support dependency to GIMP versions (for instance if it requires an
API released in a given GIMP version) and to other extensions (an extension
can depend on another extension). I have not planned any other kind of
dependency so far.

Jehan


Thanks for answer.

Michal

On Wed, Dec 19, 2018, 15:40 Michal Vašut <michal vasut gmail com wrote:

Ok, no problem...

Yeah, the best way is to do without asking, but that is problem when you
don't have skill :-D <=> that was also reason why I was asking in the first
place - Gimp (its C code) is quiet hardcore and therefore there is so few
devs capable (and willing) to contribute.
Ok, thanks for making it little bit more clearer and have a nice Xmas
holidays.

Michal

On Wed, Dec 19, 2018, 13:12 Jehan Pagès <jehan marmottard gmail com
wrote:

Hi!

On Wed, Dec 19, 2018 at 1:16 AM Michal Vašut <michal vasut gmail com>
wrote:

Uff, I have feeling (from your text) like I've been pierced by
thousands of swords. I've meant no offense nor asked from you to do
anything. I've only asked the reason why and from your response I've found
the reason is historical. That's all I've wanted to hear and I fully
understand that transition to some modern technology is pretty resource
expensive or impossible (in my work me and team, we are maintaining and
improving 20+ years old legacy monster code written in Delphi, so be
ensured that I quiet know what you are talking about)


Yes sorry. My answer was definitely a bit annoyed, I should not have
written it this way.
It's just that we get this question once every few months (maybe more, I
don't follow all discussions/ML much) and regular requests to change to
this or that language (whatever is the current fashion, javascript, python,
rust…). It's just a bit annoying. Also the time I wrote this answer (10PM)
probably did not help.

But in any case, I should not have written away any frustration to you.
So, sorry again for this.
As you say, yeah the shorter answer is "it's historical".
Let's keep it at it and pretend I have not written the previous answer.
;-)
Thanks!

Jehan

P.S.: this said, I really meant it when I say I am all for genius
contributions proving us wrong. For this or other topics, the best option
is often to just propose a patch. Of course it's a risk and is high work
(like really really; I would expect this to take many many many months full
time to port every single bit), but that's also what I do when I want to
contribute to some other software. I don't wait for approval, I do and hope
for the best. :-)

On Tue, Dec 18, 2018, 22:00 Jehan Pagès <jehan marmottard gmail com
wrote:

Hi!

On Tue, Dec 18, 2018 at 9:05 PM Michal Vašut <michal vasut gmail com>
wrote:

Cool, thanks for info. I've checked the page on your blog and have
some notes to metadata that would be included:

<requires>
  <id version="2.10" compare="ge">org.gimp.GIMP</id>
 </requires>

I assume that "ge" value of "compare" attribute means "greater or
equal". That's the possible way to do it. Here is another way how other
systems deals with the same problem:
https://madewithlove.be/tilde-and-caret-constraints/
And here some related tester: https://semver.npmjs.com


I am not going to change the appdata format. If you absolutely wish to
go this way, you can contribute to the format specification (they are
hosted at freedesktop), though to be fair, I doubt they are going to change
it (it has been used for years now, and is widely spread on Linux
distributions: basically all software management is based on this
nowadays), nor do I see much need (as you say yourself even!).

I don't say one way is better than other, it's just to prevent you
reinventing the wheel (in case you are not aware of this way).


Well the whole point is to not reinvent any wheel, which is why I am
not going to change anything here.


2nd thing, I'm missing Tags section in metadata, it's not necessary,
but nice to have - great sorting / grouping ability.


That's what the `<keywords>` tag is for, I believe.

---

BTW I've also checked the code in repo (for the 1st time) and
realized that it's written in C. Just out of curiosity, why is that?
Historical reasons? Performance reasons? IMHO it brings huge complexity


For the same reason I am not going to change the appdata format: when
you contribute to a software, you don't try to change all its basics. And
GIMP is indeed written in C. This has been so for 23 years now. I don't see
why it is complex by the way. I have programmed in a lot of languages (many
script languages as well, I even maintain some software mostly made in
Python, etc.) and I find C just fine.


* in code itself - only emulation of OOP through GObject creates lot
of code
* for developers - the graphical math, theorises algorithms are
difficult on its own, now here is C code that is in this age quiet hardcore
to use with its non-OOP / structured paradigm ( most of devs code in OOP
languages these days). Well I can definitely read and understand what's
going on in the Gimp code, but it would take quiet long time to write
something useful.


I am not interested in discussing a port of GIMP to some language X,
if not for the first reason that the work required to do such port would
just block us for years (and you would not see GIMP 3 for like 10 years?!
Neither the extension manager as well of course, since we'd have no time to
implement it anymore, nor any of the cool new features we are bringing in
nowadays).

Now I am happy to be wrong, and if someone were to port the GUI part
of GIMP into some well maintained and interesting/powerful/simple language,
making any graphics change easier, without any regression or feature loss,
if this person contributes us a working patch tomorrow, I test it, it just
works and keeps all the "promises", then I'd be the first to consider the
patch for inclusion (though I would not be the only one to decide). But
other than this, please don't ask us to do some work which we find not
useful. I have a lot of things where I want to see GIMP improve (see my
signature; we are making an animation film, as a professional studio, and
my main worry is not the language of GIMP but what it can do and how, and
if it is stable/fast) and spending years to change our base language is
certainly not one of these.
Sorry. :-)

Jehan

--
ZeMarmot open animation film
http://film.zemarmot.net
Liberapay: https://liberapay.com/ZeMarmot/
Patreon: https://patreon.com/zemarmot
Tipeee: https://www.tipeee.com/zemarmot



--
ZeMarmot open animation film
http://film.zemarmot.net
Liberapay: https://liberapay.com/ZeMarmot/
Patreon: https://patreon.com/zemarmot
Tipeee: https://www.tipeee.com/zemarmot



-- 
ZeMarmot open animation film
http://film.zemarmot.net
Liberapay: https://liberapay.com/ZeMarmot/
Patreon: https://patreon.com/zemarmot
Tipeee: https://www.tipeee.com/zemarmot


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]