GithubHelp home page GithubHelp logo

lando / hyperdrive Goto Github PK

View Code? Open in Web Editor NEW
47.0 8.0 13.0 1.44 MB

Accelerate from zero to a Lando-based dev environment in less then 12 par-steps

Home Page: https://lando.dev/hyperdrive

License: GNU General Public License v3.0

JavaScript 99.97% Batchfile 0.03%
lando hyperdrive

hyperdrive's Introduction

Hyperdrive

As of 0.7.0-alpha.1 Hyperdrive has a new purpose: a first-class package and dependency manager for Lando. That said, it is still in early development and not yet suitable for production, or really any, usage. Until it's reasonably useful and stable we recommend you continue to use the 0.6.1 Release and its associated documentation.

Hyperdrive is the npm of Lando. Its purpose is to consolidate dependency and plugin management logic that exists across the Lando ecosystem into a single library that can be invoked directly through require or via the hyperdrive cli. With Hyperdrive you should be able to:

  • Install remove and correctly configure Lando dependencies like Docker
  • Install and remove Lando components like the Lando Desktop, Lando CLI and Lando Server
  • Install and remove core, contrib and third-part Lando plugins

Installation

Usage

Development

Testing

Releasing

  1. yarn release.
  2. Create GitHub release or prerelease.

Other Resources

hyperdrive's People

Contributors

dependabot[bot] avatar dwhoban avatar marklabrecque-ab avatar pirog avatar reynoldsalec 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hyperdrive's Issues

Add Landofile

Add a Landofile to the Hyperdrive project for all of the usual reasons.

Missing Public Key for Trusty on Travis

Describe the bug
When I install and run hyperdrive on travis, it gives me a NO_PUBKEY for https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease

To Reproduce
Steps to reproduce the behavior:
Setup travis to install and run hyperdrive like this:

before_install:

  # Install Hyperdrive
  - sudo apt-get -y update
  - sudo apt-get -y install cgroup-bin curl
  - sudo bash -c "curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.5.4/hyperdrive > /usr/local/bin/hyperdrive"
  - sudo chmod +x /usr/local/bin/hyperdrive

script:
  # Setup hyperdrive
  - hyperdrive -y --name "James T. Kirk" --email [email protected]

Error

Err:26 https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6B05F25D762E3157
Hit:27 http://ppa.launchpad.net/webupd8team/java/ubuntu trusty InRelease
Hit:28 https://packagecloud.io/rabbitmq/rabbitmq-server/ubuntu trusty InRelease
Hit:29 http://ppa.launchpad.net/couchdb/stable/ubuntu trusty Release
Reading package lists... Done
W: GPG error: https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6B05F25D762E3157
E: The repository 'https://packagecloud.io/github/git-lfs/ubuntu trusty InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
FAILED WITH CODE 100!

Expected behavior
It installs hyperdrive as expected.

Additional context
I was able to fix this by adding this to my travis file:

  # Add Repo key to prevent hyperdrive install errors.
  - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6B05F25D762E3157

Spin off argv into its own repo

Now that your powers are growing its time to create your own full-lifecycle node module:

  1. Create a new repo lando/argv to contain your argv module. It should be named @lando/argv in the package.json
  2. Move over relevant things eg files and config and things from the package.json eg dependencies (there should be none), dev dependencies, scripts.
  3. Make sure the package.json is modified to reflect the current situation, remove any no-longer-needed things if you copied it from hyperdrive
  4. Set up relevant node scripts for linting and unit testing
  5. Set up relevant GitHub actions for linting and unit testing on pull requests
  6. Set up relevant branch protection for main in the repo
  7. Set up relevant GitHub action to deploy the package to npm if a tag exists on the main branch
  8. Set up a release command of some kind, see yarn release in hyperdrive and the version-bump-prompt module if you want to just do the same thing.
  9. Set up a relevant CHANGELOG.md to keep track of things
  10. Since we have 100% test coverage and docblocks in place i think its safe to just call this version 1.0.0
  11. Once we are deployed to npm we should remove the relevant things from hyperdrive and add @lando/argv as a dependency. Obviously update the require in bin/hyperdrive to point to the new thing.

Improper default option handling on first prompt

Describe the bug
When the initial system analysis is done, there is a prompt to confirm continuing with installation followed by a [Y/n]. The capital Y would suggest the default option (ie if you confirm without any character input), but this script fails when you enter no input.

To Reproduce
Steps to reproduce the behavior:

  1. Run hyperdrive...
  2. When the prompt "Do you wish for this script to take the recommended actions marked above? [Y/n]", hit Enter, assuming default option of 'Y'
  3. Script fails to continue with the message "Invalid response..."

Expected behavior
The prompt should accept a default option as "Y"

Operating System and version:
Ubuntu 20.04 via WSL2

Additional context
Add any other context about the problem here.

Mongo 3.4 Fails to install on travis

Describe the bug
Mongo 3.4 fails now on Travis

W: GPG error: http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release: The following signatures were invalid: KEYEXPIRED 1515625755
E: The repository 'http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 Release' is not signed.
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
FAILED WITH CODE 100!

To Reproduce
These steps are in the travis yaml:

  - sudo bash -c "curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.5.4/hyperdrive > /usr/local/bin/hyperdrive"
  - sudo chmod +x /usr/local/bin/hyperdrive

Error
See above

Additional context
Workaround is adding this to travis:

  # Workaround for the mongodb cert expiry
  - sudo rm /etc/apt/sources.list.d/mongodb-3.4.list -f

Questions indicating a default value do not have a default value,

Describe the bug
When running the script and after system analysis step, when asked to [..] take recommended actions marked above?, the prompt indicates that expected values are [Y/n].
This would indicate that simply pressing ENTER (as indicated by the capital Y for default) should suffice to continue.

However, a response is required - either y/Y or verbose yes/capitalization mix thereof.

Do you wish for this script to take the recommended actions marked above? [Y/n]
Invalid response...
FAILED WITH CODE 5!

To Reproduce
Steps to reproduce the behavior:

  1. Run hyperdrive
  2. Wait for recommended action confirmation prompt
  3. Either hit ENTER
  4. See error

Error
"Invalid response... FAILED WITH CODE 5!"

Expected behavior
Same behavior with entering the verbose y/yes at the prompt

Operating System and version:
Debian 10 under WSL2

hexblot@Onyxia:/Projects/sandbox$ uname -a
Linux Onyxia 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux
hexblot@Onyxia:
/Projects/sandbox$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Additional context
The above issue falsely led me to believe the script would be incompatible / have deeper issues with my environment, whereas the only issue is the prompt response management.

Recommended action would be to either improve response handling.

Edit: Falsely reported that y/n did not work, was purely an issue on my end

pk[m[r_STATUS: invalid variable name

Describe the bug
I went on with the default install according to the readme, but the initial throwed me an error:

  _    _                          _      _
 | |  | |                        | |    (_)
 | |__| |_   _ _ __   ___ _ __ __| |_ __ ___   _____
 |  __  | | | | '_ \ / _ \ '__/ _` | '__| \ \ / / _ \
 | |  | | |_| | |_) |  __/ | | (_| | |  | |\ V /  __/
 |_|  |_|\__, | .__/ \___|_|  \__,_|_|  |_| \_/ \___|
          __/ | |
         |___/|_|

Determining operating system .................................. ubuntu
Determining package manager .................................. aptitude
Determining curl version .................................. 7.68.0
Determining git version .................................. 2.25.1
Checking for git config user name .................................. My name
Checking for git config user email .................................. My email
Determining node version .................................. not installed
Determining yarn version .................................. not installed
Determining docker version .................................. 20.10.5
Determining lando version .................................. not installed
Checking for ssh public key .................................. not set
Reticulating .................................. done!

Computing results matrix .................................. done!
/tmp/hyperdrive: line 233: pk[m[r_STATUS: invalid variable name
FAILED WITH CODE 1!

To Reproduce
Steps to reproduce the behavior:

  1. Run curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/hyperdrive > /tmp/hyperdrive && chmod +x /tmp/hyperdrive && /tmp/hyperdrive
  2. Press enter to start the analysis
  3. See error

Error

/tmp/hyperdrive: line 233: pk[m[r_STATUS: invalid variable name
FAILED WITH CODE 1!

Expected behavior
I was expecting the check would proceed normally until prompted me to confirm the install process.

Operating System and version:

  • Windows 10 x64 21H1 pt-BR
  • WSL2 Ubuntu 20.04: Linux 5.4.72-microsoft-standard-WSL2

Access Linux Docker from Windows

I recently moved one of my "Windows Lando" projects to the "Windows WSL Hyperdrive" setup and need to connect to this setup's Docker to use my PHPStorm PHPUnit recipe.

I'm stuck trying to setup Docker in PHPStorm.

Is WSL's Docker (installed by Hyperdrive) accessible from Windows?
Can you help me with that?

Thanks!

Allow opt-out of Node install, or optional userland install version (nodenv)

Is your feature request related to a problem? Please describe.
Installation of mainline node via the system package manager installs Node and NPM admin/sudo style which can cause some headaches when trying to globally install NPM dependencies. In some cases, even using sudo to run npm, things won't install correctly. It is very common to move Node, Ruby, Python, etc into the userland space so that packages are installed as the user and not root and therefore they are much less likely to run into these kind of issues. I personally prefer nodenv for installing Node as it also makes switching node versions very easy and I have never once run into this issue while using it. A simple solution would probably be a --no-node flag so I can just skip the hassle and install my own node.

Describe the solution you'd like

  1. Swap the global node install for installation of a node manager like nodenv or
  2. Allow for opt out of node install so that one can choose a less painful install method

Describe alternatives you've considered
two alternatives listed ablve

Additional context
https://github.com/dustinleblanc/tandemonium/blob/master/phoenix_down#L107 example method for install of nodenv in script

Install Docker when needed

Is your feature request related to a problem? Please describe.
After being a naughty boy and upgrading docker I had to remove it to get back to the correct version. I tried running hyperdrive again and it could see that I needed docker but didn't actually install it.

Describe the solution you'd like
Install docker if it's needed, regardless of whether Lando is present.

Describe alternatives you've considered
Heavy drinking, narcotics abuse.

Using an unsupported version of DOCKER ENGINE

Installed latest version under wsl2 just now and it seems this needs updating. Not sure if this is something we have control over at install time...

You have version 18.0.0 but Lando wants something in the 18.09.3 - 20.10.99 range.
If you have purposefully installed an unsupported version and know what you are doing
you can probably ignore this warning. If not we recommend you use a supported version
as this ensures we can provide the best support and stability.
https://docs.docker.com/engine/install/

Make sure hyperdrive things assert their dominance

This could also be a bug. I'm also not completely sure whether this is something we can (or maybe more importantly should) do but its not necessarily guaranteed that a given lando component will be be found first in PATH which is a problem for a few reasons

  1. Seems like Hyperdrive has not actually installed things correctly
  2. Users may be running the wrong version of something without knowing it.

An example of this is CirclCI which requires this sort of thing
https://github.com/lando/lando/blob/master/.circleci/config.yml#L30

A potential solution to this is we could create a "lando bin" directory with symlinks to the needed installed things and then modify PATH to use Lando things first. This would give us a pretty easy install/uninstall path and not require a ton of extra management.

Installing Node on Catalina fails

Describe the bug

When using Hyperdrive to install node, the install fails due to incorrect use of a homebrew flag.

To Reproduce
Steps to reproduce the behavior:

  1. Run hyperdrive... without node installed.
  2. Proceed with node install

Error

Warning: --ignore-dependencies is an unsupported Homebrew developer flag!
Adjust your PATH to put any preferred versions of applications earlier in the
PATH rather than using this unsupported flag!

Error: An exception occurred within a child process:
  RuntimeError: /usr/local/opt/node not present or broken
Please reinstall node. Sorry :(
FAILED WITH CODE 1!

Screenshots
If applicable, add screenshots to help explain your problem.

Operating System and version:
Catalina 10.15.3

How to uninstall?

Is there a simple way to uninstall lando which was installed with Hyperdrive?

Context:
on a brand new macbook pro, using latest Catalina, lando (or is it Docker itself?) is extremely unstable. I'd like to uninstall everything and reinstall using the .dmg path.

Tries to upgrade Lando even though I am on the latest version

Describe the bug

I have the latest version of lando (rc12) at the time of this ticket. When I run hyperdrive, it think I need to upgrade.

To Reproduce
Steps to reproduce the behavior:

  1. Run hyperdrive -y --name "John Ouellet" --email [email protected]

Error

john@tandem:~$ hyperdrive -y --name "John Ouellet" --email [email protected]

  _    _                          _      _
 | |  | |                        | |    (_)
 | |__| |_   _ _ __   ___ _ __ __| |_ __ ___   _____
 |  __  | | | | '_ \ / _ \ '__/ _` | '__| \ \ / / _ \
 | |  | | |_| | |_) |  __/ | | (_| | |  | |\ V /  __/
 |_|  |_|\__, | .__/ \___|_|  \__,_|_|  |_| \_/ \___|
          __/ | |
         |___/|_|

Determining operating system .................................. ubuntu
Determining package manager .................................. aptitude
Determining curl version .................................. 7.58.0
Determining git version .................................. 2.17.1
Checking for git config user name .................................. John Ouellet
Checking for git config user email .................................. [email protected]
Determining node version .................................. 10.15.1
Determining yarn version .................................. 1.12.3
Determining docker version .................................. 18.09.2
Determining lando version .................................. 3.0.0-rc.12
Checking for ssh public key .................................. [email protected]
Reticulating .................................. done!

Computing results matrix .................................. done!

THING     CURRENT VERSION/STATUS  RECOMMENDED ACTION
os        ubuntu                  do nothing
pkgmgr    aptitude                do nothing
curl      7.58.0                  do nothing
git       2.17.1                  do nothing
gitname   John Ouellet            do nothing
gitemail  [email protected]     do nothing
node      10.15.1                 do nothing
yarn      1.12.3                  do nothing
docker    18.09.2                 do nothing
lando     3.0.0-rc.12             upgrade lando
sshkey    [email protected]       do nothing

NOW I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY!

Downloading Lando
########################################################################################################################################                 90.1%^C
john@tandem:~$ 

Expected behavior
It should of not needed to install anything since I am on the latest version of all the things.

Operating System and version:
Linux pop-os 4.18.0-15-generic #16pop0~18.04.1-Ubuntu SMP Thu Feb 21 16:15:23 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Better handling of DEBUG

We need to improve the way we handle --debug over here: https://github.com/lando/hyperdrive/blob/main/bin/hyperdrive#L8-L10

We need to handle the following cases

hyperdrive --debug
hyperdrive --debug="some string"
hyperdrive --debug "some string"

If no string is set then debug should be enabled with * otherwise debug should be enabled with the string that is passed in.

Some constraints on this are:

  1. We should do this in pure javascript eg no dependencies should be required like lodash or minimist
  2. if the DEBUG envvar is set and not empty we should skip our debug handling. it would be nice if in our init.js hook we had some debug output that indicated this eg something like DEBUG envvar is set, ignoring --debug in favor of that

In terms of development order of operations i would recommend

  1. just proof of concept the must haves above directly in bin/hyperdrive
  2. when that works as expected move it into its own module/file in utils/argv.js or something
  3. require it in /bin/hyperdrive and use it that way
  4. consider whether you want to make it a bit more generic eg can you pass in the name of the flag you want or should it only handle --debug
  5. write unit tests for it

bc command line utility breaks Hyperdrive

Describe the bug
When using the curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/hyperdrive > /tmp/hyperdrive && chmod +x /tmp/hyperdrive && /tmp/hyperdrive snippet as described in the README, the script fails almost immediately under Debian 10/WSL2.

To Reproduce
Steps to reproduce the behavior:

  1. Under WSL2/Debian, run the curl [...] && /tmp/hyperdrive snippet as per README
  2. Receive the initial screen with 12 par-steps, and prompt to PRESS ENTER to analyze
  3. See error:
  _    _                          _      _
 | |  | |                        | |    (_)
 | |__| |_   _ _ __   ___ _ __ __| |_ __ ___   _____
 |  __  | | | | '_ \ / _ \ '__/ _` | '__| \ \ / / _ \
 | |  | | |_| | |_) |  __/ | | (_| | |  | |\ V /  __/
 |_|  |_|\__, | .__/ \___|_|  \__,_|_|  |_| \_/ \___|
          __/ | |
         |___/|_|

Determining operating system /tmp/hyperdrive: line 162: bc: command not found
/tmp/hyperdrive: line 163: bc: command not found
/tmp/hyperdrive: line 165: [: -gt: unary operator expected
/tmp/hyperdrive: line 173: bc: command not found
/tmp/hyperdrive: line 179: bc: command not found                %
/tmp/hyperdrive: line 180: bc: command not found
/tmp/hyperdrive: line 185: bc: command not found
sleep: missing operand
Try 'sleep --help' for more information.
FAILED WITH CODE 1!

Error
bc: command not found

Expected behavior
Hyperdrive analyzes the computer.

Screenshots
image

Operating System and version:
Debian under WSL2, uname:
Linux tmspc071 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux

Solution
sudo apt install bc solved the problem, so possibly check its existence and/or update documentation?

Invalid response when pressing Enter on "recommended actions" prompt

When prompted with "Do you wish for this script to take the recommended actions marked above? [Y/n]", pressing Enter yields an "Invalid response..." error message.

But the "[Y/n]" (with an uppercase Y) in the prompt suggests it should consider Enter as Y ๐Ÿ™

Nothing too problematic, really, but took me two attempts to figure out what happened.

Hyperdrive not installing Lando on Ubuntu 20.04

Describe the bug
Lando is not being installed on Ubuntu 20.04. The install script shows Lando being installed but when running the script again to check it shows Lando not installed.

To Reproduce
Steps to reproduce the behavior:

  1. Freshly installed Ubuntu 20.04 with updates
  2. curl -Ls https://github.com/lando/hyperdrive/releases/download/v0.6.1/hyperdrive > /tmp/hyperdrive
    && chmod +x /tmp/hyperdrive
    && /tmp/hyperdrive
  3. Script says Lando is installed
  4. Run Script again, says Lando needs to be installed.

Error #1

_    _                          _      _
| |  | |                        | |    (_)
| |__| |_   _ _ __   ___ _ __ __| |_ __ ___   _____
|  __  | | | | '_ \ / _ \ '__/ _` | '__| \ \ / / _ \
| |  | | |_| | |_) |  __/ | | (_| | |  | |\ V /  __/
|_|  |_|\__, | .__/ \___|_|  \__,_|_|  |_| \_/ \___|
         __/ | |
        |___/|_|

Determining operating system .................................. ubuntu
Determining package manager .................................. aptitude
Determining curl version .................................. 7.68.0
Determining git version .................................. 2.25.1
Checking for git config user name .................................. support
Checking for git config user email .................................. support@******
Determining node version .................................. 12.22.1
Determining yarn version .................................. 1.22.5
Determining docker version .................................. 20.10.6
Determining lando version .................................. not installed
Checking for ssh public key .................................. support@*********
Reticulating .................................. done!

Computing results matrix .................................. done!

THING     CURRENT VERSION/STATUS  RECOMMENDED ACTION
os
pkgmgr
curl
git
gitname
gitemail
node
yarn
docker
lando
sshkey

NOW I WANT TO ASK YOU A BUNCH OF QUESTIONS AND I WANT TO HAVE THEM ANSWERED IMMEDIATELY!

Do you wish for this script to take the recommended actions marked above? [Y/n]

Downloading Lando
############################################################################ 100.0%
(Reading database ... 73284 files and directories currently installed.)
Preparing to unpack /tmp/lando.deb ...
Unpacking lando (3.1.2) over (3.1.2) ...
Setting up lando (3.1.2) ...
+ LANDO_ROOT=/usr/share/lando
+ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/bin
+ TERM=xterm
+ chmod 755 -R /usr/share/lando
+ mkdir -p /usr/local/bin
+ ln -sf /usr/share/lando/bin/lando /usr/local/bin/lando
++ awk -F: '$1 == "sudo" {print $4}' /etc/group
+ SUDOERS=support
+ for u in ${SUDOERS//,/ }
+ usermod -a -G docker support
+ MAX_MAP_COUNT=262144
+ MMC_PARAMETER_PATH=/proc/sys/vm/max_map_count
+ '[' -f /proc/sys/vm/max_map_count ']'
++ sysctl -n vm.max_map_count
+ '[' 262144 -lt 262144 ']'
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Installation complete. You have made it into hyperspace!
Please run again if you want to verify installation success.

Error #2
If I try run Lando afterward I get the following error

support@S1-HP-G1-I5:~$ lando
Traceback (most recent call last):
  File "/home/support/.local/bin/lando", line 8, in <module>
    sys.exit(main())
  File "/home/support/.local/lib/python3.8/site-packages/lando/server/__main__.py", line 17, in main
    config = ServerConfig(config_filename)
  File "/home/support/.local/lib/python3.8/site-packages/lando/server/config.py", line 20, in __init__
    with open(filename, 'r') as infile:
FileNotFoundError: [Errno 2] No such file or directory: '/etc/lando_config.yml'

Expected behavior
A clear and concise description of what you expected to happen.

Operating System and version:
Linux S1-HP-G1-I5 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Ubuntu 20.04

On the same system, Ubuntu 18.04 works fine.

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.