Skip to content

Restore presence on AMO #679

Closed
Closed
@lidel

Description

@lidel

IPFS Companion got temporarily hidden from addons.mozilla.org due to manual review.
We are working on complying with requests and suggestions from AMO reviewers.

Updates will be published below.

cc #306

Timeline (continued in comments)

2019-01-31

Manual review started. Reviewer had a build issue, we replied on the same day providing build steps:

[ Click to expand conversation ]

This version contains obfuscated, minified, concatenated or otherwise machine-generated code. Please provide the original sources, together with instructions on how to generate the final XPI. Source code must be provided as an archive and uploaded using the source code upload field, which can be done during submission or on the version page in the developer hub.
Please read through the instructions at https://developer.mozilla.org/en-US/Add-ons/Source_Code_Submission.

Are you able to provide more details? Which specific part (files, paths) of extension triggered this action?

We had similar request in past (for v2.4.2) and since then we always attach .zip with sources for every release and did the same for this one. The file included README with reproducible build instructions (copy below).

Reproducible build (requires Docker): npm run release-build
Regular build (no Docker): npm run dev-build

"release-build" is an alias for running build script inside of an immutable Docker image with specific version of Node, yarn and crypto toolkit, which guarantees the same node version and minified output on all platforms.

Related docs:
https://github.com/ipfs-shipyard/ipfs-companion#development
https://github.com/ipfs-shipyard/ipfs-companion#reproducible-build-in-docker
#306 (reproducible build issue – please comment if we do something wrong or could do better in this area)

2019-01-01

Reply from Reviewer suggesting the issue is resolved

  • Thank you for the prompt response. It seems I was looking at an older version. The source code for this one was provided correctly.

2019-01-01

Reply from Reviewer suggesting the webui is still missing
Replied on the same day:

[ Click to expand conversation ]

I've built your add-on on Ubuntu 18.04 using npm i, npm run release-build, but webui folder is missing from the build.

Interesting! Current build pipeline downloads prebuilt webui (sources at https://github.com/ipfs-shipyard/ipfs-webui) from IPFS instead of NPM. I assume your VM did not have IPFS installed, but it should fallback to fetching dependency from public HTTP gateway. Did your VM block HTTP GET from: https://ipfs.io/api/v0/get?arg=QmXc9raDM1M5G5fpBnVyQ71vR4gbnskwnB9iMEzBuLgvoZ&archive=true&compress=true ? Are you able to retry?

2019-02-08

Reply from Reviewer being unable to reproduce:

I tried it again but it got stuck at:

$ ./ci/update-manifest.sh ; npx [email protected] build ; chmod -R ugo+rwX build/ add-on/

fatal: Not a git repository (or any of the parent directories): .git

Mentioned error should not break the build and in the following two days we were trying to reproduce issues with the build locally without any success.

2019-02-10

Extension hidden due to reproducibility issues:

This version didn't pass review because of the following problems:
1) We couldn't reproduce the build.
Please submit a new version and provide all requested information at your convenience.

Due to the lack of better ideas I tracked down the issue with missing ".git" in .zip file and added a fix to make 'npm run release-build' work again without that error message.

Uploaded new version (v2.7.2) - ready for review again.

2019-02-11

Reviewer is still unable to reproduce and sends build log:

I tried it again on Ubuntu 18.04 and ran npm run release-build, but I'm getting some errors. I'm pasting here the build log:

[ Click to expand build log ]
npm run release-build



> ipfs-companion@ release-build /home/ralli/Downloads/ipfs-companion-2.7.2-src/ipfs-companion-2.7.2

> docker build -t ipfs-companion . && docker run -it -e RELEASE_CHANNEL=stable -v $(pwd)/build:/usr/src/app/build ipfs-companion yarn ci:build



Sending build context to Docker daemon  2.593MB

Step 1/9 : FROM node:10.11.0

 ---> 8672b25e842c

Step 2/9 : RUN mkdir -p /usr/src/app

 ---> Using cache

 ---> 4786f66115c5

Step 3/9 : WORKDIR /usr/src/app

 ---> Using cache

 ---> cd7705735ebc

Step 4/9 : ENV PATH="/usr/src/app/node_modules/.bin:${PATH}"

 ---> Using cache

 ---> bec1a88c69a7

Step 5/9 : RUN curl -s https://ipfs.io/ipfs/QmbukYcmtyU6ZEKt6fepnvrTNa9F6VqsUPMUgNxQjEmphH > /usr/local/bin/jq && chmod +x /usr/local/bin/jq

 ---> Using cache

 ---> 008ebd78a635

Step 6/9 : COPY package.json /usr/src/app/package.json

 ---> b15bbf53362c

Step 7/9 : COPY yarn.lock /usr/src/app/yarn.lock

 ---> 6cc27c19c99a

Step 8/9 : RUN npm run ci:install

 ---> Running in ed0d901155c0



> ipfs-companion@ ci:install /usr/src/app

> npx [email protected] install --frozen-lockfile || npx [email protected] install --frozen-lockfile



npx: installed 1 in 4.532s

yarn install v1.12.3

[1/4] Resolving packages...

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.2"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.2"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.0"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.2"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.0"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.2"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^4.0.0"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.2"

warning Resolution field "[email protected]" is incompatible with requested version "multiaddr@^5.0.0"

warning Resolution field "[email protected]" is incompatible with requested version "stream-http@^2.7.2"

[2/4] Fetching packages...

Removing intermediate container ed0d901155c0

 ---> dea203892a52

Step 9/9 : COPY . /usr/src/app

 ---> 4ad5bec12418

Successfully built 4ad5bec12418

Successfully tagged ipfs-companion:latest

yarn run v1.9.4

$ ./ci/update-manifest.sh ; npx [email protected] build ; chmod -R ugo+rwX build/ add-on/

Skipping manifest modification (RELEASE_CHANNEL=stable)

npx: installed 1 in 2.014s

$ run-s clean build:*

/bin/sh: 1: run-s: not found

error Command failed with exit code 127.

Please test your build steps on a virtual machine with a clean setup and update the instructions for us.

Turns out the build process was trying to fetch packages from registry.js.ipfs.io and failed silently because server was down. It worked on our end because we had cached docker image built when server was online.

I reported issue to our internal infra team but to save time switched to registry.yarnpkg.com (bf9a69e) and made a new release (v2.7.3) and asked for a fresh look.


(continued in comments)

Metadata

Metadata

Assignees

Labels

P0Critical: Tackled by core team ASAPkind/maintenanceWork required to avoid breaking changes or harm to project's status quo

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions