readthedocs.org icon indicating copy to clipboard operation
readthedocs.org copied to clipboard

Surface "abandoned" state on projects in UI

Open ericholscher opened this issue 7 years ago • 25 comments
trafficstars

We now have an inactive project policy: http://docs.readthedocs.io/en/latest/abandoned-projects.html

We should:

  • Integrate a public facing "inactive" indicator into the RTD dashboard for projects that qualify

ericholscher avatar Dec 08 '17 14:12 ericholscher

I think we can develop this as two features.

Marking a doc as inactive/abandoned

With this a project that meets the policy requirements for abandoned projects gets marked as inactive/abandoned, this is visible for everyone.

And probably we may want to be able to mark a project as protected (on the django admin panel only), so in a special case this project never gets marked as inactive/abandoned. A special case could be: the author requesting this, for historical reasons, our algorithm is wrong or is a false positive.

Communicating to the users

I have several ideas for this...

We can run a cronjob and send a warning email to the owner of the project if her/his project is marked as abandoned.

A user wants the project name (from the inactive one), she/he fills a form with some details, the owner of the inactive project receives an email with a warning and the request of the other user. The request can be sent no more than once every time and if a user already sent a request and other wants to do the same, she/he needs to wait a time before sending it.

After the owner is warned several times and no action is taken for reactivate the project, the project name gets released. This is done changing the project name to a random one or {user-name}-inactive-{number}?

If the owner wants to release the project name, she/he can change the name (slug) manually or just delete the project and the user who sent the request gets notified.

Conclusion

I think with this solution all the process gets simplified and is automatic. And also the interaction between the users is minimal (almost none).

stsewd avatar Feb 15 '18 03:02 stsewd

Hi @stsewd, I would like to work on this! Can you please get me started!

bansalnitish avatar Feb 27 '18 22:02 bansalnitish

@bansalnitish I think is better to confirm if this is the way the core maintainers want implemented this feature. But you can also help by adding some feedback from my current proposal or maybe adding another.

stsewd avatar Feb 28 '18 05:02 stsewd

I think we shouldn't automatically email/remove abandoned projects. I also think showing abandoned projects is lower priority. People who want a namespace are highly motivated, and will email us, so we should focus on executing that part first.

I think we should keep it light weight in terms of implementation so this isn't a lot to maintain. Perhaps just an admin-only button that says "email project owner with our abandoned project email" as a start, which sends an email from a template that we have in the repo.

Here is the email I sent last time as a start:

Hi,

We've had a request from one of our users for the project name {name} on Read the Docs. You are the current owner, and we wanted to reach out to you in accordance with our Abandoned Project policy (http://docs.readthedocs.io/en/latest/abandoned-projects.html).

Since this is a fork of the existing owners project, {name}, you must show us the additional work that has been done in order to keep the new project name, that is different than the existing version of the project.

Please reply to this email either allowing or disallowing the transfer of the name on Read the Docs within 6 weeks, otherwise we will take the action of *initiating the transfer to a new owner* by default.

Cheers,
Eric

ericholscher avatar Feb 28 '18 05:02 ericholscher

At the end of the 6 week period, I renamed the project to {name}-abandoned, but I'm not 100% sure that's the correct thing to do.

ericholscher avatar Feb 28 '18 05:02 ericholscher

I guess the primary thing I want to balance is the amount of work to build this, when it doesn't happen very often, with standardizing the execution. We could even just have a template in the docs, and not automate it within the software, as it has only happened a couple times so far.

ericholscher avatar Feb 28 '18 05:02 ericholscher

@ericholscher so suggesting a template for sending an email to [email protected] would be fine. I like the idea of keeping it simple for now.

stsewd avatar Feb 28 '18 05:02 stsewd

I am trying something simple for the start as suggested by @ericholscher and @stsewd. I will submit a PR soon for the same and then we can discuss and make it better!

bansalnitish avatar Feb 28 '18 18:02 bansalnitish

Yea, another simple addition would be to have a query that specified "abandoned", and have a small message on the project page. I'm all for keeping things simple to start.

ericholscher avatar Mar 01 '18 03:03 ericholscher

I agree on keeping it simple if this is a feature we need, but I don't agree this is a feature we need though.

I do have a few problems with our plan so far:

  • The biggest problem with our plan so far is we haven't saved any steps. Would-be abandoned projects will start in an active state. The UI to email us or the owner will only be shown to users once the project is marked as abandoned though. This still requires a user to reach out to and admin and start the process of confirming the project is abandoned. It's only after 6 weeks that we can finally change the status to abandoned. At that point, however, the original user would claim the namespace. There's no need for an additional email at this point, and the UI for contacting the owner will never show
  • We aren't going to be proactive about marking projects as abandoned, so adding UI forms probably doesn't make sense
  • I think adding user -> user contact is adding too much complexity for what will be a very infrequently used feature

Things we do need:

  • An admin function that sends an email notifying the project owner that their project is potentially abandoned. Ask they respond in 6 weeks or their project will be moved
  • An admin function that sets the project as abandoned: it marks Project.is_abandoned, it changes the slug to {project}-abandoned, and it sends an email notifying the user of the change and a link to the new project/doc pages.
  • We're not good at keeping track of when we've contacted users and when the 6 week period is up. I'm not sure we need a feature to track this, it seems unnecessary. It should be part of the process, we can create a trello card and assign it 6mo in the future.
  • Add a UI piece for projects that have been determined to be abandoned. This should be a sidebar item on the project detail page: State: This project is abandoned or something similar

Yea, another simple addition would be to have a query that specified "abandoned", and have a small message on the project page

I dislike the message pattern, we have too many patterns for this floating around.

agjohnson avatar Mar 08 '18 17:03 agjohnson

Hi @agjohnson, the PR which I have issued contains the points:

  • To mark a project as abandoned
  • Admin only option to send mail to project owner
  • Tests for checking that only an admin is allowed to send email

The PR misses the following points:

  • Abandoned project state as a sidebar item on project detail page.
  • Changing the project slug to {project}-abandoned and notifying the user about that.

I want to know whether I should update the PR to match all the missing requirements.

bansalnitish avatar Mar 08 '18 18:03 bansalnitish

@bansalnitish This issue is still in a design decision phase, we'll have some more guidance once we've come to some harder conclusions here.

I looked at the PR you started, but it has a few patterns I think we want to avoid:

  • Automating is_abandonded -- projects that don't build within a year aren't necessarily abandoned, perhaps just unmaintained. We want to act as an archive in this case, not promote transferring the namespace.
  • Surfacing sending email as a user feature. Above I discuss making this an admin feature -- that is, a django site admin feature, not part of the RTD UI

Hold off on making changes for now, as the requirements will likely change. I'll have some more specific feedback after that will hopefully clear up some questions.

agjohnson avatar Mar 08 '18 20:03 agjohnson

Sure @agjohnson, I will wait for the design decision to be made and then make the appropriate changes :tada:

bansalnitish avatar Mar 08 '18 21:03 bansalnitish

I'm going to unblock this. I think the feature we actually need here is:

  • Djano site admin functions for sending an email to project owners that their namespace has been requested
  • Djano site admin function for marking a project as abandoned (Adds -abandoned to slug, marks Project.is_abandoned
  • Project detail sidebar piece that states project is abandoned.

In this feature, we don't want:

  • User to user email
  • Automating abandoned state
  • Email on the project forms

Unfortunately, I think your PR is mostly invalidated with these changes -- and there doesn't seem to be admin functions (django site admin functions that is) for any of this. So I'll close your current PR, but leave the branch around for reference. I'd suggest starting with a new PR for this work.

agjohnson avatar Jun 08 '18 20:06 agjohnson

I am working on it. Will submit a PR soon.

dojutsu-user avatar Dec 13 '18 09:12 dojutsu-user

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jan 27 '19 09:01 stale[bot]

It is still valid. There's an open PR for this.

dojutsu-user avatar Jan 27 '19 13:01 dojutsu-user

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Mar 13 '19 13:03 stale[bot]

This is still valid bot. Can I get a review on the attached PR?

dojutsu-user avatar Mar 13 '19 13:03 dojutsu-user

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Apr 27 '19 14:04 stale[bot]

Still valid bot.

dojutsu-user avatar May 04 '19 14:05 dojutsu-user

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jun 20 '19 15:06 stale[bot]

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Aug 04 '19 16:08 stale[bot]

I'm marking this issue as Accepted since what we need to do is described at https://github.com/readthedocs/readthedocs.org/issues/3382#issuecomment-395885311

humitos avatar Aug 05 '19 08:08 humitos

@humitos There already a PR open -- #4995

dojutsu-user avatar Aug 05 '19 08:08 dojutsu-user

We wrote two different guides about this issue:

  • https://docs.readthedocs.io/en/stable/abandoned-projects.html
  • https://docs.readthedocs.io/en/stable/unofficial-projects.html

We discussed the approach of showing a UI element on projects but we weren't able to pattern that works in an accurate way. I'm going to close this issue since we don't plan to implement a semi-automated way of doing this in the near future. We can come back if we think this is still relevant and we have a way to implement a good pattern.

humitos avatar Jun 04 '24 15:06 humitos