<commit_before><p align="center">
<img 
    src="header.png"
    width="800" height="255" border="0" alt="gps">
<br>
<a href="https://circleci.com/gh/sdboyer/gps"><img src="https://circleci.com/gh/sdboyer/gps.svg?style=shield" alt="Build Status"></a>
<a href="https://ci.appveyor.com/project/sdboyer/gps"><img src="https://ci.appveyor.com/api/projects/status/github/sdboyer/gps?svg=true&branch=master&passingText=Windows%20-%20OK&failingText=Windows%20-%20failed&pendingText=Windows%20-%20pending" alt="Windows Build Status"></a>
<a href="https://goreportcard.com/report/github.com/sdboyer/gps"><img src="https://goreportcard.com/badge/github.com/sdboyer/gps" alt="Build Status"></a>
<a href="https://codecov.io/gh/sdboyer/gps"><img src="https://codecov.io/gh/sdboyer/gps/branch/master/graph/badge.svg" alt="Codecov" /></a>
<a href="https://godoc.org/github.com/sdboyer/gps"><img src="https://godoc.org/github.com/sdboyer/gps?status.svg" alt="GoDoc"></a>
</p>

---

`gps` is the Go Packaging Solver. It is an engine for tackling dependency
management problems in Go. It is trivial - [about 35 lines of
code](https://github.com/sdboyer/gps/blob/master/example.go) - to replicate the
fetching bits of `go get` using `gps`.

`gps` is _not_ Yet Another Go Package Management Tool. Rather, it's a library
that package management (and adjacent) tools can use to solve the
[hard](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem) parts of
the problem in a consistent,
[holistic](https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527)
way. It is a distillation of the ideas behind language package managers like
[bundler](http://bundler.io), [npm](https://www.npmjs.com/),
[elm-package](https://github.com/elm-lang/elm-package),
[cargo](https://crates.io/) (and others) into a library, artisanally
handcrafted with ❤️ for Go's specific requirements.

`gps` is [on track](https://github.com/Masterminds/glide/issues/565) to become
the engine behind [glide](https://glide.sh). It also powers the [experimental, eventually-official Go tooling](https://github.com/golang/dep).

The wiki has a [general introduction to the `gps`
approach](https://github.com/sdboyer/gps/wiki/Introduction-to-gps), as well
as guides for folks [implementing
tools](https://github.com/sdboyer/gps/wiki/gps-for-Implementors) or [looking
to contribute](https://github.com/sdboyer/gps/wiki/gps-for-Contributors).

## Wait...a package management _library_?!

Yup. See [the rationale](https://github.com/sdboyer/gps/wiki/Rationale).

## Features<commit_msg>Update README wrt glide<commit_after><p align="center">
<img 
    src="header.png"
    width="800" height="255" border="0" alt="gps">
<br>
<a href="https://circleci.com/gh/sdboyer/gps"><img src="https://circleci.com/gh/sdboyer/gps.svg?style=shield" alt="Build Status"></a>
<a href="https://ci.appveyor.com/project/sdboyer/gps"><img src="https://ci.appveyor.com/api/projects/status/github/sdboyer/gps?svg=true&branch=master&passingText=Windows%20-%20OK&failingText=Windows%20-%20failed&pendingText=Windows%20-%20pending" alt="Windows Build Status"></a>
<a href="https://goreportcard.com/report/github.com/sdboyer/gps"><img src="https://goreportcard.com/badge/github.com/sdboyer/gps" alt="Build Status"></a>
<a href="https://codecov.io/gh/sdboyer/gps"><img src="https://codecov.io/gh/sdboyer/gps/branch/master/graph/badge.svg" alt="Codecov" /></a>
<a href="https://godoc.org/github.com/sdboyer/gps"><img src="https://godoc.org/github.com/sdboyer/gps?status.svg" alt="GoDoc"></a>
</p>

---

`gps` is the Go Packaging Solver. It is an engine for tackling dependency
management problems in Go. It is trivial - [about 35 lines of
code](https://github.com/sdboyer/gps/blob/master/example.go) - to replicate the
fetching bits of `go get` using `gps`.

`gps` is _not_ Yet Another Go Package Management Tool. Rather, it's a library
that package management (and adjacent) tools can use to solve the
[hard](https://en.wikipedia.org/wiki/Boolean_satisfiability_problem) parts of
the problem in a consistent,
[holistic](https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527)
way. It is a distillation of the ideas behind language package managers like
[bundler](http://bundler.io), [npm](https://www.npmjs.com/),
[elm-package](https://github.com/elm-lang/elm-package),
[cargo](https://crates.io/) (and others) into a library, artisanally
handcrafted with ❤️ for Go's specific requirements.

`gps` was [on track](https://github.com/Masterminds/glide/issues/565) to become
the engine behind [glide](https://glide.sh); however, those efforts have been
discontinued in favor of gps powering the [experimental, eventually-official
Go tooling](https://github.com/golang/dep).

The wiki has a [general introduction to the `gps`
approach](https://github.com/sdboyer/gps/wiki/Introduction-to-gps), as well
as guides for folks [implementing
tools](https://github.com/sdboyer/gps/wiki/gps-for-Implementors) or [looking
to contribute](https://github.com/sdboyer/gps/wiki/gps-for-Contributors).

## Wait...a package management _library_?!

Yup. See [the rationale](https://github.com/sdboyer/gps/wiki/Rationale).

## Features
{'fraction_non_alphanumeric': 0.17158849642926077, 'fraction_numerical': 0.012352827639451842, 'mean_word_length': 5.250904704463209, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 46, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3534967', 'n_tokens_mistral': 1898, 'n_tokens_neox': 1801, 'n_words': 374}