Docs on publishing of header-only C++ libs (include in node c++ modules)

Aberta
#20 3 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
cpp, nodejs
Domínio
release, tooling

Direção de pesquisa

Localize as bibliotecas C++ header-only neste repositório e compare o padrão de package.json e include_dirs.js do Nan com os exemplos vinculados. Adicione os metadados de pacote solicitados para cada biblioteca, depois execute npm pack e inspecione o tarball para confirmar que ele contém os headers e apenas os arquivos padrão do npm.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

rational

We are increasingly working on small node C++ modules that depend on header-only C++ libs.
Node.js's Nan module has pioneered a best practice for how to include header only C++ libs in node C++ addons by simply adding a package.json and include_dirs.js file to the root of the project. I think we should follow the lead of howNan does this and package all our C++ header only libs in npm as well as mason. I think publishing in two places is worth it because it makes including the libraries from node modules very easy and consistent with how JS modules work.

method

Add:

  • package.json
  • include_dirs.js
  • files parameter to package.json so that only the include/ directory is included

Example:

{
    "name": "@mapbox/geometry-hpp",
    "version": "0.9.0",
    "description": "A C++ header only geometry type library",
    "main": "./include_dirs.js",
    "repository"   :  {
      "type" : "git",
      "url"  : "git://github.com/mapbox/geometry.hpp.git"
    },
    "files": [
         "include"
    ]
}

Then test that only the right files are going to be packaged:

npm pack
tar -ztvf *tgz

^^ that should list just the headers and the default files npm includes like README.md and package.json etc

Examples:

Example use case:

Linguagem predominante
Sem dados de linguagem
Estrelas
110
Forks
17
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de mapbox/cpp

Todas as issues de mapbox/cpp

Issues semelhantes

Mais issues de Release

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.