Subject: Re: bug#63469: 29.0.90; project.el doesn't add menu-bar entries

From: Dmitry Gutov <[email-masked]>
Date: Wed, 24 May 2023 04:03:40 +0300

On 23/05/2023 21:11, Juri Linkov wrote:
>> BTW, there is another problem: by default 'project-name' is defined as
>> (file-name-nondirectory (directory-file-name (project-root project))).
>> But then project name often is the same for different projects
>> because the directory name is the same for the same repository.
>> For example, in a subtree:
>>
>>    emacs-master/emacs/...
>>    emacs-29/emacs/...
>>    emacs-28/emacs/...
>>
>> All project names are the same 'emacs'.  How would it be possible to
>> customize project names?  Trying to get a parent dir might be too
>> unreliable.  So probably the only way is to define the name manually.
>> Maybe in .dir-locals.el.  Actually this works:
>>
>>    ((nil . ((project-vc-name . "emacs-29"))))
>>
>> Not sure why non-VC projects can't be named the same way.
> 
> And indeed this is a real problem: in file buffers there is
> one project name that comes from project-vc-name, and in
> non-file buffers another project name deduced from dirs.

Are you saying that non-file buffers don't obey the value of 
project-vc-name set in parent dir's dir-locals.el?

> This distinction became visible while testing project-mode
> on the mode-line.
> 
>> Also noticed that project-vc-name is not marked as safe,
>> so always asks a confirmation.
> 
> This problem exists only until project.el is loaded.
> So maybe the 'safe' cookie should be in ###autoload.

Possibly. Would that mean that all :safe attribute assignments should be 
moved outside of defcustom forms, though?

There is a whole bunch of them in project.el alone, most of them are 
expected to be settable from .dir-locals.el (that's the only point of 
this attribute).