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

OSS Gate Workshop: Tokyo: 2019-10-26: piroor: jsonlint: Work log #1319

Closed
piroor opened this issue Oct 24, 2019 · 7 comments
Closed

OSS Gate Workshop: Tokyo: 2019-10-26: piroor: jsonlint: Work log #1319

piroor opened this issue Oct 24, 2019 · 7 comments

Comments

@piroor
Copy link
Contributor

piroor commented Oct 24, 2019

This is a work log of a "OSS Gate workshop".
"OSS Gate workshop" is an activity to increase OSS developers.
Here's been discussed in Japanese. Thanks.

作業ログ作成時の説明

以下のテンプレートを埋めてタイトルに設定します。埋め方例はスクロールすると見えてきます。

OSS Gate Workshop: ${LOCATION}: ${YEAR}-${MONTH}-${DAY}: ${ACCOUNT_NAME}: ${OSS_NAME}: Work log

タイトル例↓:

OSS Gate Workshop: Tokyo: 2017-01-16: kou: Rabbit: Work log

OSS Gateワークショップ関連情報

  • スライド:ワークショップの進行に使っているスライドがあります。
  • チャット:OSS開発に関することならなんでも相談できます。ワークショップが終わった後もオンラインで相談しながら継続的にOSSの開発に参加しましょう!
  • シナリオ:ワークショップの目的・内容・進め方の詳細が書いています。
  • 過去のビギナーの作業ログ:他の人の作業ログから学べることがいろいろあるはずです。
@piroor piroor changed the title OSS Gate Workshop: ${LOCATION}: 2019-10-26: piroor: jsonlint: Work log OSS Gate Workshop: Tokyo: 2019-10-26: piroor: jsonlint: Work log Oct 24, 2019
@piroor
Copy link
Contributor Author

piroor commented Oct 24, 2019

Firefoxのアドオンのjsonファイルの文法チェックをしたい。
npmモジュールのjsonlintというのがいいという紹介記事を見かけたので試してみたい。

jsonlintで検索したら https://jsonlint.com/ が出てきた。
これはWebサービスで、探している物とは違う。

npm jsonlintとしたら以下が出てきた。
https://www.npmjs.com/package/jsonlint
ここからリポジトリへ。
https://github.com/zaach/jsonlint

READMEの下の方にMIT Licenseと書いてある。
OSSと言える。

@piroor
Copy link
Contributor Author

piroor commented Oct 24, 2019

インストールの仕方が書かれている。

$ npm install jsonlint -g
npm WARN deprecated [email protected]: Package no longer supported. Contact [email protected] for more info.
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/piro/.npm/_logs/2019-10-24T02_36_05_225Z-debug.log

エラーになった。
アクセス権がないと言われた。
管理者権限で実行するのを忘れていた。

@piroor
Copy link
Contributor Author

piroor commented Oct 24, 2019

sudoを付けて実行し直した。

$ sudo npm install jsonlint -g
[sudo] piro のパスワード:
npm WARN deprecated [email protected]: Package no longer supported. Contact [email protected] for more info.
/usr/local/bin/jsonlint -> /usr/local/lib/node_modules/jsonlint/lib/cli.js
+ [email protected]
added 8 packages from 5 contributors in 1.071s

今度は成功した。

あえて文法エラーを入れた状態のファイルを指定して実行してみた。

$ jsonlint codes/treestyletab/webextensions/manifest.json
Error: Parse error on line 3:
..._extensionName__"  "version": "3.1.8",
----------------------^
Expecting 'EOF', '}', ':', ',', ']', got 'STRING'
    at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)
    at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)
    at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)
    at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)
    at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)
    at Module._compile (internal/modules/cjs/loader.js:701:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
    at Module.load (internal/modules/cjs/loader.js:600:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
    at Function.Module._load (internal/modules/cjs/loader.js:531:3)

ちゃんとエラーを検出してくれた。

@piroor
Copy link
Contributor Author

piroor commented Oct 24, 2019

複数のファイルを指定してみた。

$ jsonlint codes/treestyletab/webextensions/manifest.json  codes/treestyletab/webextensions/_locales/en/messages.json

2つめのファイルのエラーが報告されない。
使い方には1つのファイルの場合しか書かれていない。
複数ファイルをサポートしていない?

既知の不具合かもしれない。報告済みのissueがないか、issuesを「multiple」で検索してみた。
https://github.com/zaach/jsonlint/issues?utf8=%E2%9C%93&q=is%3Aissue+multiple

Multiple files support
zaach/jsonlint#77

要望が上がっているのを見つけた。

読み進めると、改良されたフォーク版がある事が分かった。
https://www.npmjs.com/package/jsonlint-cli
フォーク版で試すと先ほどの例もうまく行った。

@piroor
Copy link
Contributor Author

piroor commented Oct 24, 2019

方向性

  • 必要な変更点をjsonlintにバックポートする
  • jsonlint-cliに誘導する

どちらが適切か?

という事を勘案すると、jsonlint-cliに誘導するようにREADMEに書いてあればよさそう。

https://github.com/zaach の草の生え方を見たら、作者自身はいまもGitHub上でアクティブに活動している模様だった。
プルリクエストはもしかしたら取り込んでもらえるかもしれない。

@oss-gate-issue-cleaner
Copy link

おつかれさまでした!

後日引き続きワークショップがある場合

後日のワークショップで再開する際に、issueタイトルの日付を更新してreopenしてください!

ワークショップ終了後に続きがしたい場合

issueはクローズしますが、その後も作業を続けていただいて大丈夫です!

是非このissueを活用なさってください。

今後のイベントの案内

現在以下のイベントの開催を予定しています。

参加をお待ちしてます!

@piroor
Copy link
Contributor Author

piroor commented Oct 29, 2019

続きは #1322 で行う。

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

1 participant