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

Move cli to yargs #2473

Closed
dignifiedquire opened this issue Nov 28, 2016 · 5 comments · Fixed by #3451 or karronoli/redpen#10 · May be fixed by Omrisnyk/npm-lockfiles#136, Omrisnyk/npm-lockfiles#137 or Omrisnyk/npm-lockfiles#139
Closed

Move cli to yargs #2473

dignifiedquire opened this issue Nov 28, 2016 · 5 comments · Fixed by #3451 or karronoli/redpen#10 · May be fixed by Omrisnyk/npm-lockfiles#136, Omrisnyk/npm-lockfiles#137 or Omrisnyk/npm-lockfiles#139

Comments

@dignifiedquire
Copy link
Member

Our current cli setup needs some cleaning up and improvements. Yargs is really good and well maintained so we should transition to using that.

@Emeegeemee
Copy link

Might want to verify that switching to yargs addresses #213 (would guess so, but I've never used yargs) or just close it since its pretty old . Also if this is up for grabs, I might have some time to give.

@dignifiedquire
Copy link
Member Author

I checked and it looks like yargs does not have this issue anymore :)
I've used yargs already in two different projects and it's been a pleasure so far.

Also if this is up for grabs, I might have some time to give.

Great, let me know if you have any questions

@Emeegeemee
Copy link

I've started to look into this a bit more and I think I've run into a small problem. So far I'm trying to match the yargs.parse object to optimist.parse object. What I've found if that when you specify a command flag yargs will always puts the property into the argv object by setting it to false or undefined if the flag represents a boolean in the former or anything else in the latter. This in itself really isn't a problem, where is gets interesting is on parseConfg line 385. Since the argsv object will have all of the flags potentially set to undefined, all the defaults in the Config class and the settings updated from the projects custom config will be overridden.

One idea I had to fix this is to go through the argsv object and delete keys with a value of undefined, but that feels like a hack.

I'm not sure what the best course of action here is, so I'm open to suggestions.

Commit for reference

@dignifiedquire
Copy link
Member Author

Well.. there is #2472 which might needs to be combined with this.

What I'm not not entirely clear on is why things are overriden if they are set to undefined. The merge in parseConfig should only apply defined properties I thought.

anthony-redFox added a commit to anthony-redFox/karma that referenced this issue Mar 25, 2020
BREAKING CHANGES: yargs parse arg from process (optimist was removed)

fix karma-runner#2473
anthony-redFox added a commit to anthony-redFox/karma that referenced this issue Mar 25, 2020
BREAKING CHANGES: yargs parses arg from process (optimist was removed)

fix karma-runner#2473
anthony-redFox added a commit to anthony-redFox/karma that referenced this issue Mar 29, 2020
karmarunnerbot pushed a commit that referenced this issue Apr 9, 2020
# [5.0.0](v4.4.1...v5.0.0) (2020-04-09)

### Bug Fixes

* install semantic-release as a regular dev dependency ([#3455](#3455)) ([1eaf35e](1eaf35e))
* **ci:** echo travis env that gates release after_success ([#3446](#3446)) ([b8b2ed8](b8b2ed8))
* **ci:** poll every 10s to avoid rate limit. ([#3388](#3388)) ([91e7e00](91e7e00))
* **middleware/runner:** handle file list rejections ([#3400](#3400)) ([80febfb](80febfb)), closes [#3396](#3396) [#3396](#3396)
* **server:** cleanup import of the removed method ([#3439](#3439)) ([cb1bcbf](cb1bcbf))
* **server:** createPreprocessor was removed ([#3435](#3435)) ([5c334f5](5c334f5))
* **server:** detection new MS Edge Chromium ([#3440](#3440)) ([7166ce2](7166ce2))
* **server:** replace optimist on yargs lib ([#3451](#3451)) ([ec1e69a](ec1e69a)), closes [#2473](#2473)
* **server:** Report original error message ([#3415](#3415)) ([79ee331](79ee331)), closes [#3414](#3414)

### Code Refactoring

* use native Promise instead of Bluebird ([#3436](#3436)) ([33a069f](33a069f)), closes [/github.com//pull/3060#discussion_r284797390](https://github.com//github.com/karma-runner/karma/pull/3060/issues/discussion_r284797390)

### Continuous Integration

* drop node 8, adopt node 12 ([#3430](#3430)) ([a673aa8](a673aa8))

### Features

* **docs:** document `DEFAULT_LISTEN_ADDR` constant ([#3443](#3443)) ([057d527](057d527)), closes [#2479](#2479)
* **karma-server:** added log to the server.js for uncaught exception ([#3399](#3399)) ([adc6a66](adc6a66))
* **preprocessor:** obey Pattern.isBinary when set ([#3422](#3422)) ([708ae13](708ae13)), closes [#3405](#3405)

### BREAKING CHANGES

* Karma plugins which rely on the fact that Karma uses Bluebird promises may break as Bluebird-specific API is no longer available on Promises returned by the Karma core
* **server:** Deprecated createPreprocessor removed, karma-browserify < 7 version doesn't work
* no more testing on node 8.
@karmarunnerbot
Copy link
Member

🎉 This issue has been resolved in version 5.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

anthony-redFox added a commit to anthony-redFox/karma that referenced this issue May 16, 2023
anthony-redFox pushed a commit to anthony-redFox/karma that referenced this issue May 16, 2023
# [5.0.0](karma-runner/karma@v4.4.1...v5.0.0) (2020-04-09)

### Bug Fixes

* install semantic-release as a regular dev dependency ([karma-runner#3455](karma-runner#3455)) ([1eaf35e](karma-runner@1eaf35e))
* **ci:** echo travis env that gates release after_success ([karma-runner#3446](karma-runner#3446)) ([b8b2ed8](karma-runner@b8b2ed8))
* **ci:** poll every 10s to avoid rate limit. ([karma-runner#3388](karma-runner#3388)) ([91e7e00](karma-runner@91e7e00))
* **middleware/runner:** handle file list rejections ([karma-runner#3400](karma-runner#3400)) ([80febfb](karma-runner@80febfb)), closes [karma-runner#3396](karma-runner#3396) [karma-runner#3396](karma-runner#3396)
* **server:** cleanup import of the removed method ([karma-runner#3439](karma-runner#3439)) ([cb1bcbf](karma-runner@cb1bcbf))
* **server:** createPreprocessor was removed ([karma-runner#3435](karma-runner#3435)) ([5c334f5](karma-runner@5c334f5))
* **server:** detection new MS Edge Chromium ([karma-runner#3440](karma-runner#3440)) ([7166ce2](karma-runner@7166ce2))
* **server:** replace optimist on yargs lib ([karma-runner#3451](karma-runner#3451)) ([ec1e69a](karma-runner@ec1e69a)), closes [karma-runner#2473](karma-runner#2473)
* **server:** Report original error message ([karma-runner#3415](karma-runner#3415)) ([79ee331](karma-runner@79ee331)), closes [karma-runner#3414](karma-runner#3414)

### Code Refactoring

* use native Promise instead of Bluebird ([karma-runner#3436](karma-runner#3436)) ([33a069f](karma-runner@33a069f)), closes [/github.com/karma-runner/pull/3060#discussion_r284797390](https://github.com//github.com/karma-runner/karma/pull/3060/issues/discussion_r284797390)

### Continuous Integration

* drop node 8, adopt node 12 ([karma-runner#3430](karma-runner#3430)) ([a673aa8](karma-runner@a673aa8))

### Features

* **docs:** document `DEFAULT_LISTEN_ADDR` constant ([karma-runner#3443](karma-runner#3443)) ([057d527](karma-runner@057d527)), closes [karma-runner#2479](karma-runner#2479)
* **karma-server:** added log to the server.js for uncaught exception ([karma-runner#3399](karma-runner#3399)) ([adc6a66](karma-runner@adc6a66))
* **preprocessor:** obey Pattern.isBinary when set ([karma-runner#3422](karma-runner#3422)) ([708ae13](karma-runner@708ae13)), closes [karma-runner#3405](karma-runner#3405)

### BREAKING CHANGES

* Karma plugins which rely on the fact that Karma uses Bluebird promises may break as Bluebird-specific API is no longer available on Promises returned by the Karma core
* **server:** Deprecated createPreprocessor removed, karma-browserify < 7 version doesn't work
* no more testing on node 8.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment