Giter VIP home page Giter VIP logo

Comments (16)

mpscholten avatar mpscholten commented on June 8, 2024 2

Got it working at https://github.com/mpscholten/TestIHPJune22 👍 The permission issue is related to /tmp and I found a fix for that in someone elses repo. Also did some adjustments to skip the direnv allow

from ihp.

Eisfunke avatar Eisfunke commented on June 8, 2024 1

The user seems to have to type y a bunch of times to accept substituters - can we automate this?

If I'm not mistaken, you should be able to circumvent those prompts by pre-setting those substituters in the Nix config, e.g. by adding those settings to the Nix config file in the containers. At least in a quick test on my machine Nix notices that and doesn't ask for confirmation.

from ihp.

Eisfunke avatar Eisfunke commented on June 8, 2024 1

That'll definitely change some things in deployment and boilerplate that might make it easier to include IHP in containers, yes, although:

  • ./start still has this line code which can overwrite .envrc:
command -v RunDevServer >/dev/null 2>&1 \
    || { echo "PATH_add $(nix-shell -j auto --cores 0 --run 'printf %q $PATH')" > .envrc; }

However, if I'm not mistaken (@mpscholten correct me if I'm wrong) that line is only still there because the devenv-stuff isn't released yet. So that'll go away with the release anyway and at least that should be no problem for you, with or without #1705. :)

from ihp.

mpscholten avatar mpscholten commented on June 8, 2024 1

./start still has this line code which can overwrite .envrc:

This code can be removed

The user seems to have to type y a bunch of times to accept substituters - can we automate this?

This can be automatted by using the --accept-flake-config flag. E.g. nix develop --accept-flake-config, or by putting accept-flake-config = true into the contains nix.conf

from ihp.

CSchank avatar CSchank commented on June 8, 2024 1

Haven't tested GitPod recently. I will try and get back to you :)

from ihp.

mpscholten avatar mpscholten commented on June 8, 2024 1

I've pushed some commits onto the branch that should fix it 👍

from ihp.

CSchank avatar CSchank commented on June 8, 2024

I'm wondering if we should wait until #1705 is complete before continuing on with this?

from ihp.

CSchank avatar CSchank commented on June 8, 2024

Okay, so I've tried to keep working on this. For now I've removed most things from the Codespace's config, and I'm trying to do it manually so we can see what errors we're getting. The devcontainer.json file in the repo I'm testing with is here.

But when I go to run direnv allow, I'm getting some error related to permissions of the Nix store. It seems like something similar to this comment on an issue in the Nixpkgs repo. It seems like it might be related to how Nix is installed on Codespaces using the Nix Codespaces "feature". Most of the /nix/store packages seem to be owned by root with the group root. Could this be why it doesn't like it?

Any ideas?

direnv: error /workspaces/TestIHPJune22/.envrc is blocked. Run `direnv allow` to approve its content
@CSchank ➜ /workspaces/TestIHPJune22 (main) $ direnv allow
direnv: loading /workspaces/TestIHPJune22/.envrc
direnv: loading https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc (sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=)
direnv: using flake . --impure
warning: Git tree '/workspaces/TestIHPJune22' is dirty
do you want to allow configuration setting 'extra-substituters' to be set to 'https://digitallyinduced.cachix.org' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
do you want to allow configuration setting 'extra-trusted-public-keys' to be set to 'digitallyinduced.cachix.org-1:y+wQvrnxQ+PdEsCt91rmvv39qRCYzEgGQaldK26hCKE=' (y/N)? y
do you want to permanently mark this value as trusted (y/N)? y
[1/0/1 copied (56.8/143.5 MiB), 13.8/34.2 MiB DL] fetching source from https://digitallyinduced.cachix.orgdirenv: ([/usr/bin/direnv export bash]) is taking a while to execute. Use CTRL-C to give up.
[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/1/2 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach[1/2/3 copied (143.5 MiB), 34.2 MiB DL] fetching source from https://digitallyinduced.cach
error: suspicious ownership or permission on '/nix/store/1bvlqd9gd92s14j4hv4y1876pi8qs9rx-procfile-env' for output 'out'; rejecting this build output
error: 1 dependencies of derivation '/nix/store/2dc9dx4m8gf1myvqzfqinynvl42y5gi3-devenv-up.drv' failed to build
error: 1 dependencies of derivation '/nix/store/qxp9s5rgscqzh3rlqljgcm3lhjy1fxd5-devenv.drv' failed to build
error: 1 dependencies of derivation '/nix/store/nhj5diq7sckwhk0gfj3gm3l7rzlz5v1c-devenv-profile.drv' failed to build
error: 1 dependencies of derivation '/nix/store/0jz22sd30fxch4lq700yzf2c1dispxa7-devenv-shell-env.drv' failed to build
error: getting status of '/workspaces/TestIHPJune22/.direnv/flake-profile.1341': No such file or directory
warning: Git tree '/workspaces/TestIHPJune22' is dirty
ln: failed to create symbolic link '/workspaces/TestIHPJune22/.direnv/flake-inputs//r2ip1850igy8kciyaagw502s3c6ph1s4-source': No such file or directory
direnv: nix-direnv: renewed cache
/home/vscode/.cache/direnv/cas/sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=:103: /workspaces/TestIHPJune22/.direnv/flake-profile-a5d5b61aa8a61b7d9d765e1daf971a9a578f1cfa.rc: No such file or directory
direnv: export +XDG_DATA_DIRS

from ihp.

CSchank avatar CSchank commented on June 8, 2024

Thank you so much @mpscholten! A few remaining issues:

  • When you first boot it up, it runs the server and shows the forwarded ports, but that running server does not appear to be attached to a terminal, making it hard to close!
  • This new version tops out at 11.82gb according to Codespaces: image
    Before this, it would report 9.8gb. This is an issue for a couple of reasons. The obvious one is that GitPod doesn't allow containers this large, so GitPod won't work unless we can shrink that. The other (slightly less important) problem is that Codespaces allows only up to 20gb-months of storage per month, meaning having a container more than 10gb means that you can effectively only have one of them, if you keep it around for the whole month.

from ihp.

CSchank avatar CSchank commented on June 8, 2024

Strangely, when I followed the UPGRADE.md to upgrade an older repo, and it's still doing some weird stuff in Codespaces. 🤔 It's still asking for confirmation of substituters, and cachix doesn't seem to fully work as it is later building IHP from source, even though some other things are being pulled from the digitallyinduced cachix. Any ideas? This is using @mpscholten's new devcontainers.json file.

direnv: loading /workspaces/TEASync/.envrc
direnv: loading https://raw.githubusercontent.com/nix-community/nix-direnv/2.3.0/direnvrc (sha256-Dmd+j63L84wuzgyjITIfSxSD57Tx7v51DMxVZOsiUD8=)
direnv: using flake . --impure
do you want to allow configuration setting 'extra-substituters' to be set to 'https://digitallyinduced.cachix.org' (y/N)? y

from ihp.

CSchank avatar CSchank commented on June 8, 2024

I noticed that files in existing repos had the ownership vscode:root instead of vscode:vscode, so I tried changing their permissions, no luck. And I tried setfacl -k /workspaces as well. No luck. I don't see how an existing repo should be any different than one you're creating from the boilerplate! So weird.

from ihp.

mpscholten avatar mpscholten commented on June 8, 2024

When you first boot it up, it runs the server and shows the forwarded ports, but that running server does not appear to be attached to a terminal, making it hard to close!

Good point, there's seems to be no good alternative to the postStartCommand option here. So in that I'd recommend to just remove that postStartCommand command from the config.

This new version tops out at 11.82gb according to Codespaces:

I've added this to the IHP 1.1 release task so we don't forget this. There's no good reason that it needs more than 10GB

Strangley, when I followed the UPGRADE.md to upgrade an older repo, and it's still doing some weird stuff in Codespaces.

Can you give me access to the repo where this happens?

from ihp.

CSchank avatar CSchank commented on June 8, 2024

Good point, there's seems to be no good alternative to the postStartCommand option here. So in that I'd recommend to just remove that postStartCommand command from the config.

Perfect, people can just run devenv up themselves.

I've added this to the IHP 1.1 release task so we don't forget this. There's no good reason that it needs more than 10GB

A good chance to deal with whatever technical debt might be causing this :)

Can you give me access to the repo where this happens?

Sure, not ready to open-source it but I'll give you access, thank you!

from ihp.

mpscholten avatar mpscholten commented on June 8, 2024

Is the 10gb issue still happening? Might be a bit smaller now due to better cachix caching

from ihp.

CSchank avatar CSchank commented on June 8, 2024

@mpscholten can you please try to make a Codespace on the ihp-flakes-second-try branch in the private repo I added you to? This branch seems to be working great locally on Ubuntu now, but when running direnv allow, Codespaces still shows some annoying "couldn't build dependency" errors and then devenv can't be found.

from ihp.

CSchank avatar CSchank commented on June 8, 2024

It is still about 11gb when starting a new IHP v1.1 project. Here are the Nix packages that are 10mb or more when starting a brand new IHP project. Can we remove dependency on any of these to get it below 11gb?

1.7G    /nix/store/3bdwvhww2hlhqr6hpq7dify68idk4nyh-ghc-9.4.4
700M    /nix/store/v0ylfp9fm05n2606ix719yb4kq5k93m7-ghc-9.4.4-doc
622M    /nix/store/b322r3k5yq15n5df0qmp4nzyr6a1l6fs-ghc-lib-parser-9.4.4.20221225
504M    /nix/store/sh7g6js3ldcpn1xldzia844yqjr1j5ln-ihp-v1.1.0
333M    /nix/store/djgcai6ild5nchx70vr9f7lsp4d00qrx-nixpkgs
327M    /nix/store/3i5iasvc4035gna928p7iwnmv8nify1k-source
319M    /nix/store/0ad473b52045nkvbbx3ach4rbxa53292-source
295M    /nix/store/rksi78f7vq2xrfghg6jfg1r5dsa8lbv7-source
256M    /nix/store/8sm7wycza5fl6lnsmw11sn4vqkvw4xyh-source
210M    /nix/store/aafdki1nf49k5vxq6gx2yabiybk2bjmw-gcc-12.2.0
183M    /nix/store/aywlyk2f8fpf48wzb3z48q2hwcjg9w0i-ghc-lib-parser-9.4.4.20221225-doc
182M    /nix/store/k4pbsvv217rkx8skfp6lwdk7vqsi9189-cabal-install-3.10.1.0
177M    /nix/store/crb94039800bw4myx5jk53gww4vaif4d-lsp-types-1.6.0.0
175M    /nix/store/wp1sq1cshmxmbh90wpx03xiwpqx33vzk-Cabal-syntax-3.10.1.0
162M    /nix/store/wh2d3syhmb9h7abi01x5pg844l02a2l4-retrie-1.2.2
144M    /nix/store/cid5975yr4kl744vm1daggrd9g4sx1xx-ghcide-1.10.0.0
139M    /nix/store/ka5mfzdhifvbbxz4kw8rl8fn2hpmjv0h-haskell-src-exts-1.23.1
112M    /nix/store/zjvzqrpsg5g3xiaw4rksx7sczw8f1lcm-ihp-v1.1.0-doc
107M    /nix/store/qi33wzcgzn8kvqsjnrmkwwv70d4i91qz-Cabal-3.10.1.0
107M    /nix/store/iqn44pgsygndqqvwc70z9z1ig9fdadbz-ghc-9.4.4-with-packages
92M     /nix/store/fdqpyj613dr0v1l1lrzqhzay7sk4xg87-python3-3.10.10
82M     /nix/store/jhflvwr40xbb0xr6jx4311icp9cym1fp-python3-3.10.12
77M     /nix/store/hl4cak1f0rq6yf29xjymba5iis4cd0i7-apply-refact-0.11.0.0
76M     /nix/store/iyjaqpz6knr9pifqnal2wyfjrz65avqi-hie-bios-0.12.0
62M     /nix/store/952nmbf1jaq1sq800kkvsz6ck7l526zi-lens-5.2.2
61M     /nix/store/76q8jdf5m134zz7430hhi5dril6nkhc2-fourmolu-0.10.0.0
60M     /nix/store/zxhdmxwlq3wvji307nsam38k9i763wdc-bhxvnjlx8py6350dmkf325rbiwvb24v3-source
60M     /nix/store/pprfx9ffvkng8b4x4mzx4h2q2q5hln3r-ghcide-1.10.0.0-doc
60M     /nix/store/bhxvnjlx8py6350dmkf325rbiwvb24v3-source
59M     /nix/store/m6kc0wg6zii4bcw0fqxmclgy27ph09va-perl-5.36.0
59M     /nix/store/74x7gb001dl7rh7js2aa7vrb5hsz2wx8-perl-5.36.0
57M     /nix/store/p5j4dhr8pr6nfi0b1d9fzdpi97hj86al-cryptonite-0.30
57M     /nix/store/lly2yvq694sh7yc8mr3kna2zcqm4zl7x-hlint-3.5
56M     /nix/store/14cy8ka7r0ma7pjh7k87ym2p41d560f9-vector-0.12.3.1
55M     /nix/store/phdkw08437b5jsjs34xlksszjjxb72cm-aeson-2.1.2.1
53M     /nix/store/z3krm0kbya3x172jakm93g3792j1vqs1-ormolu-0.5.3.0
50M     /nix/store/dz2jvs0p5afc3c2l6y7x12z4q86i05dv-ghc-exactprint-1.6.1.1
46M     /nix/store/y3prildfqfhz6pjw15yvdcf9ixg03mpy-floskell-0.10.7
46M     /nix/store/p3wmg9a2gg8x6xf62q16inbd6pcmbyh7-cabal-install-3.10.1.0-doc
45M     /nix/store/v4j8pc3a38v1whlwncz9mwc6vzlqkwgs-Cabal-syntax-3.10.1.0-doc
42M     /nix/store/2jfscfcaifwasx0mi60bwblg2k2a6jnv-hiedb-0.4.3.0
41M     /nix/store/zdfahcwijrlr2k23rainfkszazab2nmi-git-2.41.0
38M     /nix/store/5kxqiwzdip2i3yhd55bwimjfjijql9lq-tls-1.5.8
37M     /nix/store/7xba7v9vibmfa1wif5lf5li5rzi7yacj-icu4c-72.1
36M     /nix/store/fw8igjrlwll5pj7gvz5wqszypv67q1hv-lens-5.2.2-doc
34M     /nix/store/62l162qm16j43pi3g3w7nnqp1l4b7rlq-Cabal-3.10.1.0-doc
34M     /nix/store/28njqxn2gywvz45pfgwim5b2g1dqdymv-systemd-253.2
33M     /nix/store/7djy8yqx8hlqvk1cdi2qw9qgw8yzl2vy-basement-0.0.15-doc
32M     /nix/store/97ks7rgz4m97vl8j34yc6racmx489yzl-haskell-src-exts-1.23.1-doc
31M     /nix/store/1x4ijm9r1a88qk7zcmbbfza324gx1aac-glibc-2.37-8
31M     /nix/store/1n2l5law9g3b77hcfyp50vrhhssbrj5g-glibc-2.37-8
30M     /nix/store/kh6fg6n5189n7k6v1srl8l951hh4hv6a-stylish-haskell-0.14.4.0
30M     /nix/store/8mjm7frm8xg3xhshi2brzy1kimibbdf1-basement-0.0.15
30M     /nix/store/31kgniiyi2xsidd4rnhgrlr4ls8y6ggq-blaze-html-0.9.1.2
29M     /nix/store/rd7vavkbr9h6ms1k4q38jgbxxb56xfjv-hls-refactor-plugin-1.2.0.0
29M     /nix/store/f4qnwzv6y0nq8lix33jr5ykkyybs6fxf-binutils-2.40
28M     /nix/store/97nla4xnjxn5gi4rfvqx5cdrmvw1sqyj-cabal-install-solver-3.10.1.0
27M     /nix/store/y257186v2h7gbsrj0vp6yfh3f568i3ii-ListLike-4.7.8
27M     /nix/store/bi66z837fx8zfyms008kbjrxq32sr21s-generic-deriving-1.14.3
26M     /nix/store/z44kwkx2893pgmwhsq7gl3mlwsz6lfs5-monoid-subclasses-1.1.3
26M     /nix/store/jlfdd87nfb0gi34g7ppxlhbz8gqynych-postgresql-14.7
26M     /nix/store/178kjh02vs7742m6d7nd7mzlwvn3kzx9-stack-2.9.1
25M     /nix/store/jmrvcdyy92895psz5z6iixh2caa0jjar-algebraic-graphs-0.6.1
25M     /nix/store/akklkz061wkajq8kjywl66wragx7vmsz-cabal-install-solver-3.10.1.0-doc
25M     /nix/store/4bds9hkfjyqxdax4rkskqr2dbjff4sjf-nixexprs.tar.xz
24M     /nix/store/ksv5ib9nyv6wp6n4b7gc00j7arh2wbim-postgresql-13.10
24M     /nix/store/8r50kv7qqs38ynbjmlzlicqvdqyja5zi-mono-traversable-1.0.15.3
23M     /nix/store/vgjkvix3gvgid5jzr69h9wqjb7yclk0f-postgresql-simple-0.6.4
23M     /nix/store/h5pjcpqin401br7z3c7q37bzdgxmg631-ihp-hsx-v1.1.0
23M     /nix/store/6hcj2bzx06axlmbn2pdp1a0znfahfzl9-postgresql-13.10-debug
22M     /nix/store/rhy1q3hwzk0sir13v1xcyv646mli3g4z-vector-0.12.3.1-doc
22M     /nix/store/l1s3p2pdbarlilnwxixlp24rq66m3wh5-free-5.1.10
22M     /nix/store/kf0psq8gfjsycq41sj28qy9fgcph1pkp-minio-hs-1.6.0
20M     /nix/store/vnh3xlgvg0sjdj20gs3gw64b72mg7xxv-http2-3.0.3
20M     /nix/store/kmr71c1xb2309zz7r58dcvkds6nwsjn0-cabal-install-3.10.1.0
20M     /nix/store/dmx4rf6gy2slzhyg1aa8izap883ylrac-cachix-1.6
20M     /nix/store/3hrvhnba3zkspyc2659ak5qc7lf2xxzh-QuickCheck-2.14.2
20M     /nix/store/0rkzs37kqp3vsx2ijay5mfp3a7rwlb9p-HsYAML-0.2.1.1
19M     /nix/store/xa9w9nisvp4fjc4z87c22cn706mp60p1-regex-tdfa-1.3.2
19M     /nix/store/38xnnsgz3fy901hsnnvh3k0rcwi6f4ln-hackage-security-0.6.2.3
19M     /nix/store/2jcy8643apn2p4gwfm25cvyfldvzi3xn-hspec-core-2.10.10
18M     /nix/store/a9h0s5x0na38wl2rjqym6wdffshpavlp-attoparsec-0.14.4
18M     /nix/store/3wqasl97rjiza3vd7fxjnvli2w9l30mk-nix-2.17.0
18M     /nix/store/233cpkbrgh4axicgw9rl6npv8skx45nm-cryptonite-0.30-doc
17M     /nix/store/gqvnvzv8r5x60fmix56alhnbq4ih1r9w-postgresql-13.10-doc
17M     /nix/store/aaaxdfsw4gfpm8xy8xmsin5vndzmnwf8-hls-eval-plugin-1.5.0.0
17M     /nix/store/1x6hmi7yj8kfmfxzmig642xrihyhy22d-lsp-types-1.6.0.0-doc
16M     /nix/store/npq3fym27zpd14fnqjwxvqyhw0s82v5c-git-2.41.0-doc
16M     /nix/store/7xqgzmjl2j1ds100af5ly5fmjbm5z7pg-bifunctors-5.5.15
16M     /nix/store/6sm81qw470pg0viqprhycgns6vww7r2w-vector-algorithms-0.8.0.4
16M     /nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163
15M     /nix/store/fc45k2askr2gi7xwyyzkw3mr1qnvkr4r-megaparsec-9.2.2
15M     /nix/store/cgan9crcc31v0b6ddfgnb6d7hfprhzjb-relude-1.1.0.0-doc
15M     /nix/store/75qxmyz1g4zlrl06pabw7zv8bblk5xwq-aeson-2.1.2.1-doc
14M     /nix/store/v85s2wqc9mshfa3hyvbq5za32xgn6q56-xml-conduit-1.9.1.2
14M     /nix/store/s6b3nh66p6rg1zclrs5wp9dmyn2igfr6-cmdargs-0.10.22
14M     /nix/store/n9l9gi3rim9i1hw043bfn9s5g0khph33-semigroupoids-5.3.7
14M     /nix/store/cqzx3mjycr8gnbkr53whjkvjdcgmj3cy-classy-prelude-1.5.0.2-doc
14M     /nix/store/7kf6zyynraia2mcnz3k6z5xr9p3nds12-systemd-minimal-253.2
14M     /nix/store/72fkfq7yncf6jjpmlcqc53b6w2kd8agj-haskell-lexer-1.1.1
14M     /nix/store/3h39sadqn486i80zkgqnsp7jkr890qhg-conduit-1.3.4.3
14M     /nix/store/1bcx26cr3dah148p41v4c7g2vfh2ajdr-retrie-1.2.2-doc
13M     /nix/store/929nivdrkpl0d7qbl7x7hg1vnpxjc3sk-direct-sqlite-2.3.28
12M     /nix/store/zlv7s5ghsszdhcixvj8nyzwqc6qrc17i-polyparse-1.13
12M     /nix/store/w3lxa9rsb96kwn2873nyca95q813h03g-mime-types-0.1.0.9
12M     /nix/store/kln5fj0gz4sp44sidx6drrqbkj1wvvr9-profunctors-5.6.2
12M     /nix/store/j52nkd7h7d0p8sm4j9vi81isql2rswg1-algebraic-graphs-0.6.1-doc
12M     /nix/store/f36sxag0ij1b8sffpixnqgflfaafifyl-nix-2.14.1
12M     /nix/store/b0b27kmdiz1fz6vsvpks0af1mzp9l5l9-http-client-0.7.13.1
12M     /nix/store/6y5rqs0mi0ppdnw4sqv1ba0rd3gzvmnp-HTTP-4000.4.1
11M     /nix/store/ykd3rl3ww5mhr3az5bqsbyvlr4ir4rhq-resolv-0.1.2.0
11M     /nix/store/sw0785x1pfvg15lh1rllkn4460w3cw1s-crypto-pubkey-types-0.4.3
11M     /nix/store/hjybnkwbpqlif1vg90lf1lj9gqm5zyw7-apply-refact-0.11.0.0-doc
11M     /nix/store/g8n2hhxcrz4b5j0j3i285jp920zb6cbi-tls-1.5.8-doc
11M     /nix/store/9c58ab6p53zlmh07zg91xxblkay1rls0-devenv-profile
11M     /nix/store/0g4k2xhywbqw2hzbxw12xqlx8kww7wdz-blaze-html-0.9.1.2-doc
10M     /nix/store/02c5jc8i87wicxvgljvx9jhrmiz8svwf-ip-1.7.6

from ihp.

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.