Git Product home page Git Product logo

turbogit's Introduction

turbogit's People

Contributors

b4nst avatar dependabot-preview[bot] avatar dependabot[bot] avatar superlevure 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

Watchers

 avatar  avatar

turbogit's Issues

[BUG] turbogit build fails with libgit @1.4.2: git2go supports libgit2 between v1.3.0 and v1.3.0

Describe the bug

Recent libgit2 is unsupported in the base:

make: Entering directory `/opt/x86_64/var/macports/build/_opt_x86_64_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_turbogit/turbogit/work/turbogit-3.1.0'
go build -trimpath -o "bin/tug" -ldflags='-s -w -X "github.com/b4nst/turbogit/cmd.BuildDate=Tue May 10 16:35:07 2022" -X "github.com/b4nst/turbogit/cmd.Commit=refs/tags/v3.1.0" -X "github.com/b4nst/turbogit/cmd.Version=3.1.0"' ./main.go 
# github.com/libgit2/git2go/v33
../.home/go/pkg/mod/github.com/libgit2/git2go/[email protected]/Build_system_dynamic.go:12:3: error: #error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0"
   12 | # error "Invalid libgit2 version; this git2go supports libgit2 between v1.3.0 and v1.3.0"
      |   ^~~~~
make: *** [bin/tug] Error 2

Also reported here: macports/macports-ports#14602

To Reproduce

Steps

Expected behavior

Configure should allow for later versions of libgit2.

Actual behavior

Versions

macOS 10.6.8
Xcode 3.2.6
turbogit 3.1.0
libgit2 1.4.2
go 1.17.9
gcc 11.3.0

Additional context

[BUG] Website - button style on hover state

Describe the bug

In your website text in the button called "Get Started" in the hover state disappeared.

To Reproduce

Steps
Go to https://b4nst.github.io/turbogit and move the cursor to the button "Get Started" in "white" mode on your site.

Expected behavior
I should see white text on the orange background.

Actual behavior
Orange text on the orange background.

Versions

Chrome 83.0.4103.97
macOS Catalina

[BUG] Warning output when no config file found

Describe the bug

When a config file is not set tug emit a warning which break the script outputted by the completion command.

To Reproduce

Steps

  • Remove the config file if any (~/.config/tug/tug.toml)
  • Run tug completion zsh (or any completion type)

Expected behavior

Completion script working

Actual behavior

Completion script fail due to the warning output as first line

Versions

Version: 1.0.0
Go version: go1.14.3
Git commit: 61a3f05
Built: 2020-05-23T21:28:09Z
OS/Arch: darwin/amd64

[FEAT] Follow git config format

Is your feature request related to a problem? Please describe.

As the tool has a strong connection with git, it would be wise to follow the same standards for the configuration.

Describe the solution you'd like

[user]
name = "foo"
email = "[email protected]"

instead of

username = "foo"
email = "[email protected]"

Additional context

Update git2go dependency to version 33

Hello! I'm maintaining turbogit on nixpkgs. Currently it doesn't build because of a libgit2 version mismatch with git2go. Current git2go version depends on v1.1 of libgit2, but nixpkgs contains a v1.3 version of libgit2. The version of git2go that supports v1.3 of libgit2 seems to be v33, as described on git2go's readme. So I would like to request a dependency update and a minor release if possible to fix this issue.

Build log
@nix { "action": "setPhase", "phase": "unpackPhase" }
unpacking sources
unpacking source archive /nix/store/vpl3zlpfg2i73jr651x6wnpg5i37b1y2-source
source root is source
@nix { "action": "setPhase", "phase": "patchPhase" }
patching sources
@nix { "action": "setPhase", "phase": "configurePhase" }
configuring
@nix { "action": "setPhase", "phase": "buildPhase" }
building
Building subPackage ./.
internal/unsafeheader
internal/cpu
runtime/internal/atomic
runtime/internal/sys
math/bits
runtime/internal/math
unicode/utf8
internal/race
sync/atomic
internal/bytealg
math
unicode
golang.org/x/sys/internal/unsafeheader
github.com/b4nst/turbogit/pkg/constants
crypto/internal/subtle
crypto/subtle
runtime
unicode/utf16
vendor/golang.org/x/crypto/cryptobyte/asn1
internal/nettrace
runtime/cgo
golang.org/x/crypto/internal/subtle
encoding
container/list
vendor/golang.org/x/crypto/internal/subtle
golang.org/x/text/encoding/internal/identifier
image/color
github.com/rivo/uniseg
internal/reflectlite
sync
internal/testlog
internal/singleflight
math/rand
errors
sort
io
internal/oserror
strconv
syscall
path
bytes
strings
golang.org/x/text/transform
reflect
golang.org/x/text/width
bufio
regexp/syntax
github.com/kballard/go-shellquote
hash
crypto
internal/syscall/unix
time
internal/syscall/execenv
crypto/internal/randutil
vendor/golang.org/x/net/dns/dnsmessage
regexp
internal/poll
io/fs
context
internal/fmtsort
encoding/binary
os
crypto/hmac
crypto/rc4
golang.org/x/crypto/blowfish
hash/crc32
vendor/golang.org/x/crypto/hkdf
golang.org/x/sys/unix
crypto/sha1
crypto/cipher
fmt
path/filepath
crypto/aes
io/ioutil
os/exec
net/url
text/template/parse
github.com/AlecAivazis/survey/v2/terminal
github.com/araddon/dateparse
github.com/mattn/go-isatty
golang.org/x/term
github.com/mattn/go-colorable
github.com/hpcloud/golor
text/template
github.com/mgutz/ansi
github.com/imdario/mergo
math/big
crypto/des
crypto/sha512
github.com/b4nst/turbogit/pkg/format
crypto/ed25519/internal/edwards25519
crypto/md5
github.com/AlecAivazis/survey/v2/core
crypto/sha256
encoding/hex
encoding/base64
encoding/pem
net
github.com/AlecAivazis/survey/v2
golang.org/x/crypto/chacha20
crypto/rand
crypto/dsa
crypto/elliptic
encoding/asn1
crypto/ed25519
crypto/rsa
vendor/golang.org/x/crypto/cryptobyte
crypto/x509/pkix
golang.org/x/crypto/curve25519/internal/field
golang.org/x/crypto/ed25519
golang.org/x/crypto/poly1305
golang.org/x/crypto/curve25519
golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
log
crypto/ecdsa
github.com/whilp/git-urls
encoding/json
github.com/fatih/structs
github.com/google/go-querystring/query
github.com/pkg/errors
github.com/trivago/tgo/treflect
mime
github.com/trivago/tgo/tcontainer
mime/quotedprintable
compress/flate
vendor/golang.org/x/crypto/chacha20
vendor/golang.org/x/crypto/poly1305
vendor/golang.org/x/sys/cpu
vendor/golang.org/x/crypto/curve25519
compress/gzip
vendor/golang.org/x/text/transform
vendor/golang.org/x/crypto/chacha20poly1305
vendor/golang.org/x/text/unicode/bidi
vendor/golang.org/x/text/unicode/norm
vendor/golang.org/x/net/http2/hpack
vendor/golang.org/x/text/secure/bidirule
net/http/internal
github.com/fatih/color
flag
vendor/golang.org/x/net/idna
github.com/briandowns/spinner
golang.org/x/text/encoding
github.com/gdamore/encoding
github.com/gdamore/tcell/v2/terminfo
database/sql/driver
github.com/mattn/go-runewidth
github.com/gdamore/tcell/v2/terminfo/a/ansi
github.com/gdamore/tcell/v2/terminfo/v/vt100
github.com/gdamore/tcell/v2/terminfo/v/vt102
github.com/gdamore/tcell/v2/terminfo/v/vt220
github.com/gdamore/tcell/v2/terminfo/x/xterm
github.com/gdamore/tcell/v2/terminfo/dynamic
github.com/gdamore/tcell/v2/terminfo/a/aixterm
github.com/gdamore/tcell/v2/terminfo/base
github.com/gdamore/tcell/v2/terminfo/a/alacritty
github.com/gdamore/tcell/v2/terminfo/b/beterm
github.com/gdamore/tcell/v2/terminfo/c/cygwin
github.com/gdamore/tcell/v2/terminfo/d/dtterm
github.com/gdamore/tcell/v2/terminfo/e/emacs
github.com/gdamore/tcell/v2/terminfo/f/foot
github.com/gdamore/tcell/v2/terminfo/g/gnome
github.com/gdamore/tcell/v2/terminfo/h/hpterm
github.com/gdamore/tcell/v2/terminfo/k/konsole
github.com/gdamore/tcell/v2/terminfo/k/kterm
github.com/gdamore/tcell/v2/terminfo/l/linux
github.com/gdamore/tcell/v2/terminfo/p/pcansi
github.com/gdamore/tcell/v2/terminfo/r/rxvt
github.com/gdamore/tcell/v2/terminfo/s/screen
github.com/gdamore/tcell/v2/terminfo/s/simpleterm
github.com/gdamore/tcell/v2/terminfo/s/sun
github.com/gdamore/tcell/v2/terminfo/t/termite
github.com/gdamore/tcell/v2/terminfo/t/tmux
github.com/gdamore/tcell/v2/terminfo/v/vt320
github.com/gdamore/tcell/v2/terminfo/v/vt400
github.com/gdamore/tcell/v2/terminfo/v/vt420
github.com/gdamore/tcell/v2/terminfo/v/vt52
github.com/gdamore/tcell/v2/terminfo/w/wy50
github.com/gdamore/tcell/v2/terminfo/w/wy60
github.com/gdamore/tcell/v2/terminfo/w/wy99_ansi
github.com/gdamore/tcell/v2/terminfo/x/xfce
github.com/gdamore/tcell/v2/terminfo/x/xterm_kitty
github.com/gdamore/tcell/v2/terminfo/x/xterm_termite
github.com/lucasb-eyer/go-colorful
os/signal
github.com/gdamore/tcell/v2/terminfo/extended
github.com/ktr0731/go-fuzzyfinder/scoring
github.com/nsf/termbox-go
github.com/ktr0731/go-fuzzyfinder/matching
github.com/gdamore/tcell/v2
golang.org/x/time/rate
github.com/blang/semver/v4
encoding/csv
crypto/x509
net/textproto
vendor/golang.org/x/net/http/httpproxy
github.com/spf13/pflag
mime/multipart
vendor/golang.org/x/net/http/httpguts
github.com/ktr0731/go-fuzzyfinder
text/tabwriter
github.com/dgrijalva/jwt-go
golang.org/x/crypto/ssh
crypto/tls
github.com/spf13/cobra
github.com/libgit2/git2go/v31
net/http/httptrace
# github.com/libgit2/git2go/v31
vendor/github.com/libgit2/git2go/v31/Build_system_dynamic.go:11:3: error: #error "Invalid libgit2 version; this git2go supports libgit2 between v1.1.0 and v1.1.0"
   11 | # error "Invalid libgit2 version; this git2go supports libgit2 between v1.1.0 and v1.1.0"
      |   ^~~~~
net/http
golang.org/x/net/context/ctxhttp
github.com/hashicorp/go-cleanhttp
github.com/andygrunwald/go-jira
golang.org/x/oauth2/internal
github.com/hashicorp/go-retryablehttp
golang.org/x/oauth2
github.com/xanzy/go-gitlab

[BUG] Can't find tug and libgit2.so.1.3

Describe the bug

  • tug is not available in Ubuntu default PATH
  • Failed to install the correct libgit2 lib

To Reproduce

After installation on Ubuntu with:

~ sudo apt install ./turbogit_v3.1.1_amd64_linux.deb

tug is not find in the PATH. Looking at the output of dpkg -L turbogit:

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/turbogit
/usr/share/doc/turbogit/changelog.gz
/opt
/opt/local
/opt/local/bin
/opt/local/bin/tug

it seems that /opt/local/bin is not in Ubuntu default PATH.

After having corrected that, launching tug gives:

/opt/local/bin/tug: error while loading shared libraries: libgit2.so.1.3: cannot open shared object file: No such file or directory

Installing libgit2 with:

sudo apt install libgit2-dev

Did not solve the issue unfortunately :/

Versions

  • tug: 3.1.1
  • OS: Ubuntu 18.04.6 LTS

[FEAT] Add amend last commit

Is your feature request related to a problem? Please describe.

Sometimes, even with tug, we can make an error on the commit message.

Describe the solution you'd like

An option (-a | --amend) in Commit command to amend the last commit made.

tug commit fe a bug
feat: a bug
tug commit -a -t fi
fix: a bug
tug commit -a -c
fix!: a bug

[FEAT] Add config rule command

Is your feature request related to a problem? Please describe.

Turbogit rely on bare git workflow, enhancing it with some useful high level, highly opinionated commands. In that sense it uses and should keep using the bare git config model. This model is well known and fit every configuration needs of turbogit.
However more and more features rely on some critical configuration keys (like integrations, commit type referenced in #57, and more to come). Making sure every instances of a given repository follow the same configuration is cumbersome and error prone. Sharing the git config itself is highly discouraged due to possible sensitive information leak.

Describe the solution you'd like

We could add a rule system as an init hook call before every turbogit command. This hook would ensure that your current config matches a set of given rules. This set of rules would be defined by some hard-coded rules (to avoid breaking conventions that turbogit is designed to enforce) merged with user-defined rules. The latter would lay in a per-repo file with a simple well known format (toml, yaml, etc...)

To speed up the hook execution, a hash (sum of rules) of last checked rules would be written inside a dedicated key (tug.rules?) in the local git config. This way rules are tested only if this hash doesn't exist or doesn't match the current set of rules.

A command could also be added to manage this ruleset (list,add,remove,update rules).

Additional context

Commit messages do not include an ending carriage return

Describe the bug

When making a commit, the message does not include a terminating carriage return in it's message, this
causes problems with tooling/hooks that update the commit message and add footers/trailers (such as the Gerrit code review tool).

This means you end up with a message like:

build(bug-1234): Updated dependencies
Change-Id: XXXXXXX

which doesn't include a blank line separating the commit message from it's footers.

To Reproduce

Steps

  • Make a commit, any commit with -e to edit the message
  • Note in the editor there's no carriage return in the message.

Expected behavior

  • A carriage return/linefeed in the editor at the end of the line.

Actual behavior

  • No new line.

Versions

Version:        1.2.0
Go version:     go1.14.12
Git commit:     180ee44
Built:          2020-11-21T13:06:18Z
OS/Arch:        darwin/amd64โŽ 

[BUG]

Describe the bug

Two issues:

1 . The documentation talks about a deb file for Debian/Ubuntu.

Download the .deb file from the releases page
sudo apt install ./turbogit_*_linux_amd64.deb

v1.3 and v2.0 do not have .deb files.
https://github.com/b4nst/turbogit/releases

  1. The binary .tar.gz does not work on debian-buster (out of the box - still investigating - missing the right libgit2-1.x )

Trying to put tug, into a docker container, the go binary

$ bin/tug 
bin/tug: error while loading shared libraries: libgit2.so.1.0: cannot open shared object file: No such file or directory
$ cat /etc/issue
Debian GNU/Linux 10 \n \l

The required binary seems installed.

$ sudo apt install libgit2-27
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libgit2-27 is already the newest version (0.27.7+dfsg.1-0.2).
libgit2-27 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

To Reproduce

Expected behavior
The binary from releases, is static and has all libs embedded.

Actual behavior
Seems the Linux binary is missing a static link for libgit2

docker run -ti --rm debian:latest
apt-get update && apt-get install -y curl
curl -LO https://github.com/b4nst/turbogit/releases/download/v2.0.0/turbogit_v2.0.0_amd64_linux.tar.gz
tar xvfz turbo*.tar.gz
bin/tug

Versions

  • tug: v2.0.0
  • OS: debian-buster in docker

[FEAT] Add ability to configure valid git commit types

Is your feature request related to a problem? Please describe.
Would it be possible to add an option to provide a config file to set the list of possible valid git commit types? We use a superset of the standard 'Conventional Commits' rules and our extra items throw errors when using tug commit.

Describe the solution you'd like
It would be awesome to be able to read from a config file at a repository level as per Commitlint's approach (example config file). Could commit.go potentially check for a local config file before building up the list of types, and then fall back to the hardcoded list if one isn't available?

I don't know Go at all so apologies if this more difficult than it seems :) Turbogit is awesome btw, thanks! ๐Ÿ’ฏ

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

github.com/b4nst/turbogit/cmd: cannot find module providing package github.com/b4nst/turbogit/cmd

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

[FEAT] Support Git hooks

Is your feature request related to a problem? Please describe.

I am using git hooks (husky) on commits and they are not triggered when using tug.

Describe the solution you'd like

Tug shall support git hooks.

[BUG] branch name contains double quotes (")

Describe the bug

Double quote " are not sanitized.

To Reproduce

Steps

tug branch and pick an issue with " character in the title.

Expected behavior

Double quotes should be sanitized

Actual behavior

Branch name with double quotes.

Versions

Version:        3.1.1
Go version:     go1.17.3
Git commit:     bf778142900c0109816721bb44791a97816189bc
Built:          Thu Dec 02 22:13:39 2021
OS/Arch:        darwin/amd64โŽ

Additional context

[BUG] Should not commit when working tree is clean

Describe the bug

tug commit should print a message and do not commit when the working tree is clean.

To Reproduce

Steps

  1. commit all changes
  2. tug commit feat my feature

Expected behavior

Something like git:

nothing to commit, working tree clean

Actual behavior

An empty commit is created

Versions

Version: 1.0.0
Go version: go1.14.3
Git commit: 61a3f05
Built: 2020-05-23T21:28:09Z
OS/Arch: darwin/amd64

[BUG] Slowness issue on large repos

Describe the bug

I had to Ctrl+C to take back control. The Action was performed correctly but I didn't have the hand back on the terminal
image

To Reproduce

Steps

  • Enter tug branch fix repair broken element-ui cascader
    I waited for the command to execute and enter another command. I coudn't take back control without Ctrl+C. The branch was created anyhow
    Expected behavior

Actual behavior

  • The shell prompt shall appear again at the end.

Versions

  • tug:
Version:	1.1.0			
Go version:	go1.14.3		
Git commit:	5662855			
Built:		2020-05-31T17:22:36Z	
OS/Arch:	linux/386%     
  • OS: Ubuntu 18.04.4 LTS

Additional context

[BUG] Trying to create a branch result in invalid reference

Describe the bug

๐ŸŒ Searching on Jira the given reference name 'refs/heads/feat/CUTST-855/[report]-add-a-`testid_in`-filter-to-the-`createtags`-and-`deletetags`-mutations' is not valid`

To Reproduce

Trying to create a branch with tug branch.
Ticket name is [Report] Add a `testId_In` filter to the `createTags` and `deleteTags` mutations

Steps

Expected behavior

Actual behavior

Versions

  • tug:
  • OS:
Version:        3.0.0
Go version:     go1.16.5
Git commit:     ab354e4
Built:          Sun Jul 18 00:21:27 2021
OS/Arch:        darwin/amd64%

Additional context

[FEAT] Support issues/tickets linked to the feature branch

Is your feature request related to a problem? Please describe.
We use Jira and suffix commits with the ticket number, i.e. feat: commit (DEV-0123), and also prefix the branch name with the ticket ID, i.e. feat/dev-0123-commit.

Describe the solution you'd like
We would like to see GitHub issues, Jira tickets, and others natively supported.

[FEAT] Refactor for MacPorts

Is your feature request related to a problem? Please describe.

Currently a prebuilt binary is used for MacPorts. They prefer ports to build from source, and this should be possible here with few modifications.

Describe the solution you'd like

  • Update goreleaser to archive source for build
  • Update makefile to be able to build in a MacPorts context

Additional context

Original PR: macports/macports-ports#7213

[FEAT] Add tag command

Describe the solution you'd like

A tag command that will automagically create the next semver tag based on the previous tag and the commit message history.

Given a message history following conventional commit standards, a program is able to decide the next version for an application :

breaking changes --> MAJOR
new features --> MINOR
fixes --> PATCH

The highest win (meaning if we find a breaking change we do a MAJOR bump, regardless of the existence of new features/fixes).

[HELP] Windows CI build/release

As we are now using libgit2 binding, we are no longer able to easily cross compile turbogit. I've started refactoring the CI but I struggle building for windows. The build raises this error:

# pkg-config --cflags  -- libgit2
Can't locate Pod/Usage.pm in @INC (you may need to install the Pod::Usage module) (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at /c/Strawberry/perl/bin/pkg-config line 1088.
BEGIN failed--compilation aborted at /c/Strawberry/perl/bin/pkg-config line 1088.
pkg-config: exit status 2
mingw32-make: *** [Makefile:19: bin/tug] Error 2

My Windows skills being very limited, some help would be really appreciated.

[FEAT] Use go-git merged config

Is your feature request related to a problem? Please describe.

We only use the local git config to retrieve config from git. Now that version 5.1.0 of go-git is out, we can use all the scope!

Describe the solution you'd like

Refactor

value = cfg.Raw.Section(section).Option(option) // Switch to cfg.Merged when https://github.com/go-git/go-git/pull/20 is released

Additional context

Go-git PR: go-git/go-git#20

[BUG] Error: no changes added to commit when creating commit

Describe the bug

Sometimes when running tug commit, tug appears to not finding any changes staged for commit (but there is some).

To Reproduce

Steps

Hard to reproduce because this this due to order of status analysis. There is a bug when the function return false without having checked all the files.

turbogit/cmd/commit.go

Lines 143 to 150 in f37ac16

for _, s := range status {
if s.Staging != git.Unmodified && s.Staging != git.Untracked {
return true, nil
}
if s.Worktree != git.Unmodified {
return false, errors.New("no changes added to commit")
}
}

Expected behavior

Commit created

Actual behavior

Error :

Error: no changes added to commit
Usage:
  tug commit [[type] subject] [flags]
Flags:
  -c, --breaking-changes   Commit contains breaking changes
  -e, --edit               Prompt editor to edit your message (add body or/and footer(s)).
  -h, --help               help for commit
  -s, --scope string       Commit scope.
  -t, --type string        Commit types [build ci chore docs feat fix perf refactor style test].
Global Flags:
      --config string   config file (default is $HOME/.config/tug/tug.toml)
no changes added to commit

Versions

Version: 1.1.0
Go version: go1.14.3
Git commit: refs/tags/v1.1.0
Built: Mon Jun 01 01:31:03 2020
OS/Arch: darwin/amd64

Additional context

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.