Page MenuHomePhabricator

Disallow creating projects with an empty description
Closed, ResolvedPublicFeature

Description

"Phabricator is a public place. Describe the project in a way that allows anybody, also outside of the community, to clearly understand what the project is about. Add links to the relevant project pages so anybody can find more information."
That's currently not always the case.

Thus consider custom code which shows a reminder/error when trying to create a project with an empty description, similar to the error shown when not entering a project name.
Could apply this only to new parent projects, and not to subprojects and milestones which might be already "explained" by their parent project's description.

May lead to project descriptions like . or of course. But in that case there's a reason to discuss our current guidelines.

Event Timeline

Dumped some non-working code at P50619

Many projects for actual softwares are self-descriptive, and also there are a number of subprojects for internal uses (e.g. milestones). In my opinion what will be more a concern is tasks without tags (T285613: Warn user if they are creating tasks with no project tags). I even think we should disallow tasks without tags.

Many projects for actual softwares are self-descriptive

And many are not

I even think we should disallow tasks without tags

That's a different topic unrelated to this task.

That's currently not always the case.

Do we have stats on the actual issue?

Do we have stats on the actual issue?

I'm afraid I cannot easily offer statistics (in the sense of "run an SQL query on projects for which the initial description custom field at creation was empty"), however I receive a weekly Phab changes email and can say it's not totally rare either. Implementing this would be more of a reminder to folks that Phabricator is a public place.

The current number is rather low due to adding some descriptions myself and due to sending emails to some folks who create projects to remind them, basically...

Aklapper triaged this task as Low priority.

When I had some spare time I explored a bunch of potential implementation approaches in P50619.
All have some disadvantages though. :P

There are two aspects:

When accessing the project creation form, showing the "Required" hint to the right of the Description field, like the Title field already does.
Ideally, I'd be able to set "->setIsRequired(true)" in PhabricatorProjectEditEngine.php for this. But Description is a "standard custom field" defined in PhabricatorProjectDescriptionField.php - it's created very differently than all other fields and not feasible.

The other aspect is checking if the description is empty, blocking the transaction, and showing an error message.
On option was creating src/applications/project/xaction/PhabricatorProjectDescriptionTransaction.php which would be more complicated and for reason I do not understand shows the error message twice. There's a less intrusive (but more hacky) option which I am going to put into a patch.

Aklapper renamed this task from Consider disallowing creating projects with an empty description to Disallow creating projects with an empty description.Nov 29 2023, 10:34 AM

Change 987145 had a related patch set uploaded (by Aklapper; author: Aklapper):

[labs/striker@master] Set description when creating Phabricator projects

https://gerrit.wikimedia.org/r/987145

Change #987145 abandoned by Aklapper:

[labs/striker@master] Set description when creating Phabricator projects

Reason:

I assume this has magically obsoleted itself in the meantime

https://gerrit.wikimedia.org/r/987145

For the records, this creates a regression when trying to rename a milestone column on a parent workboard.