Code Monkey home page Code Monkey logo

appr's Issues

"Loading dependency graph, done."

Hello,
I have followed the documentation to configure appr but the build travis stops with the following error message:"Loading dependency graph, done.".

What could this problem be? I think it's because expo is launching the application and waiting for interactions, but I don't know how to fix this problem.

Thank you

Missing configuration key error

Hi, would be great if anyone could help me. I have followed all the steps but I get an error when building with Travis.

xxxxx/node_modules/appr/scripts/config.js:20
throw new Error(Missing configuration key ${key});
^
Error: Missing configuration key expUsername

This is the pull request/repo I am working on for reference:
TK-data/BilparkApp#18

Thanks!

Does not work for react-native

It is stated in the readme that appr only works for CRNA or Expo created projects. There is a limitation and appr will not work for - React Native apps started with something other than create-react-native-app or Expo.

Are there any plans to make it work for projects created with react-native cli?

Currently the pipeline succeeds, the project appears in expo and there's a comment with QR code in the PR, but the application fails to open

exp socket hang up

All of my builds fail with CircleCI at

[exp]  ERROR  watch /home/ubuntu/citest2/node_modules/react-native-maps/lib/android/build/tmp/expandedArchives/classes.jar_rvtuwwbhztnbbkxi8oruhd9v/android/support/v4/hardware/fingerprint ENOSPC

I'm guessing because of the watch command? Here is the full log.

if [ "$CI_PULL_REQUEST" != "" ]; then yarn appr; fi
yarn appr v0.27.5
$ appr
[appr] Logging into Expo...
There is a new version of exp available (44.0.0).
You are currently using exp 36.0.0
Run `npm install -g exp` to get the latest version

Success.
[appr] Logged into Expo.
[appr] Preparing project for publish...
[appr] Publishing project into Expo.
There is a new version of exp available (44.0.0).
You are currently using exp 36.0.0
Run `npm install -g exp` to get the latest version
[exp] Making sure project is set up correctly...
-[exp] Warning: Not using the Expo fork of react-native. See https://docs.getexponent.com/.

-[exp] Warning: 'react' peer depencency missing. Run `npm ls` in /home/ubuntu/citest2 to see full warning.
[exp] 
[exp] If there is an issue running your project, please run `npm install` in /home/ubuntu/citest2 and restart.

[exp] Your project looks good!
[exp] Unable to find an existing exp instance for this directory, starting a new one...
[exp] Warning: Not using the Expo fork of react-native. See https://docs.getexponent.com/.
[exp] Warning: 'react' peer depencency missing. Run `npm ls` in /home/ubuntu/citest2 to see full warning.
[exp] 
[exp] If there is an issue running your project, please run `npm install` in /home/ubuntu/citest2 and restart.
[exp] Starting React Native packager...
[exp] Scanning 826 folders for symlinks in /home/ubuntu/citest2/node_modules (9ms)
[exp] 
[exp] Running packager on port 19001
[exp] 
[exp] 
[exp] 
[exp] Looking for JS files in
[exp]    /home/ubuntu/citest2 
[exp] 
[exp] 
[exp] 
[exp] 
[exp] React packager ready.
[exp] 
[exp] 
[exp] 
[exp] Publishing...
[exp]  ERROR  watch /home/ubuntu/citest2/node_modules/react-native-maps/lib/android/build/tmp/expandedArchives/classes.jar_rvtuwwbhztnbbkxi8oruhd9v/android/support/v4/hardware/fingerprint ENOSPC
[exp] 
[exp] {"code":"ENOSPC","errno":"ENOSPC","syscall":"watch /home/ubuntu/citest2/node_modules/react-native-maps/lib/android/build/tmp/expandedArchives/classes.jar_rvtuwwbhztnbbkxi8oruhd9v/android/support/v4/hardware/fingerprint","filename":"/home/ubuntu/citest2/node_modules/react-native-maps/lib/android/build/tmp/expandedArchives/classes.jar_rvtuwwbhztnbbkxi8oruhd9v/android/support/v4/hardware/fingerprint"}
[exp] Error: watch /home/ubuntu/citest2/node_modules/react-native-maps/lib/android/build/tmp/expandedArchives/classes.jar_rvtuwwbhztnbbkxi8oruhd9v/android/support/v4/hardware/fingerprint ENOSPC
[exp]     at exports._errnoException (util.js:1022:11)
[exp]     at FSWatcher.start (fs.js:1429:19)
[exp]     at Object.fs.watch (fs.js:1456:11)
[exp]     at NodeWatcher.watchdir (/home/ubuntu/citest2/node_modules/jest-haste-map/node_modules/sane/src/node_watcher.js:150:20)
[exp]     at Walker.<anonymous> (/home/ubuntu/citest2/node_modules/jest-haste-map/node_modules/sane/src/node_watcher.js:374:12)
[exp]     at emitTwo (events.js:106:13)
[exp]     at Walker.emit (events.js:191:7)
[exp]     at /home/ubuntu/citest2/node_modules/walker/lib/walker.js:69:16
[exp]     at go$readdir$cb (/home/ubuntu/citest2/node_modules/graceful-fs/graceful-fs.js:149:14)
[exp]     at FSReqWrap.oncomplete (fs.js:123:15)
[exp] 
[exp] socket hang up
Error: socket hang up
    at createHangUpError (_http_client.js:254:15)
    at Socket.socketOnEnd (_http_client.js:346:23)
    at emitNone (events.js:91:20)
    at Socket.emit (events.js:185:7)
    at endReadableNT (_stream_readable.js:974:12)
    at _combinedTickCallback (internal/process/next_tick.js:74:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
/home/ubuntu/citest2/node_modules/appr/index.js:22
      throw new Error('Failed to publish package to Expo');
      ^

Error: Failed to publish package to Expo
    at publishError (/home/ubuntu/citest2/node_modules/appr/index.js:22:13)
    at ChildProcess.child.on.code (/home/ubuntu/citest2/node_modules/appr/scripts/spawn.js:16:5)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
error Command failed with exit code 1.

if [ "$CI_PULL_REQUEST" != "" ]; then yarn appr; fi returned exit code 1

Action failed: if [ "$CI_PULL_REQUEST" != "" ]; then yarn appr; fi

Regexp replace is incorrect.

This regexp missing flag g so it only replaces first characters

return `${name}`.replace(/[^a-zA-Z0-9\\-]/, '-');

Example:

'my-app-@giautm/@signature'.replace(/[^a-zA-Z0-9\\-]/, '-')
"my-app--giautm/@signature"

Pushing to Expo for master branch

I currently have a project set up to use appr by deploying pull requests (like the docs say).

Is there a way to deploy my master branch to the master Expo branch when master is updated?

Thanks!

Use Expo release channels instead of package namespacing

Expo has rolled out support for official release channels. These are a lot more elegant way of what we are currently solving by namespacing the package name with a branch name.

PR #22 adds release channel support. The scope of that PR is to use release channels as separate argument, but instead we might want to just use that as the primary mechanism.

Change exp to a peerDependency

appr's current behaviour is to prefer <app>/node_modules/exp over <app>/node_modules/appr/node_modules/exp - a duplication that exists if the app has a newer or incompatible version of exp as a dependency.

This is useful behaviour - e.g. to synchronise the version of exp between appr and any custom CI scripts used by the app. Moving exp to peerDependencies would simply codify it and make it explicit.

Circle CI 2 doc

I’m using appr with Circle CI 2.0. If there’s no good reason to document the configuration in CircleCI 1.0 on README, it would be nice to update the doc for developpers like me.

Heroku support

Hi there,

I'm a newbie and want to set appr up for heroku pipelines.

Any advice will be appreciated.

Thanks

Adding expo-cli breaks appr

I replaced exp with recently released expo-cli and it borke appr. Even re-adding exp did not help. This is the part of travis log that shows the error:

$ appr
[appr] Logging into Expo...
{ Error: spawn ./node_modules/exp/bin/exp.js ENOENT
    at _errnoException (util.js:1024:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:678:11)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3
  code: 'ENOENT',
  errno: 'ENOENT',
  syscall: 'spawn ./node_modules/exp/bin/exp.js',
  path: './node_modules/exp/bin/exp.js',
  spawnargs: 
   [ 'login',
     '-u',
     '[secure]',
     '-p',
     '[secure]',
     '--non-interactive' ] }
/home/travis/build/hiposfer/hive/node_modules/appr/index.js:13
    throw new Error('Failed to log into Expo');
    ^
Error: Failed to log into Expo
    at loginError (/home/travis/build/hiposfer/hive/node_modules/appr/index.js:13:11)
    at ChildProcess.child.on.code (/home/travis/build/hiposfer/hive/node_modules/appr/scripts/spawn.js:16:5)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
    at Function.Module.runMain (module.js:678:11)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Allow setting --max-workers / other publish options

Background

I'm encountering a similar issue to #21 (only it's on Travis rather than CircleCI). sshing into the build worker and tweaking appr/index.js, I am able to get it to publish using exp publish --max-workers=1 (introduced in exp v50.0.0). (I'm going to try using a quick fork of appr to validate that this completely solves the issue, will report back)

Feature suggestions

What do you think of having a generic way to pass options to exp publish through appr? Or at least a way to pass --max-workers through? Or even just defaulting to --max-workers=1?

Error Pushing Packages to Expo

After the latest release a2520e3d97f08356b950fc29558dc4c49615736 I'm getting an error.

Running on Travis on OSX:

[exp] Invalid Version: undefined
[exp] TypeError: Invalid Version: undefined
    at new SemVer (/Users/travis/build/companyApp/company-ui/node_modules/semver/semver.js:279:11)
    at Function.major (/Users/travis/build/companyApp/company-ui/node_modules/semver/semver.js:551:10)
    at /xdl/src/project/Doctor.js:629:18
    at /Users/travis/build/companyApp/company-ui/node_modules/lodash/lodash.js:4944:15
    at baseForOwn (/Users/travis/build/companyApp/company-ui/node_modules/lodash/lodash.js:3001:24)
    at /Users/travis/build/companyApp/company-ui/node_modules/lodash/lodash.js:4913:18
    at Function.forEach (/Users/travis/build/companyApp/company-ui/node_modules/lodash/lodash.js:9359:14)
    at /xdl/src/project/Doctor.js:619:9
    at Generator.throw (<anonymous>)
    at step (/Users/travis/build/companyApp/company-ui/node_modules/exp/node_modules/xdl/build/project/Doctor.js:615:191)
    at /Users/travis/build/companyApp/company-ui/node_modules/exp/node_modules/xdl/build/project/Doctor.js:615:402
    at <anonymous>
/Users/travis/build/companyApp/company-ui/node_modules/appr/index.js:22
      throw new Error('Failed to publish package to Expo');
      ^
Error: Failed to publish package to Expo
    at publishError (/Users/travis/build/companyApp/company-ui/node_modules/appr/index.js:22:13)
    at ChildProcess.child.on.code (/Users/travis/build/companyApp/company-ui/node_modules/appr/scripts/spawn.js:16:5)
    at emitTwo (events.js:126:13)
    at ChildProcess.emit (events.js:214:7)
    at maybeClose (internal/child_process.js:925:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
The command "yarn appr" exited with 1.
cache.2
store build cache

Adding the send link option to the PR

what about the option that is left right now to send the link to your mail, maybe automate it?(two step instead of one, but still better than nothing)

Make GitHub comments less spammy

Currently appr will create a new comment for every build in an open PR - most commonly this means for every push, which can get a bit spammy.

Consider making the user experience better by amending existing comments, or if we still want to post a new comment every time, at least collapsing the content of older comments.

Danger does this quite well. We could see if we can use Danger internally, or more likely, just get inspiration of how it works since we may not want the full danger comment format.

`yarn appr` returns "Error starting tunnel"

Error starting tunnel: Error: {"status_code":400,"msg":"failed to deserialize request parameter","details":{"err":{"Type":{}}}}

Running yarn appr gives an error. It publishes the pr branch to the main expo project (in this case https://exp.host/@marcdel/cheese-log), but the returned QR code is invalid because the PR branch "experience" is unavailable (exp://exp.host/@marcdel/cheese-log-add-appr).

You can see the associated build here.
https://travis-ci.org/solid-af/cheese-log#L277

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.