0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ACR の帳票開発環境の持ち込みと公開の後始末 ― Open VSX名前空間申請の手作業

0
Posted at

前回のあらすじ

前回は「ACR Viewer for VSCode」を VS Code Marketplace / Open VSX に公開するまでを書いた。今回はその続きで、v0.0.6 の話をする。

0.0.6 で一番大きかったのは、VS Code の中に、ACR の帳票開発環境を持ち込んだことだ。

0.0.6 で何が変わったか

0.0.5 までは、Markdown・テキスト・HTML・ソースコードを、実寸で印刷プレビューして PDF にする拡張だった。

0.0.6 では、ACR の帳票テンプレート(JSON)そのものを扱えるようになった。

  • テンプレート定義のデザイン表示(Ctrl+Alt+8)
  • データ JSON を結合したプレビュー(ページ送り付き、Ctrl+Alt+7)
  • 表示結果の PNG / PDF 保存
  • 表示言語の選択(English / 日本語 / Français)

印刷ツールから、帳票を開発するための道具に一歩進んだ、ということだ。

なぜこれが大きいのか

ACR の帳票定義は JSON だ。これまでは、AcrossReportDesignerで帳票を作り、確認していた。

帳票のデータを作る人や、JSON を直接扱う開発者にとっては、VS Code から離れずに結果を確認できたほうが早い。この機能は、VS Code でデータを作る人が、結果を確認できるようにするためのものだ。同時に、Designer を知ってもらう入口にもなる。AcrossReportDesigner には、一切手を入れていない。

使い方

  1. テンプレート JSON を VS Code で開く(例: sample-shiire.json)
  2. Ctrl+Alt+8 で、デザインを表示する
  3. Ctrl+Alt+7 で、データ結合の画面を開く
  4. 「Select file」でデータ JSON を選び、「Render」を押す
  5. ページ送りで確認し、「Save PNG」「Save PDF」で保存する

【画像: デザイン表示とデータ結合プレビューを並べた画面】

サンプルの sample-shiire.json は、仕入伝票一覧(明細単位)の帳票だ。ActiveReports の RPX から変換した JSON で、sample-shiire.data.json を結合すると 3 ページ分が描画される。PNG と PDF はどちらも 3 ページ分が保存された。PDF と PNG には、ウォーターマークが入る仕様にしている。

設計方針

方針1: ビジュアル編集は持たせない

ドラッグ&ドロップでの編集機能は、VS Code の拡張には入れないと決めた。AcrossReportDesigner との役割分担を保つためだ。VS Code では、標準の JSON エディタでテンプレートを編集し、結果をプレビューで確認する。見た目で作りたい人は、Designer を使ってもらう。

方針2: Designer を起動する案はやめた

最初は、既存の AcrossReportDesignerを、VS Code から別ウィンドウで起動する案を考えていた。Avalonia の WASM 版を、VS Code の webview に埋め込む案も検討した。どちらも採用しなかった。

最終的には、Designer 本体がなくても、拡張の中だけで完結する形にした。既存のネイティブモジュール(NAPI-RS で Rust の描画コアを呼ぶもの)に、テンプレートを描画する新しい入口(render_template)を足し、webview に PNG で表示する。新しい製品名は立てず、ACR Viewer for VSCode の機能拡張として実装した。

今後の方針

次の 2 つは、0.0.6 のリリースノートに載せた機能ではなく、今後の方針だ。

  • SQLite ファイルと SQL を指定して、データを結合したプレビューを出す
  • DataField の表示に、コードからラベルへの変換リスト(value_list)と、値がないときのフォールバック(fallback_text)を足す

おまけ: 公開後の後始末(Open VSX の名前空間)

v0.0.6 は、3 プラットフォーム(win32-x64 / linux-x64 / darwin-arm64)の .vsix を、GitHub Releases・Open VSX・VS Code Marketplace の 3 か所に出した。

Open VSX のページには、公開後もオレンジの警告が出続ける。

このユーザーアカウントは、名前空間 "across-systems" の検証済みの公開者ではない

名前空間を、自分のものだと認めてもらう必要がある。

申請は GitHub 上の、人の手作業

Eclipse 財団の GitHub(EclipseFdn/open-vsx.org)に、「Claim namespace ownership」の issue を作る。担当者が内容を読んで、足りなければコメントで証拠を求め、納得したら所有者にしてくれる。人が読んで判断する手続きで、全部英語で進む。

フォームには、4 つのオプションがある。

オプション 対象
Option 1 Marketplace の publisher で、package.json に repo を書いた拡張を公開している
Option 2 Marketplace の publisher だが、拡張がない、または repo がない
Option 3 Marketplace の publisher ではない
Option 4 上のどれにも当てはまらない(一番時間がかかる)

うちは Option 1 だ。Option 2 と 3 には「DNS に TXT レコードを登録する」方式があり、私は最初、DNS の登録が必要だと思い込んでいた。しかし、Option 1 には DNS の項目は出てこない。DNS には触らずに済んだ。

担当者の要求: Marketplace への書き込み権限

担当者から、「この GitHub ID が Marketplace の publisher アカウントに書き込み権限を持つことを確認したい」と返信が来た。テンプレートに書かれた方法に従って、次のように対応した。

  1. Marketplace の管理画面で、自分の publisher の Members を開く
  2. 「Add」を押し、テンプレートに書かれた Open VSX 管理者の User Id を、Reader(閲覧のみ)で追加する
  3. issue に、権限を付与したことをコメントする

Reader は、申請が閉じられたあとで外す。

自分でやらかした: 二重申請

9月13日に、同じ名前空間の申請を出していた。それを忘れて、9月21日に、もう一度申請を作ってしまった。「Duplicate」とコメントして閉じた。さらに、最初の申請に書いた package.json の repository の URL が、Marketplace に載っている実際の値と食い違っていた。コメントで訂正した。

  • 申請の前に、既存の申請がないか探す。
  • 証拠に書く URL は、Marketplace の掲載ページの値と照合する。

まとめ

  • 0.0.6 で、ACR の帳票テンプレート(JSON)を、VS Code の中でデザイン表示し、データを結合して、PNG / PDF に保存できるようにした。
  • ビジュアル編集は持たせず、Designer との役割分担を保つ。
  • Open VSX の名前空間の申請は、GitHub 上の人の手作業で、返事を待つ。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?