[03:08:52] If I open a function and click the + to add an implementation, the default will be composition and not code, and the Publish button will be grayed out. [03:10:16] If I change from composition to code, the code field will be an empty textarea (with syntax highlighting), the language field will by an empty dropdown, and the Publish button will be grayed out. So far, so good. [03:11:02] If I select "JavaScript" or "Python" as the programming language in the dropdown, short boilerplate code will be inserted into the textarea, and the Publish button will become clickable. [03:11:49] Is it by design? It would make more sense to me to make it clickable only after I change the boilerplate. Is there ever a reason to publish the boilerplate that doesn't do anything? [03:14:54] Another small corollary is that if select a specific programming language from the dropdown, but then change back to composition, the publish button stays clickable, but if I actually try to click, the user interface complains that I didn't fill the function for the composition. I guess that it's not harmful, but it would make more sense to me if the Publish button [03:14:54] went back to grayed out. [09:26:15] Hello, Amir, this is expected behavior, not so much by design but by technical compromise. We currently don't have a very complex system to enable or disable the publish button depending on the existing content; the publish button depends on a flag that is set to to true when it detects that there have been content changes. However, it does not compare the current [09:26:15] state to the in [09:26:15] itial state; for example, notice that if you edit an object, make a small change, and then change it back to the initial value, the Publish button stays active. [09:26:16] To avoid bad or empty content being saved we have validation process, that as you mentioned, tells you when values are empty and stops the publishing process. [09:26:18] But we could definitely build a much more sophisticated Publish button enabling/disabling system, probably not prioritized for this Q though. Would you like to add a phab ticket for this? [11:53:49] Will do. [11:54:55] By the way, why are "Javascript" and "python" written in all-lowercase in that dropdown? [11:54:57] https://tools-static.wmflabs.org/bridgebot/5c29a8e0/file_71893.jpg [14:55:37] This selector displays the code (Z61K1) of the programming language, not the name. But, apart from this, the data is hardcoded, so even if the Z61K1 of Z600 is changed, this will not be reflected in this selector. [14:55:37] There's a task to remove the hardcoded list of languages and return the available list with an API: T296815 [14:55:39] But there's no plan that I know of about showing the label instead of the language code.