Skip to content

lerna publish missing some fields in request body while publishing packages #1843

@eMuonTau

Description

@eMuonTau

There are some missing fields and differences in package info sent to npm repository which are causing problems with verdaccio. npm publish and yarn publish are working as expected.

  • Empty readme content
  • Author info format
    According to the Npm Docs single line format should be parsed automatically.

Expected Behavior

lerna publish should parse author info and set readme field.

  "versions": {
    "0.0.1": {
      "author": {
        "name": "Author",
        "email": "author@example.com"
      },
      "readme": "# @scope/package-name\n\nReadme Content\n",
      "readmeFilename": "README.md",
      "_npmUser": {},
    }
  },
  "readme": "# @scope/package-name\n\nReadme Content\n",

Current Behavior

author field is not in json format and readme field is empty.

  "versions": {
    "0.0.1": {
      "author": "Author <author@example.com>",
      "_npmUser": {
        "username": "username"
      },
    }
  },
  "readme": "",
lerna publish request body

{
  "_id": "@scope/package-name",
  "name": "@scope/package-name",
  "description": "Package description",
  "dist-tags": {
    "latest": "0.0.1"
  },
  "versions": {
    "0.0.1": {
      "name": "@scope/package-name",
      "version": "0.0.1",
      "description": "Package description",
      "main": "lib/index.js",
      "author": "Author <author@example.com>",
      "license": "MIT",
      "scripts": {},
      "dependencies": {},
      "gitHead": "55c4fb8c###",
      "_nodeVersion": "10.14.2",
      "_npmVersion": "lerna/3.8.0/node@v10.14.2+x64 (win32)",
      "_npmUser": {
        "username": "username"
      },
      "_id": "@scope/package-name@0.0.1",
      "dist": {
        "integrity": "sha512-###==",
        "shasum": "a56168###",
        "tarball": "http://npm.example.com/@scope/common/-/@scope/package-name-0.0.1.tgz"
      }
    }
  },
  "readme": "",
  "_attachments": {
    "@scope/package-name-0.0.1.tgz": {
      "content_type": "application/octet-stream",
      "data": "HASH",
      "length": 4610
    }
  }
}

npm publish request body

{
  "_id": "@scope/package-name",
  "name": "@scope/package-name",
  "description": "Package description",
  "dist-tags": {
    "latest": "0.0.1"
  },
  "versions": {
    "0.0.1": {
      "name": "@scope/package-name",
      "version": "0.0.1",
      "description": "Package description",
      "main": "lib/index.js",
      "author": {
        "name": "Author",
        "email": "author@example.com"
      },
      "license": "MIT",
      "scripts": {},
      "dependencies": {},
      "devDependencies": {},
      "readme": "# @scope/package-name\n\nReadme Content\n",
      "readmeFilename": "README.md",
      "_id": "@scope/package-name@0.0.1",
      "_npmVersion": "6.5.0",
      "_nodeVersion": "10.14.2",
      "_npmUser": {},
      "dist": {
        "integrity": "sha512-###==",
        "shasum": "923f21###",
        "tarball": "http://npm.example.com/@scope/package-name/-/@scope/package-name-0.0.1.tgz"
      }
    }
  },
  "readme": "# @scope/package-name\n\nReadme Content\n",
  "_attachments": {
    "@scope/package-name-0.0.1.tgz": {
      "content_type": "application/octet-stream",
      "data": "HASH",
      "length": 4515
    }
  }
}

yarn publish request body

{
  "_id": "@scope/package-name",
  "name": "@scope/package-name",
  "description": "Package description",
  "dist-tags": {
    "latest": "0.0.1"
  },
  "versions": {
    "0.0.1": {
      "name": "@scope/package-name",
      "version": "0.0.1",
      "description": "Package description",
      "main": "lib/index.js",
      "author": {
        "name": "Author",
        "email": "author@example.com"
      },
      "license": "MIT",
      "scripts": {},
      "dependencies": {},
      "devDependencies": {},
      "readmeFilename": "README.md",
      "readme": "# @scope/package-name\n\nReadme Content\n",
      "_id": "@scope/package-name@0.0.1",
      "dist": {
        "shasum": "b03ac8a9###",
        "integrity": "sha512-###==",
        "tarball": "http://npm.example.com/@scope/package-name/-/@scope/package-name-0.0.1.tgz"
      }
    }
  },
  "readme": "# @scope/package-name\n\nReadme Content\n",
  "_attachments": {
    "@scope/package-name-0.0.1.tgz": {
      "content_type": "application/octet-stream",
      "data": "HASH",
      "length": 4630
    }
  }
}

lerna.json

{
  "version": "independent",
  "npmClient": "yarn",
  "useWorkspaces": true,
  "ignoreChanges": [
    "**/__tests__/**",
    "**/*.spec.ts",
    "**/*.json",
    "**/*.md"
  ],
  "command": {
    "bootstrap": {
      "registry": "http://npm.example.com/"
    },
    "add": {
      "registry": "http://npm.example.com/"
    },
    "publish": {
      "registry": "http://npm.example.com/",
      "allowBranch": ["master"]
    },
    "run": {
      "stream": true,
      "parallel": true
    },
    "exec": {
      "stream": true
    }
  },
  "packages": [
    "packages/*"
  ]
}

Executable Version
lerna --version 3.7.1
npm --version 6.5.0
yarn --version 1.12.3
node --version 10.14.2
verdaccio 3.10.1
OS Version
Windows 10 1809

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions