GithubHelp home page GithubHelp logo

fastlane-community / fastlane-plugin-clean_testflight_testers Goto Github PK

View Code? Open in Web Editor NEW
66.0 66.0 13.0 151 KB

Automatically remove TestFlight testers that are not actually testing your app

License: MIT License

Ruby 100.00%

fastlane-plugin-clean_testflight_testers's People

Contributors

hsousa avatar jetersen avatar krausefx 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

Watchers

 avatar  avatar  avatar

fastlane-plugin-clean_testflight_testers's Issues

Plugin fails to install

Sorry I don't know how to provide more detailed into, but when I try to install this plugin, I get:

sarentz@Risa ~/P/firefox-ios (st3fan/RevisitFastlane) [1]> bundle exec fastlane add_plugin clean_testflight_testers
[βœ”] πŸš€
[16:32:45]: It seems like you wanted to load some plugins, however they couldn't be loaded
[16:32:45]: Please follow the troubleshooting guide: https://docs.fastlane.tools/plugins/plugins-troubleshooting/
[16:32:45]: Plugin 'fastlane-plugin-clean_testflight_testers' was added to './fastlane/Pluginfile'
[16:32:45]: Make sure to commit your Gemfile, Gemfile.lock and Pluginfile to version control
Installing plugin dependencies...
Successfully installed plugins

It says Successfully installed plugins but I don't think that is actually true:

sarentz@Risa ~/P/firefox-ios (st3fan/RevisitFastlane) [1]> bundle exec fastlane update_plugins
[βœ”] πŸš€
[16:33:31]: It seems like you wanted to load some plugins, however they couldn't be loaded
[16:33:31]: Please follow the troubleshooting guide: https://docs.fastlane.tools/plugins/plugins-troubleshooting/
Updating plugin dependencies...

[!] No plugins are installed

Not sure where to go from here.

Error when passing oldest_build_allowed parameter

I'm hitting an error when trying to clean testflight users using older builds.

I run bundle exec fastlane pilot builds and see the following builds.

+------------+------------+-----------+
| Version #  | Build #    | Installs  |
+------------+------------+-----------+
| 0.9.13     | 2080.51    | 999      |
| 0.9.12     | 1557.322   | 999      |
+------------+------------+-----------+

In my Fastfile I have:

lane :clean do
  clean_testflight_testers(dry_run: true, oldest_build_allowed: 1557.322)
end

I then run bundle exec fastlane clean

And get the error 'oldest_build_allowed' value must be a Integer! Found String instead.

Issue seems to be coming from https://github.com/KrauseFx/fastlane-plugin-clean_testflight_testers/blob/master/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb#L37

Failed to open TCP connection to 127.0.0.1:8888

PR is merged so I thought what the heck πŸš€
fastlane/fastlane#10186

WHAT?!?
[21:08:59]: Failed to open TCP connection to 127.0.0.1:8888 (Connection refused - connect(2) for "127.0.0.1" port 8888)
Edit: oh debug mode πŸ—‘

bundle exec fastlane ios clean_testers
+------------------------------------------+---------+--------------------------+
|                                 Used plugins                                  |
+------------------------------------------+---------+--------------------------+
| Plugin                                   | Version | Action                   |
+------------------------------------------+---------+--------------------------+
| fastlane-plugin-clean_testflight_testers | 0.1.0   | clean_testflight_testers |
+------------------------------------------+---------+--------------------------+

[21:08:46]: -------------------------------------------------
[21:08:46]: --- Step: Verifying required fastlane version ---
[21:08:46]: -------------------------------------------------
[21:08:46]: Your fastlane version 2.59.0 matches the minimum requirement of 2.39.2  βœ…
[21:08:46]: -----------------------
[21:08:46]: --- Step: xcversion ---
[21:08:46]: -----------------------
[21:08:46]: Setting Xcode version to /Applications/Xcode-9.app for all build steps
[21:08:46]: ------------------------------
[21:08:46]: --- Step: default_platform ---
[21:08:46]: ------------------------------
[21:08:46]: -------------------
[21:08:46]: --- Step: is_ci ---
[21:08:46]: -------------------
[21:08:46]: Driving the lane 'ios clean_testers' οΏ½
[21:08:46]: --------------------------------------
[21:08:46]: --- Step: clean_testflight_testers ---
[21:08:46]: --------------------------------------
[21:08:46]: Login to iTunes Connect (bob)
Warning: use of proxy(new_value) to set connection proxy have been DEPRECATED and will be removed in Faraday 1.0
Warning: use of proxy(new_value) to set connection proxy have been DEPRECATED and will be removed in Faraday 1.0
+------------------+-------------------+
|             Lane Context             |
+------------------+-------------------+
| DEFAULT_PLATFORM | ios               |
| PLATFORM_NAME    | ios               |
| LANE_NAME        | ios clean_testers |
+------------------+-------------------+
[21:08:59]: Failed to open TCP connection to 127.0.0.1:8888 (Connection refused - connect(2) for "127.0.0.1" port 8888)

+------+-------------------------------------+-------------+
|                     fastlane summary                     |
+------+-------------------------------------+-------------+
| Step | Action                              | Time (in s) |
+------+-------------------------------------+-------------+
| 1    | Verifying required fastlane version | 0           |
| 2    | xcversion                           | 0           |
| 3    | default_platform                    | 0           |
| 4    | is_ci                               | 0           |
| οΏ½   | clean_testflight_testers            | 12          |
+------+-------------------------------------+-------------+

[21:08:59]: fastlane finished with errors

Looking for related GitHub issues on fastlane/fastlane...

Found no similar issues. To create a new issue, please visit:
https://github.com/fastlane/fastlane/issues/new
Run `fastlane env` to append the fastlane environment to your issue
bundler: failed to load command: fastlane (/usr/local/lib/ruby/gems/2.4.0/bin/fastlane)
Faraday::ConnectionFailed: [!] Failed to open TCP connection to 127.0.0.1:8888 (Connection refused - connect(2) for "127.0.0.1" port 8888)
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:906:in `rescue in block in connect'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:903:in `block in connect'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/timeout.rb:93:in `block in timeout'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/timeout.rb:103:in `timeout'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:902:in `connect'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:887:in `do_start'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:876:in `start'
  /usr/local/Cellar/ruby/2.4.2/lib/ruby/2.4.0/net/http.rb:1407:in `request'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/adapter/net_http.rb:80:in `perform_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/adapter/net_http.rb:38:in `block in call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/adapter/net_http.rb:85:in `with_net_http_connection'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/adapter/net_http.rb:33:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-cookie_jar-0.0.6/lib/faraday/cookie_jar.rb:22:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday_middleware-0.12.2/lib/faraday_middleware/response_middleware.rb:31:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday_middleware-0.12.2/lib/faraday_middleware/response_middleware.rb:31:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday_middleware-0.12.2/lib/faraday_middleware/response_middleware.rb:31:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/rack_builder.rb:141:in `build_response'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/connection.rb:387:in `run_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/faraday-0.13.1/lib/faraday/connection.rb:174:in `post'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:684:in `block in send_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:520:in `with_retry'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:683:in `send_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:568:in `request'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:443:in `send_shared_login_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/tunes/tunes_client.rb:111:in `send_login_request'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:650:in `do_login'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:395:in `login'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/client.rb:116:in `login'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/spaceship/lib/spaceship/tunes/spaceship.rb:22:in `login'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-plugin-clean_testflight_testers-0.1.0/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb:9:in `run'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:252:in `block (2 levels) in execute_action'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:230:in `block in execute_action'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:226:in `chdir'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:226:in `execute_action'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:148:in `trigger_action_by_name'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/fast_file.rb:146:in `method_missing'
  Fastfile:263:in `block (2 levels) in parsing_binding'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/lane.rb:33:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:45:in `chdir'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/runner.rb:45:in `execute'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/lane_manager.rb:52:in `cruise_lane'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/command_line_handler.rb:30:in `handle'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/commands_generator.rb:104:in `block (2 levels) in run'
  /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:178:in `call'
  /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/command.rb:153:in `run'
  /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/runner.rb:476:in `run_active_command'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:64:in `run!'
  /usr/local/lib/ruby/gems/2.4.0/gems/commander-fastlane-4.4.5/lib/commander/delegates.rb:15:in `run!'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/commands_generator.rb:303:in `run'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/commands_generator.rb:42:in `start'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/fastlane/lib/fastlane/cli_tools_distributor.rb:66:in `take_off'
  /usr/local/lib/ruby/gems/2.4.0/gems/fastlane-2.59.0/bin/fastlane:20:in `<top (required)>'
  /usr/local/lib/ruby/gems/2.4.0/bin/fastlane:23:in `load'
  /usr/local/lib/ruby/gems/2.4.0/bin/fastlane:23:in `<top (required)>'
βœ… fastlane environment βœ…

Stack

Key Value
OS 10.12.6
Ruby 2.4.2
Bundler? false
Git git version 2.14.2
Installation Source /usr/local/bin/fastlane
Host Mac OS X 10.12.6 (16G29)
Ruby Lib Dir /usr/local/Cellar/ruby/2.4.2/lib
OpenSSL Version OpenSSL 1.0.2l 25 May 2017
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode-9.app/Contents/Developer/
Xcode Version 9.0

System Locale

Variable Value
LANG en_US.UTF-8 βœ…
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`
platform :ios do
  lane :clean_testers do
    clean_testflight_testers(dry_run: true)
  end
end

fastlane gems

Gem Version Update-Status
fastlane 2.59.0 βœ… Up-To-Date

Loaded fastlane plugins:

Plugin Version Update-Status
fastlane-plugin-clean_testflight_testers 0.1.0 βœ… Up-To-Date
Loaded gems
Gem Version
did_you_mean 1.1.0
slack-notifier 1.5.1
CFPropertyList 2.3.5
claide 1.0.2
colored2 3.1.2
nanaimo 0.2.3
xcodeproj 1.5.2
rouge 2.0.7
xcpretty 0.2.8
terminal-notifier 1.8.0
unicode-display_width 1.3.0
terminal-table 1.8.0
plist 3.3.0
public_suffix 2.0.5
addressable 2.5.2
multipart-post 2.0.0
word_wrap 1.0.0
tty-screen 0.5.0
babosa 1.0.2
colored 1.2
highline 1.7.8
commander-fastlane 4.4.5
excon 0.59.0
faraday 0.13.1
unf_ext 0.0.7.4
unf 0.1.4
domain_name 0.5.20170404
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
fastimage 2.1.0
gh_inspector 1.0.3
mini_magick 4.5.1
multi_json 1.12.2
multi_xml 0.6.0
rubyzip 1.2.1
security 0.1.3
xcpretty-travis-formatter 0.0.4
dotenv 2.2.1
bundler 1.14.6
faraday_middleware 0.12.2
uber 0.1.0
declarative 0.0.10
declarative-option 0.1.0
representable 3.0.4
retriable 3.1.1
mime-types-data 3.2016.0521
mime-types 3.1
little-plugger 1.1.4
logging 2.2.2
jwt 1.5.6
memoist 0.16.0
os 0.9.6
signet 0.7.3
googleauth 0.5.3
httpclient 2.8.3
google-api-client 0.13.6
json 2.1.0
io-console 0.4.6
openssl 2.0.5
fastlane-plugin-clean_testflight_testers 0.1.0

generated on: 2017-09-29

Plugin fails with no clear error

I'm using 2.125.2 and when i run the plugin I get through:

Login to iTunes Connect (****)
Login successful
Fetching all TestFlight testers, this might take a few minutes, depending on the number of testers

Just fine, but then when the plugin hits the first user to remove:

Removing tester [email protected] due to inactivity from app ID 1122334455...

I get back some HTML:

+---------------+-----------+
|       Lane Context        |
+---------------+-----------+
| PLATFORM_NAME | ios       |
| LANE_NAME     | ios clean |
+---------------+-----------+
[19:22:20]: <!DOCTYPE html><html lang="en">
<head>
<title></title>
<link rel="stylesheet" href="/styles/main.css">
<style type='text/css'>
    /*include ../../dist/styles/main.css*/
</style>
</head>

<body><div id="wrapper" class="j42">
<h2>Not Found</h2></div>

<div class="footer">
    <p>Copyright &copy; <span id='year'>2015</span> Apple Inc. All rights reserved.</p>
    <ul><li><a href="https://www.apple.com/legal/internet-services/itunes/">Terms of Service</a></li><li><a href="https://www.apple.com/legal/privacy">Privacy Policy</a></li></ul>
</div>


<script type='text/javascript'>(function() {
    var isIos = navigator.userAgent.match(/(iPod|iPhone|iPad)/);
    document.body.setAttribute( 'class', (!isIos) ? 'otherBrowser' : 'isMobileSafari' )
    var yearEl = document.getElementById('year');
    if (yearEl) { yearEl.textContent = new Date().getFullYear(); }
})();
</script>

</body>
</html>

+------+--------------------------+-------------+
|               fastlane summary                |
+------+--------------------------+-------------+
| Step | Action                   | Time (in s) |
+------+--------------------------+-------------+
| πŸ’₯   | clean_testflight_testers | 754         |
+------+--------------------------+-------------+

[19:22:20]: fastlane finished with errors

The stack trace looks like this:

{{gems_location}}/gems/fastlane-2.121.1/spaceship/lib/spaceship/test_flight/client.rb:321:in `handle_response'
{{gems_location}}/gems/fastlane-2.121.1/spaceship/lib/spaceship/test_flight/client.rb:208:in `delete_tester_from_app'
{{gems_location}}/gems/fastlane-2.121.1/spaceship/lib/spaceship/test_flight/tester.rb:124:in `remove_from_app!'
{{gems_location}}/gems/fastlane-plugin-clean_testflight_testers-0.2.0/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb:57:in `remove_tester'
{{gems_location}}/gems/fastlane-plugin-clean_testflight_testers-0.2.0/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb:39:in `block in run'
{{gems_location}}/gems/fastlane-plugin-clean_testflight_testers-0.2.0/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb:22:in `each'
{{gems_location}}/gems/fastlane-plugin-clean_testflight_testers-0.2.0/lib/fastlane/plugin/clean_testflight_testers/actions/clean_testflight_testers_action.rb:22:in `run'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:256:in `block (2 levels) in execute_action'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/actions/actions_helper.rb:50:in `execute_action'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:235:in `block in execute_action'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:227:in `chdir'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:227:in `execute_action'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:157:in `trigger_action_by_name'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/fast_file.rb:154:in `method_missing'
Fastfile:238:in `block (2 levels) in parsing_binding'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/lane.rb:33:in `call'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:49:in `block in execute'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:45:in `chdir'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/runner.rb:45:in `execute'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/lane_manager.rb:56:in `cruise_lane'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/command_line_handler.rb:36:in `handle'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/commands_generator.rb:108:in `block (2 levels) in run'
{{gems_location}}/gems/commander-fastlane-4.4.6/lib/commander/command.rb:178:in `call'
{{gems_location}}/gems/commander-fastlane-4.4.6/lib/commander/command.rb:153:in `run'
{{gems_location}}/gems/commander-fastlane-4.4.6/lib/commander/runner.rb:476:in `run_active_command'
{{gems_location}}/gems/fastlane-2.121.1/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb:76:in `run!'
{{gems_location}}/gems/commander-fastlane-4.4.6/lib/commander/delegates.rb:15:in `run!'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/commands_generator.rb:333:in `run'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/commands_generator.rb:41:in `start'
{{gems_location}}/gems/fastlane-2.121.1/fastlane/lib/fastlane/cli_tools_distributor.rb:119:in `take_off'
{{gems_location}}/gems/fastlane-2.121.1/bin/fastlane:23:in `<top (required)>'
{{ruby_location}}/bin/fastlane:23:in `load'
{{ruby_location}}/bin/fastlane:23:in `<top (required)>'

Which isn't very helpful. Not sure what to make of this.

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.