nicferrier / marmalade

Nic's clone of nex3's original marmalade. Nic is maintaining this now and updating this repo.
http://marmalade-repo.org
GNU General Public License v3.0
32 stars 8 forks source link

500 when uploading a file to marmalade-repo.org #73

Closed astanin closed 10 years ago

astanin commented 10 years ago

Error message after clicking the Upload button:

Express
500 TypeError: Cannot call method 'match' of undefined

    at Function. (/home/vagrant/node_modules/marmalade/lib/server/ui.js:468:43)
    at next (/home/vagrant/node_modules/marmalade/node_modules/step/lib/step.js:51:23)
    at Step (/home/vagrant/node_modules/marmalade/node_modules/step/lib/step.js:122:3)
    at /home/vagrant/node_modules/marmalade/lib/server/ui.js:462:9
    at callbacks (/home/vagrant/node_modules/marmalade/node_modules/express/lib/router/index.js:272:11)
    at param (/home/vagrant/node_modules/marmalade/node_modules/express/lib/router/index.js:246:11)
    at pass (/home/vagrant/node_modules/marmalade/node_modules/express/lib/router/index.js:253:5)
    at Router._dispatch (/home/vagrant/node_modules/marmalade/node_modules/express/lib/router/index.js:280:4)
    at Object.handle (/home/vagrant/node_modules/marmalade/node_modules/express/lib/router/index.js:45:10)
    at next (/home/vagrant/node_modules/marmalade/node_modules/connect/lib/http.js:203:15)
nicferrier commented 10 years ago

Yeah. I'm on it. Thanks.

A node.js update has completely broken the existing marmalade.

I am going to install the new elnode version but it will take me a bit of time.

atykhonov commented 10 years ago

I'm experiencing the same issue

redguardtoo commented 10 years ago

@nicferrier if this issue cannot be resolved soon, could you provide me a script to use API to upload package?

ArneBab commented 10 years ago

@nicferrier it’s great to know that you’re on it!

Thank you for your work!

swsnr commented 10 years ago

While you are waiting for this issue to be solved, you may find marmalade-upload useful. I wrote it to upload packages to Marmalade from command line, via the API, which is fortunately not yet broken.

ArneBab commented 10 years ago

That looks nice! I’ll check it out, when I have time!

keith commented 10 years ago

Still seeing this issue but the CLI worked. Thanks!

nicferrier commented 10 years ago

By the way, the API is not broken because I took the time to fix it. @lunaryorn wants marmalade to die. well, great. but other people don't.

I am slowly getting there with a sensible marmalade replacement. it's not how I like to work at all, because I have to have a certain match of functionality with the existing stuff.

As I say, nearly there.

atykhonov commented 10 years ago

@lunaryorn thank you for your marmalade-upload, it is really helpful!

atykhonov commented 10 years ago

You say marmalade is alive? But how? I'm not able to perform even basic operations with it, I'm not able even to upload package!

I don't care how near you are. I just want to be able to upload package. NOW!

nicferrier commented 10 years ago

Sorry, as soon as I receive your payment I'll make sure that your ticket is resolved. What's that you say? You don't pay? Ah. Erm...

swsnr commented 10 years ago

@nicferrier Be careful with this argument. Do you pay for all tools and services you are using?

You are the maintainer, and this issue is your responsibility. While we cannot force you to handle it and cannot make any claims (and none said otherwise), we can surely criticize the way you do (not) handle it, and blame you for leaving Marmalade in a broken state for months.

And this lack of proper maintenance is exactly why I hope for Marmalade to shut down and rather bet on MELPA's stable builds. And as soon as these get official, I for my part will likely stop to release to Marmalade. As things stand it's more hassle than it's worth.

keith commented 10 years ago

@nicferrier thanks for all your work on this.

@atykhonov if you'd like it to work now I'd suggest you submit a patch. The downloads obviously still work, which I'd say are a pretty large portion of the site.

@lunaryorn this is by no means @nicferrier 'responsibility'. Sorry he is providing you with an open source service. Sorry it doesn't work for you. As stated above, if you feel strongly about it, fix it. That's what open source is for. I really don't think yelling at the maintainer will ever make them more likely to want to work on the issue for people who take it for granted anyways.

nicferrier commented 10 years ago

Considering it was never my code and I've kept it running for over a year in a parlous state and I've built a new codebase that can replace marmalade, I think @lunaryorn is being ridiculous.

No one has stepped in and offered a single patch to the new code which will replace this. Which is fine as well by the way. But it does mean you'll have to wait for me to finish it.

Sure, bet on MELPA if you like. Quit yelling at me though if you're going to do that.

technomancy commented 10 years ago

Wow, people are jerks. Good luck getting things working again, Nic; don't let the jerks spoil your day.

arthurnn commented 10 years ago

@nicferrier keep your great work, and dont let people push you. . :+1:

gregmolnar commented 10 years ago

@lunaryorn submit a working patch and than you might have the right to complain why it is not merged. But you can't expect from anyone to solve an issue for you. That's not what open source is about.

ArneBab commented 10 years ago

Am Sonntag, 27. April 2014, 06:50:46 schrieb Sebastian Wiesner:

You are the maintainer, and this issue is your responsibility. While we cannot force you to handle it and cannot make and claims (and none said otherwise), we can surely critize the way you do (not) handle it, and blame you for leaving it in a broken state for over a month.

Currently Marmalade works, just the upload GUI is broken.

Yes, this stopped me from shipping an update, but that’s because I was too lazy to get the cli-tool.

If you want a stable service, you better start paying for it. As we’re at it: Is there a way to donate 1-2€ per month for maintenance of critical Emacs infrastructure? I’d be game (if it works nicely from Germany).

@nicferrier: Thank you for all your work on Marmalade! It provides a crucial service to me: proper releases of packages where uploaders feel some responsibility for getting the package interoperable with other packages. I perceive this as a huge step for Emacs.

Best wishes and many thanks for your work! Arne

swsnr commented 10 years ago

@gregmolnar I think that I do my share of open source work for the Emacs community, and do not need to be lectured about “what open source is about”.

@ArneBab I uploaded a binary for Linux x86_64, which should work on any decent modern Linux distribution (tested on Ubuntu 12.04 and 14.04). It's statically linked and doesn't need any Haskell runtime or libraries. Just download and untar the archive, and put the binary somewhere in $PATH.

lucasmartins commented 10 years ago

@lunaryorn Yeah, as it turns out you need indeed to be lectured on what open source is about. Start by reading the license:

...SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

nicferrier commented 10 years ago

new marmalade is now live. uploads are live. there may (!) still be bugs, not least, I've likely broken @lunaryorn's script because the API is now a reimplementation and it was not easy to see what the old API returned (especially since it broke).

http://marmalade-repo.org/packages/marmalade-upload this can be used to upload from inside Emacs.

ArneBab commented 10 years ago

Am Dienstag, 3. Juni 2014, 16:03:11 schrieb Nic Ferrier:

new marmalade is now live. uploads are live

That’s great - thank you!

First impression: I guess far too many people looked at this at once: Gateway Time-out.

Just how many Emacs-users are actually out-there? ☺

Best wishes, Arne

nicferrier commented 10 years ago

that may have been in a small window where it got broke tonight. check again, I'm sure it's ok.

swsnr commented 10 years ago

@nicferrier The error reporting changed. When sending an invalid login, the new API returns a BadRequest with HTML content (i.e. <h1>Bad request</h1><p>bad authentication</p>\r\n). The old API returned a BadRequest with the following JSON body instead:

{"message": "Username or password invalid"}

Can you restore the old behaviour? It makes proper error reporting for a command line API a lot easier.

swsnr commented 10 years ago

@nicferrier While testing the script, I noticed another issue: The website says that Flycheck is at version 0.9, which is almost a year old. The archive index however reports that Flycheck is a 0.18 (which is the current version). Also uploading Flycheck 0.18 says that the version already exists.

swsnr commented 10 years ago

@nicferrier I reported https://github.com/nicferrier/elmarmalade/issues/19 and https://github.com/nicferrier/elmarmalade/issues/18 respectively.

swsnr commented 10 years ago

@nicferrier Other than that, the script continues to work fine. Thank you for that.

nicferrier commented 10 years ago

@lunayorn the returns from the old marmalade were tied so much to the mongo db that sat underneath that it was impossible to replicate. So I threw it away. I am aware of the problems but if you want to help creating individual issues here for everything you find would be wonderful.

The flycheck package issue is some dumb thing to do with the version mapping.

But hopefully I'll have fixed them all in a few days.

swsnr commented 10 years ago

@nicferrier I know that it is somewhat late, but would like to apologize for what I have said here. I realized that was really not in a position to criticize your work.

I was caught in my own point of view, and got carried away with frustration. I have no excuse for my words, but I still hope that you can accept this albeit late apology, and that in future we can set our differences aside, and both do our share work in improving Emacs.

I still do not agree with what you do, and still am not sure that Marmalade is taking the right course, but I learned to understand that Marmalade is an important part of the Emacs community, and I see that you did a great work with elmarmalade in and by itself.

I am truly grateful for the work that you do, and for your indispensable and valuable contributions to the Emacs community. Thank you for what you are doing, and keep up your great work.

nicferrier commented 10 years ago

This is very noble of you. Thank you. I wasn't seriously disheartened by your words though I admit that I am generally discouraged by the apparent unwillingness of people to help me. It tends to suggest that I've made an architectural mistake.

So I am not sure myself whether marmalade is the right thing. However, it is a classical artifact store, so it might be the right thing. Also, it was worth doing to show a relatively sophisticated elnode application.

I shall carry on with it, if only for myself.

nicferrier commented 10 years ago

And I meant to add... I presume the API is working for you now? Can I close this ticket?

swsnr commented 10 years ago

@nicferrier I think that Marmalade itself is a good thing, but I doubt that Emacs is a good platform for a reliable web application, and I think that re-implementing an entire web application stack just for the sake of having a package archive in Emacs Lisp is not worth the effort.

That is—besides a notorious lack of time—why I do not contribute to Marmalade: Even with fully-fledged frameworks, great libraries and good tooling support, I do not particularly like web development, and Emacs lacks all of these: There are no web frameworks, few good web libraries, and basically zero tooling.

I think this is what keeps other developers away, too: Web development is generally only bearable because we have great tools, but in the absence of these it becomes a burden, and few people have fun at writing the plumbing for web applications all by themselves.

In other words, I think that there are many more interesting projects than writing a web app stack in Emacs Lisp just for the sake of it.

As for the API, it is generally working now, and the error responses are fine now, but I got some random timeouts that I could not reliably reproduce. I'll open an issue at elmarmalade if I can provide details.

ArneBab commented 10 years ago

@nicferrier The apparent unwillingness of people to help is seen in almost every single free software program: Most people who have the skills to help are already committed to other projects, so they cannot actually help you on yours. They can encourage you from the sidelines (“This is cool! If I had time, I’d gladly help!”), but they cannot actually dive into the code, understand it and help improving it.

If you have 100 fans, one might actually have the resources to provide help. See for example how this works in media: A video from acapella artist Smooth McGroove gets 250.000 views on Youtube, 15.000 Likes and is funded by 750 people (with at least 1$ per video - about 200 give at least 5$) - for someone who has 45.000 followers in twitter and 160.000 Likes in F_b_. And he’s a legend in the gaming community - who is funded by 750 people (including me). 250k viewers, 750 supporters. 3 in 1000 people support him - and actually it’s enough for him to work full-time on his art.

That’s the scale I want to show here. And this scale is visible when it’s just about giving One Dollar - the equivalent of 5 minutes of work. Less than the time it took me to compose this text.

nicferrier commented 10 years ago

You both might well be right. My point was more similar than you think, what I meant is that people help when there is a very low barrier to entry. Marmalade clearly creates too high a barrier to entry and so people don't help. That's what I meant when I mentioned architecture.

It's my view that a web code written in lisp can get rid of most framework nonsense. I may be wrong. But then I've been doing it for nearly 20 years so I have a high chance of being right.