Code Monkey home page Code Monkey logo

Comments (8)

SergioGasquez avatar SergioGasquez commented on June 6, 2024 1

is configured to use an older nightly version of Rust, which could not build the new espflash crate.

I am currently working on updating the whole training to use a more recent version of the nightly toolchain and of the crates that are used, you can see the changes here: https://github.com/SergioGasquez/espressif-trainings/tree/feature/crates-update

I'll close the issue, thanks for your reports!

from std-training.

SergioGasquez avatar SergioGasquez commented on June 6, 2024

Hi!

Just tried with a fresh clone of the repo on a macOS m1 and had no issue with the hardware-check example, also the Dockerfile is able to build it successfully. Can you elaborate on the system that you are using to build the example?Do you have any esp-idf environment variables in your system? Just to make sure, I would recommend doing a cargo clean before building it.

from std-training.

JanWendler avatar JanWendler commented on June 6, 2024

I used an older repo and pulled the new changes. I just tried it with a new repo as well with the same result.
I'm on a Windows 10 machine. I do have a local ESP-IDF installation with the relevant environment variables (IDF_PATH and so on) set. I ran cargo clean several times.
For Rust, i have added the nightly-2022-03-10 toolchain and I'm running the hardware check with cargo run.
I will try to disable the local ESP-IDF installation an report again.

from std-training.

SergioGasquez avatar SergioGasquez commented on June 6, 2024

I will try to disable the local ESP-IDF installation an report again.

Having ESP-IDF environment variables can interfere with esp-idf-sys and cause build errors, please, let me know how it goes!

from std-training.

JanWendler avatar JanWendler commented on June 6, 2024

Error Message with no ESP-IDF environment variables

Compiling esp-idf-hal v0.38.1
Compiling embedded-svc v0.21.3
error: failed to run custom build command for esp-idf-sys v0.31.5

Caused by:
process didn't exit successfully: r:\intro\hardware-check\target\debug\build\esp-idf-sys-94bc043aa2a6ecfd\build-script-build (exit code: 1)
--- stdout
cargo:rerun-if-env-changed=IDF_PATH
cargo:rerun-if-env-changed=ESP_IDF_TOOLS_INSTALL_DIR
cargo:rerun-if-env-changed=ESP_IDF_VERSION
cargo:rerun-if-env-changed=ESP_IDF_REPOSITORY
cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG_DEFAULTS
cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG
cargo:rerun-if-env-changed=MCU
Python 3.7.5
pip 22.3.1 from C:\Users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages\pip (python 3.7)
Looking in indexes: https://pypi.org/simple, https://dl.espressif.com/pypi
Processing c:\users\jan.wendler.espressif\esp-idf\v4.4.1\tools\kconfig_new\esp-windows-curses
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: setuptools>=21 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 4)) (65.6.3)
Requirement already satisfied: click>=7.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 8)) (8.1.3)
Requirement already satisfied: pyserial>=3.3 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 9)) (3.5)
Requirement already satisfied: future>=0.15.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 10)) (0.18.2)
Requirement already satisfied: cryptography>=2.1.4 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 12)) (38.0.4)
Requirement already satisfied: pyparsing<2.4.0,>=2.0.3 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 18)) (2.3.1)
Requirement already satisfied: pyelftools>=0.22 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 19)) (0.29)
Requirement already satisfied: idf-component-manager~=1.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (1.2.1)
Requirement already satisfied: gdbgui==0.13.2.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (0.13.2.0)
Requirement already satisfied: pygdbmi<=0.9.0.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 25)) (0.9.0.2)
Requirement already satisfied: python-socketio<5 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 28)) (4.6.1)
Requirement already satisfied: jinja2<3.1 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 29)) (3.0.3)
Requirement already satisfied: itsdangerous<2.1 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 30)) (2.0.1)
Requirement already satisfied: kconfiglib==13.7.1 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 32)) (13.7.1)
Requirement already satisfied: reedsolo<=1.5.4,>=1.5.3 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 35)) (1.5.4)
Requirement already satisfied: bitstring>=3.1.6 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 36)) (4.0.1)
Requirement already satisfied: ecdsa>=0.16.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 37)) (0.18.0)
Requirement already satisfied: construct==2.10.54 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from -r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 41)) (2.10.54)
Requirement already satisfied: Pygments<3.0,>=2.2.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (2.13.0)
Requirement already satisfied: Flask<1.0,>=0.12.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (0.12.5)
Requirement already satisfied: Flask-SocketIO<3.0,>=2.9 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (2.9.6)
Requirement already satisfied: gevent<2.0,>=1.2.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (1.5.0)
Requirement already satisfied: Flask-Compress<2.0,>=1.4.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (1.13)
Requirement already satisfied: importlib-metadata in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from click>=7.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 8)) (5.2.0)
Requirement already satisfied: colorama in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from click>=7.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 8)) (0.4.6)
Requirement already satisfied: cffi>=1.12 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from cryptography>=2.1.4->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 12)) (1.15.1)
Requirement already satisfied: tqdm<5 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (4.64.1)
Requirement already satisfied: requests<3 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (2.28.1)
Requirement already satisfied: six in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (1.16.0)
Requirement already satisfied: schema in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (0.7.5) Requirement already satisfied: pyyaml>5.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (6.0)
Requirement already satisfied: contextlib2>0.6.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (21.6.0)
Requirement already satisfied: requests-file in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (1.5.1)
Requirement already satisfied: packaging in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (22.0)
Requirement already satisfied: cachecontrol[filecache]>0.12.6 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (0.12.11)
Requirement already satisfied: requests-toolbelt in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (0.10.1)
Requirement already satisfied: python-engineio<4,>=3.13.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from python-socketio<5->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 28)) (3.14.2)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from jinja2<3.1->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 29)) (2.1.1)
Requirement already satisfied: windows-curses in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from esp-windows-curses==0.1->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 47)) (2.3.1)
Requirement already satisfied: msgpack>=0.5.2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from cachecontrol[filecache]>0.12.6->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (1.0.4)
Requirement already satisfied: lockfile>=0.9 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from cachecontrol[filecache]>0.12.6->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (0.12.2)
Requirement already satisfied: pycparser in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from cffi>=1.12->cryptography>=2.1.4->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 12)) (2.21)
Requirement already satisfied: Werkzeug<1.0,>=0.7 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from Flask<1.0,>=0.12.2->gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (0.16.1)
Requirement already satisfied: brotli in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from Flask-Compress<2.0,>=1.4.0->gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (1.0.9)
Requirement already satisfied: greenlet>=0.4.14 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from gevent<2.0,>=1.2.2->gdbgui==0.13.2.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 22)) (2.0.1)
Requirement already satisfied: charset-normalizer<3,>=2 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from requests<3->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (2.1.1)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from requests<3->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (1.26.13)
Requirement already satisfied: idna<4,>=2.5 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from requests<3->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (3.4)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from requests<3->idf-component-manager~=1.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 20)) (2022.12.7)
Requirement already satisfied: typing-extensions>=3.6.4 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from importlib-metadata->click>=7.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 8)) (4.4.0)
Requirement already satisfied: zipp>=0.5 in c:\users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\lib\site-packages (from importlib-metadata->click>=7.0->-r C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\requirements.txt (line 8)) (3.11.0)
Building wheels for collected packages: esp-windows-curses
Building wheel for esp-windows-curses (setup.py): started
Building wheel for esp-windows-curses (setup.py): finished with status 'done'
Created wheel for esp-windows-curses: filename=esp_windows_curses-0.1-py3-none-any.whl size=1167 sha256=9641387e4c6fa9928da0ea5c7b1e247bf582601eaea019b694470f5a3d69fc23
Stored in directory: c:\users\jan.wendler\appdata\local\pip\cache\wheels\13\2c\4b\57a8508f13967672f0bf4761954b03185ab9d9b4853da24e21
Successfully built esp-windows-curses
Installing collected packages: esp-windows-curses
Attempting uninstall: esp-windows-curses
Found existing installation: esp-windows-curses 0.1
Uninstalling esp-windows-curses-0.1:
Successfully uninstalled esp-windows-curses-0.1
Successfully installed esp-windows-curses-0.1

--- stderr
Using managed esp-idf repository: EspIdfRemote { repo_url: None, git_ref: Tag("v4.4.1") }
Traceback (most recent call last):
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1858, in
main(sys.argv[1:])
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1854, in main
action_func(args)
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1176, in action_export
tools_info = filter_tools_info(tools_info)
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1118, in filter_tools_info
targets = get_user_defined_targets()
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1098, in get_user_defined_targets
if env == idf_env_json['idfSelectedId']:
KeyError: 'idfSelectedId'

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: C:\Users\jan.wendler.espressif\python_env\idf4.4_py3.7_env\Scripts\python.exe -m pip install --upgrade pip
Traceback (most recent call last):
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1858, in
main(sys.argv[1:])
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1854, in main
action_func(args)
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1176, in action_export
tools_info = filter_tools_info(tools_info)
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1118, in filter_tools_info
targets = get_user_defined_targets()
File "C:\Users\jan.wendler.espressif\esp-idf\v4.4.1\tools\idf_tools.py", line 1098, in get_user_defined_targets
if env == idf_env_json['idfSelectedId']:
KeyError: 'idfSelectedId'
Error: Could not install esp-idf

Caused by:
0: idf_tools.py export result contains no IDF_PYTHON_ENV_PATH item and no such environment variable found
1: environment variable not found
warning: build failed, waiting for other jobs to finish...
error: build failed

Description

So, I disabled all the environment variables and restarted my pc. I ran cargo clean and cargo run. Now I get this error.
I looks like "idfSelecedId" in a python script is set wrong?

from std-training.

JanWendler avatar JanWendler commented on June 6, 2024

I found this issue esp-idf/issues/9837 which recommended deleting ~/.espressif I did that and it worked! The project builds now.
Of course I ran into a new problem.

Error mesage

Running espflash flash --release --monitor target\riscv32imc-esp-espidf\debug\hardware-check
New version of espflash is available: v2.0.0-rc.3

error: Found argument '--release' which wasn't expected, or isn't valid in this context
If you tried to supply --release as a value rather than a flag, use -- --release

USAGE:
espflash.exe

For more information try --help
error: process didn't exit successfully: espflash flash --release --monitor target\riscv32imc-esp-espidf\debug\hardware-check (exit code: 2)

Description

I'm a bit confused why it says that a new version of espflash is available. On crates.io v1.7.0 is the newest version.
I tried to find the error but this time I could not find a relevant issue. Any Idea what I'm doing wrong here?

from std-training.

SergioGasquez avatar SergioGasquez commented on June 6, 2024

Description

I'm a bit confused why it says that a new version of espflash is available. On crates.io > v1.7.0 is the newest version. I tried to find the error but this time I could not find a relevant issue. Any Idea what I'm doing wrong here?

espflash v2.0.0-rc.3 is a release candidate, official release should land soon, you can install it with: cargo install [email protected] --force or you can edit the custom runner to runner = "espflash --monitor"
Please, make sure you pull the latest changes of the training as I just fixed the custom runner (I modified it a few days ago introducing a small bug, which should now be fixed, sorry for this and thanks for all your reports!)

from std-training.

JanWendler avatar JanWendler commented on June 6, 2024

YES! I had to use the command cargo install espflash --version 2.0.0-rc.3 --force but now it works!
I also had to use this command in a different directory than intro\hardware since this directory is configured to use an older nightly version of Rust, which could not build the new espflash crate.
Thank you for your help. I'm looking forward to completing this course :D

from std-training.

Related Issues (20)

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.