[Geany-Devel] Spawn module API
kugel at xxxxx
Sun Jun 28 21:31:24 UTC 2015
Am 28.06.2015 um 05:14 schrieb Matthew Brush:
> On 2015-06-27 07:54 PM, Lex Trotman wrote:
>> On 28 June 2015 at 12:40, Matthew Brush <mbrush at codebrainz.ca> wrote:
>>> On 2015-06-27 12:46 PM, Dimitar Zhekov wrote:
>>>> An updated list of the API-s asked to remain public:
>>>> me WIF*
>>>> lex spawn_get_program_name
>>>> lex spawn_check_command
>>>> me/lex spawn_kill_process
>>>> lex spawn_async
>>>> me/lex spawn_with_callbacks
>>>> me spawn_write_data
>>>> lex? spawn_get_exit_status_cb
>>>> lex spawn_sync
>>> We should only export what you have concrete plans to use during the
>>> cycle. If Lex wants update plugins during the next cycle to use
>>> other parts
>>> of the API, we can expose them at the time that the PR is made. No
>>> point to
>>> speculatively expose API that nobody has immediate plans to use.
>> If no API is available then nobody will have any plans so no API is
>> needed so nobody will have any plans for the egg so no chicken is
>> needed so ....
> It can easily be made available on-demand, as normal.
> We should only be concerned about what Scope is requesting as it has
> concrete plans to use them during the next development cycle and
> doesn't want the plugin to depend on the next development version of
> Geany during that time. There's no reason to speculatively rush
> other APIs in if no plugins have immediate plans to use them nor have
> the concern about depending on the development version of Geany.
Depending on a development version of Geany can be a concern.
I don't want to judge on the specific spawn_* APIs. But why not just
release with the APIs being available (linkable by plugins) without
already setting them officially in stone. In other words, find a method
to mark these APIs experimental so that we can more easily change or
remove them. This experimental flag should be set for at least one
release cycle (but perhaps more depending on the situation). Then only
plugin developers that are prepared to adapt their plugins quickly can
use them (likely the same plugin developers who pushed the API into
Geany for their plugins in the first place). Arguably, this should be
the default process for any new API (IMO).
More information about the Devel