Closed Swizz closed 7 years ago
Hi again @Swizz,
The fly.filter
was intentionally dropped because the entire plugin system is fundamentally different. The old fly.filter
accepted three variations of plugins, none of which would work consistently in the new environment.
Take, for example, the fly-karma
package you're trying to use. There's no way to consistently set a every: true
property on old filters. Some will require true
and others will require false
. In your setup, it defaults to true
, so the Karma tests will be run for every file matched in the glob....meaning if you have 10 test files, the Karma suite will be re-run 10 times.
Then, even if you change this to work specifically for fly-karma
, there's zero guarantee that all the others will work. There was also a defer
method that many plugins were based on. That also no longer exists.
Fly 2.0 is filled with many breaking changes. This is one of them.
The best thing to do is to open a PR on the outdated plugins & encourage authors to update. I've had to do this myself many times.
If worse comes to worse, just fork the repo & install your branch via NPM:
$ npm install --save-dev swizz/fly-karma
Thank you very much for the PR 😄 Unfortunately, it's just not the best solution. Plugins need to update anyway.
You may ping me on open PRs for updating plugins. I'll do what I can to help get notice.
@lukeed What do you think about transfer core plugins like buble
or coffee
to Fly
repo ?
I'm working on fly-buble
here. Been waiting a while.
Pretty sure fly-coffee
is already part of Fly org?
Adopting fly is going to be a tirelessly fight :crossed_swords:
But I am ready, Fly match lot of my thoughts about "build tools"/"tasks runner". :+1:
Ask me If you want some help for the rewrite of most used plugins.
@Swizz It's worth it 😉
The plugins I use are updated & working. The best thing you could do is find the plugins you would like to use & try to patch them. It's impossible for me to find everything myself.
@lukeed Yep, but what i actually meant is to transfer all most used plugins to fly org. Because most of them are not actively maintained like you mentioned buble
for example and we need to provide good supported alternative for end user.
@hzlmn Yeah. The trick is finding these authors & getting them to transfer or at least be actively engaged in maintaining the plugin.
I've been waiting on fly-browserify
for months now, and fly-buble
for almost a month. Those are the only 2 I'm aware of (and that I use) that aren't updated.
Have to remember, too, that Fly practically went a year without being updated. So can't really blame these authors for abandoning their plugins. Now we just need to let them know we're alive & kicking again!
@lukeed Yeah got it. I will start around my stack first, and grow near the most used things
@hzlmn This is what I was talking about. Fly need better community support around plugins to grow up
@Swizz, @lukeed yep, we currently need better docs and internalization for popularization of fly
.
Btw, when I showed fly
on my work, we fully migrate from gulp
to it.
@hzlmn Awesome! What kind of improvements did you get? Did you track memory/speed from before vs after?
And what needs to be improved on the Docs? From what I hear, they're really descriptive & well-covered.
@hzlmn Luke really knocked it out of the park with the new docs, nothing like what we used to have. I'm not sure if we need more docs, instead a gitbook.com with a few practical tutorials would be more valuable IMO.
@lukeed @hzlmn So.. what about the use of npm-scope
?
MostJS use them to ensure end user that package are officially supported by the core maintainers. And scope will permit you to re-use name if actual authors does not answer to your calls.
Thanks @jbucaran
@Swizz I had major issues while scoping my fork fly-browserify
. For whatever reason, scopes are sort of notoriously bad at actually working for everybody.
$ npm install @lukeed/fly-browserify
# almost exactly the same as
$ npm install lukeed/fly-browserify
# ^^ but this works everywhere everytime
@jbucaran , @lukeed Yep it totally awesome and Luke done awesome work, but there are some points from my team members, for example, not everyone fully understand where "magic" plugin methods like lint
comes from, we need better description about fly booting and a bit fly internals. But it's IMO
PS. and also gitbook or little screencast seems like a good idea, isn't it?
@hzlmn Gotcha. Sure. I think that, too, belongs to a user guide or handbook. The docs are already of considerable length.
Yea, they're as long as they should be imo. But, do you mean how a plugin's name
becomes a method? I could revisit that section.
And what more needs to be said of the internals? I kinda feel like the point of Fly is that you don't have to worry about the internals at all. They're exposed when & only when their contents are needed.
Perhaps we should continue this discussion in another issue, and address @Swizz PR here. Looks like it won't be merged?
@lukeed But except if I missed something
$ npm install lukeed/fly-browserify
# use the github repository from the master branch
$ npm install @lukeed/fly-browserify
# use the npm published package
@Swizz Correct. But @lukeed/fly-browserify
doesn't work 100% of the time. I'm not sure why, but I've had install issues with scoped packages many times; and I hear the same from others every so often.
@jbucaran I still need NPM access to the existing Fly org plugins. Just updated fly-coffee
to 1.0 but can't publish it. cc @hzlmn
@lukeed I think it is a problem with current regex for matching plugins
. I mean for scoped packages
Yeah, that'll block it right now. But I meant that I couldn't actually install plugins. NPM fails to find the package && Yarn definitely can't (last I checked).
By using Cyclejs and Mostjs, I use scoped npm package most of the time. And never noticed any issue. I will investigate.
Now you can actually test it out 😄 https://github.com/flyjs/fly/releases/tag/v2.0.5
I know, this is a big loopback. But numerous plugins are always still deprecated and could cut the Fly's karma. (I wanted to move my old build config to Fly and went pissed off)
This addition were written with old source, docs and changelog in mind and manually tried against : fly-pug, fly-buble, fly-postcss, fly-csso, and fly-coffee.
This Pull request is opened for discussion. I will work on clean tests, if the discussion be favorable.