> 
> On Nov 5, 2014, at 17:53, Jay McCarthy <[email protected]> wrote:
> 
> Hi Ryan,
> 
> 
> On Wed, Nov 5, 2014 at 7:14 PM, Ryan Davis <[email protected]> wrote:
>> The package submission system is hostile and incredibly frustrating to use.
>> 
>> I've tried a bazillion times now to submit a package (check-sexp-equal) and 
>> ensure that:
>> 
>> 1) the source points to a git repo properly: it keeps going to an https url 
>> and then fails on install because it doesn't have a MANIFEST file. 
>> Subsequent changes to git: protocol urls get reverted silently.
> 
> When you use an HTTP(S) URL that points to a directory, [...] You probably 
> meant to name a Github repository, with the syntax... 
> git://github.com/‹user›/‹repo›

Yes, and as I described, I couldn't for the life of me change _anything_, so 
all this explanation isn't really helpful to someone who's frustrated and just 
wants to submit a package for the first time.

The problem is that this site doesn't communicate _at_all_ with the user. It 
uses (I assume) ajax to do all of its work with the server and does NOTHING to 
talk to me about where things are and whether they're working. It does't say 
when there is an error on the server side. It doesn't say when things time out. 
It doesn't say when it is successful with an edit. It doesn't even say that it 
is trying to do an edit.

I would MUCH rather have a stupid forms-base GET/POST submission, have to fill 
out all the info, and get a confirmation back when it works or a 500 back that 
says something went wrong rather than something that silently sits there and 
may or may not have worked but never tells me.

If you insist on using ajax for per-field submission, then it should at least 
have:

1) a server status box saying it is healthy or dead or how many things are 
queued up before it'll get to my stuff.
2) a per field status indicator on changes. Something like a spinner while 
waiting and a checkbox when it successfully updates and a message on the field 
when there is an error.

> If you look at an example package, such as samth's abnf [2], you'll
> see that his source is: "git://github.com/samth/abnf". For
> convenience, the Web site makes this package source and Web link to
> the Github WWW interface, "http://github.com/samth/abnf/tree/master";.
> But that link is not the source. The source is thing displayed next to
> "Source:".
> 
> It is possible that we could make something like, "I see you are using
> HTTPS for a Github package, are you sure that's what you want?"
> Similarly, it is not intuitive that the "Copy link address" isn't a
> good thing to copy for the source, although I'm afraid I'm at a loss
> for where else would be a better place to put the link to the source
> code. Do you have any ideas?
> 
> 1. 
> http://docs.racket-lang.org/pkg/Package_Concepts.html#%28part._concept~3asource%29
> 2. http://pkgs.racket-lang.org/#[abnf]

A link on the form to that page would be a good start.

A simple list of protocol templates would save some time once the user is 
familiar with the process.

Right now I have to google around to try to find the right doco that describes 
it.

I was actually using abnf as my template once I realized things were messed up 
but by then it was too late.

> I assume that the behavior you're seeing of "changes ... get reverted
> silently" is because of what I comment on in the next item.
> 
>> 2) it is tagged properly: the tags deleted themselves and now I can't edit 
>> the tags.
> 
> When you input a new tag, the Web page you are seeing reflects your
> changes, but those changes are not necessarily updated through-out the
> world or when you hit refresh. When you refresh (and in the original
> window) it says (at the top in yellow), "update upload being computed:
> the information below may not represent all recent changes and
> updates".

Not once did I see such a yellow box.

> I need to improve the UI when the update computation fails. I assume
> that something happened on the server that lost the update and lost
> the changes you made.
> 
>> 3) it is deleted. If nobody can install it, maybe I should delete it and 
>> start over? Can't.
> 
> You don't need to delete it, you can just change the source. Of
> course, the reason deletion didn't work is because updates were broken
> on the server side.

Except I couldn't and nothing said that updates were broken on the server side.

>> Now when I reload the page it just says "Logging in..." at the top. Is this 
>> why my edits aren't going through?
> 
> Yes, that means the server is busted and needs to be kicked, which I
> have done. I presume it died in the middle of your updates, which is
> why they were lost.

I had to delete my cookies before I could get a form and try again. A cancel 
button would make that easier for the user. A timeout would too.

>> There's no way to log out, it seems. I guess I can forcibly delete any 
>> cookies for the domain, but is this really the way?
> 
> If you are logged in, there is a log out button. If you are not logged
> in (such as being in the middle of "Logging in...") then you can't log
> out, because you aren't in.

Your description is of a 2 node state machine when it is currently implemented 
as 3. I can't log out because I'm not in, but if I'm not in, then I should be 
able to log in, yet I can't because there is no form. Instead, it is stuck in 
state-3: spinning on auth.

> I'm sorry that it was painful. I'm very interested in trying to
> improve and increase the reliability of the server. I'm happy to work
> with you on it. I'm "jeapostrophe" on the IRC channel and I'm happy to
> PM you my cell if that would be a more convenient way to work through
> it.

Apparently I'm already talking to you on IRC :P


____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to