Giter VIP home page Giter VIP logo

supply's People

Contributors

asfalcone avatar chrisvire avatar daniszewskik avatar jinjorge avatar krausefx avatar lacostej avatar lurbas avatar mfurtak avatar ohayon avatar readmecritic avatar superarts avatar vpolouchkine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

supply's Issues

Error "The current user has insufficient permissions to perform the requested operation"

Hi!

I have created an API user with all "Release Manager" rights except "Manage Production APKs". When I try to upload a beta apk I get the error

[15:13:30]: Uploading all changes to Google Play...
/Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/lib/supply/client.rb:110:in `commit_current_edit!': The current user has insufficient permissions to perform the requested operation. (RuntimeError)
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/lib/supply/uploader.rb:28:in `perform_upload'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/lib/supply/commands_generator.rb:39:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/lib/supply/commands_generator.rb:57:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/lib/supply/commands_generator.rb:15:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.3.1/bin/supply:6:in `<top (required)>'

Why doesn't that work? "Manage Alpha & Beta APKs" is checked for the API user. Is it trying to access the production apk despite I tried to upload only a beta apk?

Thank you very much!

Kind regards

Dominique

Execution expired error with supply 0.5.1

Hi,

I'm getting the execution expired (Google::Apis::TransmissionError).

As advised in #59, I've updated to 0.5.1 but I'm still getting the error.
It breaks both using the Fastfile or the CLI. APK size is about 15mo.

Sentry id: fa53dc83036953a9c085331cfd271898

[No implicit conversion of nil into String] on supply init

I was trying to use the gem and I got this error on supply init

mobile-poc git:(********) sudo gem install supply 
Password:
Successfully installed supply-0.4.0
1 gem installed
mobile-poc git:(**********) supply init
-------------------------------------------------------------------------------------------
�  An error occured. Please enable crash reports using `fastlane enable_crash_reporting`.
�  This makes resolving issues much easier and helps improve fastlane.
�  The reports will be stored securely on getsentry.com.
�  More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3
-------------------------------------------------------------------------------------------
/Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:41:in `expand_path': [!] no implicit conversion of nil into String (TypeError)
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:41:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:25:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:25:in `make_from_config'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/setup.rb:99:in `client'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/setup.rb:9:in `perform_download'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:51:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.36.8/lib/fastlane_core/ui/fastlane_runner.rb:23:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:57:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:15:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/bin/supply:6:in `<top (required)>'
    from /usr/bin/supply:23:in `load'
    from /usr/bin/supply:23:in `<main>'
mobile-poc git:(*****) supply init --verbose
-------------------------------------------------------------------------------------------
�  An error occured. Please enable crash reports using `fastlane enable_crash_reporting`.
�  This makes resolving issues much easier and helps improve fastlane.
�  The reports will be stored securely on getsentry.com.
�  More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3
-------------------------------------------------------------------------------------------
/Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:41:in `expand_path': [!] no implicit conversion of nil into String (TypeError)
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:41:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:25:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/client.rb:25:in `make_from_config'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/setup.rb:99:in `client'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/setup.rb:9:in `perform_download'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:51:in `block (2 levels) in run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Library/Ruby/Gems/2.0.0/gems/fastlane_core-0.36.8/lib/fastlane_core/ui/fastlane_runner.rb:23:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:57:in `run'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/lib/supply/commands_generator.rb:15:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/supply-0.4.0/bin/supply:6:in `<top (required)>'
    from /usr/bin/supply:23:in `load'
    from /usr/bin/supply:23:in `<main>'

Connect to servers Error

I m getting this:

`connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Faraday::SSLError)

When I try to:
supply run
I've done all the setup gracefully.

Why this?

Short description's length validation

With a text length of short description of 80 characters I get the error message: "The short description (promotional text) for the app is too long for language XX."

Error with posting data with 0x00FA character

We are trying to post a full description with accented u (0x00FA).

https://dl.dropboxusercontent.com/u/4049729/github/supply/full_description.txt

However, supply fails when google-api-client tries to encode as US-ASCII (even though it is trying to load metadata for language 'es-419'). Do I need to create the file differently?

[17:59:26]: Loading metadata for language 'es-419'...
/var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client/request.rb:342:in `encode': "\xFA" on US-ASCII (Encoding::InvalidByteSequenceError)
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client/request.rb:342:in `to_json'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client/request.rb:342:in `serialize_body'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client/request.rb:93:in `initialize'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client.rb:556:in `new'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client.rb:556:in `generate_request'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client.rb:621:in `execute!'
    from /var/lib/gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client.rb:679:in `execute'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/client.rb:180:in `update_listing_for_language'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/listing.rb:25:in `save'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:36:in `upload_metadata'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:16:in `block in perform_upload'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:11:in `foreach'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:11:in `perform_upload'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:37:in `block (2 levels) in run'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /var/lib/gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:55:in `run'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:15:in `start'
    from /var/lib/gems/2.0.0/gems/supply-0.2.2/bin/supply:6:in `<top (required)>'
    from /usr/local/bin/supply:23:in `load'
    from /usr/local/bin/supply:23:in `<main>'

Whatsnew text is not getting updated when using supply.

Hello,

There is something going on here that I cannot explain. I am able to successfully download the changelog folders to my supply directory without any errors or issues. However doing the opposite doesnt work anymore. Supply doesnt throw any errors. here is my log.

sf-mm414:supply hari.iddamsetty$ supply run -p com.xxx.xxxx -k key.p12 -i [email protected]

+-------------------------+-----------------------------+
| Summary for supply 0.3.0 |
+-------------------------+-----------------------------+
| package_name | xxx.xxx.xxxx |
| track | production |
| rollout | 1.0 |
| metadata_path | ./fastlane/metadata/android |
| key | key.p12 |
| skip_upload_apk | false |
| skip_upload_metadata | false |
| skip_upload_images | false |
| skip_upload_screenshots | false |
+-------------------------+-----------------------------+

[11:53:06]: Fetching a new access token from Google...
[11:53:08]: Loading metadata for language 'en-US'...
[11:53:08]: No apk file found, you can pass the path to your apk using the apk option
[11:53:08]: Uploading all changes to Google Play...
[11:53:10]: Successfully finished the upload to Google Play

After editing the text downloaded in the changelog folders, I tried to upload the updated text file. The tool shows that it is successfully finished. But when I check the portal nothing has changed.

I have tried this on a number of projects yesterday just to double check and the same problem persists.
Before I call this a bug, can anyone else verify whether they are having the same issues.

Suggestion: adding flags to control uploading behavior

Sorry to bother again, in uploader.rb, for the following lines:

          ...
          upload_metadata(language, listing)
          upload_images(language)
          upload_screenshots(language)
        end
      end

      upload_binary
      ...

Maybe add skip_metadata, skip_images, skip_screenshots and skip_apk so that user can choose which part to skip, which works in a similar way with skip_metadata in deploy please?

Google::Apis::TransmissionError: execution expired

Received execution expired error while uploading screenshots.
Tried a few times. The error occurs after uploading ~20-30 screenshots. I see no changes in Play Developer Console for those successfully uploaded.
3739b415d031749427b1cee8192a5d6b

metadata_path verify_block invalid for init command

The verify_block for metadata_path is invalid for the init command. It shouldn't check for the directory location when supplied on the command line, because it assumes it isn't.

/Users/lacostej/.rvm/gems/ruby-2.2.4/gems/supply-0.3.0/lib/supply/options.rb:37:in `block in available_options': Could not find folder (RuntimeError)
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/config_item.rb:71:in `call'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/config_item.rb:71:in `valid?'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/config_item.rb:55:in `verify!'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:60:in `block in verify_value_exists'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:55:in `each'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:55:in `verify_value_exists'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:39:in `initialize'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:27:in `new'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/fastlane_core-0.35.0/lib/fastlane_core/configuration/configuration.rb:27:in `create'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/supply-0.3.0/lib/supply/commands_generator.rb:46:in `block (2 levels) in run'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/supply-0.3.0/lib/supply/commands_generator.rb:55:in `run'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/supply-0.3.0/lib/supply/commands_generator.rb:15:in `start'
    from /Users/lacostej/.rvm/gems/ruby-2.2.4/gems/supply-0.3.0/bin/supply:6:in `<top (required)>'

Instead we should move the check here.

automate supply for parameters

how can we automate supply to retrieve the package name and the p12 issuer? the command line comment "To not be asked about this value, you can specify it using 'issuer' " is not really clear about what to do.

Can't update app: "You need to choose a different title for your app"

When I tried to update an app, an error You need to choose a different title for your app. This one is already used by another app is reported. I tried to edit metadata/title, changing it to empty, the current app name, or a new name without any luck.

/Users/leo/.gem/ruby/2.0.0/gems/supply-0.2.2/lib/supply/client.rb:110:in `commit_current_edit!': You need to choose a different title for your app. This one is already used by another app. (RuntimeError)
    from /Users/leo/.gem/ruby/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:25:in `perform_upload'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/actions/supply.rb:15:in `run'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:142:in `block (2 levels) in execute_action'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/actions/actions_helper.rb:37:in `execute_action'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:128:in `block in execute_action'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:127:in `chdir'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:127:in `execute_action'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/fast_file.rb:149:in `method_missing'
    from Fastfile:170:in `block (2 levels) in parsing_binding'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/lane.rb:36:in `call'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/lane.rb:36:in `call'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:51:in `block in execute'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:46:in `chdir'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/runner.rb:46:in `execute'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/lane_manager.rb:46:in `cruise_lane'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/lib/fastlane/command_line_handler.rb:30:in `handle'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/bin/fastlane:35:in `block (2 levels) in run'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /Users/leo/.gem/ruby/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/bin/fastlane:153:in `run'
    from /Users/leo/.gem/ruby/2.0.0/gems/fastlane-1.47.0/bin/fastlane:159:in `<top (required)>'
    from /Users/leo/.gem/ruby/2.0.0/bin/fastlane:23:in `load'
    from /Users/leo/.gem/ruby/2.0.0/bin/fastlane:23:in `<main>'

My FastFile is quite simple.

  lane :deploy do
    gradle(task: "assembleRelease")
    supply(
        apk: "new_project/build/outputs/apk/new_project-release.apk",
        track: "alpha",
    )
  end

I can update the app if I comment the following lines in client.rb, but of course metadata cannot be updated anymore.

          upload_metadata(language, listing)
          upload_images(language)
          upload_screenshots(language)

BTW supply init worked for me and it downloaded metadata from Play Store.

Add Amazon App Store support

Great to see this tool to support Google Play!

Another great improvement would be to supply the apk to the Amazon App Store.

Of course, the big problem: there seems to be no API for this.

Anyone have ideas or insight in to how this could be done?

[unsupportedListingLanguage] Provide better error messages

The script should print the file or folder name, which causes the crash.

Since the script does not stick to any order, it's very hard to find out which "language is not supported". Right now I have to randomly delete a folder (one of twenty) and re-run the script since I don't know which folder is processed after zh-CN.

DEBUG [2016-02-29 21:37:02.22]: Fetching a new access token from Google...
INFO [2016-02-29 21:37:05.57]: Loading metadata for language 'de-DE'...
INFO [2016-02-29 21:37:09.33]: Loading metadata for language 'nl-NL'...
INFO [2016-02-29 21:37:13.25]: Loading metadata for language 'it-IT'...
INFO [2016-02-29 21:37:16.54]: Loading metadata for language 'en-US'...
INFO [2016-02-29 21:37:18.75]: Updating changelog for code version '253' and language 'en-US'...
INFO [2016-02-29 21:37:20.00]: Updating changelog for code version '254' and language 'en-US'...
INFO [2016-02-29 21:37:21.30]: Updating changelog for code version '255' and language 'en-US'...
INFO [2016-02-29 21:37:22.54]: Updating changelog for code version '256' and language 'en-US'...
INFO [2016-02-29 21:37:24.44]: Updating changelog for code version '257' and language 'en-US'...
INFO [2016-02-29 21:37:26.39]: Updating changelog for code version '258' and language 'en-US'...
INFO [2016-02-29 21:37:27.63]: Updating changelog for code version '259' and language 'en-US'...
INFO [2016-02-29 21:37:28.86]: Updating changelog for code version '260' and language 'en-US'...
INFO [2016-02-29 21:37:31.85]: Loading metadata for language 'pt-PT'...
INFO [2016-02-29 21:37:35.15]: Loading metadata for language 'tr-TR'...
INFO [2016-02-29 21:37:38.39]: Loading metadata for language 'sv-SE'...
INFO [2016-02-29 21:37:41.70]: Loading metadata for language 'zh-TW'...
INFO [2016-02-29 21:37:45.08]: Loading metadata for language 'ru-RU'...
INFO [2016-02-29 21:37:48.26]: Loading metadata for language 'pt-BR'...
INFO [2016-02-29 21:37:51.53]: Loading metadata for language 'pl-PL'...
INFO [2016-02-29 21:37:55.26]: Loading metadata for language 'zh-CN'...
-------------------------------------------------------------------------------------------
😨  An error occured. Please enable crash reports using `fastlane enable_crash_reporting`.
👍  This makes resolving issues much easier and helps improve fastlane.
🔒  The reports will be stored securely on getsentry.com.
🙊  More information about privacy: https://github.com/fastlane/fastlane/releases/tag/1.33.3
-------------------------------------------------------------------------------------------
/var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:211:in `check_status': [!] unsupportedListingLanguage: Language not supported. (Google::Apis::ClientError)
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/api_command.rb:102:in `check_status'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:179:in `process_response'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:286:in `execute_once'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:107:in `block (2 levels) in execute'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:104:in `block in execute'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:54:in `block in retriable'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `times'
    from /var/lib/gems/2.1.0/gems/retriable-2.1.0/lib/retriable.rb:48:in `retriable'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/http_command.rb:96:in `execute'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/lib/google/apis/core/base_service.rb:267:in `execute_or_queue_command'
    from /var/lib/gems/2.1.0/gems/google-api-client-0.9.3/generated/google/apis/androidpublisher_v2/service.rb:1300:in `get_listing'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/client.rb:120:in `listing_for_language'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/uploader.rb:16:in `block in perform_upload'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/uploader.rb:13:in `foreach'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/uploader.rb:13:in `perform_upload'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/commands_generator.rb:39:in `block (2 levels) in run'
    from /var/lib/gems/2.1.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /var/lib/gems/2.1.0/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /var/lib/gems/2.1.0/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /var/lib/gems/2.1.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /var/lib/gems/2.1.0/gems/fastlane_core-0.36.8/lib/fastlane_core/ui/fastlane_runner.rb:23:in `run!'
    from /var/lib/gems/2.1.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/commands_generator.rb:57:in `run'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/lib/supply/commands_generator.rb:15:in `start'
    from /var/lib/gems/2.1.0/gems/supply-0.5.0/bin/supply:6:in `<top (required)>'
    from /usr/local/bin/supply:23:in `load'
    from /usr/local/bin/supply:23:in `<main>'

Uploading to google play failing.

We're using supply to upload our APKs to the play store and it's failing with the message "Daily save quota exceeded."

According to https://developers.google.com/android-publisher/quotas this should reset at midnight PST, but we're still having this issue. Unfortunately, AFAICT the quotas dashboard for Google Play API is broken and doesn't show calls from service accounts.

Do you have a sense of how many requests to the Play Store API it takes to upload an APK?

Here's the error we get -

[15:28:35]: Preparing apk at path '${full_apk_path}' for upload...
[15:28:39]: Uploading all changes to Google Play...
/home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/lib/supply/client.rb:110:in `commit_current_edit!': Daily save quota exceeded. (RuntimeError)
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/lib/supply/uploader.rb:25:in `perform_upload'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/lib/supply/commands_generator.rb:37:in `block (2 levels) in run'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/lib/supply/commands_generator.rb:55:in `run'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/lib/supply/commands_generator.rb:15:in `start'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/gems/supply-0.2.2/bin/supply:6:in `<top (required)>'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/bin/supply:23:in `load'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/bin/supply:23:in `<main>'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/bin/ruby_executable_hooks:15:in `eval'
    from /home/travis/.rvm/gems/ruby-2.2.4-clang/bin/ruby_executable_hooks:15:in `<main>'

Error with supply init

Hey,

I tried to use supply init and all the metadata was downloaded (icons, descriptions, etc..).

However, I had this error:

/Users/fabiocarballo/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/supply-0.3.1/lib/supply/client.rb:196:inapk_listings': [!] Backend Error (RuntimeError)`

Is this preventing me from anything?

Thank you.

using supply with ant

using on command line with same parameters is working and uploading metadata

implementing in ant gives the following error:
/Library/Ruby/Gems/2.0.0/gems/google-api-client-0.8.6/lib/google/api_client/request.rb:342:in `encode': "\xC3" on US-ASCII (Encoding::InvalidByteSequenceError)

ant code
-exec executable="supply" -
-arg value="--package_name"/-
-arg value="air.com.sf.apoApp.name"/-
-arg value="-k"/-
-arg value="cert/GooglePlayAndroidDeveloper-xxxxxxxxxxxxxx-issuer.p12"/-
-arg value="-i"/-
-arg value="[email protected]"/-
-/exec-

Supply tool doesnt upload accented characters in the text description files

We noticed that when we have accented characters in the text, the supply tool doesnt throw any error and it finishes the uploading but after the upload, the accented characters aren't uploaded at all and they are totally missing from the lines.

here is an example .

Below is the text in the file before upload...

Des clients hauts en couleur, des VIP super stars et des pÈripÈties culinaires effrÈnÈes vous attendent en chemin vers la gloire tÈlÈvisÈe†!

here is how the same text appears after the upload.

Des clients hauts en couleur, des VIP super stars et des pripties culinaires effrnes vous attendent en chemin vers la gloire tlvise!

Notice how all the accented characters are missing. Please let me know if you need more information. It would be good to know what is causing this.

Not downloading existing Screenshots

"Due to the limit of the Google Play API supply can't download your existing screenshots..."

The error message is straightforward but I'm confused as I checked the request number in our Google API developers and it under < 5000 requests a day. The Google Play Developer API has a default limit of 200,000 so we should not be getting this error when running Supply?

Full trace when running "supply init"

[21:32:54]: Writing to fastlane/metadata/android/en-US/title.txt...
[21:32:54]: Writing to fastlane/metadata/android/en-US/short_description.txt...
[21:32:54]: Writing to fastlane/metadata/android/en-US/full_description.txt...
[21:32:54]: Writing to fastlane/metadata/android/en-US/video.txt...
[21:32:54]: Due to the limit of the Google Play API supply can't download your existing screenshots...
[21:32:54]: Due to the limit of the Google Play API supply can't download your existing feature graphics...
[21:32:54]: Downloading icon for en-US...
[21:32:55]: Downloading promoGraphic for en-US...
[21:32:55]: Downloading tvBanner for en-US...
[21:32:55]: Writing to fastlane/metadata/android/zh-CN/title.txt...
[21:32:55]: Writing to fastlane/metadata/android/zh-CN/short_description.txt...
[21:32:55]: Writing to fastlane/metadata/android/zh-CN/full_description.txt...
[21:32:55]: Writing to fastlane/metadata/android/zh-CN/video.txt...
[21:32:55]: Due to the limit of the Google Play API supply can't download your existing screenshots...
[21:32:55]: Due to the limit of the Google Play API supply can't download your existing feature graphics...
[21:32:55]: Downloading icon for zh-CN...
[21:32:56]: Downloading promoGraphic for zh-CN...
[21:32:56]: Downloading tvBanner for zh-CN...

Issues while executing supply on Windows

I get this error on Windows 7 and I am running ruby ver 2.1.5.

C:\tools\supply>supply --help

C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `r

quire': cannot load such file -- pty (LoadError)

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/gems/2.1.0/gems/fastlane_core-0.28.0/lib/fastla

e_core/itunes_transporter.rb:1:in `<top (required)>'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/gems/2.1.0/gems/fastlane_core-0.28.0/lib/fastla

e_core.rb:10:in `<top (required)>'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/gems/2.1.0/gems/supply-0.2.2/lib/supply/options

rb:1:in `<top (required)>'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/gems/2.1.0/gems/supply-0.2.2/lib/supply.rb:3:in

`<top (required)>'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_requir

.rb:54:in `require'

    from C:/Ruby21/lib/ruby/gems/2.1.0/gems/supply-0.2.2/bin/supply:4:in `<

op (required)>'

    from C:/Ruby21/bin/supply:23:in `load'

    from C:/Ruby21/bin/supply:23:in `<main>'

Escaped spaces in file path for key don't work

OK, this isn't a big deal. Just wanted to report it...

When I was trying to enter the key for either SUPPLY_KEY, -k, or at the prompt, I was escaping the spaces in the path with backslashes (e.g. ~/Path/To/App\ Publishing\ Information/Google\ Play\ Android\ Developer-{hexdigits}.p12). If I removed the backslashes, then it worked. I would assume it should accept it either way.

FYI, the easiest way for me to get the path was to go to the terminal and do "ls ~/Path/" and use tab to expand the path items.

Setting Version Number/Name

this TOTALLY might be me not knowing what I'm doing, but is there anyway to set Version Number and Name from Supply/Gradle in the fastfile

"error" : "invalid_grant"

[18:15:39]: Fetching a new access token from Google...
/Library/Ruby/Gems/2.0.0/gems/signet-0.7.0/lib/signet/oauth_2/client.rb:980:in fetch_access_token': Authorization failed. Server message: (Signet::AuthorizationError) { "error" : "invalid_grant" } from /Library/Ruby/Gems/2.0.0/gems/signet-0.7.0/lib/signet/oauth_2/client.rb:997:infetch_access_token!'
from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/client.rb:45:in initialize' from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:85:innew'
from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:85:in client' from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/uploader.rb:6:inperform_upload'
from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:37:in block (2 levels) in run' from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:incall'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:178:in call' from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/command.rb:153:inrun'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:428:in run_active_command' from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/runner.rb:68:inrun!'
from /Library/Ruby/Gems/2.0.0/gems/commander-4.3.5/lib/commander/delegates.rb:15:in run!' from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:55:inrun'
from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/lib/supply/commands_generator.rb:15:in start' from /Library/Ruby/Gems/2.0.0/gems/supply-0.2.2/bin/supply:6:in<top (required)>'
from /usr/bin/supply:23:in load' from /usr/bin/supply:23:in

'
Ashishs-Mac-mini:PlayStoreAutomation 3 ashishk$

Publishing both x86 and armv7 apk's of the same app version

We push both x86 and armv7 architectures of our apps to Google Play. When releasing a new version (say, 5.1.3) there are two builds (for example, 501030370 and 501030371) - one for armv7 and the other for x86. App-wise these are identical but just for different architectures.

When trying supply today it worked well for one apk but attempting to upload the second resulted in the first apk being unpublished because the "newer" 501030371 x86 build unpublished the "older" 501030370 armv7 build.

Is there a way to publish two apk's at the same time that support both architectures? Please see screenshot (this is after a rebuild and manually publishing the apps, just to give you more info).

screen shot 2016-02-24 at 7 34 47 pm

Retrieve Version Number/Name

Is it possible to get the version name/number of the current APK uploaded to the store or could this be a implemented?
As I am working towards a fully automated system that checks a whole directory of apks and uploads them and I'd like to add a version check function to reduce the waiting time, so already uploaded version are simply skipped (by waiting time i am referring to the amount of time the Supply command takes to come back and say that it was trying to upload an apk with the same version number already).
Thanks for your help.

promoting loaded apk

Is there capability to promote a loaded apk from alpha to beta or beta to production? Was testing loading the same apk to "next" track but got error...

Testing-track (alpha/beta) APK with version code 49 appears in another track (RuntimeError)

Dynamic apk path

It looks like supply requires the apk path to always be passed as a argument. The apk path and naming is dynamic in my app (version code is in the name).

Can supply read this from gradle?

fastlane init

When I run fastlane init command in my projects's root folder, It gives me following error

C:\Users\dgulhane\AndroidStudioProjects\Cogitate\CogitateApp\AutomationApp>fastl
ane init
C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require' : cannot load such file -- pty (LoadError) from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54 :inrequire'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fastlane-1.48.0/lib/fastlane
/actions/actions_helper.rb:1:in <top (required)>' from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54 :inrequire'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54
:in require' from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fastlane-1.48.0/lib/fastlane .rb:3:in<top (required)>'
from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54
:in require' from C:/Ruby22-x64/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54 :inrequire'
from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/fastlane-1.48.0/bin/fastlane
:6:in <top (required)>' from C:/Ruby22-x64/bin/fastlane:23:inload'
from C:/Ruby22-x64/bin/fastlane:23:in `

'

Am I missing something. I have installed pry gem as well

Using the --key option causes error

When I run supply from the command line using the key option, e.g. supply --key

'/Users/tim/googlePlay.p12', supply produces the following error and stack trace:

/Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/config_item.rb:48:in `valid?': 'key' value must be a String! Found TrueClass instead. (RuntimeError)
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/config_item.rb:38:in `verify!'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:59:in `block in verify_value_exists'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:54:in `each'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:54:in `verify_value_exists'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:39:in `initialize'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:27:in `new'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/fastlane_core-0.26.1/lib/fastlane_core/configuration/configuration.rb:27:in `create'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/supply-0.2.1/lib/supply/commands_generator.rb:34:in `block (2 levels) in run'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/command.rb:178:in `call'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/command.rb:153:in `run'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/runner.rb:428:in `run_active_command'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/runner.rb:68:in `run!'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/commander-4.3.5/lib/commander/delegates.rb:15:in `run!'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/supply-0.2.1/lib/supply/commands_generator.rb:55:in `run'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/supply-0.2.1/lib/supply/commands_generator.rb:15:in `start'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/gems/supply-0.2.1/bin/supply:6:in `<top (required)>'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/bin/supply:23:in `load'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/bin/supply:23:in `<main>'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/bin/ruby_executable_hooks:15:in `eval'
    from /Users/tim/.rvm/gems/ruby-2.2.3@abs/bin/ruby_executable_hooks:15:in `<main>'

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.