[Geany-Devel] Spawn module API

Thomas Martitz 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
>>>>       spawn_async_with_pipes
>>>> 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 
>>> next
>>> 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[0]. 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).

Best regards


More information about the Devel mailing list