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

Maintainer Views Meta Issue #2734

Closed
ewdurbin opened this issue Jan 5, 2018 · 14 comments
Closed

Maintainer Views Meta Issue #2734

ewdurbin opened this issue Jan 5, 2018 · 14 comments

Comments

@ewdurbin
Copy link
Member

ewdurbin commented Jan 5, 2018

Goals of this Issue

Classify, describe, and share the current functionality implemented by PyPI to assist contributors while developing warehouse's maintainer UI.

THIS IS NOT THE CORRECT ISSUE FOR FILING BUGS OR FEATURE REQUESTS REGARDING A MAINTAINER ACTIVITY

Proposed hierarchy

maintainer-views
├── account
│   ├── email_address
│   ├── openids
│   ├── password
│   └── pgp_key_id
└── projects
└── PROJECT_NAME
├── releases
│   ├── RELEASE_VERSION
│   │   ├── PKG-INFO
│   │   ├── files
│   │   └── journal
│   └── list
├── PKG-INFO
├── documentation
├── journal
├── roles
└── view

Legend

  • regular text is a "file"

These are not necessarily their on page but "resources" or "fields" that could be updated.

  • bold indicates "directory"

These will either contain links to the resources or data presented in a resource.

Current views as implemented in pypi-legacy

maintainer-views/ (root)

https://pypi.python.org/pypi

Note: The box in the top right effectively serves as our maintainer-views/projects view at all times.

screen shot 2018-01-05 at 12 15 12 pm

maintainer-views/account view

https://pypi.python.org/pypi?%3Aaction=user_form

Includes "resources":

  • email_address
  • openids
  • password
  • pgp_key_id

screen shot 2018-01-05 at 12 16 04 pm

maintainer-views/projects/PROJECT_NAME view

https://pypi.python.org/pypi?%3Aaction=pkg_edit&name=PROJECT_NAME

Includes "resources":

  • releases
  • documentation

With links to

  • roles
  • view

screen shot 2018-01-05 at 12 17 53 pm

maintainer-views/projects/PROJECT_NAME/roles

https://pypi.python.org/pypi?:action=role_form&package_name=PROJECT_NAME

screen shot 2018-01-05 at 12 20 18 pm

maintainer-views/projects/PROJECT_NAME/view

https://pypi.python.org/pypi?name=PROJECT_NAME&:action=display

Includes "resources"

  • journal

screen shot 2018-01-05 at 12 29 14 pm

NOTE: Further on to bottom of page we include the journals for the release
screen shot 2018-01-05 at 12 29 16 pm

maintainer-views/projects/PROJECT_NAME/releases

https://pypi.python.org/pypi?:action=pkg_edit&name=PROJECT_NAME

Includes "resources":

  • release(s)
  • documentation

With links to

  • roles
  • view

screen shot 2018-01-05 at 12 17 53 pm

maintainer-views/projects/PROJECT_NAME/releases/RELEASE_VERSION

https://pypi.python.org/pypi?:action=files&name=PROJECT_NAME&version=RELEASE_VERSION

Includes "resources":

  • file(s)

With links to:

  • PKG-INFO

screen shot 2018-01-05 at 12 37 00 pm

@nlhkabu
Copy link
Contributor

nlhkabu commented Jan 6, 2018

thanks @ewdurbin - just a clarification on the release visibility - e.g.

screenshot from 2018-01-06 08-53-58

I don't understand this - I thought PyPI (and warehouse) showed all of the release history for each project?

Is this setting specifying which version of the project should be shown as the default? e.g. in warehouse - the version which would be linked to from the search results, and have this badge:

screenshot from 2018-01-06 08-57-43

?
Thanks

@ewdurbin
Copy link
Member Author

ewdurbin commented Jan 6, 2018

That's effectively what's afoot @nlhkabu.

What is trying to be accomplished here is allowing a maintainer to push a pre-release to PyPI without having it show as the default release for their project.

PyPI will always allow you to view "Hidden" releases which aren't deleted by heading to a direct URL.

If more than one release is set to "Hide?" => "No" the project release page ends up looking like:

https://pypi.python.org/pypi/PROJECT_NAME

screen shot 2018-01-06 at 6 54 17 am

instead of

screen shot 2018-01-06 at 6 54 49 am

I don't have a strong opinion one way or the other on whats right or where to go from here...

@dstufft
Copy link
Member

dstufft commented Jan 6, 2018

Release visibility as a concept doesn't exist in Warehouse. It's a legacy PyPI thing.

@nlhkabu
Copy link
Contributor

nlhkabu commented Jan 6, 2018

@dstufft does this mean that we can ignore "giving package maintainers a way to manage hidden vs unhidden releases" in #424 (comment)?

Or, should I continue to design the UI with the view of introducing this functionality to Warehouse?

@dstufft
Copy link
Member

dstufft commented Jan 7, 2018 via email

@nlhkabu
Copy link
Contributor

nlhkabu commented Jan 7, 2018

Initial design specification for project page:

screenshot from 2018-01-07 18-44-48

screenshot from 2018-01-07 18-45-03

Notes:

  • The release page remains the main page of a project, with 'roles and permissions', 'documentation' and 'journal' pages as supplement.
  • 'Roles and permissions' - could/should rename to 'collaborators' as per the current terminology?
  • Does documentation need it's own page? to discuss?

From a design/front end perspective, this proposal requires a few new components:

  1. modal
  2. button with dropdown menu. Might be able to reuse some of the code from the header dropdown
  3. sub links in side menu

@ewdurbin
Copy link
Member Author

ewdurbin commented Jan 8, 2018

Only thoughts so far is that we probably want to collect all destructive actions into a specific place... deleting a project, release, or file isn’t particularly encouraged and we should keep the UI elements for that out of the main path.

@di
Copy link
Member

di commented Jan 8, 2018

My initial thoughts:

  1. I had some comments about the "roles" form, but I think we've addressed it in Role Management #2705.
  2. I'm not sure I see the value in listing all the user's projects on the left-hand-side menu. I'm concerned about what this would look like if the user maintained more than just a few projects. I think it makes more sense to have a "list all my projects" page and make it easy for the user to return to it from here instead.
  3. Assuming the previous makes sense, I think everything on the right hand dropdown could probably get included in what remains of the left hand menu, or as part of something already on the left hand menu. Similar to a repository's "Settings" tab on Github:

screen shot 2018-01-08 at 4 18 02 pm

Worth noting that the "destructive action" of deleting a repository is included at the bottom of the "Options" page here.

'Roles and permissions' - could/should rename to 'collaborators' as per the current terminology?

👍 I think we should take this as an opportunity to revise the terminology for these pages. In #2705 I called this "Collaboration" which I think is more clear, "Journals" could become "Project History", etc.

@nlhkabu
Copy link
Contributor

nlhkabu commented Jan 18, 2018

Hi @ewdurbin and @di - thanks for your feedback!

Latest UI:

screenshot from 2018-01-18 07-38-02
screenshot from 2018-01-18 07-37-53

Regarding destructive actions - I think a better way to deal with this is to ask the user to confirm their action (see #2808 and #2805) rather than hiding it in the UI. This means we can keep it in a location with other actions, but also treat it like dynamite ;P Does this address your concerns?

Regarding listing the projects on the left - what would the most projects we could expect a user to have? The reason I have opted to include it here is to provide a shortcut for users - as this currently exists in the old PyPI interface. I have also included a link back to the main project page, to cover both bases.

I've opted to put the menu items as tabs because there are not that many :) I don't think combining the tabs and the 'project options' links into one place will work because some open a new page, where others complete an action.

Anyway, please pull down the latest via the 'role-management' branch to take a look 😁

@dstufft
Copy link
Member

dstufft commented Jan 18, 2018

Regarding listing the projects on the left - what would the most projects we could expect a user to have? The reason I have opted to include it here is to provide a shortcut for users - as this currently exists in the old PyPI interface. I have also included a link back to the main project page, to cover both bases.

A lot.

warehouse-prod::DATABASE=> SELECT user_name, COUNT(*) as num from (SELECT DISTINCT user_name, package_name FROM roles) a GROUP BY user_name ORDER BY num DESC LIMIT 10;
  user_name  | num
-------------+------
 OCA         | 3146
 openstackci |  612
 davisagli   |  514
 hannosch    |  508
 faassen     |  403
 icemac      |  401
 agroszer    |  355
 tlotze      |  330
 srichter    |  328
 projekt01   |  314
(10 rows)

@di
Copy link
Member

di commented Jan 18, 2018

Thanks for the update @nlhkabu! Responses below:

Regarding destructive actions - I think a better way to deal with this is to ask the user to confirm their action (see #2808 and #2805) rather than hiding it in the UI. This means we can keep it in a location with other actions, but also treat it like dynamite ;P Does this address your concerns?

I think this makes sense.

Regarding listing the projects on the left - what would the most projects we could expect a user to have? The reason I have opted to include it here is to provide a shortcut for users - as this currently exists in the old PyPI interface. I have also included a link back to the main project page, to cover both bases.

Besides the potential length for this list, I don't think that users will be switching back and forth between projects so much that this shortcut is necessary. The usual flow is probably something like:

Log in -> find a project -> perform some action -> leave

I've opted to put the menu items as tabs because there are not that many :) I don't think combining the tabs and the 'project options' links into one place will work because some open a new page, where others complete an action.

There likely will be more of these in the future, so it might be preferable to be able to expand vertically rather than horizontally.

I was suggesting that anything in this menu that performs an action would just exist under an "Options" tab/page instead, similar to the "Options" page for a github repo. I think it would be better to have these in the same place as the other project management subpages rather than a separate button/dropdown.

It also makes all these pages a little simpler, as the "Project Options" dropdown and corresponding forms/modals won't need to exist on every management page.

@di di mentioned this issue Jan 18, 2018
@nlhkabu
Copy link
Contributor

nlhkabu commented Jan 19, 2018

Ok, thanks everyone for your feedback and info.

Regarding the options page - I'm just worried that there will not be enough content to justify a page by itself. What other content do we imagine could go on this page in the future?

TODOs on my side:

  • Move tabs to left hand menu, in place of project links. Retain link back to main projects list.

List of Projects

Given some users have many projects (as highlighted by Donald above) should we add pagination to the list of projects currently located at:

  • warehouse/templates/manage/projects.html
  • warehouse/templates/accounts/profile.html

Should we open a new ticket for these?

@di do you want this done before merging #2705 or are you happy to merge and have fixes down the line?

@di
Copy link
Member

di commented Jan 19, 2018

What other content do we imagine could go on this page in the future?

Given some users have many projects (as highlighted by Donald above) should we add pagination to the list of projects currently located at:

I think it'd be preferable to include a simple client-side search instead, especially if projects are ordered by most recently updated and not alphabetically (although this would definitely be post-MVP) -- so let's make an issue for it.

@di do you want this done before merging #2705 or are you happy to merge and have fixes down the line?

Either's fine with me!

@di
Copy link
Member

di commented Apr 18, 2018

This has been addressed!

@di di closed this as completed Apr 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants