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 #209

Open
cadavre opened this issue Mar 21, 2017 · 24 comments
Open

Project maintenance #209

cadavre opened this issue Mar 21, 2017 · 24 comments

Comments

@cadavre
Copy link

cadavre commented Mar 21, 2017

Hi,
I'm CTO of Jazzy Innovations company, based in Poland. Our company is using plato in several JS projects to track code quality over time. It's a great tool but we find more and more cases when it would be lovely to have plato extended here and there.

My question to @jsoverson (I blamed you on "Needs maintainer" entry in README :p) is: what are your expectations on maintenance of this library? I was thinking about making this project go forward with our team, we want to keep it open-source of course.

My question to community is: would you like to have this lib maintained? What are you missing or what you'd like to have changed?

Maybe there's already another tool to use? Or another fork of this lib which is growing and have potential?

@tomhicks-bsf
Copy link
Contributor

I'm also interested in maintaining this. Our needs are really to do with support for larger projects, such as:

  • aggregate values through a directory structure for project overview
  • search for files
  • export different formats (e.g. HTML as now, JSON) so we can use different reporters and open up/separate the visualisation side of things
  • pass history to CLI, so we don't have to keep history either in git or build server or whatever
  • support for JSX out of the box (sorry it feels dirty, but it's so damn common these days)
  • support for custom evaluators (essentially a plugin system)
  • constraints for CI integration (fail if a file is particularly unmaintainable for example, or if overall project maintainability reaches a threshold)

@gabrielcsapo
Copy link

I would definitely contribute if someone was actively maintaining

@sradevski
Copy link

If you look under the forks of plato, you will see that there is a more recent, maintained version of the tool: https://github.com/the-simian/es6-plato. I haven't tried it out yet, but it is worth looking into it.

@eshinn
Copy link

eshinn commented Jun 11, 2017

There are a few things I'd like to see:

  1. The ability for it to see () => {} functions. As it stands right now, unless the word function is used, I can't see what exactly the cog icons are pointing to.
  2. The ability to use non .js file extensions (ex: .jsx, .sh, no-ext)

@sradevski - Respectfully, I took a look at the repo you mentioned (as well as the one it's forked from) and neither seem to have a release later than 2014.

@sradevski
Copy link

@eshinn Yeah, it seems that is true for the releases, but there are recent commits and I just judged based on that. I will try it out when I find the time and let you know if it is any good.

@zephraph
Copy link

@es-analysis could we get some more contributors added to the organization? I'd be willing to contribute, along with a few individuals above.

@sradevski
Copy link

I tried the fork https://github.com/the-simian/es6-plato and it works great! The last release on npm was 4 months ago, and there are no open issues with the project. I ran it on 2 of my React projects and it worked without any problem. I suggest you to look into it.

@jsoverson
Copy link
Member

@zephraph this project needs a new maintainer, not just a few contributors. I can offer no time at all.

If someone wants to be the new maintainer, then submit a PR that incorporates any of the existing pull requests + new changes required and I'll add them to the group and give them publish access on npm.

@gabrielcsapo
Copy link

@jsoverson it might make sense to ping @the-simian to see if will merge this changes into the main project?

@the-simian
Copy link
Collaborator

the-simian commented Jun 20, 2017

Sorry, I've wanted to do this for some time, but I've been really overwhelmed. I've gotten my fork stable, and working, and I've fixed issues at they have come up, but I've been having a hard time to find time to make a possibly difficult PR (there could be a lot of merge conflicts at this point).

I appreciate the ping, I'll do it when I can, but I've had a challenge finding time to re-integrate to this one. I think that's a big job

@jjpatel361
Copy link

So is this project maintained? or there are other forks actively maintained and updated.
@the-simian are you actively maintaining this project.

@the-simian
Copy link
Collaborator

@jjpatel361 I am maintaining es6-plato right now, and I keep it up to date. I've not merged it into this projected mainly because I've heavily refactored the code to be simpler and I've added a lot of important things over time, its diverged enough

At some point I'd like to merge it all back in. I think since I forked some time ago, this project did add back in some es6-compatibility and stuff, but I havent taken the time to analyze all the updates since I forked.

SO the short answer is : I am actively maintaining my branch. The project lead here did make me a contributor and I've unfortunately not taken advantage of that yet and pulled the efforts i've made back into this 'more popular' repo.

@typhonrt
Copy link
Contributor

Just a note... I have updated the underlying complexity reporting module, typhonjs-escomplex to 0.1.0. I've moved to Babel parser and all of the latest edge JS code should work. Bonus is that Typescript is now supported as well. I'll be submitting a PR soon to plato with the updates necessary. Some of the report structure has changed, so I'll be glad to do the update. @jsoverson Plato lives! ;P

@DanielRuf
Copy link

What is the current status?

@the-simian
Copy link
Collaborator

the-simian commented Jan 29, 2019

@DanielRuf Speaking for myself, I'm still maintaining es6-plato atm. Over time I've done so much refactoring here and there its been hard to consider re-merging into plato. I currently keep that up to date, handle its issues and so on. Right now a lot of folks are using that, myself included so I'm keeping the wheels on the bus on that front.

@typhonrt
Copy link
Contributor

@DanielRuf I need to make another update to some of the metrics changed in the 0.1.0 update of typhonjs-escomplex. It would be good to get the attention of @jsoverson so when a patch is made it can be published. I'm still on a tail end of a sabbatical, so I plan to get started on updating typhonjs-escomplex Feb 12th/13th then can make a patch that week to Plato. It greatly updates the underlying code parser so all current / edge JS should be able to be parsed.

@the-simian there are issues as well seemingly with your fork es6-plato and latest Node versions as I checked out both to figure out how hard a current update would be. You downgraded grunt-casper to a significantly earlier version. I'll have more visibility on specific concerns in a couple of weeks.

The main issue is that the Plato source code itself is long in the tooth. The dev testing infrastructure no longer works with the latest version of Node. Particularly grunt-casper is no longer supported properly; see top 3 issues. So this needs to be stripped out or replaced. It's a lot of work to replace in general, but no so bad to just strip out, but then web based tests are not performed. No big deal IMHO given that just getting Plato to work with the latest JS standards keeps it alive for longer.

While Typescript can now be supported by typhonjs-escomplex of course there are various limitations built into how files are handled and usage of jshint / eslint is not valid. This also could be easy (1-2 hour change) or quite a bit more on how much needs to be gutted.

It would be great to get some communication going w/ @jsoverson to discuss how much of a scalpel I can take to things.

Of course @the-simian I'll be in touch as well. Perhaps it's time to think of a merge back into this repo more or less making es6-plato the canonical plato.

@the-simian
Copy link
Collaborator

the-simian commented Jan 30, 2019

@typhonrt you're right, grunt casper is pretty old, and like I said before - the building/testing is really the part that needs the most help. The source code itself (not the testing infrastructure) is not so bad, but I'd do it differently now given a fresh start. That why I didn't explicitly downgrade grunt-casper, but rather I did not upgrade it due to some compatibility problems in later versions. Judging from your link its only gotten worse, and yes that needs to just be fully ejected from the project.
For now I might just remove it entirely. I'm honestly not interested in grunt at all as a taskrunner. I haven't used it myself in many years now, nor its successor Gulp in many years either.

You're right about eslint, at least on this code in this repo. In my own fork, I've made some changes over the months related to the eslint concerns. I can't remember them all offhand, but you're right that some attention was needed there. I believe its working properly on my fork right now.

I'm not opposed to making es6-plato the canonical plato, but you know what I really want to do? Start over on top of your parser. I'd rather build something with a modern build system in a framework like React. Should I even call that thing plato? Not sure, but I'll spend some time thinking about that.

@kyungilpark
Copy link

@jsoverson
thanks for great tool plato
i wonder how is going on maintenance plan!
still do you looking for active maintainer?

i try to use plato in my es6 project however i failed because of some bugs.
of course, I solved the problem by forking, updating typhonjs-escomplex to 0.1.0, customizing the running eslint, and so on.

so i wanna send PR to fix some issue, but I do not know whether to choose your repo or @the-simian's.
i prefer to yours that is original and popular, but no more maintain.

if you want to keep going your project and still look for maintainer
I’m not sure if I have enough time to do this, but I will try your suggestion.

If someone wants to be the new maintainer, then submit a PR that incorporates any of the existing pull requests + new changes required and I'll add them to the group and give them publish access on npm.

if you don’t care about your project no more, how about you formally inform in README your followers to send the-simian’s repo after archiving yours?
wish others do not waste time worrying like me.

@jsoverson
Copy link
Member

@the-simian if you're still actively maintaining es6-plato then you might as well just take this over and replace it with whatever state your fork is in.

@kyungilpark
Copy link

@jsoverson
check it out #218

@the-simian
Copy link
Collaborator

@jsoverson I saw this message, and I won't be able to look at this until after the 4th of July. I think that's a pretty good idea, tbh. Let me think about it. I know a project of this size, with all the Babylon ecosystem changes and things requires some close attention, tbh. I want to make sure I can stay atop of things if I do this.

@jsoverson
Copy link
Member

@kyungilpark thanks for the PR but what this project needs is a full maintainer.

@the-simian seems best suited for it.

@jsoverson jsoverson reopened this Jul 8, 2019
@kyungilpark
Copy link

@jsoverson
Yes, I think so.
But he has not yet given a clear answer.
And es6-plato also has some issue for my project.

It's up to you. So I will not bother you anymore. 😭

@ytetsuro
Copy link

plato is a great tool. Thank you.
We have developed a tool that has fewer features than plato, but can perform static analysis of JavaScript.
You can use it if you like.

https://github.com/ytetsuro/sabik

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