{"id":13471525,"url":"https://github.com/DataHaskell/dh-core","last_synced_at":"2025-03-26T13:31:12.019Z","repository":{"id":33503970,"uuid":"153169443","full_name":"DataHaskell/dh-core","owner":"DataHaskell","description":"Functional data science","archived":false,"fork":false,"pushed_at":"2022-02-01T16:06:53.000Z","size":1240,"stargazers_count":138,"open_issues_count":23,"forks_count":23,"subscribers_count":16,"default_branch":"master","last_synced_at":"2024-10-30T02:59:45.243Z","etag":null,"topics":["data-analysis","data-mining","data-science","dataframes","datahaskell","datasets","machine-learning","numerical-methods"],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataHaskell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-15T19:22:54.000Z","updated_at":"2024-10-17T16:48:56.000Z","dependencies_parsed_at":"2022-08-07T22:00:21.191Z","dependency_job_id":null,"html_url":"https://github.com/DataHaskell/dh-core","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataHaskell%2Fdh-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataHaskell%2Fdh-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataHaskell%2Fdh-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataHaskell%2Fdh-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataHaskell","download_url":"https://codeload.github.com/DataHaskell/dh-core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245662832,"owners_count":20652091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-mining","data-science","dataframes","datahaskell","datasets","machine-learning","numerical-methods"],"created_at":"2024-07-31T16:00:46.226Z","updated_at":"2025-03-26T13:31:11.170Z","avatar_url":"https://github.com/DataHaskell.png","language":"Haskell","funding_links":[],"categories":["Haskell"],"sub_categories":[],"readme":"# DataHaskell/dh-core\n\n[![Build Status](https://travis-ci.org/DataHaskell/dh-core.png)](https://travis-ci.org/DataHaskell/dh-core)\n\u003ca href=\"https://gitter.im/DataHaskell/Lobby\" target=\"_blank\"\u003e\u003cimg src=\"https://badges.gitter.im/Join%20Chat.svg\"\u003e\u003c/a\u003e\n\nDataHaskell core project monorepo\n\n\n## Aims\n\nThis project aims to provide a native, end-to-end data science toolkit in Haskell. To achieve this, many types of experience are valuable; engineers, scientists, programmers, visualization experts, data journalists are all welcome to join the discussions and contribute.\nNot only this should be a working piece of software, but it should be intuitive and pleasant to use.\nAll contributions, big or small, are very welcome and will be acknowledged.\n\n## Architecture\n\nOne single repository allows us to experiment with interfaces and move code around much more freely than many single-purpose repositories. Also, it makes it more convenient to track and visualize progress.\n\nThis is the directory structure of the project; the main project lives in the `dh-core` subdirectory:\n\n    dh-core/\n      dh-core/              \n      dh-core-accelerate/\n      ....\n\n\n## Contributed packages\n\nA number of authors and maintainers agreed to move ownership of their repositories under the `dh-core` umbrella. In some cases, these packages were already published on Hackage and cannot simply disappear from there, nor can this new line of development break downstream packages.\n\nFor this reason, contributed packages will appear as subdirectories to the main `dh-core` project, and will need to retain their original .cabal file.  \n\nThe `stack` tool can take care of multi-package projects; its `packages` stanza in the `stack.yaml` file has only its directory as a default, but can contain a list of paths to other Cabal projects; e.g. in our case it could look like:\n\n    packages:\n    - .\n    - analyze/\n    - datasets/\n\nPackages that are listed on Hackage already must be added here as distinct sub-directories. Once the migration is complete (PRs merged etc.), add the project to this table :\n\n\n| Package | Description | Original author(s) | First version after merge |\n| --- | --- | --- | --- | \n| [`analyze`](https://hackage.haskell.org/package/analyze) | Data analysis and manipulation library | [Eric Conlon](https://github.com/ejconlon) | 0.2.0 | \n| [`datasets`](https://hackage.haskell.org/package/datasets) | A collection of ready-to-use datasets | [Tom Nielsen](https://github.com/glutamate) | 0.2.6 | \n| [`dense-linear-algebra`](https://hackage.haskell.org/package/dense-linear-algebra) | Fast, native dense linear algebra primitives | [Brian O'Sullivan](https://github.com/bos), [Alexey Khudyakov](https://github.com/Shimuuar) | 0.1.0 (a) | \n\n(a) : To be updated\n\nNB: Remember to bump version numbers and change web links accordingly when moving in contributed packages.\n\n\n\n\n\n## Contributing\n\n1. Open an issue (https://github.com/DataHaskell/dh-core/issues) with a description of what you want to work on (if it's not already open)\n2. Assign or add yourself to the issue contributors\n3. Pull from `dh-core:master`, start a git branch, add code \n4. Add tests \n5. Update the changelog, describing briefly your changes and their possible effects\n6.\n\n* If you're working on a contributed package (see next section), increase the version number in the Cabal file accordingly\n\n* If you bumped version numbers, make sure these are updated accordingly in the Travis CI .yaml file\n\n7. Send a pull request with your branch, referencing the issue\n8. `dh-core` admins : merge only _after_ another admin has reviewed and approved the PR\n\n\n### GHC and Stackage compatibility\n\nTested against :\n\n- Stackage nightly-2019-02-27 (GHC 8.6.3)\n\n\n\n## Development information and guidelines\n\n### Dependencies\n\nWe use the [`stack`](https://docs.haskellstack.org/en/stable/README/) build tool.\n\nSome systems /might/ need binaries and headers for these additional libraries:\n\n* zlib\n* curl\n\n(however if you're unsure, first try building with your current configuration).\n\nNix users should set `nix.enable` to `true` in the `dh-core/dh-core/stack.yaml` file.\n\n\n### Building instructions\n\nIn the `dh-core/dh-core` subdirectory, run \n\n    $ stack build\n\nand this will re-build the main project and the contributed packages.\n\nWhile developing this `stack` command can come in handy : it will trigger a re-build and run the tests every time a file in the project is modified:\n\n    $ stack build --test --ghc-options -Wall --file-watch\n\n## Testing\n\nExample : \n\n    $ stack test core:doctest core:spec\n\nThe `\u003cproject\u003e:\u003ctest_suite\u003e` pairs determine which tests will be run. \n\n\n## Continuous Integration (TravisCI)\n\nTravis builds `dh-core` and its hosted projects every time a commit is pushed to Github. \nCurrently the `dh-core/.travis.yml` script uses the following command to install the GHC compiler, build the project and subprojects with `stack`, run the tests and build the Haddock documentation HTMLs:\n\n    - stack $ARGS --no-terminal --install-ghc test core:spec core:doctest dense-linear-algebra:spec --haddock\n\n\n## Visualizing the dependency tree of a package\n\n`stack` can produce a .dot file with the dependency graph of a Haskell project, which can then be rendered by the `dot` tool (from the [`graphviz`](https://graphviz.gitlab.io/_pages/Download/Download_source.html) suite).\nFor example, in the following command the output of `stack dot` will be piped into `dot`, which will produce a SVG file called `deps.svg`:\n\n`stack dot --external --no-include-base --prune rts,ghc-prim,ghc-boot-th,template-haskell,transformers,containers,deepseq,bytestring,time,primitive,vector,text,hashable | dot -Tsvg \u003e deps.svg`\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataHaskell%2Fdh-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDataHaskell%2Fdh-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataHaskell%2Fdh-core/lists"}