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

Project maintenance and health #639

Open
dmajda opened this issue Feb 9, 2020 · 68 comments
Open

Project maintenance and health #639

dmajda opened this issue Feb 9, 2020 · 68 comments

Comments

@dmajda
Copy link
Contributor

dmajda commented Feb 9, 2020

Hi @futagoza!

During the last week I was tagged in multiple issues by @StoneCypher, who expressed his worries about PEG.js maintenance and project health (he also contacted me about this privately by email). I haven’t followed PEG.js development much since I transferred the maintenance to you, but his actions made me have a look.

I have to admit the current state of the project made me sad. There are tons of changes in the code, but the last release is still 0.10.0 which I did back in 2016 (!). Apparently, you were on track to release 0.11.0 back in 2018, but that never happened. Your last comment in the issue talks about rewriting PEG.js in TypeScript instead (?). There are also multiple other, less glaring problems.

While I don’t approve @StoneCypher’s way of expression, I understand and share his concerns. At this point, I wouldn’t recommend PEG.js as a basis of any project.

As you know, when I transferred PEG.js to you, I deliberately cut all my ties to it. I wanted it to be developing independently, without my direct or indirect involvement, and without my spectre hanging over it. I no longer have any rights to PEG.js's website, GitHub, or npm package. But I feel I have to speak up now. I’d like to ask you to consider the current state of PEG.js, its future, and to think about changes to make the project healthy again.

I’m pretty sure PEG.js community shares the concerns expressed above and would appreciate an honest answer. And while I don’t want to suggest any particular course of action, I believe the community may be the key to resolving project’s current problems.

I hope you won’t take my message in a bad way. I know very well that maintaining a project like PEG.js is hard and one can’t satisfy everyone all the time. It’s just that I felt my word may prompt you to think about these issues and that PEG.js community deserves an answer.

Thanks for listening.

@StoneCypher
Copy link

I despair that I have to fork this library, meaning none of the existing consumers will ever get help, and one of the most important libraries on the internet has died

@STRd6
Copy link

STRd6 commented Feb 18, 2020 via email

@jamesruan
Copy link

I used this library 5 years ago when I still learning to code JS. I made a language that render to HTML that is more expressive than any Markdown dialets I knew. Today, I reconsidered that language to be further evolved, but to find out this library is not as healthy as I'd expected. Just feel sad.

@ebosveld
Copy link

ebosveld commented Mar 6, 2020

My company uses this package as well and very much like to see the ES module feature and the TypeScript language feature released soon.

If @futagoza can't maintain this package anymore, he should let somebody else take over.

@polgfred
Copy link

I’m pretty sure PEG.js community shares the concerns expressed above and would appreciate an honest answer.

More than two months, and still no answer?

@kf6kjg
Copy link

kf6kjg commented Apr 17, 2020

It looks to me like @futagoza has fallen: all activity on the various communities his linked homepage links to stop at about the same time. Sad.

@StoneCypher
Copy link

you can still see activity in the last seven days on side channels

@tilgovi
Copy link

tilgovi commented Apr 20, 2020

I've reached out over e-mail to see if @futagoza could use some help with community management. I think it would be best if we could find some folks who are interested in doing maintenance releases on v0.10 and a few folks to work towards v0.11.

@tilgovi
Copy link

tilgovi commented Apr 20, 2020

Please remember to be kind and let's all do what we can to help out. If anyone has other ways to get in touch, please take some time to reach out and let's see if we can lift the burden and work together.

@roypeled
Copy link

This request to @futagoza for community help has beed raised may times, but we got no response on that matter.
We can only assume this project as abandoned, and together decide on a fork to work from there.

@tilgovi
Copy link

tilgovi commented Apr 21, 2020

I got a response to e-mail. I'll follow up as soon as I have more info to share.

@StoneCypher
Copy link

We shouldn't release 0.10. It's been put onto really weird isolated tools, the development methodology has been changed to something bizarre and niche, it's been moved onto failing build systems, &c.

We really need to go back to 0.9 and cherry pick PRs in their original state, and keep David's original clean system. We can't let Futagoza skip versions for three years because he's created a mess, then hold out for someone who's willing to keep his approach and try to release it

This needs to be turned into a standard node system now. It's needed it for years and all the active users have been asking for this forever

@michael-brade
Copy link

@StoneCypher I think you may have missed something or it may just be a typo - we already have a 0.10 release. So you meant the 0.11 release?

@StoneCypher
Copy link

oh, my mistake, 0.10.0 is david's 4 year old release, you're right

@leifg
Copy link

leifg commented May 11, 2020

@tilgovi Any news to share?

In general: is there another parser library anyone can recommend?

@bd82
Copy link

bd82 commented May 12, 2020

https://tomassetti.me/parsing-in-javascript/

@StoneCypher
Copy link

Frankly none of those are usable.

None of those except canopy and ohm have an in-browser version

Waxeye slows down dramatically under even light use, as does apg

Jison's grammars are a puzzle from Vulcan, set to drive any human that isn't Lex Luthor stark raving

ANTLR is like eating broken glass that is somehow also bees

Nearly is fun and interesting and I just cannot get the promises that Early parses give. I recognize that I should be able to. I've been trying for years.

Ohm is super powerful and fun and an entirely different way of looking at the problem and not a reasonable substitute. It's like recommending a replacement of lisp with prolog. Peg and Ohm only just barely technically apply to the same problem domains. It's almost guaranteed that at least one of them will be a bad fit.

Bennu is buggy and produces incorrect results.

Parsimmon is interesting and powerful but I don't enjoy parser combinators and it's pretty verbose.

Par.js took the first ten lines of my PEG and turned them into 200 lines of code. Ouch

Chervotain made them 1900 lines. I actually wrote a peg to translate my peg to Chervotain. Admittedly, it's blazing fast, but the last thing I want to do is transcompile a grammar, and the second to last thing I want to do is maintain Chervotain. Even the XML guys would call this verbose.

The reason PEG has persisted despite rotting on the vine half a decade is that nothing currently alive can possibly replace it.

@tilgovi
Copy link

tilgovi commented May 27, 2020

I initially got a very thoughtful response when I reached out over e-mail. I suggested ways I could help the community get started maintaining a 0.10.x branch and offered to work on reviewing and managing contributors. It's now been weeks since I last received a response.

@jquense
Copy link

jquense commented May 27, 2020

Ya'll i think it's time we stop grumbling in the issue tracker here. I also want to see the project move forward but Maintainers don't owe us anything. The better approach would be for someone to fork and maintain in the way they feel is best. We need to show up or move on though, there isn't much value in grumbling about other's free work. Clearly they don't have the time, energy, or desire to keep the project moving, and that's fine!

@dlqqq
Copy link

dlqqq commented Sep 20, 2020

i'd be all for a new maintained fork under fresh administration -- it should be called POG.js
am i right fellow kids?

@dmajda
Copy link
Contributor Author

dmajda commented Nov 21, 2020

If I were @dmajda I'd be pretty upset to be honest.

I’m not really upset, but I regret not doing two things:

  1. Not waiting longer before handing PEG.js over to a new maintainer. Maybe I should have waited for multiple candidates to appear and choose between them, require contributions first, or something similar.

  2. Not keeping the “keys” to the project (access to PEG.js website, GitHub, and npm package).

Any of these may have prevented the current situation. Unfortunately, this is obvious only in retrospect.

Anyway, it’s quite clear from his non-reaction that @futagoza is not interested in PEG.js anymore. I didn’t watch the JavaScript parser generator space in the last few years so I don’t know whether a good replacement of PEG.js exists. But if not, I would welcome if someone sufficiently interested and motivated picked up PEG.js code and continued development under a new name. I believe this would be the best course at this point. The only issue to decide is whether to continue from the current state or from the state before changes made by @futagoza.

I think that changing the name is a good idea in order to prevent confusion, at least if the original website and repo is still up. Also, it is possible that multiple people will appear, each wanting to take PEG.js in a different direction. In such case, it would be unfortunate to have “Joe’s PEG.js fork”, “John’s PEG.js fork”, etc.

I feel sorry for this situation. If I ever do an open source project again and end up handing it over to someone, I will definitely do it differently.

@pjmolina
Copy link

Thanks @dmajda for your support.

@bd82
Copy link

bd82 commented Nov 22, 2020

Not keeping the “keys” to the project (access to PEG.js website, GitHub, and npm package).

Hello.

I don't know about the website and github access, however,
npm has a process to resolve conflicts on package names.

So that is one item that can be retrieved.

Who is paying for https://pegjs.org DNS name?
If I understand correctly the domain name will expire in ~1 week so dependent on the grace period
it may be possible to repurchase pegjs.org in 1-2 months.

@StoneCypher
Copy link

@bd82 - we cannot dispute this because there is no cause. dmajda chose to give the project to someone who's never done anything, and that person has absconded.

@phpnode - I have a significant modernization of the project underway

@phpnode
Copy link

phpnode commented Nov 26, 2020

@StoneCypher sounds good! Is this on your fork at https://github.com/StoneCypher/pegjs ?

I've contacted the owner of the https://www.npmjs.com/package/peggy package which hasn't been updated in 9 years and they've agreed to give us the name. I've created a new github org and moved the repo here: https://github.com/peggyjs/peggy I'd be happy to add you to the organisation if you'd like?

@StoneCypher
Copy link

I would enjoy to join your org.

No, that's not the one I'm talking about; that's just a bugfix fork for the main project. I already have a domain and package name :)

My goals are to modernize the output and editor, to fix a lot of long standing bugs, to radically improve testability, and to fix the enormous !#%%#& binaries I get unnecessarily

@StoneCypher
Copy link

That's actually why I asked other people to point their fork at pegjs.com, is that until I have that authorization I actually cannot do it myself, and the domain deadline is before I can practically receive that authorization

@phpnode
Copy link

phpnode commented Nov 28, 2020

@StoneCypher yes please, I'd be happy to be added to the org. I'm hoping we can work together as splitting the community would be really unfortunate.

@StoneCypher
Copy link

C'est fantastique. I agree that a splitting would be strongly undesirable, and I really want other people to help. My understanding of David's work is ... modest, at best 😀

I've invited you to six repositories with write access. Please check your email.

The code isn't up yet, pending that authorization. Please look in the issues repository's issue tracker

@AlansCodeLog
Copy link

As for the pegjs.org domain, I misunderstood the comment by @AlansCodeLog to mean the domain was renewed already. Apparently it wasn’t. This makes my point regarding .org vs .com more or less invalid.

It has been renewed (look at the year):

Registry Expiration: 2021-11-28 14:31:06 UTC
Updated: 2020-11-26 01:41:16 UTC
Created: 2014-11-28 14:31:06 UTC

Also, just want to say from my point of view as a user, name, seo, etc, don't really matter in the grand scheme. People who used or are interested in peg.js will eventually stumble onto this issue and find alternatives, if the alternative is good it'll make a name for itself.

Also for those creating forks I would consider carefully using a github fork. Forks do not appear in github search by default (unless they have more stars, quite a high bar to beat). If I search "peg.js" your fork will not appear. On the other hand if you use a regular repo and put "peg.js" in the description it should appear. Also a fork's code cannot be searched from the search bar, and possibly there might be other limitations. I personally think these are more valuable than appearing in the list of forks. Alternatively I think one could keep both a fork (e.g. name/peg-js-fork) and a repo (org/peg-js) in sync, and set the fork to a dummy branch with a notice.

@StoneCypher
Copy link

It is a regular repo, for exactly that reason ❤️

I'm glad to see the SEO isn't being destroyed

@rfestag
Copy link

rfestag commented Jan 24, 2021

@StoneCypher - Has there been any movement in opening up the project from your employer?

@StoneCypher
Copy link

Yes. I believe I'll have authorization soon.

@hildjj
Copy link

hildjj commented Feb 28, 2021

@StoneCypher monthly ping for status? :)

@StoneCypher
Copy link

I got tangled in some corporate details. I think it's almost there. I apologize

@1000i100
Copy link

1000i100 commented Mar 10, 2021

In brief PEG.js is dead, reborn as :

And there is also the moo lexer as not so similar alternative like sayed here :
messageformat/messageformat#288

Am I right ?

@lublak
Copy link

lublak commented Mar 10, 2021

Peggy also looks more dead than alive.
It looks like @StoneCypher has a real maintained project. So I'm keeping an eye on it.
@futagoza ist alive but ignores everything.
My hope is that he will hand over the project.

moo lexer is nice. But it's not a real alternative if you want to work with "real" grammar. moo is only a lexer. Pegjs is more than a Lexer.
The only alternative I have found is
https://github.com/kach/nearley

Some others:
https://github.com/zaach/jison
https://github.com/harc/ohm

But overall: Pegjs simply is the most stable and fastest library for me.

@hildjj
Copy link

hildjj commented Mar 10, 2021

I'm willing to start helping whichever of @phpnode or @StoneCypher cuts a release of any kind first. It doesn't have to have the final name for me, it just needs to respond to npm install with a non-github checkout.

Its a race!!!

@StoneCypher
Copy link

I will release as soon as my employer signs off. 🤷‍♂️

@iulo
Copy link

iulo commented Apr 12, 2021

another month passed, any update? @StoneCypher

@phpnode
Copy link

phpnode commented Apr 12, 2021

I basically ran out of time / capacity and I'm not working on anything that needs a parser at this moment sadly, so peggy died as soon as it was born, sorry about that :(

Edit: Peggy is alive!

@hildjj
Copy link

hildjj commented Apr 12, 2021

I basically ran out of time / capacity and I'm not working on anything that needs a parser at this moment sadly, so peggy died as soon as it was born, sorry about that :(

@phpnode Would you be open to someone else taking over the peggy org? I can at least push out a release and start taking PRs if you help hand off the relationship with the owners of the existing peggy package.

@phpnode
Copy link

phpnode commented Apr 12, 2021

@hildjj absolutely, yes please! If you open a/some PRs to the peggy repo I'll add you to the npm package and github org. My github notifications are a horror show so please email me at charles@codemix.com if it takes me more than 24hrs to respond

@hildjj
Copy link

hildjj commented Apr 12, 2021

Trivial but opinionated PR: peggyjs/peggy#3

@hildjj
Copy link

hildjj commented Apr 15, 2021

We just did a pre-release version of peggy, 1.0.0-rc.0. Can a few of you try this out in your existing projects, please? We'll do a full release as soon as we have a few data points.

@hildjj
Copy link

hildjj commented Apr 16, 2021

Peggy rc2 is up on unpkg and jsDelivr. Full 1.0 release expected today.

@hildjj
Copy link

hildjj commented Apr 16, 2021

Peggy v1.0.0 is out. Please start re-opening issues there that you want us to track.

IMO this bug should be closed if this project had a maintainer.

@StoneCypher
Copy link

It's not worth a community split and I still don't have the okay from my employer, and Joe is the Web Sequence Diagrams guy, so, I'm just going to close my fork.

LMK if contributions are welcome, especially regarding typescript, automation, and reducing output size

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