1
1
mirror of https://github.com/github/semantic.git synced 2024-12-24 07:25:44 +03:00
Commit Graph

644 Commits

Author SHA1 Message Date
Rob Rix
31d396ee91
Merge branch 'master' into semantic-python 2019-06-17 10:54:55 -04:00
Rob Rix
30fd1b4abf
Merge branch 'master' into remove-orphan-bytestring-listable 2019-06-14 16:34:13 -04:00
Patrick Thomson
e1d94f07d1 Remove Listable instance for Source.
This was created with a whole mess of Leancheck combinators. A
Hedgehog approach makes things easier.
2019-06-14 11:53:42 -04:00
Jan Hrček
7aa0d8b3d9 Enable GHC warnings in tests 2019-06-14 15:35:18 +02:00
Patrick Thomson
668d1f396f Require Cabal 2.4. 2019-06-13 14:20:22 -04:00
Patrick Thomson
b8cb9d1bfa Remove unused imports. 2019-06-12 12:52:11 -04:00
Patrick Thomson
11442cf772 Add more bounds. 2019-06-12 12:37:40 -04:00
Patrick Thomson
99c4bb21f8 Overhaul test harnesses and add tasty bounds. 2019-06-12 11:30:20 -04:00
Rob Rix
dd352cb9c5
Add extra-source-files to semantic. 2019-06-11 11:25:56 -04:00
Rob Rix
32c7698aba
Change the category for semantic to Language. 2019-06-11 11:25:34 -04:00
Rob Rix
83a6c6ca78
Make the different cabal files line up. 2019-06-11 11:25:11 -04:00
Rob Rix
40e9999b02
Add bug-reports fields. 2019-06-11 11:23:38 -04:00
Rob Rix
7ec058c38d
Fix a disagreement between the LICENSE file and Copyright field. 2019-06-11 11:12:58 -04:00
Patrick Thomson
039e187819 Fix travis invocation and add more bounds. 2019-06-11 11:05:10 -04:00
Patrick Thomson
90562edd53 Fixes for build time. 2019-06-10 15:03:59 -04:00
Patrick Thomson
dcf4a577f7 Use Hackage package rather than submodules. 2019-06-10 13:29:11 -04:00
joshvera
6b13145862 Move jsxElements out of TypeScript grammar
Also removes typeAssertion from TSX grammar
2019-06-06 16:37:29 -04:00
joshvera
a8a36adc81 Merge remote-tracking branch 'origin/master' into typescript-mapped-types 2019-06-06 15:27:59 -04:00
Patrick Thomson
9aebd13e5b
Merge branch 'master' into fail-all-of-the-tests-at-once-and-explode-into-space 2019-06-06 02:40:01 -04:00
Rob Rix
87209d3eee
🔥 MiniPython & MiniRuby. 2019-06-05 17:05:14 -04:00
joshvera
33e267151a WIP 2019-06-05 14:17:12 -04:00
Patrick Thomson
79fa92e9e6 Bump minimum base version to 4.12.0.0.
This should hopefully provide a more informative error message when
someone attempts to build the project with too old of a GHC.
2019-06-05 10:38:51 -04:00
Patrick Thomson
3e1f3bcb9f Remove redundant HasSpan class.
We already have a classy-lenses-style HasSpan class, provided by Data.Span itself, so we don't need Data.Abstract.HasSpan.
2019-06-04 14:40:09 -04:00
Rob Rix
f79ba2ae36
Merge branch 'master' into move-grammar-datatypes-to-the-parser-packages 2019-06-03 15:22:56 -04:00
Rob Rix
2646f89948
Move the grammar datatypes for all the other languages into their respective packages. 2019-06-03 14:14:04 -04:00
Patrick Thomson
1932332b96 Merge remote-tracking branch 'origin/master' into if-any-monad-is-not-freer-then-I-too-am-bound 2019-06-03 13:40:49 -04:00
Rob Rix
0fa39f6131
🔥 Language.JSON.Grammar. 2019-06-03 13:23:16 -04:00
Rob Rix
f9579b1ed6
🤠 fix the author field in the cabal file.
https://github.com/github/semantic/graphs/contributors seemed too lengthy to fit in there and we didn’t want to leave people out, so we went with “The Semantic authors” to cover everybody.
2019-06-03 12:40:15 -04:00
Rob Rix
930b5c01c6
🤠 fix the repo URL in the cabal file. 2019-06-03 12:39:04 -04:00
Rob Rix
e6145c6217
Don’t depend on freer-cofreer. 2019-06-03 12:18:15 -04:00
Patrick Thomson
a7f6806298 Fix cabal build. (#4)
- Remove cmark-gfm direct dependency.
- Fix submodule paths.
- Pin to versioned fused-effects packages.
2019-05-31 08:58:35 -04:00
Douglas Creager
cf803555e5 Make error reporter API generic
Instead of hard-coding the HTTP API we use for uploading errors to our
internal service, let the user provide an arbitrary function (in the IO
monad) for uploading them.  The default config will create an error
reporter that logs errors to the console, just like happened before if
you didn't set the `HAYSTACK_URL` environment variable.
2019-05-31 08:58:34 -04:00
Patrick Thomson
b2bbda5fca Specify version bounds in .cabal file (#1)
Establish library bounds based on Stackage LTS 13.13.

We use the new cabal `^>=` operator to establish PVP-compatible versioning.
2019-05-31 08:58:17 -04:00
Douglas Creager
afea75f86f Add license and maintainer to cabal file 2019-05-31 08:37:44 -04:00
Patrick Thomson
a410300492 Add tests for readBlobsFromGitRepo.
This is part of the critical path for repository tagging, so we should
test it to make sure it doesn't explode. This introduces a test that
creates a temporary git repo and queries it to make sure that adding
and then reading from a blob works properly.
2019-05-28 14:54:18 -04:00
Patrick Thomson
a0f87c3c12 Remove -dynamic flag from cabal file.
We originally put this here because we were recompiling
haskell-tree-sitter on every ghci reload, and it sped up the process
of linking the built haskell-tree-sitter into ghci. Now that we
compile haskell-tree-sitter once, its use is no longer applicable, and
it interferes with profiling builds.
2019-05-28 12:12:12 -04:00
Patrick Thomson
789fcde288 Merge branch 'master' into blob-depends-on-file 2019-05-24 12:46:16 -04:00
Patrick Thomson
59583c6105 Ensure parse-examples gets passed the -threaded flag. 2019-05-24 12:09:48 -04:00
Patrick Thomson
9509ec37b8 absolutely massive patch that touches everything 2019-05-21 22:05:23 -04:00
Patrick Thomson
70463f79f9 Remove cubic-caller problem. 2019-05-15 18:21:07 -04:00
Patrick Thomson
895677c88e Add fused-effects-exceptions. 2019-05-15 18:04:07 -04:00
Patrick Thomson
065c4688ef Remove unused protobuf-related files.
For some reason that escapes me at the moment, I chose to put these
files in the main tree rather than in services/alephd.
2019-04-29 10:58:51 -04:00
Timothy Clem
0de9099578 Fix parse-examples 2019-04-12 12:54:12 -07:00
Timothy Clem
7840aec67b Fix specs 2019-04-12 12:50:30 -07:00
Timothy Clem
40c4c1f657 Cleanup 2019-04-12 11:45:07 -07:00
Timothy Clem
aef2d62b1b Move Git functionality into semantic 2019-04-12 11:40:03 -07:00
Patrick Thomson
ecea375520 Eliminate boolean blindness with tagged flags a la olegfi. 2019-03-22 16:25:04 -04:00
Josh Vera
f2c6a50c2d Merge branch 'master' into use-external-exceptions-package 2019-03-19 16:06:53 -04:00
Max Brunsfeld
3c0dd6cc45 Add unit test for parsing with a timeout
Co-Authored-By: Rick Winfrey <rewinfrey@github.com>
2019-03-19 11:56:07 -07:00
Patrick Thomson
139b0c5bd1 Use external fused-effects-exceptions package.
This was OSS'd because it turned out to be a little tricky and we
didn't want external consumers to have to implement it themselves. No
reason to keep it around in our tree.
2019-03-19 10:34:13 -04:00
joshvera
a9e4a71fd0 Move catchSync to Control.Effect.Catch 2019-03-18 12:56:46 -04:00
Patrick Thomson
b92d9a5382 Rename Helpers to Bridge. 2019-03-01 15:27:13 -05:00
Josh Vera
8c654caacc Merge branch 'indexer-prototype' into merge-indexer-prototype 2019-02-22 17:33:53 -05:00
joshvera
f2aee684bc Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-02-22 11:10:53 -05:00
joshvera
ffc53d3877 Merge remote-tracking branch 'origin/indexer-prototype' into merge-indexer-prototype 2019-02-21 12:22:08 -05:00
Timothy Clem
fcf0f3896d Merge remote-tracking branch 'origin/master' into embrace-new-api 2019-02-20 14:51:31 -08:00
Rick Winfrey
9d884e4af3 Merge branch 'master' into indexer-prototype 2019-02-20 12:09:23 -08:00
joshvera
be4250707d Merge remote-tracking branch 'origin/indexer-prototype' into deploy-to-moda 2019-02-20 14:23:18 -05:00
Timothy Clem
af321dfd23 Revert "Let's call it 1.0!"
This reverts commit ec8377ca30b15b29c49aec9ed5cb3811b7c07ff4.
2019-02-20 08:27:46 -08:00
Timothy Clem
f2116d9ed8 Let's call it 1.0! 2019-02-19 16:33:33 -08:00
Patrick Thomson
07fbfbc965 examples require process package 2019-02-19 16:11:28 -05:00
Patrick Thomson
1d600e199c Factor out common executable flags 2019-02-19 14:31:16 -05:00
Patrick Thomson
50b55b084f Test consolidating ghc-options in library stanza 2019-02-19 14:22:16 -05:00
Patrick Thomson
6daf9be738 Factor out common libraries. 2019-02-19 14:20:33 -05:00
Patrick Thomson
8418290224 Factor out common GHC extensions. 2019-02-19 13:54:14 -05:00
Patrick Thomson
6b763dd5e9 Fix tests. 2019-02-15 17:55:15 -05:00
Timothy Clem
cbd83d5bb9 This warrents a version bump 2019-02-15 13:34:17 -08:00
Patrick Thomson
c7b41a3594 Merge remote-tracking branch 'origin/master' into indexer-prototype-no-sg 2019-02-15 14:05:23 -05:00
Timothy Clem
cc78c0d8d5 Case Api as generated 2019-02-12 12:49:34 -08:00
joshvera
e73fcc57a5 Move DCOMPUTE_GIT_SHA to cpp-options 2019-02-11 15:08:24 -05:00
joshvera
c9724d2720 Merge 'origin/master' into deploy-to-moda 2019-02-11 14:27:22 -05:00
joshvera
4fd258182e Merge remote-tracking branch 'origin/indexer-prototype' into deploy-to-moda 2019-02-11 13:56:08 -05:00
joshvera
dd106278b3 Add getSpan so we don't have to eval a term
Co-Authored-By: Rob Rix <robrix@github.com>
2019-02-11 13:15:13 -05:00
Timothy Clem
6083803d68 Bring in twirp-haskell and generate everything from protos 2019-02-08 13:52:34 -08:00
joshvera
867d1867c0 remove Data.GitHub.Spec 2019-02-08 15:46:46 -05:00
Patrick Thomson
7db320f6a5 Consolidate a number of unused modules. 2019-02-08 14:43:15 -05:00
Patrick Thomson
6b5f5c11de Gut Semantic.Lens and move lensy declarations near their datatypes 2019-02-08 14:14:19 -05:00
Patrick Thomson
fbf4b443b4 Move tag to its own file and add a couple lenses 2019-02-08 12:05:59 -05:00
Timothy Clem
50bedeb689 Remove extraneous proto encoding/decode from our internal datatypes 2019-02-06 14:55:43 -08:00
Timothy Clem
edc9adb197 Install and use hlint directly 2019-02-04 15:19:10 -08:00
joshvera
e99f85e7a1 Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-02-04 17:17:45 -05:00
joshvera
a4d892811f Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-02-01 16:03:16 -05:00
Timothy Clem
635f09fe29 ++version to 0.5.0 2019-01-31 15:41:08 -08:00
Timothy Clem
f14412fe8f Merge remote-tracking branch 'origin/master' into servant-experiment 2019-01-31 12:57:59 -08:00
Patrick Thomson
4701a91c02 move SQL stuff out of Core and add Catch effect 2019-01-31 14:37:40 -05:00
Timothy Clem
d3330aa9f3 Dedicated input types for Blob and BlobPair 2019-01-28 14:37:50 -08:00
Timothy Clem
1faff05a2b Remove some un-used code 2019-01-25 10:12:38 -08:00
Patrick Thomson
13ac7b4942 Last stage of the great renaming 2019-01-24 13:23:59 -05:00
Patrick Thomson
46969defce Pull in upstream proto3-suite and kill the Exts module. 2019-01-24 13:13:47 -05:00
Patrick Thomson
92b5549d01 Move Envelope 2019-01-24 13:02:11 -05:00
Patrick Thomson
869bd26cae Move User.hs 2019-01-24 12:59:48 -05:00
Patrick Thomson
3cd4ffc9c3 RequestContext, RequestMethod, and RepositoryPush 2019-01-24 12:57:50 -05:00
Patrick Thomson
469151d180 Move Data/GitHub/Repository 2019-01-24 12:48:15 -05:00
Patrick Thomson
c6f4f0fea0 Move Data.GitHub.Git to Data.Git 2019-01-24 12:40:22 -05:00
Timothy Clem
9e9bbc1e68 Dedicated paths for legacy formatting of symbols and toc output 2019-01-24 08:34:37 -08:00
Timothy Clem
be138f7362 Add in parse tree graph endpoint 2019-01-23 14:53:29 -08:00
Timothy Clem
6befe07ea3 Remove rest of old diff renderers and Diff.hs 2019-01-22 12:05:45 -07:00
Timothy Clem
5e6d0240b2 Use the new diff api from the CLI, fix up tests again 2019-01-22 11:42:06 -07:00
Timothy Clem
154e0388af Goodbye Semantic.Parse 2019-01-18 16:04:23 -08:00
Timothy Clem
9f222adcd3 Show and Quiet outputs 2019-01-18 12:37:49 -08:00
Timothy Clem
f23110a73a Transition sexpression term rendering 2019-01-18 09:29:51 -08:00
Timothy Clem
e3afd9d684 Symbol rendering is entirely on the new path 2019-01-17 15:13:39 -08:00
Timothy Clem
8d5d3e45da Factor back in the toc summary endpoint, now supported in twirp too 2019-01-17 14:00:13 -08:00
Timothy Clem
01af025638 Move parse back into semantic 2019-01-16 15:39:07 -08:00
Rick Winfrey
439e9ff9ae Update remaining 2019-01-15 12:27:09 -08:00
Timothy Clem
26b771715f Wire in Twirp ping and symbols endpoints, disable grpc entirely 2019-01-15 08:45:20 -08:00
Patrick Thomson
34cfa42584 rename spec and add toByteString 2019-01-11 12:27:47 -05:00
Patrick Thomson
b29633e0d6 Move the user type into User. 2019-01-11 11:58:13 -05:00
Patrick Thomson
a4bd06f6be Fix nomenclature and modules. 2019-01-11 11:20:58 -05:00
Patrick Thomson
60b024dd13 Fix the members that I omitted. 2019-01-10 19:01:19 -05:00
Patrick Thomson
d7ad7e9fce Add Repository entity and make sure they get pushed in repo pushes 2019-01-10 16:22:34 -05:00
Josh Vera
d4e9ab09a9 Merge pull request #2326 from github/add-hydro-data-types
Add data types for Kafka event messages.
2019-01-10 13:16:52 -05:00
Rick Winfrey
136af86301 Merge branch 'master' into visibility-resolution 2019-01-08 17:32:14 -08:00
joshvera
b23352e163 Merge remote-tracking branch 'origin/master' into indexer-prototype 2019-01-08 15:54:43 -05:00
Patrick Thomson
2894edd428 Include Push events in the cabal file. 2019-01-08 15:30:12 -05:00
Patrick Thomson
39bdfdf01f Add Hydro data types corresponding to proposed push schema.
Provides a `Push` type. To build that, we needed `RequestContext`,
`UserType`, `RequestMethod`, `Spamurai`, `Timestamp`, and `IPVersion`.

The schemas have all been taken from https://github.com/github/hydro-schemas/.
2019-01-08 13:55:09 -05:00
Patrick Thomson
1302fe4ac8 Use -XDerivingVia to clean up our Semigroup/Monoid instances.
Now that we're on GHC 8.6, we can use `-XDerivingVia` in many cases
where we previously had to write instances by hand. If you're not
familiar with `-XDerivingVia`, the [GHC proposal][ghc] is a good place
to start.

[ghc]: https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0023-deriving-via.rst

Thanks to the `generic-monoid` package, we can derive a `Semigroup`
instance for any product type whose members are `Semigroups`, and the
same goes for `Monoid`. This entails an extra dependency, but it is
better than the `generic-deriving` package, which is way too much overhead.
I've also switched some trivial definitions to newtype-deriving.

Please be aware that this bumps `hlint` and `haskell-src-exts` so that
`hlint` doesn't choke on the `DerivingVia` extension. You'll need to
`stack install hlint` to get it on your `PATH`. Apologies!
2019-01-07 11:23:11 -05:00
joshvera
b5af73c088 Merge remote-tracking branch 'origin/master' into add-references-to-indexer-prototype 2019-01-04 15:00:43 -05:00
Patrick Thomson
955f30617c Depend on hostname instead of Network.BSD. 2018-12-29 15:02:42 -05:00
Patrick Thomson
d32f5cd5ca Merge branch 'master' into lts-13.0 2018-12-29 14:17:48 -05:00
Patrick Thomson
9852155a77 Upgrade to LTS 13.0 and GHC 8.6.3.
Bumps most of our dependencies.

Code changes:
* algebraic-graphs-0.3 no longer provides a Foldable or Traversable
  implementation for `Graph`, so now neither does our `Graph` type.
* CMark parsing now uses safe rendering of raw HTML/URLs by default,
  so there is no reason to pass an `optSafe` anymore.
* algebraic-graphs now no longer requires an Eq constraint on the
  output type it generates, so we can ditch our Serializing.DOT
  module. (Andrey fixed this for us specifically!)
2018-12-29 14:02:24 -05:00
Rick Winfrey
960d56fdcf Add Visibilities instances 2018-12-19 19:11:02 -08:00
Rick Winfrey
3adaf47a4f Define a Visibilities type class 2018-12-19 19:10:49 -08:00
joshvera
9f86c1b7d1 Move Taggable instances to their own module 2018-12-19 16:27:33 -05:00
Patrick Thomson
5d46cb211e Split up typescript grammar even more 2018-12-18 16:25:32 -05:00
Rob Rix
594979543c 🔥 Located. 2018-12-13 12:04:24 -05:00
Rob Rix
595f0fa2a3 Whitespace error. 2018-12-13 12:04:06 -05:00
Patrick Thomson
684a752773 remove Semantic.Util.Rewriting 2018-12-11 17:47:13 -05:00
Patrick Thomson
e329cbe89a unify the last spec 2018-12-11 17:36:42 -05:00
Patrick Thomson
1de0e9ef09 move specs around 2018-12-11 17:21:39 -05:00
Patrick Thomson
1f44f81acc Unify Control.Rewriting and Control.Matching. 2018-12-11 17:12:24 -05:00
Rob Rix
fa950f3239 🔥 Data.Abstract.Ref. 2018-12-10 11:37:00 -05:00
joshvera
1914a94500 Add -dynamic in test debug builds as well 2018-12-05 11:28:21 -05:00
joshvera
9b8a93bc04 Replace -static with -dynamic in non-release builds
Improves performance in the repl since we don't have to link statically.
2018-12-05 11:25:12 -05:00
joshvera
03e5546ec1 Add -O0 to tests to reduce compilation times 2018-12-05 10:25:21 -05:00
joshvera
49e8a7004c Remove Exports 2018-12-05 10:23:42 -05:00
joshvera
26d3e5e449 Remove Environment 2018-12-05 09:42:00 -05:00
joshvera
70fa31f11e Fix expectation of sequence expression test 2018-11-29 18:38:32 -05:00
joshvera
f39da9578a Move ImportPath to Data.ImportPath 2018-11-16 16:09:11 -05:00
Timothy Clem
57f284f847 Streamline the declarations for toc summaries 2018-11-08 08:33:26 -08:00
Timothy Clem
343289f1c5 Merge remote-tracking branch 'origin/master' into docstrings-round2 2018-11-06 09:17:49 -08:00
Patrick Thomson
7ea52dbfe3 Give Control.Matching API better ergonomics.
Given that @tclem and I have found the matcher API frustrating, I've
taken a stab at improving its ergonomics, and I've found some success
in separating composition of matchers from predicate-based narrowing
thereof.

The biggest change here is the elimination of the old `match`
combinator, which proved to be clumsy in that it complected narrowing
and composition. Top-down matching combinators are now written with
the `need` combinator and the `>>>` combinator, which is more readable
and more versatile. Here's a matcher that accepts functions with
Python docstrings:

```haskell
docstringMatcher :: ( Decl.Function :< fs
                    , [] :< fs
                    , Lit.TextElement :< fs
                    , term ~ Term (Sum fs) ann
                    ) => Matcher term term
docstringMatcher = target <*
               (need Decl.functionBody
                >>> narrow @[]
                >>> mhead
                >>> narrow @Lit.TextElement
                >>> ensure Lit.isTripleQuoted))
```

Pretty readable, right? Each step of the tree regular expression -
choosing function bodies, ensuring said bodies are lists, examining
the first element, and choosing only TextElements containing
triple-quoted strings - is made implicit. The old way would have
looked something like this:

```haskell
docstringMatcher = target <* match Decl.functionBody
                           $ narrow
                           $ matchM listToMaybe
                           $ target <* ensure Lit.isTripleQuoted
```
which is a good deal more disorganized and less flexible
in the quite-common case of applying functions during a
matching pass. Separating the act of composition from
function application is a big win here.

Further comments are inline.
2018-11-02 19:25:29 -04:00
Timothy Clem
0f56f33f24 Introduce some symbol/tags tests 2018-11-02 13:55:30 -07:00
Timothy Clem
63e13ee20c Merge remote-tracking branch 'origin/master' into docstrings-round2 2018-11-01 16:04:15 -07:00
Timothy Clem
1f6a7b9e48 Move HasTextElement 2018-11-01 14:49:35 -07:00
Patrick Thomson
b9cf8f73c6 Environment and App. 2018-10-31 15:47:30 -04:00
Timothy Clem
d4d19ea21f Some renaming, split out into two modules 2018-10-31 10:58:00 -07:00
Patrick Thomson
d473b9e1af add Data/Abstract/Name/Spec 2018-10-31 13:19:43 -04:00
Patrick Thomson
b0e6190dbf add Data/Range/Spec 2018-10-31 12:46:52 -04:00
Patrick Thomson
cd05aaa7a5 add Data/Graph/Spec 2018-10-31 12:30:56 -04:00