GithubHelp home page GithubHelp logo

nim-lang / nimble Goto Github PK

View Code? Open in Web Editor NEW
1.2K 1.2K 173.0 3.17 MB

Package manager for the Nim programming language.

License: Other

Nim 99.67% Shell 0.22% Makefile 0.10%
nim package-manager

nimble's Introduction

Nimble

Nimble is the default package manager for the Nim programming language.

Documentation

Interested in how to use Nimble? See the Nimble Guide, where you can learn:

This documentation is for the latest commit of Nimble. Nim releases ship with a specific version of Nimble and may not contain all the features and fixes described here. nimble -v will display the version of Nimble in use.

The Nimble changelog can be found here.

Repository information

This repository has two main branches: master and stable.

The master branch is...

  • default
  • bleeding edge
  • tested to compile with a pinned (close to HEAD) commit of Nim

The stable branch is...

  • installed by koch tools/koch nimble
  • relatively stable
  • should compile with Nim HEAD as well as the latest Nim version

Note: The travis build only tests whether Nimble works with the latest Nim version.

A new Nim release (via koch xz) will always bundle the stable branch.

Contribution

If you would like to help, feel free to fork and make any additions you see fit and then send a pull request.

If you have any questions about the project, you can ask me directly on GitHub, ask on the Nim forum, or ask on Freenode in the #nim channel.

About

Nimble has been written by Dominik Picheta with help from a number of contributors. It is licensed under the 3-clause BSD license, see license.txt for more information.

nimble's People

Contributors

andreaferretti avatar antizealot1337 avatar araq avatar bobeff avatar cybertailor avatar dependabot[bot] avatar dom96 avatar ee7 avatar fowlmouth avatar genotrance avatar gradha avatar hiteshjasani avatar iffy avatar ire4ever1190 avatar jeff-ciesielski avatar jmgomez avatar jxy avatar k0pernicus avatar lemonboy avatar liquidev avatar lou15b avatar narimiran avatar ringabout avatar samdmarshall avatar subsetpark avatar timotheecour avatar xtrayambak avatar yardanico avatar yglukhov avatar yyoncho 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nimble's Issues

Incorrect installation instructions

Readme says:

After these steps nimble should be compiled and installed. You should then add ~/.nimble/bin to your $PATH

However it seems that nimble is actually installed to ~/.babel/bin. Since this is all in flux I wonder if the proper fix is to change the README or the installation path.

Babel uses incorrect local path installing dependency

Installation of the dropbox_filename_sanitizer package will fail with the following command:

$ babel install dropbox_filename_sanitizer

If previous to the installation any existing packages of the argument_parser package are removed from ~/.babel/pkgs. The full command sequence to reproduce would be then:

$ rm -Rf ~/.babel/pkgs/argument_parser*
$ babel install -y dropbox_filename_sanitizer

Babel will see the requirement for the main program to mention version 1.2 and uses that version instead of whatever version is obtained through the git checkout of that package. Then it fails during verification. The error message is strange (it mentions twice the nake package). Here is the full log:

[0:[email protected]:0] [~]$ rm -Rf ~/.babel/pkgs/argument_parser*
[0:[email protected]:0] [~]$ babel install -y dropbox_filename_sanitizer
Downloading dropbox_filename_sanitizer into /tmp/babel/dropbox_filename_sanitizer using git...
Found tags...
Cloning latest tagged version: v0.4.0
Cloning into '/tmp/babel/dropbox_filename_sanitizer'...
remote: Counting objects: 18, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 18 (delta 0), reused 13 (delta 0)
Receiving objects: 100% (18/18), 10.73 KiB | 0 bytes/s, done.
Checking connectivity... done.
Note: checking out 'b42c46b56477951a75dc89afad70788e7cd55380'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

Installing dropbox_filename_sanitizer-0.4.0
Looking for nake (>= 1.2)...
Dependency already satisfied.
Looking for argument_parser (>= 0.1.2)...
None found, installing...
Downloading argument_parser into /tmp/babel/argument_parser_0.1.2 using git...
Found tags...
Cloning latest tagged version: v0.2.0
Cloning into '/tmp/babel/argument_parser_0.1.2'...
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 23 (delta 1), reused 13 (delta 0)
Receiving objects: 100% (23/23), 21.66 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1/1), done.
Checking connectivity... done.
Note: checking out '531ea03fe7f85b048e02a45eb2b241bb1c494dd3'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

Installing argument_parser-0.2.0
Looking for nake (>= 1.0)...
Dependency already satisfied.
/tmp/babel/argument_parser_0.1.2/LICENSE.rst -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/LICENSE.rst
/tmp/babel/argument_parser_0.1.2/README.rst -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/README.rst
/tmp/babel/argument_parser_0.1.2/argument_parser.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/argument_parser.nim
/tmp/babel/argument_parser_0.1.2/docindex.rst -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/docindex.rst
/tmp/babel/argument_parser_0.1.2/docs/changes.rst -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/docs/changes.rst
/tmp/babel/argument_parser_0.1.2/examples/ex_cp.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/examples/ex_cp.nim
/tmp/babel/argument_parser_0.1.2/examples/ex_git.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/examples/ex_git.nim
/tmp/babel/argument_parser_0.1.2/examples/ex_mkdir.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/examples/ex_mkdir.nim
/tmp/babel/argument_parser_0.1.2/examples/ex_wget.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/examples/ex_wget.nim
/tmp/babel/argument_parser_0.1.2/examples/nimrod.cfg -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/examples/nimrod.cfg
/tmp/babel/argument_parser_0.1.2/nakefile.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/nakefile.nim
/tmp/babel/argument_parser_0.1.2/nakefile.nimrod.cfg -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/nakefile.nimrod.cfg
/tmp/babel/argument_parser_0.1.2/tests/code_test.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/tests/code_test.nim
/tmp/babel/argument_parser_0.1.2/tests/help_generation.nim -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/tests/help_generation.nim
/tmp/babel/argument_parser_0.1.2/tests/nimrod.cfg -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/tests/nimrod.cfg
/tmp/babel/argument_parser_0.1.2/argument_parser.babel -> /Users/gradha/.babel/pkgs/argument_parser-0.2.0/argument_parser.babel
argument_parser installed successfully.
FAILURE: Cannot satisfy the dependency on nake 1.2 and nake 1.2
[1:[email protected]:0] [~]$ ls /tmp/babel/
argument_parser_0.1.2       dropbox_filename_sanitizer
[0:[email protected]:0] [~]$ 

After this error running again the command to install the package will succeed since the argument_parser module is already installed so no download has to be done.

Examine HEAD if tags are present but where none satisfy said dependency

HEAD is always ignored when tags are present:

$babel install ouroboros
Downloading ouroboros into /tmp/babel/ouroboros using git...
Found tags...
Cloning latest tagged version: v0.2.0
Cloning into '/tmp/babel/ouroboros'...
remote: Counting objects: 14, done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 14 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (14/14), 16.31 KiB | 0 bytes/s, done.
Note: checking out 'f92b28cab3e1eea219d21c10dd104b016039810d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

Installing ouroboros-0.2.0
Looking for nake (>= 1.0)...
Dependency already satisfied.
Looking for argument_parser (>= 0.1.2)...
None found, installing...
Downloading argument_parser into /tmp/babel/argument_parser_0.1.2 using git...
Found tags...
FAILURE: Could not find a version which fits the specified range: >= 0.1.2

HEAD for argument_parser is at version 0.1.2, but only up to 0.1.1 has been tagged, and that's why it fails.

Can't install nimgame through babel

Here's the output log of a babel install command:

$ babel install nimgame
Executing git...
Cloning into '/tmp/babel/nimgame'...
remote: Counting objects: 351, done.
remote: Compressing objects: 100% (266/266), done.
remote: Total 351 (delta 241), reused 193 (delta 83)
Receiving objects: 100% (351/351), 634.77 KiB | 168 KiB/s, done.
Resolving deltas: 100% (241/241), done.
/tmp/babel/nimgame/CHANGELOG.md -> /Users/gradha/babel/libs/nimgame/CHANGELOG.md
/tmp/babel/nimgame/doc/audio.html -> /Users/gradha/babel/libs/nimgame/doc/audio.html
[...]
/tmp/babel/nimgame/fnt/default8x16.png -> /Users/gradha/babel/libs/nimgame/fnt/default8x16.png
/tmp/babel/nimgame/fnt/FSEX300.ttf -> /Users/gradha/babel/libs/nimgame/fnt/FSEX300.ttf
/tmp/babel/nimgame/lib/audio.nim -> /Users/gradha/babel/libs/nimgame/lib/audio.nim
/tmp/babel/nimgame/lib/collider.nim -> /Users/gradha/babel/libs/nimgame/lib/collider.nim
/tmp/babel/nimgame/lib/common.nim -> /Users/gradha/babel/libs/nimgame/lib/common.nim
/tmp/babel/nimgame/lib/engine.nim -> /Users/gradha/babel/libs/nimgame/lib/engine.nim
/tmp/babel/nimgame/lib/entity.nim -> /Users/gradha/babel/libs/nimgame/entity.nim
/tmp/babel/nimgame/lib/font.nim -> /Users/gradha/babel/libs/nimgame/font.nim
/tmp/babel/nimgame/lib/gui_button.nim -> /Users/gradha/babel/libs/nimgame/gui_button.nim
/tmp/babel/nimgame/lib/gui_textbutton.nim -> /Users/gradha/babel/libs/nimgame/gui_textbutton.nim
/tmp/babel/nimgame/lib/image.nim -> /Users/gradha/babel/libs/nimgame/image.nim
/tmp/babel/nimgame/lib/imageex.nim -> /Users/gradha/babel/libs/nimgame/imageex.nim
/tmp/babel/nimgame/lib/input.nim -> /tmp/babel/nimgame/lib/input.nim/input.nim
Traceback (most recent call last)
babel.nim(269)           babel
babel.nim(255)           doAction
babel.nim(209)           install
babel.nim(176)           installFromDir
babel.nim(147)           copyFilesRec
babel.nim(158)           copyFilesRec
babel.nim(111)           copyFileD
os.nim(772)              copyFile
os.nim(205)              OSError
Error: unhandled exception: Not a directory [EOS]

Run command for babel

Babel should have a "run" command that works like the following:

  • babel run should run the first defined executable in the foo.babel file
  • babel run exename should run the executable called "exename" after building
  • babel run alias should run the executable that is bound to an alias. For example if you have an executable called "superlongsoftwarenamethatistoomuchtotype-server" you could define an alias "server" and do babel run server

That would be super useful!

Mechanism to follow the latest version of a package

At the moment the installation of a versioned babel package will create its directory with the version so different versions can exists. It would be nice if babel could:

  • Create symbolic links to the package in the form packagename-latest.

or alternatively

  • provide a mechanism where invoking something like babel latest_dir packagename will spit out on stdout the path to the last package. Or maybe some fancier mechanism which updates nimrod.cfg files (but I guess this doesn't play nice with source control).

The only problem of this feature is people will actually want you to provide more mechanisms to browse versions, switch to one or another, etc. The horror.

Some files don't get copied to babel library directory

After adding a babel file with some directories to skip, other files are skipped too. To reproduce the problem perform this steps:

$ git clone git://github.com/gradha/epak.git
$ cd epak
$ git checkout dev
$ babel install

This creates and installs files into ~/babel/libs/epak-1.0.0. However, some files are missing, if I perform a diff between the recent clone/checkout and the installed library I get:

[~/babel/libs]$ diff -r epak-1.0.0 ~/epak
Only in /Users/gradha/epak: .gitattributes
Only in /Users/gradha/epak: .gitignore
Only in /Users/gradha/epak: Doxyfile
Only in /Users/gradha/epak: Makefile
Only in /Users/gradha/epak: python

The missing git files is expected, since they are hidden files. The python directory is specified by the babel file to be skipped. However the Doxyfile and Makefile were expected to be present in the final installation directory, but they are missing. Why?

Can't compile under windows

$ nimrod c src\babel
c:\nimrod\config\nimrod.cfg(37, 2) Hint: added path: 'C:\Users\user.babel\pkgs' [Path]
Hint: used config file 'C:\Nimrod\config\nimrod.cfg' [Conf]
Hint: used config file 'c:\projects\nimrod\babel\src\babel.nimrod.cfg' [Conf]
Hint: system [Processing]
Hint: babel [Processing]
Hint: httpclient [Processing]
Hint: sockets [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: winlean [Processing]
Hint: unsigned [Processing]
Hint: openssl [Processing]
Hint: parseurl [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: base64 [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: oids [Processing]
Hint: endians [Processing]
Hint: tables [Processing]
Hint: math [Processing]
c:\nimrod\lib\pure\math.nim(199, 7) Hint: 'math.gettime(dummy: ptr cint): cint' is declared but not
used [XDeclaredButNotUsed]
Hint: macros [Processing]
Hint: rawsockets [Processing]
Hint: sets [Processing]
c:\nimrod\lib\pure\asyncdispatch.nim(910, 6) Hint: 'cbName' is declared but not used [XDeclaredButNo
tUsed]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing recvLine as an async proc. [User]
Hint: net [Processing]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing readIntoBuf as an async proc. [User]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing recv as an async proc. [User]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing recvLine as an async proc. [User]
c:\nimrod\lib\pure\asyncnet.nim(199, 14) Hint: conversion from string to itself is pointless [ConvFr
omXtoItselfNotNeeded]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing recvFull as an async proc. [User]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing parseChunks as an async proc. [User]
c:\nimrod\lib\pure\httpclient.nim(473, 6) Hint: 'ri' is declared but not used [XDeclaredButNotUsed]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing parseBody as an async proc. [User]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing parseResponse as an async proc. [User]

c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing newConnection as an async proc. [User]

c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing request as an async proc. [User]
c:\nimrod\lib\pure\asyncdispatch.nim(863, 6) Hint: Processing get as an async proc. [User]
Hint: parseopt [Processing]
c:\nimrod\lib\pure\parseopt.nim(54, 34) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
babel.nim(4, 19) Warning: 'parseopt' is deprecated [Deprecated]
Hint: osproc [Processing]
Hint: streams [Processing]
c:\nimrod\lib\pure\osproc.nim(282, 13) Warning: 'startCmd' is deprecated [Deprecated]
c:\nimrod\lib\pure\osproc.nim(306, 19) Warning: 'startCmd' is deprecated [Deprecated]
c:\nimrod\lib\pure\osproc.nim(314, 14) Warning: 'startCmd' is deprecated [Deprecated]
c:\nimrod\lib\pure\osproc.nim(954, 10) Warning: 'startCmd' is deprecated [Deprecated]
Hint: pegs [Processing]
Hint: unicode [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: algorithm [Processing]
Hint: sequtils [Processing]
Hint: packageinfo [Processing]
Hint: parsecfg [Processing]
Hint: version [Processing]
babelpkg\version.nim(58, 6) Warning: 'nil' statement is deprecated; use an empty 'discard' statement
instead [NilStmt]
Hint: tools [Processing]
babelpkg\tools.nim(83, 10) Warning: 'nil' statement is deprecated; use an empty 'discard' statement
instead [NilStmt]
babelpkg\tools.nim(89, 10) Warning: 'nil' statement is deprecated; use an empty 'discard' statement
instead [NilStmt]
babelpkg\packageinfo.nim(186, 5) Warning: 'existsKey' is deprecated [Deprecated]
Hint: download [Processing]
babelpkg\download.nim(31, 5) Hint: 'download.doPull(meth: TDownloadMethod, downloadDir: string)' is
declared but not used [XDeclaredButNotUsed]
babelpkg\download.nim(12, 5) Hint: 'download.getSpecificDir(meth: TDownloadMethod): string' is decla
red but not used [XDeclaredButNotUsed]
Hint: config [Processing]
babel.nim(293, 6) Hint: 'depNameVer' is declared but not used [XDeclaredButNotUsed]
babel.nim(672, 66) Error: undeclared identifier: '{}'


Nimrod Compiler Version 0.9.4 (2014-07-07) [Windows: i386]

'babel install' problems

Hi,

I stumbled across nimrod and babel today, so if I write nonsense, be forgiving. :-)

I successfully installed nimrod (v0.9.3) and babel (v0.1.0) and both seem to work fine on Ubuntu 12.0.4.

a) Coming from a node/npm background I expected that babel install modules locally but they land in /home/ubuntu/.babel/pkgs/- I take it this is by design?

b) I did a successful babel update and tried babel install nimgame: this failed with
FAILURE: Specified directory does not contain a .babel file.

c) I tried babel install jesterand this gave me:
FAILURE: Execution failed with exit code 32768

d) Round three babel install extmath installed succesfully in the global directory mentioned in (a).

Is it correct to report (b) and (c) here, or am I supposed to report them in the nimgame/jester gits?

Thanks in advance,
Dirk

create temporary directory before usage

I had the problem that I could not install anything because babel did not create the temporary directories it tried to use:

babel install nake
Downloading nake into C:\Users\PAPPLA~1\AppData\Local\Temp\babel_15040\nake using git...
Found tags...
Cloning latest tagged version: v1.2
fatal: could not create work tree dir 'C:\Users\PAPPLA~1\AppData\Local\Temp\babel_15040\nake'.: No such file or directory
FAILURE: Execution failed with exit code 128

To fix it you can either add the two createDir(downloadDir) lines in the downloadPkg procedures or pull the gist that does the same:
https://gist.github.com/papplampe/7008a03b639fa52208e0

nimble possibly doesn't ship w/ proper dll's (windows 7 prebuilt - 64bit)

I had an issue where I would run into an issue which basically kept telling me it couldn't find ssleay32.dll or libeay32.dll

So after running into a wall I downloaded the dll's from the following:
https://code.google.com/p/openssl-for-windows/

Used the 64bit version and replaced the two files and everything fixed itself. I could run "nimble update" without error and I could install packages without error.

os: windows 7 64bit

'babel path' does not work on Windows

'babel path' on Windows is broken. When not given an input package, 'babel path' outputs nothing. When given an input package, such as 'opengl', 'babel path' reports that the opengl package is not installed (despite the fact that it is)

Proxy support

Doesn't seem to be support for proxies. I tried hard-coding the proxy, but couldn't seem to get it to work.

compile error

Hi, Im trying to compile babel with nimrod v0.9.5 but all i got is:
config/nimrod.cfg(38, 2) Hint: added path: '/home/jakob/.babel/pkgs/' [Path]
Hint: used config file '/usr/local/nimrod/config/nimrod.cfg' [Conf]
Hint: used config file 'src/babel.nimrod.cfg' [Conf]
Hint: system [Processing]
Hint: babel [Processing]
Hint: httpclient [Processing]
Hint: sockets [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: unsigned [Processing]
Hint: openssl [Processing]
lib/wrappers/openssl.nim(486, 45) Hint: 'EIO' is declared but not used [XDeclaredButNotUsed]
Hint: parseurl [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: base64 [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: oids [Processing]
Hint: endians [Processing]
Hint: tables [Processing]
Hint: math [Processing]
lib/pure/math.nim(199, 7) Hint: 'math.gettime(dummy: ptr cint): cint' is declared but not used [XDeclaredButNotUsed]
Hint: macros [Processing]
Hint: rawsockets [Processing]
Hint: selectors [Processing]
Hint: epoll [Processing]
lib/pure/asyncdispatch.nim(989, 6) Hint: 'cbName' is declared but not used [XDeclaredButNotUsed]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing recvLine as an async proc. [User]
Hint: net [Processing]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing readIntoBuf as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing recv as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing recvLine as an async proc. [User]
lib/pure/asyncnet.nim(205, 14) Hint: conversion from string to itself is pointless [ConvFromXtoItselfNotNeeded]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing recvFull as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing parseChunks as an async proc. [User]
lib/pure/httpclient.nim(473, 6) Hint: 'ri' is declared but not used [XDeclaredButNotUsed]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing parseBody as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing parseResponse as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing newConnection as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing request as an async proc. [User]
lib/pure/asyncdispatch.nim(939, 6) Hint: Processing get as an async proc. [User]
Hint: parseopt [Processing]
lib/pure/parseopt.nim(54, 34) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
/home/jakob/Downloads/babel/src/babel.nim(4, 19) Warning: 'parseopt' is deprecated [Deprecated]
Hint: osproc [Processing]
Hint: streams [Processing]
lib/pure/osproc.nim(16, 34) Error: cannot open 'cpuinfo'

Is this a bug or did I something wrong? Like in the readme i used "nimrod c -r src/babel install".

Distinction between 32 and 64 bit installations

Nimble should have some way to automatically select between 32 and 64 bit installations/builds, otherwise those users who have dual 32/64 bit builds of nimrod face complications when building and importing packages sourced from babel.

Build Failure On MacOS

Use following commond install nimrod and build babel:

brew install nimrod
git clone <babel>
nimrod src/babel c -r install

Will get an error message: src/babelpkg/packageinfo.nim(4, 12) Error: cannot open 'tools'

Failure installing gh_nimrod_doc_pages

Babel installation of the gh_nimrod_doc_pages package fails during the directory copy of the templates:

Copying directory: /tmp/babel/gh_nimrod_doc_pages/boot_html_template -> /Users/gradha/.babel/pkgs/gh_nimrod_doc_pages-0.2.2/boot_html_template
/tmp/babel/gh_nimrod_doc_pages/boot_html_template/gh_nimrod_doc_pages.ini -> /Users/gradha/.babel/pkgs/gh_nimrod_doc_pages-0.2.2/boot_html_template/gh_nimrod_doc_pages.ini
Error: unhandled exception: No such file or directory [EOS]

This was introduced in 10de991 when copyDirD was reimplemented to not call os.copyDir.

Cannot compile babel on OSX 10.9.3, Nimrod 0.9.5

When I run

nimrod c src/babel

I get the following output:

config/nimrod.cfg(38, 2) Hint: added path: '/Users/mike.southron/.babel/pkgs/' [Path]
Hint: used config file '/Users/mike.southron/Git/Nimrod/config/nimrod.cfg' [Conf]
Hint: used config file 'src/babel.nimrod.cfg' [Conf]
Hint: system [Processing]
Hint: babel [Processing]
Hint: httpclient [Processing]
Hint: sockets [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: unsigned [Processing]
Hint: openssl [Processing]
lib/wrappers/openssl.nim(486, 45) Hint: 'EIO' is declared but not used [XDeclaredButNotUsed]
Hint: parseurl [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: base64 [Processing]
Hint: asyncnet [Processing]
Hint: asyncdispatch [Processing]
Hint: oids [Processing]
Hint: endians [Processing]
Hint: tables [Processing]
Hint: math [Processing]
lib/pure/math.nim(200, 7) Hint: 'math.gettime(dummy: ptr cint): cint' is declared but not used [XDeclaredButNotUsed]
Hint: macros [Processing]
Hint: rawsockets [Processing]
Hint: net [Processing]
Hint: selectors [Processing]
lib/pure/selectors.nim(213, 30) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
lib/pure/asyncdispatch.nim(1048, 6) Hint: 'cbName' is declared but not used [XDeclaredButNotUsed]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing recvLine as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing readIntoBuf as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing recv as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing recvLine as an async proc. [User]
lib/pure/asyncnet.nim(238, 16) Hint: conversion from string to itself is pointless [ConvFromXtoItselfNotNeeded]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing recvFull as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing parseChunks as an async proc. [User]
lib/pure/httpclient.nim(473, 6) Hint: 'ri' is declared but not used [XDeclaredButNotUsed]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing parseBody as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing parseResponse as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing newConnection as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing request as an async proc. [User]
lib/pure/asyncdispatch.nim(998, 6) Hint: Processing get as an async proc. [User]
Hint: parseopt [Processing]
lib/pure/parseopt.nim(54, 34) Warning: 'quoteIfContainsWhite' is deprecated [Deprecated]
/Users/mike.southron/Git/babel/src/babel.nim(4, 19) Warning: 'parseopt' is deprecated [Deprecated]
Hint: osproc [Processing]
Hint: streams [Processing]
Hint: cpuinfo [Processing]
lib/pure/osproc.nim(250, 13) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(274, 19) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(282, 14) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(756, 6) Warning: 'osError' is deprecated [Deprecated]
lib/pure/osproc.nim(922, 10) Warning: 'startCmd' is deprecated [Deprecated]
lib/pure/osproc.nim(724, 7) Hint: 'osproc.startProcessAuxFork(data: TStartProcessData): TPid' is declared but not used [XDeclaredButNotUsed]
Hint: pegs [Processing]
Hint: unicode [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: algorithm [Processing]
Hint: sets [Processing]
Hint: sequtils [Processing]
Hint: packageinfo [Processing]
Hint: parsecfg [Processing]
Hint: version [Processing]
/Users/mike.southron/Git/babel/src/babelpkg/version.nim(58, 6) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
Hint: tools [Processing]
/Users/mike.southron/Git/babel/src/babelpkg/tools.nim(83, 10) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
/Users/mike.southron/Git/babel/src/babelpkg/tools.nim(89, 10) Warning: 'nil' statement is deprecated; use an empty 'discard' statement instead [NilStmt]
/Users/mike.southron/Git/babel/src/babelpkg/packageinfo.nim(186, 5) Warning: 'existsKey' is deprecated [Deprecated]
Hint: download [Processing]
/Users/mike.southron/Git/babel/src/babelpkg/download.nim(31, 5) Hint: 'download.doPull(meth: TDownloadMethod, downloadDir: string)' is declared but not used [XDeclaredButNotUsed]
/Users/mike.southron/Git/babel/src/babelpkg/download.nim(12, 5) Hint: 'download.getSpecificDir(meth: TDownloadMethod): string' is declared but not used [XDeclaredButNotUsed]
Hint: config [Processing]
Hint: compat [Processing]
/Users/mike.southron/Git/babel/src/babel.nim(293, 6) Hint: 'depNameVer' is declared but not used [XDeclaredButNotUsed]
/Users/mike.southron/Git/babel/src/babel.nim(674, 56) Error: ambiguous call; both json.{}(node: PJsonNode, key: string): PJsonNode and compat.{}(node: PJsonNode, key: string): PJsonNode match for: (PJsonNode, string)

Created a HomeBrew Forumula

For now, it can be installed simply by:

brew install https://gist.github.com/steakknife/6077116/raw/nimrod.rb
brew install https://gist.github.com/steakknife/6077044/raw/babel.rb

If anyone more official wants to submit this to the upstream vendor, DYWTFL licensed.

Configurable package repo URLs

It would be nice to get rid of this SSL dependency. NimBot already tracks the packages list to server it to the JS file in lib.html. It would be great if it could serve Nimble the raw JSON. We can configure it as the primary URL and then specify the github one as a fallback.

Corrupted nimbledata.json does not give friendly error

Grabbed fresh (removed everything old) nimrod, nimble (removed ~/.babel dir before installing).

nimrod master (0.9.7) -- built from sources as described on the site http://nimrod-lang.org/download.html ("Installation from github")
nimble master -- cloned and run nimrod c -r src/nimble install
Linux 64-bit, gcc

Hint: operation successful (37581 lines compiled; 4.779 sec total; 95.973MB) [SuccessX]
/home/yur/myprojects/nimble/src/nimble install
Traceback (most recent call last)
nimble.nim(810)          nimble
nimble.nim(196)          parseCmdLine
json.nim(1395)           parseFile
json.nim(1364)           parseJson
json.nim(438)            getTok
json.nim(342)            skip
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
Error: execution of an external program failed

Crash when leftover packages installed via babel.

Had sdl2 installed via babel previously, caused a crash:

[nim] โ‡’ nimble install sdl2
Found deprecated babel package directory, would you like to rename it to nimble? [y/N]
y
Traceback (most recent call last)
nimble.nim(810)          nimble
nimble.nim(191)          parseCmdLine
nimble.nim(120)          renameBabelToNimble
os.nim(985)              copyFile
os.nim(277)              raiseOSError
Error: unhandled exception: No such file or directory [OSError]

Was fixed by deleting sdl2 from ~/.nimble/ and rerunning nimble install sdl2

Keep an index of files installed

Keep a list of the files that were installed for a package so that they can be removed without removing any other files that the user may have added later such as DLLs.

babel path does not work

babel path does not appear to be working, either with a package given or without.

adam@mr-smith:~$ babel path c2nim
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
adam@mr-smith:~$ babel path
SIGSEGV: Illegal storage access. (Attempt to read from nil?)

c2nim is already installed, babel compiled from master, on linux (ubuntu 14.04).

Fails to install on Fedora Rawhide

I have installed Nim from the Git repository master branch. It seems to work fine in that I can compile and execute "Hello World" fine. On trying to execute the install of Nimble, all the compile and link succeeds, but the install phase fails:

[Linking]
Hint: operation successful (36520 lines compiled; 3.165 sec total; 95.973MB) [SuccessX]
/home/Checkouts/Git/Git/Nimble/src/nimble install
could not load: libcrypto.so(|.1.0.0|.0.9.9|.0.9.8|.0.9.7|.0.9.6|.0.9.5|.0.9.4)
Error: execution of an external program failed

I am not sure where the dependency is failing:

ldd src/nimble
linux-vdso.so.1 (0x00007fff1c387000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f5ab3e04000)
libm.so.6 => /lib64/libm.so.6 (0x00007f5ab3afc000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5ab3735000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5ab402d000)

find /lib /usr/lib -iname "libcrypto"
/usr/lib/.libcrypto.so.10.hmac
/usr/lib/.libcrypto.so.1.0.1j.hmac
/usr/lib/libcrypto.so.1.0.1j
/usr/lib/libcrypto.so.10

Make remote git tag querying optional

There are not many packages yet but it takes some time to finish any listing, this is not going to webscale well:

$ time babel list
...
real    0m43.192s
user    0m0.159s
sys 0m0.193s

Also, are git tags meant to be used with babel install to specify a version? It is not very clear what purpose git tags have, despite the awesomeness of the genieos tags.

Inconsistent babel search results

For some reason running babel search mat provides less available packages than babel search math despite mat being a substring of math. Here's an execution log, is this reproducible on linux/windows?

[0:[email protected]:0] [~]$ babel search math
linagl:
  url:         https://bitbucket.org/BitPuffin/linagl (hg)
  tags:        library, opengl, math, game
  description: OpenGL math library
  license:     CC0

extmath:
  url:         git://github.com/achesak/extmath.nim (git)
  tags:        library, math, trigonometry
  description: Nimrod math library
  license:     MIT

[0:[email protected]:0] [~]$ babel search mat
extmath:
  url:         git://github.com/achesak/extmath.nim (git)
  tags:        library, math, trigonometry
  description: Nimrod math library
  license:     MIT

Any way to install a package, that is not in the registry?

Here is a crude illustration of what I mean:
Somewhere in myapp.nimble:

[Deps]
Requires: "https://github.com/yglukhov/nim-sdl-template.git >= master"

This would be great for private repos, and for packages that are in early development stage.

SIGSEGV: Illegal storage access. (Attempt to read from nil?) on Ubuntu 14.10

This error appears while trying to run any of the available commands, while all "Options" work just fine.

krolik@krolik-linux:~/Projects/test$ nimble install name
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
krolik@krolik-linux:~/Projects/test$ nimble install nake
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
krolik@krolik-linux:~/Projects/test$ 

Crash trying to install nimble on OSX

Trying to install nimble on OSX tonight resulted in a crash.

...
clang -c  -w -O3  -I/usr/local/src/Nimrod/lib -o /usr/local/src/nimble/src/nimcache/download.o /usr/local/src/nimble/src/nimcache/download.c 
clang -c  -w -O3  -I/usr/local/src/Nimrod/lib -o /usr/local/src/nimble/src/nimcache/config.o /usr/local/src/nimble/src/nimcache/config.c 
clang -c  -w -O3  -I/usr/local/src/Nimrod/lib -o /usr/local/src/nimble/src/nimcache/compat.o /usr/local/src/nimble/src/nimcache/compat.c 
Error:  execution of an external program failed; rerun with --parallelBuild:1 to see the error message
Traceback (most recent call last)
nimble.nim(810)          nimble
nimble.nim(785)          doAction
nimble.nim(569)          install
nimble.nim(475)          installFromDir
nimble.nim(424)          buildFromDir
tools.nim(18)            doCmd
Error: unhandled exception: Execution failed with exit code 256 [ENimble]
Error: execution of an external program failed

If I comment out the command at nimble.nim:424 then the install works fine. However the command it's trying to execute nimrod c -d:release --noBabelPath "/usr/local/src/nimble/src/nimble.nim" shouldn't crash.

Here are my install steps:

  • git clone https://github.com/nimrod-code/nimble.git
  • cd nimble
  • nimrod c -r src/nimble install

Software

  • Nimrod Compiler Version 0.9.6 (2014-10-21) [MacOSX: amd64] built from 'devel' branch source
  • Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
  • OSX Yosemite Version 10.10

Compile binaries in temporary dir from babel spec rather than current dir

This is a feature request. Say we have the following files. a.babel:

[Package]
name         = "a"
version      = "0.1.1"
author       = "Grzegorz Adam Hankiewicz"
description  = "Tests local installation."
license      = "MIT"
bin          = "a"

InstallFiles = """

a.nim

"""

a.nim:

import b

when isMainModule:
  echo the_const

b.nim:

const
  the_const* = "Hello"

With the following files, running babel install will compile and install the a binary. It will also run fine. However, the b.nim module won't be copied.

Is this important? The b.nim file might be part of an importable package, and the binary an extra for the user. If end users are expected to import this package they will get an error. Also, building might need of nimrod.cfg files which might have been forgotten to be copied, or use stale nimcache files (sometimes gives me trouble when switching compiler versions from stable release to git if I don't remove nimcache).

All in all, not a serious problem, but it would be nice if the compilation of the binaries happened in a temporary directory as the result from a normal babel installation. Maybe in .babel/pkgs/package-0.x.x/ directly then removing the nimcache? This would help finding errors and avoid side effects from files lingering in the project directory.

This was tested with local installation, but it seems like it would happen also with remote packages, as they would get the full checkout (including b.nim file) but install only parts.

Ability to depend on OS packages

It would certainly be a nice feature to be able to specify OS-level dependencies and to install them. For example the gtk2 bindings can depend on the corresponding gtk packages. Problem is that all Linux distros have different package names and different package managers etc... Windows doesn't have an official package manager, maybe we could support links to zip files? Mac OS X I have no idea.

It's still a nice thought though.

Cannot build subdirectory binary with module

I have a module and a subdirectory with a binary which uses that module. During installation babel complains about the being installed module not being available. I have a nimrod.cfg file in the subdirectory to specify the relative path .. so normal compilations work, but babel is ignoring this. To replicate do:

$ git clone https://github.com/gradha/genieos.git
$ cd genieos
$ git checkout feature/t6_trash_binary 
$ babel install
Installing genieos-9.3.1
Looking for nake (>= 1.0)...
Dependency already satisfied.
Looking for argument_parser (>= 0.1.2)...
Dependency already satisfied.
Building genieos/trash-binary/trash using c backend...
...
Hint: used config file '/Users/gradha/project/nimrod/root/config/nimrod.cfg' [Conf]
Hint: used config file '/private/tmp/tttt/genieos/trash-binary/nimrod.cfg' [Conf]
Hint: system [Processing]
Hint: trash [Processing]
trash.nim(1, 7) Error: cannot open 'genieos'
FAILURE: Execution failed with exit code 256

Maybe babel should try to cd to the directory of the binary?

running nimble on Fedora

Hi,

I'm trying to install nimble on Fedora 64-bit, on a MacBook. It compiles fine (Hint: operation successful (36532 lines compiled; 8.298 sec total; 95.973MB) [SuccessX]), but when I try to run it I get:

Traceback (most recent call last)
httpclient.nim(279) httpclient
net.nim(202) newContext
alloc.nim(784) dealloc
alloc.nim(730) dealloc
alloc.nim(612) rawDealloc
alloc.nim(309) isSmallChunk
SIGSEGV: Illegal storage access. (Attempt to read from nil?)

I've tried this with nim versions 0.9.6, github-stable and github-devel, with all the same results.
I have no idea what the issue is, or whether I should be reporting this somewhere else... Please let me know and thanks!

Michael

Building nimbe on Crunchbang does not work

I followed the steps for LInux, and get a compilation error:

adamss@m2000h:$ git clone https://github.com/nim-lang/nimble.git
Cloning into 'nimble'...
remote: Counting objects: 809, done.
remote: Compressing objects: 100% (55/55), done.
Receiving objects: 100% (809/809), 326.35 KiB, done.
remote: Total 809 (delta 26), reused 0 (delta 0)
Resolving deltas: 100% (461/461), done.
adamss@m2000h:
$ cd nimble/adamss@m2000h:$ git clone https://github.com/nim-lang/nimble.git
Cloning into 'nimble'...
remote: Counting objects: 809, done.
remote: Compressing objects: 100% (55/55), done.
Receiving objects: 100% (809/809), 326.35 KiB, done.
remote: Total 809 (delta 26), reused 0 (delta 0)
Resolving deltas: 100% (461/461), done.
adamss@m2000h:
$ cd nimble/
adamss@m2000h:~/nimble$ nimrod c -r src/nimble install
/etc/nimrod.cfg(36, 11) Hint: added path: '/home/adamss/.babel/libs/' [Path]
Hint: used config file '/etc/nimrod.cfg' [Conf]
Hint: used config file 'src/nimble.nimrod.cfg' [Conf]
Hint: system [Processing]
Hint: nimble [Processing]
Hint: httpclient [Processing]
Hint: sockets [Processing]
Hint: os [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: openssl [Processing]
Hint: parseurl [Processing]
Hint: strtabs [Processing]
Hint: hashes [Processing]
Hint: parseopt [Processing]
Hint: osproc [Processing]
Hint: streams [Processing]
Hint: pegs [Processing]
Hint: unicode [Processing]
Hint: tables [Processing]
Hint: math [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: algorithm [Processing]
Hint: sets [Processing]
Hint: sequtils [Processing]
Hint: packageinfo [Processing]
Hint: parsecfg [Processing]
/home/adamss/nimble/src/nimblepkg/packageinfo.nim(4, 14) Error: cannot open 'version'

Babel (v0.4) non-deterministically failing on git clone

When I run babel install murmur3 (note this is within a Docker container), I get the following error like 80% of the time. The remaining 20% works.

root@5495a3ad4ddf:~/nim/nimble# babel install murmur3
Downloading murmur3 into /tmp/babel_1090/murmur3 using git...
Found tags...
Cloning latest tagged version: expected SRV RR, found RR type 1
git clone --recursive --depth 1 -b expected SRV RR, found RR type 1 git://github.com/boydgreenfield/nimrod-murmur/ /tmp/babel_1090/murmur3
Too many arguments.

usage: git clone [options] [--] <repo> [<dir>]

    -v, --verbose         be more verbose
    -q, --quiet           be more quiet
    --progress            force progress reporting
    -n, --no-checkout     don't create a checkout
    --bare                create a bare repository
    --mirror              create a mirror repository (implies bare)
    -l, --local           to clone from a local repository
    --no-hardlinks        don't use local hardlinks, always copy
    -s, --shared          setup as shared repository
    --recursive           initialize submodules in the clone
    --recurse-submodules  initialize submodules in the clone
    --template <template-directory>
                          directory from which templates will be used
    --reference <repo>    reference repository
    -o, --origin <name>   use <name> instead of 'origin' to track upstream
    -b, --branch <branch>
                          checkout <branch> instead of the remote's HEAD
    -u, --upload-pack <path>
                          path to git-upload-pack on the remote
    --depth <depth>       create a shallow clone of that depth
    --single-branch       clone only one branch, HEAD or --branch
    --separate-git-dir <gitdir>
                          separate git dir from working tree
    -c, --config <key=value>
                          set config inside the new repository

FAILURE: Execution failed with exit code 129

Adding some printing, this is the exact command babel executes:

git clone --recursive --depth 1 -b v0.1.2 git://github.com/boydgreenfield/nimrod-murmur/ /tmp/babel_1052/murmur3

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.