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 Wanted #412

Open
felixge opened this issue Jan 11, 2017 · 57 comments
Open

Maintainer Wanted #412

felixge opened this issue Jan 11, 2017 · 57 comments
Labels
Type: Maintenance Updating phrasing or wording to make things clearer or removing ambiguity, without a functionality.

Comments

@felixge
Copy link
Collaborator

felixge commented Jan 11, 2017

I haven't maintained this module in a while*, and PRs are piling up.

If anybody is interested in helping out, I'm happy to give commit bits + npm package access.

To get access, please try to write 1-2 sentences that give me a reasonable hope you're not looking to put malicious code into the package and also mention your npm account name.

* For those curious about the "why?", I'm working with Go these days haven't been using node.js for over 3 years now.

@felixge
Copy link
Collaborator Author

felixge commented Jan 11, 2017

@pornel sounds good. What's your NPM account? I'll give you access :). Thanks!

@kornelski
Copy link
Contributor

I'm kornel on npm

@ChALkeR
Copy link

ChALkeR commented Jan 11, 2017

You can use https://github.com/pickhardt/maintainers-wanted badge, btw.

@felixge
Copy link
Collaborator Author

felixge commented Jan 13, 2017

@pornel thanks, added you on GH and NPM :).

@ChALkeR done.

@tunnckoCore
Copy link
Member

tunnckoCore commented Jan 13, 2017

I also can help when have time. I have Koajs package koa-better-body that uses formidable. It's about 3 years old and many users use it, and using it exactly because formidable.

I'm all-lowercased tunnckocore at npm.

@badeball
Copy link
Contributor

badeball commented Jan 13, 2017

Hi, @felixge

I'm happy to help as well. I have decent experience in creating and maintaining libraries, as well as packaging and releasing. @pornel, maybe you want someone to spar with?

@kornelski
Copy link
Contributor

Sure, the more the merrier.

@felixge
Copy link
Collaborator Author

felixge commented Jan 14, 2017

@tunnckoCore added you on gh and npm.

@badeball added you only on gh since you didn't provide your npm handle.

@ all: Thank you so much for offering your help. I'll leave it up to you if you just want to merge good PRs, or add new features. A lot of people depend on this library, so big API changes are probably undesirable at this point. Anyway, I'll mostly stay out of it, unless you need my help to break a tie on a discussion or similar.

@tunnckoCore
Copy link
Member

tunnckoCore commented Jan 14, 2017

@felixge cool, thanks!

so big API changes are probably undesirable at this point.

Maybe yea. First we should try to clear the most issues.

We should add some more benchmarks against the other parsers like dicer and busboy, because I'm curious if formidable is still faster.

@tunnckoCore
Copy link
Member

@Amit-A, I can add you to npm tomorrow.

but anyway, I really want an org, it would do the things so much easier, at least to me.

@joshuacox
Copy link

@tunnckoCore add me as well, I'd like to contribute back to this project.

my npm account: uberthoth

@felixge
Copy link
Collaborator Author

felixge commented Jul 29, 2019

@tunnckoCore I just transfered the repo to the org. Let me know if you need anything else. Sorry it took so long.

@tunnckoCore
Copy link
Member

@felixge great! :) No problem, we are all busy these days, haha.

@GrosSacASac
Copy link
Contributor

are you still looking for help? I can help triage issues and PR's as well as do some small PR myself.

@tunnckoCore
Copy link
Member

@GrosSacASac sure! Unfortunately, I've not done anything in the last months, but I'm watching the repo and can review PRs and discuss things.

You can start and I can add you to NPM later.

@tunnckoCore
Copy link
Member

tunnckoCore commented Nov 22, 2019

@GrosSacASac, @xargs @quantumsheep sent you invitation for joining the org.

@GrosSacASac
Copy link
Contributor

I accepted, but I am still unable to add labels to existing issues, and close issues :(

@tunnckoCore
Copy link
Member

@GrosSacASac look now. :) I think it should be working.

@Hawaiideveloper
Copy link

My name is Corey aka Hawaiideveloper. I would like to learn and contribute to this project. I like how the library works when extrapolating.

https://www.npmjs.com/~hawaiideveloper

@Hawaiideveloper
Copy link

go ?

@tunnckoCore
Copy link
Member

tunnckoCore commented Jun 22, 2020

Contributions are welcome, I can add you later to the GitHub, npm is a bit stricter thing :)

Code is a lot cleaner and better than before (and can be a lot better), so I hope it's easy to understand and navigate.

Everything is in the issues and the comments, even with some v3 ideas.
I think #594 is easy start.

@glensc
Copy link

glensc commented Oct 23, 2020

@Hawaiideveloper Go = https://golang.org/

@GrosSacASac
Copy link
Contributor

If someone has npm access, please help resolve #718 (comment)

@MaxFichtelmann
Copy link
Collaborator

npm is also needed to publish v1.2.3 (7e07387)

@tunnckoCore
Copy link
Member

@MaxFichtelmann what's v1.2.3? Just that package.json change? Well, yea possibly when i published 1.2.2 i forgot to bump to version in package.json or what? hm.

@GrosSacASac
Copy link
Contributor

If I am correct 1.2.3 has a fix (2021) on top of 1.2.2 but was not published to npm

@tunnckoCore
Copy link
Member

Hm. Okay clear. I'll try.

@MaxFichtelmann
Copy link
Collaborator

the change was a fix for #433
some minor changes were needed to make the tests/travis work again/current node versions

details: v1.2.1...v1.2.3

@tunnckoCore
Copy link
Member

Ah, right. Thanks @MaxFichtelmann

@GrosSacASac
Copy link
Contributor

I don't even know how to test if form.pause() and resume work. We have 2 issues around this, and don't know where to start.

@tunnckoCore tunnckoCore added Type: Maintenance Updating phrasing or wording to make things clearer or removing ambiguity, without a functionality. and removed meta labels Apr 2, 2022
@wbt
Copy link
Collaborator

wbt commented Apr 12, 2022

I'm a maintainer on the widely-used 'winston' logger (w-b-t on npm; 2FA required for that b/c it's a top-100 package) and while I can't promise any active maintenance here, I might be able to chip in on occasion (example here).

@tunnckoCore
Copy link
Member

tunnckoCore commented Apr 29, 2022

@wbt great, it's always better to have more hands and eyes. Can add you this next few days. Many things are commented and have opened issues for tracking.

@nagy-nabil
Copy link

hello, it's my first time on open source project, I'm curious how parsing multi-part forms work
I started my search by looking for the request interface with contenttype="multi-part/form" and I started getting results
also I tried to read through "src/Formidable.js", I was wondering can I migrate "@types/formidable" inside the project to make my mission easier
any resources to help me understand the parsing process would be appreciated
btw I used formidable myself in a couple of projects

@tunnckoCore
Copy link
Member

tunnckoCore commented Dec 30, 2022

@nagy-nabil welcome to open source! 👋

Formidable is a very old project (11 years), and its codebase might be a bit unintuitive. There are parts that sit there because of legacy reasons.

To understand the flow and look on a bit more modern base you can check out formidable-mini that I created to play around a while ago, around the same parser. But the whole thing is significantly more small because there are many things that got into the JS/nodejs core like File and FormData. The even funnier thing is that in Nodejs v19.2+ (and in the future v20 LTS) there will be NO need for any package - just 15 lines of code around native things.

For example:

// example request handler (e.g. express middleware, or serverless)
function handler(req, res) {
  // getting/"parsing" file uploads and fields in v19.2+
  const resp = new Response(req, { headers: req.headers });
  const form = await resp.formData();

  console.log([...form.entries()]);
}

This magic works, because the competitor package busbuy got into Nodejs Core. There was discussion to be formidable or busboy and they picked Busboy because it was bumped to v1 this year and it's probably a bit faster nowadays but that can change soon.

Btw, Formidable's parser is used in node-fetch too. It was copy pasted without any note or attribution anywhere. And I copy pasted the modernized variant into formidable-mini too. I tried some benchmarks there too, and from what I'm seeing, it's on par with the latest busboy that got into the Node Core.

The parser itself... it's tricky but kind of easy to follow and understand (it's the least touched thing over the years), if you are into parsing in general tho, it's not my specialty.. haha. I think to write a new parser from scratch (for learning purposes) one day based on what I learned over the years here.

Soon I'll buy a domain, create a website and write a long article around Formidable its past, present and future - the whole state of multipart parsing ("A letter to the stakeholders", haha). Because as you can see, its state and existence is... For 11 years, it's everywhere, in every 9 of 10 articles for nodejs multipart parsing and file uploads, even in Node's official website guide about file uploads. And it's STILL the most downloaded, 2x more than Busboy in fact - https://twitter.com/3a1fcBx0/status/1535663399291564047.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Maintenance Updating phrasing or wording to make things clearer or removing ambiguity, without a functionality.
Projects
None yet
Development

No branches or pull requests