Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow marking projects as "archived" #17005

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

facutuesca
Copy link
Contributor

@facutuesca facutuesca commented Oct 30, 2024

What is this?

Following the discussion here, this PR shows what the implementation could look like for adding "status markers" to projects.

Specifically, this PR allows changing a project's status to "Archived".

Details

The implementation is straightforward, since a Project.lifecycle_status field already exists (to mark a project as quarantined). This change adds a new "archived" value for that field, and adds the UI so that users can change the project status (only for "archived" and "no status": users should not be able to quarantine a project nor modify a quarantined project).

Even though the issue mentioned above proposes more statuses ("deprecated", "finished", etc), those can be ambiguous and overlapping, and would require further discussion to define clearly. "Archived", however, is already widely used on GitHub repos and its meaning should be easy for users to understand:

You can archive a repository to make it read-only for all users and indicate that it's no longer actively maintained. You can also unarchive repositories that have been archived

On PyPI, this could also mean disallowing uploads after a project has been marked as archived, but this PR only implements the UI changes and adds the new field. Adding restrictions based on the status should be done in a future PR.

Screenshots

Project settings

image

Project landing page

image

cc @woodruffw @miketheman

@facutuesca facutuesca requested a review from a team as a code owner October 30, 2024 18:46
@woodruffw woodruffw added the UX/UI design, user experience, user interface label Nov 19, 2024
Copy link
Member

@miketheman miketheman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally, looking good, thanks for scoping it down to a single lifecycle status.

I think something good to add to the owner-facing management page would be a suggestion to publish a new release with a readme update or something to point folks where to go next.
Prior ideas have been to allow user-submitted text in the form, but I like that less, since then we have to figure out where to store that.

I think a warning modal popup confirmation might also be in order when archiving would be a good idea to prevent misclicks.

This also doesn't appear to block users from making further releases to an archived project - is that intentionally excluded? In my head, once Archived, it's in read-only mode - similar to GitHub's Archived.

warehouse/templates/manage/project/settings.html Outdated Show resolved Hide resolved
@miketheman
Copy link
Member

I also just realized - this probably needs some added notation in the Admin UI/ability to change there as well. I didn't see anything in scope here yet.

Signed-off-by: Facundo Tuesca <facundo.tuesca@trailofbits.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
UX/UI design, user experience, user interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants