unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org, pedz@easesoftware.com,
	Stefan Monnier <monnier@IRO.UMontreal.CA>
Subject: Re: Cutoff date for adding ruby-ts-mode?
Date: Fri, 30 Dec 2022 17:32:47 +0200	[thread overview]
Message-ID: <9fd271e5-5501-83de-0185-27a3c40eed26@yandex.ru> (raw)
In-Reply-To: <83mt7571cu.fsf@gnu.org>

On 30/12/2022 10:16, Eli Zaretskii wrote:
>> Date: Thu, 29 Dec 2022 23:39:37 +0200
>> Cc: Perry Smith <pedz@easesoftware.com>
>> From: Dmitry Gutov <dgutov@yandex.ru>
>>
>> Hi all and Eli in particular,
>>
>> How close are we to "hard freeze" date of Emacs 29, after which no new
>> tree-sitter modes should be added?
> 
> You have a day or two, and I hope this should be enough for adding new
> features.  (If they have still some rough edges, that could be fixed
> later on.)

Thanks, I'll try to verify now that everything is good with the pieces 
involved and get on with that.

>> I'm told the copyright papers might be signed next week.
>>
>> The code is largely functional: font-lock just needs minor updates; the
>> indentation has more problems, but it's still probably better to have
>> the new mode in Emacs 29, rather than not.
> 
> So I suggest you install that ASAP.

All right.

>> Also regarding indentation, Ruby community uses a bunch of different
>> styles, and it was my impression (could be wrong, though) that Perry
>> wanted to at least have ruby-ts-mode be able to use a different style
>> than what is currently ruby-mode's default. To that end, he implemented
>> a couple of user options.
>>
>> In bug#60186, I also implement a bunch of options that allow similar
>> flexibility to the users of "plain" ruby-mode. I believe rather than
>> have different incompatible options, it would be better to unify them
>> between the modes, at least where the capabilities match, to use the
>> same options.
> 
> I agree that having compatible options makes sense, provided that
> changes in ruby-mode that affect existing/default indentation style
> and font-lock are relatively safe.

The latest revision of the patch seems particularly safe to me (like 
with previous option, no substantially different code is running as long 
as all the options are at their default values). But I'm waiting to hear 
back from Aaron regarding his experience. It has extra regression tests, 
though.

>> So... if there is still time to get ruby-ts-mode in (and give it a
>> little polish), it might be a good idea to get the patch for bug#60186
>> in first. Alternatively, it could come with non-customizable indentation
>> (options would be added later), or it could have a set of customization
>> points which we'll promptly deprecate right after (ones that will become
>> redundant).
>>
>> Or we defer all that and release both new options in ruby-mode and
>> ruby-ts-mode from master to GNU ELPA.
> 
> It's up to you.  If the above-mentioned method suits you, we can have
> that on the release branch.

All right. This was more of a "yes" than I expected. With apologies, let 
me try to push a little further.

Speaking of the method, how do you feel about renaming a file?

If ruby-ts-mode is going to live in the same file as ruby-mode, perhaps 
the more neutral file name ruby.el would be proper? This would be in 
line with the scheme used by js.el and python.el.

This is not an idle lets-decide-it-later question because I want to have 
some later releases of these modes in GNU ELPA, and we'll want to have 
the built-in packages properly shadowed when someone installs a new 
version. (Perhaps Stefan has an advice here, so Cc'd).

I see several (require 'ruby-mode)-s in third-party packages. There are 
not too many of them, I could just go around and ask everyone to replace 
that with (or (require 'ruby nil t) (require 'ruby-mode)). Or we could 
have a compatibility stub in Emacs 29 where ruby-mode.el just calls 
"(require 'ruby) (provide 'ruby-mode)".

We don't often rename files also because of 'git log' problems, but we 
have a decent (and simple enough) plan to improve that in bug#55871.

Alternatively, we break from the common scheme and put the modes in 
separate files, one depending on the other. Then they'll have to be 
separate GNU ELPA packages (I think), and we'll need to synchronously 
bump version and required-version in them every time when making 
interrelated changes in the future.



  reply	other threads:[~2022-12-30 15:32 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-29 21:39 Cutoff date for adding ruby-ts-mode? Dmitry Gutov
2022-12-30  8:16 ` Eli Zaretskii
2022-12-30 15:32   ` Dmitry Gutov [this message]
2022-12-30 16:59     ` Eli Zaretskii
2022-12-30 21:42       ` Dmitry Gutov
2022-12-31  6:31         ` Eli Zaretskii
2022-12-31 11:24         ` Stefan Kangas
2023-01-02  1:35   ` Dmitry Gutov
2023-01-02 12:51     ` Eli Zaretskii
2023-01-02 18:44       ` Juri Linkov
2023-01-03  1:22         ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9fd271e5-5501-83de-0185-27a3c40eed26@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    --cc=pedz@easesoftware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).