GithubHelp home page GithubHelp logo

singularityhub / singularityhub.github.io Goto Github PK

View Code? Open in Web Editor NEW
68.0 12.0 9.0 3.55 MB

Container tools for scientific computing! Docs at https://singularityhub.github.io/singularityhub-docs

Home Page: https://singularityhub.github.io

CSS 28.60% HTML 52.58% JavaScript 18.82%
singularity-containers container containers registry website documentation hub

singularityhub.github.io's Introduction

Container Tools

Welcome to the container tools portal!

Gitter chat

img/robot-banner.png

What is a Linux Container?

A container image is an encapsulated, portalable environment that is created to distribute a scientific analysis or a general function. Containers help with reproducibility of such content as they nicely package software and data dependencies, along with libraries that are needed.

What are the goals of Container Tools?

These are open source tools for scientific containers. The tools are designed with the primary goal to serve the scientific community. Since Singularity is a container technology that is friendly for shared computational resources common in the scientific community, the majority of our tools use it.

Quick Links

Thanks

The Container Tools and Singularity Hub is developed at Stanford University with support from Google Cloud. Thank you!

Citations

Please tell us about requests for features, or any questions that you might have.

Get Help

singularityhub.github.io's People

Contributors

hall avatar vsoch 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

Watchers

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

singularityhub.github.io's Issues

container build already running since 7 days and doesn't finish or give error

Link to Container Collection Log, Build, or Collection (in that order)

https://github.com/CAIsr/singularity-minc-v2-develop
https://singularity-hub.org/collections/352/

Behavior when Building Locally

the build works perfectly and everything works as expected

Error on Singularity Hub

the build does not finish

What do you think is going on?

the download of external packages might be extremely slow or is timing out for every download?

Investigate more granular permissions control for membership

This may allow more involvement from the company account when tight control over private access is needed.

I don't actually know the extent of exposure after granting private repo access from the github OAuth signup, but this uncertainty is likely a blocker at the organization level.

Thanks!

Manual release/version tagging for containers

More a feature request than an issue :)

Created my first Singularity container today and build it on singularity hub. I wondered, if there is a mechanism to manually tag a certain version of a container, like a release tag "v1.0" or so.
Currently, as I understood it, the git branch name is used as the tag in the container collection overview?

I normally would have a release branch and tag releases in GitHub explicitly, and tagging a container in such a way would also enhance reproducibility imho. Any ideas/suggestions? (Btw great work so far with Singularity, having fun implementing containers and using them).

Best, Sven

Container build keeps failing due to lack of size?

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/2576/log

Behavior when Building Locally

Not tried

Error on Singularity Hub

At least 538MB more space needed on the / filesystem.

What do you think is going on?

I think there's not enough space in the image; but the space it says is required seems to be inconsistent. I've increased the size of the image to no avail. I'm also confused because the log sometimes says the build succeeded, and sometimes says it failed.

Memory error

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/1056/log

Behavior when Building Locally

Bootstrap completes and container is operational

Error on Singularity Hub

Running test scriptlet
Finalizing Singularity container
/tmp/tmpw95c4ays/image
DEBUG:shub_builder:Built image: /tmp/tmpw95c4ays/b340d5cb482e863b562e3999a975c4c5
INFO:shub_builder:Final time of build 195 seconds.
INFO:shub_builder:Singularity 2.3-master.gf737013 being used.
Traceback (most recent call last):
File "", line 1, in 
File "/usr/local/lib/python3.5/dist-packages/singularity/build/google.py", line 245, in run_build
params=params)
File "/usr/local/lib/python3.5/dist-packages/singularity/build/main.py", line 191, in run_build
old_version=old_version)
File "/usr/local/lib/python3.5/dist-packages/singularity/package.py", line 160, in package
file_obj,tar = get_memory_tar(image_path)
File "/usr/local/lib/python3.5/dist-packages/singularity/reproduce.py", line 513, in get_memory_tar
byte_array = cli.export(image_path)
File "/usr/local/lib/python3.5/dist-packages/singularity/cli.py", line 220, in export
output = self.run_command(cmd,sudo=sudo)
File "/usr/local/lib/python3.5/dist-packages/singularity/cli.py", line 81, in run_command
output = run_command(cmd,suppress=suppress) # suppress doesn't make difference here
File "/usr/local/lib/python3.5/dist-packages/singularity/utils.py", line 113, in run_command
output, err = process.communicate()
File "/usr/lib/python3.5/subprocess.py", line 1072, in communicate
stdout, stderr = self._communicate(input, endtime, timeout)
File "/usr/lib/python3.5/subprocess.py", line 1745, in _communicate
stdout = b''.join(stdout)
MemoryError

What do you think is going on?

I set the container to be 10GB which makes sense that it wouldn't load into ram for a job (assuming you are building these on a cluster). This container is fairly bare bones. The majority of the space is probably occupied by the nvidia driver. Other than that, there are a few python modules. I did not play around with the smallest possible size but I think that I tried around 5GB and it complained about space during bootstrapping when building locally.

out of space errors are ignored, container shows as complete on hub UI

I had a problem where the hub container appeared complete, but the %post section had not run (directories created in / by post did not exist in the image). After inspection of the Hub container building log, I realized the container construction ran out of storage (they were several mentions of this occurrence in the log). These errors were ignored and the container appeared built on the UI, this is the real problem (I understand that transient out of storage conditions can exist, but they should be reported as failures to build).

latest commit id mismatch between general Container Collections page and specific collection page

latest commit id mismatch

Container Collection commit ids:

collection:
https://singularity-hub.org/collections/161/

when searching for YeoLab/eclip-dev https://singularity-hub.org/collections,
the latest commit id is shown as : 02a50a2d3dc7ad948242ca23a9cb976d5f879de3

latest build
https://singularity-hub.org/containers/1149/
has commit id: 219a210555c8d91df04eb83e3a2740d2136e2812

Error on Singularity Hub

latest commit id mismatch between general Container Collections page and specific collection page

What do you think is going on?

"looks like a bug in a query somewhere"

re-enable manual download with next singularity release

There seems to be a bug with running the compressed images, currently. there are two errors that I can observe, and both are handled by the Singularity executable. The first is the image name (this is an image I just downloaded from the interface):

  singularity run singularity-hub-regional%2Fgithub.com%2Fpforai%2Fslamdunk%2F75c4350eacd1976ff360238f4f1adc5ffb102a3c%2F4c0b540a1627f19cb8c0e8bd61d674aa.img.gz 
 ERROR  : Illegal input character '%' in: 'SINGULARITY_IMAGE=singularity-hub-regional%2Fgithub.com%2Fpforai%2Fslamdunk%2F75c4350eacd1976ff360238f4f1adc5ffb102a3c%2F4c0b540a1627f19cb8c0e8bd61d674aa.img.gz'
 ABORT  : Retval = 255

The reason it has that long nasty url, and with illegal characters, is because the image is stored in google cloud (bucket) with a reversed github username. Something like:

  /github.com/username/reponame/commit/content-has.img.gz

The illegal characters are of course translating that to the browser url. The first thing singularity client does to fix this is to rename the image according to just it's hash, the end of that. We can sort of mimic that by renaming manually:

  $ mv singularity-hub-regional%2Fgithub.com%2Fpforai%2Fslamdunk%2F75c4350eacd1976ff360238f4f1adc5ffb102a3c%2F4c0b540a1627f19cb8c0e8bd61d674aa.img.gz myimage.img.gz

Now testing running it..

  singularity run myimage.img.gz 
  ERROR  : File is not a valid Singularity image, aborting...
  ABORT  : Retval = 255

Now, the final bit is that there seems to be a current bug with singularity "sniffing" that the image is compressed, and uncompressing it. @gmkurtzer this should work, no? Methinks this should be fixed in the next release, but let's keep an eye on it in case not. The fix, which is done by the Singularity client when the image is pulled, is to decompress properly:

  gzip -d -f myimage.img.gz 

and then the shell works

   singularity run myimage.img 
   singularity shell myimage.img
   Singularity: Invoking an interactive shell within container...
   Singularity.myimage.img> $ 

I have disabled (manual downloads) for now and we can revisit this issue with the next software release.

Reduce necessary permissions on linking with github

It seems when logging in with github, permissions to read and WRITE all my personal account data and all my repositories is requested.
I would totally be fine with read access only, which should be sufficient as far as I can see, but uncontrollable write access to all my repos and my profile is a bit excessive.

Is this really needed?
It's something preventing me from linking this service with my normal github account - or an organization, even...

Upgrading all images from a registry

Hi,

This is not an issue but a feature request. The main idea is to add the possibility as a registry admin, to upgrade all images from a registry and check logs for any problem, or at least, container by container (or with a scheduler).
Container by container would be as easy as singularity exec $IMG yum update or singularity exec $IMG "apt-get update && apt-get dist-upgrade". For all containers, a loop can do the job. What would be needed is the output of these commands for the singularity-registry admin, in an admin panel view.

Best regards,
Rémy

Create an image security scanner

Hi,

This issue is not a bug, but a feature request.

Some registries like quay.io allows users to scan images for vulnerabities. You can have an example here

I think it is using clair from CoreOS.

Best regards,
Rémy

Building does crash

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/1569/log

Behavior when Building Locally

Works fine like this:

sudo singularity create --size 3000 eager.img sudo singularity bootstrap eager.img Singularity

Error on Singularity Hub

errors in building, files are there - it just seems to fail at some point and I can't check why:

`
downloading eagerstat-0.4-1-any.pkg.tar.xz...
Errors occurred, no packages were upgraded.
�[31m�(B�[m
/tmp/tmp8_80n4f0/image
``

What do you think is going on?

See above - something breaks. I will update the machine with the packages and see if that helps, but can't really say if this is the case unfortunately.

Build failing (Docker, Fedora 25 base image), but I can't find a reason

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/1343/log

This is a bootstrap using the Docker method, based on Fedora 25. I use the %setup section to copy the working directory into the container image. I use the %post section to install packages, and to call setup.py (the source repo is a Python distribution). I also have a %test section which is run.

Behavior when Building Locally

The build completes successfully. Here's an asciinema link:

https://asciinema.org/a/cpyn1v32752d8m0waw80wt16i

I wanted to make sure my system was completely clean, so I wiped my VM, re-installed Ubuntu 16.10, and installed Singularity 2.3 from the Neurodebian repo. After that, building was as simple as:

git clone https://github.com/akkornel/pypop.git pypop
cd pypop
singularity create -s 1024 ../image
sudo singularity bootstrap ../image Singularity

Error on Singularity Hub

I'm not entirely sure. The bootstrap appears to complete successfully, but then something causes the build to fail.

Finalizing Singularity container
/tmp/tmp4lm0v1ru/image
ERROR:shub_builder:Image failed to bootstrap, cancelling build.

I ran the build with debug messages on, but I still don't see anything out of the ordinary.

What do you think is going on?

I'm sorry, but I honestly have no idea.

unable to fetch any version of the container while new one is building

hopa:/tmp
$> singularity pull --commit shub://yarikoptic/neurodebian-singularity-temp
ERROR Error downloading None. Do you have permission to write to /tmp?

waited until it is done:

$> singularity pull --commit shub://yarikoptic/neurodebian-singularity-temp
Progress |===================================| 100.0% 
Done. Container is at: ./5573dd66d51dd5fd6e2567f241d1aebb8125e396.img

I guess the last successful should be made available until a new one comes to life

Problem with "Registry: quay.io" in Singularity-file

I'm trying to bootstrap from a docker image quay.io/fenicsproject/dev-env:latest like specified here:
http://singularity.lbl.gov/bootstrap-image#docker

I get an error

 ERROR:python:Error obtaining tags: https://index.docker.io/v2/fenicsproject/dev-env/tags/list

When using

Bootstrap: docker
From: fenicsproject/dev-env:latest
Registry: quay.io

The singularityfile is here:
https://github.com/TormodLandet/singularity-fenics-dev-env

The log is here:
https://singularity-hub.org/containers/605/log

Can not pull Container

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/1560/

Behavior when Building Locally

Works fine :-)

Error on Singularity Hub

Works fine, too!

What do you think is going on?

I tried pulling with the commands specified, but only the one with the ID worked fine.

singularity pull shub://1560 # works!
singularity pull shub://apeltzer/EAGER-GUI:master # does not work!

Error Messages:

singularity pull shub://apeltzer/EAGER-GUI:master ERROR Error downloading None. Do you have permission to write to /home/peltzer/IDEA/EAGER-GUI?

I do have permissions, touch file in the same folder works fine. Removing my .singularity folder did not help either unfortunately.

End usage instructions hard to find

I've looked through https://singularity-hub.org/ and it looks like the documentations / instructions are geared toward developers and maintainers of containers, but not to end users. Because user are likely to find SingularityHub containers via a search engine, I think one could lower the "get-started" threshold significantly if there were usage instructions for each container on the SingularityHub site, e.g. for https://singularity-hub.org/collections/25/ there could be a section:

Usage

To pull the container tagged "master" and then run it, use:

$ singularity pull shub://singularityhub/ubuntu
$ singularity run singularityhub-ubuntu-master.img

To pull a container with a different tagged, append : followed by the tag to the URI, e.g.

$ singularity pull shub://singularityhub/ubuntu:14.04

The Singularity image file downloaded will be singularityhub-ubuntu-14.04.img (also in the working directory).

The first example can be added for all containers, whereas the second would require some lookup of alternative tags.

The reason for explicitly writing what the saved files are is because it is not immediately obvious where they are save (e.g. current directory or a hidden cache directory) and how the files are named (e.g. if different tags overwrite each other).

Display of deeply nested folders

The current visualization of files on https://singularity-hub.org/containers/XXX/view makes it impossible to see the contents of custom python site packages /usr/local/lib/python2.7/site-packages/* which can be interesting to see what Python packages are included in an image

Even when zooming to 80% or less the rightmost items disappear. This is true for all such deeply nested folders (Firefox, linux)

I do not consider this very important, just something to be aware of

Singularity 2.3 builders error when doing a yum bootstrap

Link to Container Collection Log, Build, or Collection (in that order)

https://singularity-hub.org/containers/1252/log

Behavior when Building Locally

(In my case, "Locally" means in an Ubuntu 16.10 VM running via Virtual Box on my Mac, using Singularity 2.3)

The build completes successfully!

Error on Singularity Hub

RPM database is using a weird path: %(bash -c 'echo ~/.rpmdb')

What do you think is going on?

I'm guessing that the builder is running some form of Ubuntu. The yum and rpm packages are likely already installed, but the local RPM configuration is messed up (a problem which was identified during Singularity 2.3's development).

I think the fix is to modify the builder deployment process, so that a file is placed at path /root/.rpmmacros, with the following contents:

%_var /var
%_dbpath %{_var}/lib/rpm

Then the builders would have to be re-deployed. Or, maybe the builders can be modified in-place? I'm sorry, I don't know enough about the builders to say for sure.

I say "I think", because I don't know how the builders are deployed, and I don't want to sound like an $@#($% by saying "Oh, this is exactly what you need to do, and how did you not know that already!!!!! OMG, I can't believe you." I'm making a small pile of assumptions in this section, and if any of them are wrong, then the problem may be different.

add reproducibility hashes generation to build

A user will be able to view the "reproducibility hashes," meaning content hashes generated from logical subsets of files within the container. This means that a researcher can assess if a container is reproducible on the levels of replicate, identical, environment, runscript, labels, or recipe (the previous three). This is a cool idea because a researcher can decide at which level he/she wants to operate.

Manually trigger builds

This is quite related to issue #4

It would be nice to be able to turn off automatic builds and then just manually trigger builds when needed. This would save you computational resources and save me from feeling bad when I accidentally trigger a build. I keep a dockerfile and a singularity file in the same repo. I need to first trigger docker hub build and then trigger singularity hub build when the docker hub build is finished.

I want to just commit the changes to the Dockerfile, then have the docker hub build the image and finally after an hour or so trigger a singularity hub build. Right now I must first build on dockerhub, then activate the branch on singularity hub and then make a new meaningless commit to trigger the singularity build.

Even better would be to both have a manual trigger button, and in addition be able to build every time the bootstrapped docker image changes. I guess this requires some webhooks and in general a lot more work than just having a "trigger build" button.

improve search interface

currently all containers are returned. Container collections should be returned, and the user browses containers from there.

singularity-hub built container has an extra blank first line in /singularity and other setup issues

I am having trouble with getting a build by singuarity-hub for the following repo:
eclip singularity-cwl pipeline

Building locally works fine , with:

sudo singularity create --size 4608   eclpi-0.1.5.99.img
sudo singularity bootstrap eclip-0.1.5.99.img Singularity

Building on singularity-hub presents the following issues
after downloading with singularity pull shub://YeoLab/eclip-dev:master I notice:

  1. /singularity file has a blank line at the top before my intended first line which should be the shebang line: #/usr/bin/env bash
  2. the /opt folder only has the conda subfolders , but noe of the other 10 or 12 other folders supposed to be copied into /opt and added to PATH by the Singularity builder file

I can sudo singualrity exec +w image bash into the container and remove the blank line at top of /singularity which makes the container a little less broken. But I don't have a simple fix for all the missing installations in the container.

I have tried:

  1. to make the github repo public and private
  2. different sizes for the builder on singularity hub

I noticed in the singularity-hub logs:

  1. a not found 404 message, but many other containers that work fine have the same 404 message
  2. a warning about lines too long in the Singularity file, I now got rid of that message after I split some of the conda install commands

Context:

  1. singularity version for building locally : I am using 2.2.1
    It seems singularity-hub is using version 2.2 . Is this a problem ?
  2. singularity version for pulling from singularity hub : I am using release 2.2.99, either installed on my ubuntu laptop, or inside the new pre-installed vagrant box
  3. singualrity config: /usr/local/etc/singularity/singularity.conf does not have anything special in either of my singularity installations; I think... but let me know if I should upload it here

Thanks for any help!

hub failed build with centos-7 container

Hi,
sorry i did not save the repo with the failed build (i did not want to clutter your space with my failures) but here is the Singularity file:

BootStrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/$basearch/
Include: yum

%runscript
echo "This is what happens when you run the container..."

%post
echo "Hello from inside the container"
yum -y install vim-minimal
echo "Installing Development Tools YUM group"
yum -y groupinstall "Development Tools"
yum -y install wget
wget https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-2.1.0.tar.bz2
tar -xf openmpi-2.1.0.tar.bz2
echo "installing openmpi"
ls
cd openmpi-2.1.0
./configure --prefix=/usr/local
make
make install
echo "done"

What do you think is going on?

i have no problem building a container based on a ubunu docker image
i suspect that the hub does not yet support centos? there is probably a note to this effect in the docs but i failed to find it.

if you wish i can reproduce the error. let me know. i am [email protected].

Multiple containers per repo

For HPC application teams it would be nice to have multi-container repositories as opposed to one container per repository eg:

├── aligngraph
│   └── centos7-aligngraph.def
├── macaulay2
│   └── centos7-macaulay2.def
├── mrbayes
│   └── ubuntu-mrbayes-3.6.2_openmpi-2.1.0.def
├── pandoc
│   └── centos7-pandoc-1.12.3.1-1.el7.def
├── python
│   ├── centos7-python-2.7.5.el7.def
│   ├── centos7-python-3.4.3-7.el7.def
│   └── centos7-python-3.4.def
├── R
│   ├── centos7-R.def
│   └── README.md
└── README.md

Some thoughts on implementation:

  • How to detect a def file? or just list defs in Singularity?
  • How to deal with image size settings?
  • Detecting only changed defs and only building those?

[wishlist] ideal way to store "version"

There is currently

yhalchen@discovery:/.singularity.d$ grep -i -r version .
./Singularity:OSVersion: stretch
./bootstrap/Singularity:OSVersion: stretch
./labels.json:    "SINGULARITY_DEFFILE_OSVERSION": "stretch",
./labels.json:    "SINGULARITY_BOOTSTRAP_VERSION": "2.3-master.gf737013"

so we know the version of the singularity was used but I don't think there is a way to determine within the container which version of the repository was used. Ideally I would like to see a version which would be based on the "git describe --match=sing-*" output, so I could tag versions of the singularity definition, but then even if it changes without tagging, I would get a meaningful description from git describe:

$> git describe --tags --match sing-\* | sed -e 's,^sing-,,g'
2.2-1-g51e579c

so I could run that within %post, generate some file and add it somewhere under /.singularity.d but wondered first to ask so I do not reinvent the wheel etc ;) @vsoch - ideas? ;)

Is it possible to mark a container to be rebuilt?

I'm trying to build my first container; but I was running into a situation where I needed more space than the default 800MB. I increased the image size for the collection, but I can't figure out how to get it to rebuild without removing and re-adding the whole collection, or pushing a garbage commit.

Does this feature exist?

add option to not build all branches

Reposted from Singularity group list:

I think there could be a need for not building all GitHub branches.
For instance, some branches may be pure development branches. These a
typically being used with lots of commits / pushes. I'm a big fan of
the "git flow" model (https://github.com/petervanderdoes/gitflow-avh)
where this is the case, i.e. you have a master and a develop
branch and then at times various feature/* and hotfix/* branches,
cf. https://singularity-hub.org/collections/44/. Maybe this could be
achieved by controlling this via some .singularityhub.yml file (don't
think the Singularity file is the place for this):

  ## Exclude these branches
  branch:
    - exclude:
    - develop
    - feature/.*

and / or

 ## Only include these branches
 branch:
     - include: master

As a complement (or an alternative?) to build based on Git branches
(git branch), I'd like to propose building on Git tags (git tag).
That would also give a natural way of providing multiple versions
without cluttering up the repos with multiple branches. The default
(no tag) could still be to build what's on the master branch. From
the user's perspective this could look like:

  singularity pull shub://myrepo/image (master branch)
  singularity pull shub://myrepo/[email protected]
  singularity pull shub://myrepo/[email protected]

The Username/Repository@tag format follows the GitHub Autolink
standard (https://help.github.com/articles/autolinked-references-and-urls/).
(This is also widely used in the R community, e.g.
install_github("Username/Repository@tag").

labels as own model

we would want users to be able to add a label to a container, and then filter to those containers via an api endpoint (to retrieve some set relevant to the application represented by the label)

Updates for 2.3

  • Builders should obviously have 2.3
  • Singularity Python should be updated to provide client, with a web interface with instructions, and a command line interface to compare containers
  • Builder should be modified to add metadata about build to container

Typo on singularity-hub.org

Hi,
I was checking out the singularity hub webpage and noticed a typo (BerEkeley), but couldn't find out the repo, so I'm opening this issue. See screenshot below

image

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.