Coder Social home page Coder Social logo

kata-containers / packaging Goto Github PK

View Code? Open in Web Editor NEW
119.0 26.0 92.0 7.36 MB

Kata Containers version 1.x packaging (for version 2.x see https://github.com/kata-containers/kata-containers).

Home Page: https://katacontainers.io/

License: Apache License 2.0

Shell 18.17% Makefile 1.65% Dockerfile 0.68% Go 1.14% Logos 78.36%

packaging's Introduction

Kata Containers packaging

Introduction

Kata Containers currently supports packages for many distributions. Tooling to aid in creating these packages are contained within this repository.

Build using OBS

See the OBS documentation.

Build in a container

Kata build artifacts are available within a container image, created by a Dockerfile. Reference DaemonSets are provided in kata-deploy, which make installation of Kata Containers in a running Kubernetes Cluster very straightforward.

Build a snap package

See the snap documentation.

Build static binaries

See the static build documentation.

Build Kata Containers Kernel

See the kernel documentation.

Build QEMU

See the QEMU documentation.

Test Kata using ccloudvm

See the ccloudvm documentation.

Create a Kata Containers release

See the release documentation.

Jenkins files

See the Jenkins documentation.

Packaging scripts

See the scripts documentation.

Credits

Kata Containers packaging uses packagecloud for package hosting.

packaging's People

Contributors

amshinde avatar bergwolf avatar chavafg avatar egernst avatar fidencio avatar gabyct avatar ganeshmaharaj avatar gnawux avatar grahamwhaley avatar jcvenegas avatar jodh-intel avatar jongwu avatar jschintag avatar justin-he avatar katacontainersbot avatar kvasscn avatar likebreath avatar marcov avatar mcastelino avatar nitkon avatar pennyzct avatar rajpratik71 avatar teawater avatar tuan-hoang1 avatar wainersm avatar weichen81 avatar weizhang555 avatar wenlxie avatar wilsonianb avatar xindazhao 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

packaging's Issues

packaging CI is broken.

The CI is timing out:
The dockerfile used to build pkgs hangs more than 20 minutes trying to install some basic packages.

 RUN zypper -n install osc-plugin-install vim curl bsdtar git sudo pcre-tools

kernel: config: Improve CI for kernel config changes

There is two part in this issue.

Keep kernel config in sync
We need to maintain the kernel configs consistent between each other (across architectures) because we already have some discrepancies about some components that are not architecture specific. I am not sure how we can maintain some sort of synchronization across archs and which tool already exist for this, but we need this if we want to make sure we'll have Kata working consistently across x86, ARM and PPC.

Validate kernel config changes
We need the CI to run some specific check when modification are done to the kernel/config directory. This means every time a config gets modified, it should try to build the kernel with this config and then recreate an image to perform a sanity check (or maybe the full CI ???) that Kata Containers still work as expected. And to go one step further, we would need specific CI jobs to trigger the same tests for ARM and PPC configs on the appropriate worker VMs, so that we try on the appropriate arch. Maybe a simple way to bypass the complexity of having several worker VMs with different architectures would be to use cross compilation (but this means we can only try the build, we couldn't test Kata after this).

/cc @jodh-intel

Automate the assets update for kata deploy.

Kata deploy require static binaries being published.

Instead of build it manually and upload with the github page automate the process of build all componets and push the assets to github.

Automate the gihub release creation

Today github releases are done manually after new release tags are created.

Automate the process to go to each repository and create a new github release based in a tag.

Add scripts to automate packing process for kata-containers

Add scripts to build packages to be build with OBS. Add support to build and package the following:

  • runtime
  • proxy
  • shim
  • agent(inside an guest os)
  • linux kernel
  • qemu lite

The packaging tools need support for local build and publish a build on OBS servers.

The packages tools could be build to point to a github commit or a tag.

Fedora packaging and QEMU forks

So, I've taken up packaging kata containers for Fedora. I'm looking at qemu-lite and qemu-vanilla packages. So, IIUC, those are forks of QEMU, correct?

Have we checked to see if the default 'qemu' package could be used/extended to suit kata containers?
Just that forking sounds like trouble unless real good reason.

(I'm both a QEMU and a Kata n00b, and I'll probably have more questions as we go, so please be gentle :) )

Missing Arm64 guest kernel config file

As the Developer-Guide[1] mentioned, the progress of installing guest kernel images need a default kernel config file. But for Arm64 architecture, this config file is missing. In this case, the Arm64 users can't follow the guide to complete the installation of guest kernel.

Add CI jobs

We want to make sure the packaging scripts work every change, lets add jobs from azure.

Create Linux kernel configuration script

As @sameo noted in kata-containers/linux#5 (comment), we should have a script that can generate a valid kernel configuration file.

The script will generate a valid .config kernel configuration file to be used by the kernel's build system.

However, the script will allow individual options and groups of options to be documented as the kernel's config file does not support comments (well, it does, but only for "commented out" / disabled CONFIG_ options).

Each group of config options in the script should document:

  • Why it has been enabled.
  • If there is any known impact (positive or negative) on boot speed / general performance.
  • If there is any known impact (positive or negative) on memory density.

See also: #7.

obs: Failed to update ubuntu repository.

I try to update my ubuntu repository but get the following error

sudo apt-get update
Hit:1 http://security.ubuntu.com/ubuntu xenial-security InRelease
Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Ign:3 http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  InRelease
Hit:4 https://download.docker.com/linux/ubuntu xenial InRelease
Hit:5 http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  Release
Get:6 http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  Release.gpg [481 B]
Ign:6 http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  Release.gpg
W: GPG error: http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  Release: The following signatures were invalid: BADSIG D0B37B826063F3ED home:katacontainers OBS Project <home:[email protected]>
W: The repository 'http://download.opensuse.org/repositories/home:/katacontainers:/release/xUbuntu_16.04  Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Should we provide multiple guest kernel config files?

Hi,

Currently, we provide only one guest kernel config file for users to install guest kernel images. Should we provide more kernel config files for users to select? For example, we can provide config files for recent releases. e.g., from 4.14 ~ 4.16
{arch}_kata_kvm_4.14.x
{arch}_kata_kvm_4.15.x
{arch}_kata_kvm_4.16.x
and
{arch}_kata_kvm_generic for latest upstream code?

@Pennyzct @jodh-intel @grahamwhaley

kernel config: enable all cgroups support

We have disabled some cgroups support in the kernel config. We need to enable all of them, or at least add:

  • CONFIG_BLK_CGROUP
  • CONFIG_CGROUP_PIDS
  • CONFIG_CGROUP_NET_PRIO

The above three are needed in current agent as init.

kata-runtime package missing collect script

We need to add the collect script to the kata-runtime package:

$ dpkg -c /var/cache/apt/archives/cc-runtime_3.0.23+git.64d2226-27_amd64.deb|grep collect
-rwxr-xr-x root/root     11099 2018-04-02 19:27 ./usr/bin/cc-collect-data.sh
$ dpkg -l kata-runtime|grep ^ii
ii  kata-runtime   1.0.0+git.086d197-39 amd64
$ dpkg -L kata-runtime|grep collect
$

Fix CI workflow

Currently, the Jenkins job of this repository shows that the CI passes correctly, but when digging into the console output, there are some errors:

Go not installed using amd64 to install go in dockerfile
+ PROJECT_REPO=home:katacontainers:release/qemu-lite
++ get_obs_pkg_release home:katacontainers:release/qemu-lite
++ local obs_pkg_name=home:katacontainers:release/qemu-lite
++ local pkg
++ local repo_dir
++ local release
+++ basename home:katacontainers:release/qemu-lite
++ pkg=qemu-lite
+++ mktemp -d -u -t qemu-lite.XXXXXXXXXXX
++ repo_dir=/tmp/qemu-lite.XTrYsMWyGmU
+++ osc -q co home:katacontainers:release/qemu-lite -o /tmp/qemu-lite.XTrYsMWyGmU
Server returned an error: HTTP Error 401: Unauthorized
Error getting meta for project 'home%3Akatacontainers%3Arelease' package 'qemu-lite'
++ out=
++ die 'failed to checkout:'
++ msg='failed to checkout:'
++ echo 'ERROR: failed to checkout:'
ERROR: failed to checkout:
++ exit 1
+ RELEASE=

We need to investigate why this error does not make the CI job to fail.

Add standard project files

Bootstrap the repo by adding the standard:

  • Code of Conduct doc.
  • Contributing doc.
  • pullapprove config file.

release: Add script to automatically bump projects

Today every Kata release someone has to clone each repo increase the release number and do a PR.

To reduce the overhead we should have an script that does this (and potentially be triggered by the CI).

./send-new-kata-version-pr <VERSION>

Handle migration from Clear Containers / runv to kata containers

Once #1 is closed, we need to consider how to upgrade a system installed with either:

... and allow users to run the appropriate packaging command to upgrade to Kata.

For example, if Clear Containers is installed on an Ubuntu system, the following should install all required Kata components and remove the Clear Containers ones:

$ sudo apt-get install kata-runtime-cc

pkgs: Move obs scripts to its own directory.

This repository is growing is due to different things living here, kernel config and patches, obs scripts, kata-deploy, release tools.

Lets move the obs scripts to its own directory.

create script to validate kernel options across architectures

As we now support multiple architectures and each architecture requires a kernel config file, we need a way to ensure that all the architecture config files contain the "minimal" set of config options that will allow a Kata Container to be created.

There is bound to be some variation in config options for each architecture, but we need a way to be able to see those changes easily so they can be validated (as PRs are raised to update the kernel configs for example).

Fix hypervisor config script

#12 had a couple of issues:

  • doesn't include the security: tag for the static config option.
  • makes use of unset variables (${qemu_version_major} and ${qemu_version_minor}).

Add kernel config version to package version

#44 adds a new version to identify if a package has the latest configuration and patches needed by kata.

After it is merged we need to update the package creation scripts to add that version to the kernel pkg.

hypervisor config

Hypervisor config script uses some options only in newer bash versions.

This fails silently in centos leading to build a qemu without all options we want.

RHEL not working properly with Kata

After doing the following

$ sudo -E yum -y install kata-runtime kata-proxy kata-shim
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Resolving Dependencies
--> Running transaction check
---> Package kata-proxy.x86_64 0:1.0.0+git.a69326b-29.1 will be installed
--> Processing Dependency: kata-proxy-bin for package: kata-proxy-1.0.0+git.a69326b-29.1.x86_64
---> Package kata-runtime.x86_64 0:1.0.0+git.086d197-41.1 will be installed
--> Processing Dependency: qemu-vanilla >= 2.11-41 for package: kata-runtime-1.0.0+git.086d197-41.1.x86_64
--> Processing Dependency: qemu-lite >= 2.11.0-43 for package: kata-runtime-1.0.0+git.086d197-41.1.x86_64
--> Processing Dependency: kata-linux-container >= 4.14.22.1-130 for package: kata-runtime-1.0.0+git.086d197-41.1.x86_64
--> Processing Dependency: kata-ksm-throttler >= 1.0.0+git.422c7f7-29 for package: kata-runtime-1.0.0+git.086d197-41.1.x86_64
--> Processing Dependency: kata-containers-image >= 1.0.0-29 for package: kata-runtime-1.0.0+git.086d197-41.1.x86_64
---> Package kata-shim.x86_64 0:1.0.0+git.74cbc1e-30.1 will be installed
--> Processing Dependency: kata-shim-bin for package: kata-shim-1.0.0+git.74cbc1e-30.1.x86_64
--> Running transaction check
---> Package kata-containers-image.x86_64 0:1.0.0-29.1 will be installed
---> Package kata-ksm-throttler.x86_64 0:1.0.0.git+422c7f7-29.1 will be installed
---> Package kata-linux-container.x86_64 0:4.14.22.1-130.1 will be installed
---> Package kata-proxy-bin.x86_64 0:1.0.0+git.a69326b-29.1 will be installed
---> Package kata-shim-bin.x86_64 0:1.0.0+git.74cbc1e-30.1 will be installed
---> Package qemu-lite.x86_64 0:2.11.0+git.6ba2bfbee9-43.1 will be installed
--> Processing Dependency: qemu-lite-data for package: qemu-lite-2.11.0+git.6ba2bfbee9-43.1.x86_64
--> Processing Dependency: qemu-lite-bin for package: qemu-lite-2.11.0+git.6ba2bfbee9-43.1.x86_64
---> Package qemu-vanilla.x86_64 0:2.11+git.e3050471ff-41.1 will be installed
--> Processing Dependency: qemu-vanilla-data for package: qemu-vanilla-2.11+git.e3050471ff-41.1.x86_64
--> Processing Dependency: qemu-vanilla-bin for package: qemu-vanilla-2.11+git.e3050471ff-41.1.x86_64
--> Running transaction check
---> Package qemu-lite-bin.x86_64 0:2.11.0+git.6ba2bfbee9-43.1 will be installed
---> Package qemu-lite-data.x86_64 0:2.11.0+git.6ba2bfbee9-43.1 will be installed
---> Package qemu-vanilla-bin.x86_64 0:2.11+git.e3050471ff-41.1 will be installed
---> Package qemu-vanilla-data.x86_64 0:2.11+git.e3050471ff-41.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================================================================
 Package                                         Arch                             Version                                                Repository                                             Size
=====================================================================================================================================================================================================
Installing:
 kata-proxy                                      x86_64                           1.0.0+git.a69326b-29.1                                 home_katacontainers_release                           2.4 k
 kata-runtime                                    x86_64                           1.0.0+git.086d197-41.1                                 home_katacontainers_release                           3.5 M
 kata-shim                                       x86_64                           1.0.0+git.74cbc1e-30.1                                 home_katacontainers_release                           2.4 k
Installing for dependencies:
 kata-containers-image                           x86_64                           1.0.0-29.1                                             home_katacontainers_release                            24 M
 kata-ksm-throttler                              x86_64                           1.0.0.git+422c7f7-29.1                                 home_katacontainers_release                           4.3 M
 kata-linux-container                            x86_64                           4.14.22.1-130.1                                        home_katacontainers_release                           9.2 M
 kata-proxy-bin                                  x86_64                           1.0.0+git.a69326b-29.1                                 home_katacontainers_release                           819 k
 kata-shim-bin                                   x86_64                           1.0.0+git.74cbc1e-30.1                                 home_katacontainers_release                           2.6 M
 qemu-lite                                       x86_64                           2.11.0+git.6ba2bfbee9-43.1                             home_katacontainers_release                           2.5 k
 qemu-lite-bin                                   x86_64                           2.11.0+git.6ba2bfbee9-43.1                             home_katacontainers_release                           2.6 M
 qemu-lite-data                                  x86_64                           2.11.0+git.6ba2bfbee9-43.1                             home_katacontainers_release                           3.0 M
 qemu-vanilla                                    x86_64                           2.11+git.e3050471ff-41.1                               home_katacontainers_release                           2.5 k
 qemu-vanilla-bin                                x86_64                           2.11+git.e3050471ff-41.1                               home_katacontainers_release                           2.6 M
 qemu-vanilla-data                               x86_64                           2.11+git.e3050471ff-41.1                               home_katacontainers_release                           3.0 M

Transaction Summary
=====================================================================================================================================================================================================
Install  3 Packages (+11 Dependent packages)

Total size: 56 M
Installed size: 635 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : qemu-vanilla-data-2.11+git.e3050471ff-41.1.x86_64                                                                                                                                1/14
  Installing : qemu-lite-data-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                 2/14
  Installing : qemu-lite-bin-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                  3/14
  Installing : qemu-lite-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                      4/14
  Installing : qemu-vanilla-bin-2.11+git.e3050471ff-41.1.x86_64                                                                                                                                 5/14
  Installing : qemu-vanilla-2.11+git.e3050471ff-41.1.x86_64                                                                                                                                     6/14
  Installing : kata-proxy-bin-1.0.0+git.a69326b-29.1.x86_64                                                                                                                                     7/14
  Installing : kata-proxy-1.0.0+git.a69326b-29.1.x86_64                                                                                                                                         8/14
  Installing : kata-shim-bin-1.0.0+git.74cbc1e-30.1.x86_64                                                                                                                                      9/14
  Installing : kata-shim-1.0.0+git.74cbc1e-30.1.x86_64                                                                                                                                         10/14
  Installing : kata-ksm-throttler-1.0.0.git+422c7f7-29.1.x86_64                                                                                                                                11/14
  Installing : kata-containers-image-1.0.0-29.1.x86_64                                                                                                                                         12/14
  Installing : kata-linux-container-4.14.22.1-130.1.x86_64                                                                                                                                     13/14
  Installing : kata-runtime-1.0.0+git.086d197-41.1.x86_64                                                                                                                                      14/14
  Verifying  : qemu-vanilla-2.11+git.e3050471ff-41.1.x86_64                                                                                                                                     1/14
  Verifying  : kata-shim-1.0.0+git.74cbc1e-30.1.x86_64                                                                                                                                          2/14
  Verifying  : kata-linux-container-4.14.22.1-130.1.x86_64                                                                                                                                      3/14
  Verifying  : qemu-lite-bin-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                  4/14
  Verifying  : kata-containers-image-1.0.0-29.1.x86_64                                                                                                                                          5/14
  Verifying  : qemu-lite-data-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                 6/14
  Verifying  : qemu-vanilla-bin-2.11+git.e3050471ff-41.1.x86_64                                                                                                                                 7/14
  Verifying  : kata-ksm-throttler-1.0.0.git+422c7f7-29.1.x86_64                                                                                                                                 8/14
  Verifying  : kata-shim-bin-1.0.0+git.74cbc1e-30.1.x86_64                                                                                                                                      9/14
  Verifying  : qemu-lite-2.11.0+git.6ba2bfbee9-43.1.x86_64                                                                                                                                     10/14
  Verifying  : kata-proxy-bin-1.0.0+git.a69326b-29.1.x86_64                                                                                                                                    11/14
  Verifying  : kata-proxy-1.0.0+git.a69326b-29.1.x86_64                                                                                                                                        12/14
  Verifying  : qemu-vanilla-data-2.11+git.e3050471ff-41.1.x86_64                                                                                                                               13/14
  Verifying  : kata-runtime-1.0.0+git.086d197-41.1.x86_64                                                                                                                                      14/14

Installed:
  kata-proxy.x86_64 0:1.0.0+git.a69326b-29.1                       kata-runtime.x86_64 0:1.0.0+git.086d197-41.1                       kata-shim.x86_64 0:1.0.0+git.74cbc1e-30.1

Dependency Installed:
  kata-containers-image.x86_64 0:1.0.0-29.1                         kata-ksm-throttler.x86_64 0:1.0.0.git+422c7f7-29.1                 kata-linux-container.x86_64 0:4.14.22.1-130.1
  kata-proxy-bin.x86_64 0:1.0.0+git.a69326b-29.1                    kata-shim-bin.x86_64 0:1.0.0+git.74cbc1e-30.1                      qemu-lite.x86_64 0:2.11.0+git.6ba2bfbee9-43.1
  qemu-lite-bin.x86_64 0:2.11.0+git.6ba2bfbee9-43.1                 qemu-lite-data.x86_64 0:2.11.0+git.6ba2bfbee9-43.1                 qemu-vanilla.x86_64 0:2.11+git.e3050471ff-41.1
  qemu-vanilla-bin.x86_64 0:2.11+git.e3050471ff-41.1                qemu-vanilla-data.x86_64 0:2.11+git.e3050471ff-41.1

Complete!

And then trying to run a container, I am having the following error

$ sudo docker run -ti busybox sh
/usr/bin/docker-current: Error response from daemon: oci runtime error: json: cannot unmarshal array into Go struct field Process.capabilities of type specs.LinuxCapabilities.

Here it is the info about docker

$ docker info
Containers: 1
 Running: 0
 Paused: 0
 Stopped: 1
Images: 2
Server Version: 1.13.1
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
Swarm: inactive
Runtimes: kata-runtime runc
Default Runtime: kata-runtime
Init Binary: docker-init
containerd version:  (expected: aa8187dbd3b7ad67d8e5e3a15115d3eef43a7ed1)
runc version: 8daa049436d8942a9f300705878e7bcb5b9f1215 (expected: 9df8b306d01f59d3a8029be411de015b7304dd8f)
init version: N/A (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
 seccomp
  Profile: default
Kernel Version: 3.10.0-862.el7.x86_64
Operating System: Red Hat Enterprise Linux
OSType: linux
Architecture: x86_64
Number of Docker Hooks: 3
CPUs: 4
Total Memory: 7.569 GiB
Name: localhost.localdomain
ID: QGVA:532J:KDGU:3QLN:6Z25:DOII:TF5T:O4YI:M2LO:F4A7:P55U:UPCD
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 15
 Goroutines: 25
 System Time: 2018-06-12T19:00:48.621740321-04:00
 EventsListeners: 0
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Registries: docker.io (secure)

OBS packages failed in SLES 12 SP3

Currently kata-shim and kata-proxy is not being installed at:
/usr/libexec/kata-containers

$ sudo docker run -ti busybox sh
Message from syslogd@linux at May 21 19:08:59 ...
 sr/share/defaults/kata-containers/configuration.toml: file /usr/libexec/kata-containers/kata-shim does not exist
docker: Error response from daemon: oci runtime error: /usr/share/defaults/kata-containers/configuration.toml: file /usr/libexec/kata-containers/kata-shim does not exist.

$ sudo find / -iname kata-shim
/usr/lib64/kata-containers/kata-shim

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.