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

Merge project/packages both MeCab.DotNet and LibNMeCab (Issue#32) #34

Open
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

komutan
Copy link
Owner

@komutan komutan commented Mar 28, 2021

Issue #32 で打ち合わせている、@kekyo 氏の MeCab.DotNet と NMeCab とのマージについてのプルリクエストです。

  • ソースコード観点で言えば、MeCab.DotNet と NMeCab の内部を同一にする修正となります。
  • このために MeCab.DotNet プロジェクトから NMeCab プロジェクトのソースコードをファイル参照する形にしています。
  • MeCab.DotNet 側では .NET FW 2.0以上を対象としていますが、NMeCab は.NET Std 2.0専用なので、NMeCab 側にもプリプロセッサディレクティブを追加するなどの修正を加えています。(これは、ちょっと興味が湧いたのでやってみた感じだったりします😋)
  • それでも、NMeCab は .NET Std 2.0 専用での公開のままとしています。(つまり.NET FWは切り捨てた状態ですが、これはWindows環境以外でも開発できるようにしたいことや、新機能追加の際に過去互換性に足をひかれたくない、という思いからです)
  • srcフォルダに、MeCab.DotNet プロジェクトと NMeCab プロジェクトが同居する形にしています。ただし.slnは分けました。
  • ドキュメント関係にはまだ手を加えていません。(「使い方」についてはGitHubのWiki機能に移して、トップの.mdはオーバービューだけにしていこうかと考えています)

@komutan komutan changed the title Merge project/packages both MeCab.DotNet and LibNMeCab (#32) Merge project/packages both MeCab.DotNet and LibNMeCab (Issues #32) Mar 28, 2021
@komutan komutan changed the title Merge project/packages both MeCab.DotNet and LibNMeCab (Issues #32) Merge project/packages both MeCab.DotNet and LibNMeCab (Issues #32 ) Mar 28, 2021
@komutan komutan changed the title Merge project/packages both MeCab.DotNet and LibNMeCab (Issues #32 ) Merge project/packages both MeCab.DotNet and LibNMeCab (Issue#32) Mar 28, 2021
@kekyo
Copy link

kekyo commented Nov 11, 2021

@komutan お久しぶりです。その後いかがでしょうか? .NET 6.0がリリースされたこともあって自分のプロジェクトを棚卸しするまで失念していましたが、もし手伝えることがあればフォローします。

@komutan
Copy link
Owner Author

komutan commented Nov 26, 2021

@kekyo
すみません!返信が遅く。

MeCab.DotNetのドキュメントを移さないといけませんね。構成などのアイデアありましたら頂きたいです。🙏

@@ -39,7 +39,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="LibNMeCab" Version="[0.10.3,0.11.0)" />
<PackageReference Include="LibNMeCab" Version="[0.11.0,0.12.0)" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@komutan 今現在、nuget.orgに上がっている最新のLibNMeCabが0.10.2のため、ビルドが通らなくなっています(0.10.2にすると対応tfmが足りなくてこれまたビルドが通らない...)。

0.11.0というのはもしかしてローカルに置いてますか? そのような場合は、mygetに置くというのが一つの手です(忘れてしまったかもしれませんが、前にRelaxVersionerでやった方法です。nuget.confでカスタムURLを指定して読みに行かせる方法です)。

が、myget使うのはそれはそれで面倒というのもあり。(意図が違っているかもしれませんが)もしIpaDicBinのパッケージをLibNMeCabに依存させることが目的であれば、単にプロジェクト参照(<ProjectReference ... />)するだけで、パッケージ生成(dotnet packなど)時に、自動的に依存関係をパッケージに記録しますがどうでしょうか?

    <ProjectReference Include="..\LibNMeCab\LibNMeCab.csproj" />

に置き換えることで、ビルドとテストが通るようになりました。

src/LibNMeCab/LibNMeCab.csproj Outdated Show resolved Hide resolved
@kekyo
Copy link

kekyo commented Nov 27, 2021

@komutan #38 に小さい差分を作ったので、マージをお願いします

@kekyo
Copy link

kekyo commented Nov 27, 2021

@komutan ドキュメントですが、 MeCab.DotNet 側にはドキュメントと呼べるようなものがない 😄 ので、今の NMeCab の最初のサンプルコード の直後に、同じ構成(NMeCab前提)のF#サンプルコードを追加して、後は現状通り(いちいちF#のコードは追加しない)で構いません。多分、F#erはC#のコードを見れば理解できます :)

MeCab.Tagger の辺りが違うと思うので、libNMeCabのリリースをした後で追記する、で構わないと思います。

また、MeCab.DotNet の説明には:

  • エンジンのコードがNMeCab同等になった
  • バージョンアップされたパッケージが提供されているが、将来はarchiveされる
  • インターフェイスは元と同等なので、MeCab.DotNet のリポジトリを参照の事

のように書こうと思います。補足があればそれも盛り込むので、もしあれば指摘ください。

以上は NMeCab 側のREADMEの話で、MeCab.DotNet の方は同時期に NMeCab への移行を促すようにREADMEに追記します。

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

Successfully merging this pull request may close these issues.

2 participants