Skip to content

Commit a8f1003

Browse files
authored
Merge pull request #383 from haskell-distributed/monorepo-structure
Monorepo structure and cleanup
2 parents 1003248 + c84a34e commit a8f1003

File tree

329 files changed

+47086
-295
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

329 files changed

+47086
-295
lines changed

.github/workflows/cabal.yml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Continuous integration
2+
3+
on:
4+
push:
5+
paths-ignore:
6+
- 'website/*/**'
7+
- 'README.md'
8+
pull_request:
9+
10+
jobs:
11+
continuous-integration:
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
ghc-version:
16+
- "8.10.7"
17+
- "9.0.2"
18+
- "9.2.8"
19+
- "9.4.5"
20+
- "9.6.4"
21+
- "9.8.2"
22+
- "9.10.1"
23+
operating-system:
24+
- "ubuntu-latest"
25+
26+
runs-on: ${{ matrix.operating-system }}
27+
28+
steps:
29+
- uses: actions/checkout@v4
30+
31+
- name: Install cabal/ghc
32+
uses: haskell-actions/setup@v2
33+
id: setup-haskell
34+
with:
35+
ghc-version: ${{ matrix.ghc-version }}
36+
cabal-version: '3.12.1.0'
37+
38+
- name: Generate freeze file
39+
run: |
40+
cabal configure --enable-tests --test-show-details=direct
41+
cabal freeze --minimize-conflict-set
42+
43+
- name: Cache cabal work
44+
uses: actions/cache@v4
45+
with:
46+
path: |
47+
dist-newstyle
48+
${{ steps.setup-haskell.outputs.cabal-store }}
49+
# We are using the hash of 'cabal.project.local' so that different levels
50+
# of optimizations are cached separately
51+
key: ${{ runner.os }}-${{ hashFiles('cabal.project', 'cabal.project.local') }}-cabal-install
52+
53+
- name: Build dependencies only
54+
run: cabal build all --only-dependencies
55+
56+
- name: Build all packages
57+
run: cabal build all
58+
59+
- name: Run all tests
60+
run: cabal test all

.github/workflows/distributed-process-ci.yml

Lines changed: 0 additions & 39 deletions
This file was deleted.

.gitignore

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
1-
dist/
2-
dist-newstyle/
3-
.cabal-sandbox
1+
dist
2+
dist-*
3+
cabal-dev
4+
*.o
5+
*.hi
6+
*.hie
7+
*.chi
8+
*.chs.h
9+
*.dyn_o
10+
*.dyn_hi
11+
.hpc
12+
.hsenv
13+
.cabal-sandbox/
414
cabal.sandbox.config
5-
.stack*
6-
stack.yaml.lock
15+
*.prof
16+
*.aux
17+
*.hp
18+
*.eventlog
19+
.stack-work/
20+
cabal.project.local
21+
cabal.project.local~
22+
.HTF/
23+
.ghc.environment.*
24+
.*.swo
25+
.*.swp
26+
_site
27+
.DS_Store

CONTRIBUTING.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,57 @@
1-
See https://github.com/haskell-distributed/cloud-haskell/blob/master/CONTRIBUTING.md.
1+
# Cloud Haskell contributor guidelines
2+
3+
## Building
4+
5+
After cloning, you should be able to build all packages in this repository like so:
6+
7+
```
8+
$ cabal build all
9+
```
10+
11+
You can also build a specific package like so:
12+
13+
```
14+
cabal build <some-package>
15+
```
16+
17+
You can have more control over the behavior of `cabal` by configuring, first. For example, if you want to disable optimizations for faster compilation:
18+
19+
```
20+
$ cabal configure --disable-optimization
21+
$ cabal build all
22+
```
23+
24+
The allowed arguments for `cabal configure` are [documented here](https://cabal.readthedocs.io/en/stable/cabal-project-description-file.html#global-configuration-options).
25+
26+
Tests for all packages can be run with:
27+
28+
```
29+
$ cabal test all
30+
```
31+
32+
or again, you can test a specific package `<some-package>` using:
33+
34+
```
35+
$ cabal test <some-package>
36+
```
37+
38+
### Building with specific dependencies
39+
40+
Often, we want to build a package with a specific version of a dependency, for testing or debugging purposes. In this case, recall that you can always constrain cabal using the `--constraint` flag. For example, if I want to build `distributed-process-async` with `async==2.2.5`:
41+
42+
```
43+
$ cabal build distributed-process-async --constraint="async==2.2.5"
44+
```
45+
46+
## Contributing changes upstream
47+
48+
To contribute changes, you first need a fork. First, fork the `distributed-process` repository following the [instructions here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo).
49+
50+
Then publish branches:
51+
52+
```
53+
$ cabal test all # Check that everything works before proceeding.
54+
$ git push --set-upstream <username> <branch-name>
55+
```
56+
57+
Then you can [create a pull-request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to contribute changes back to `distributed-process`.

cabal.project

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
packages: packages/*/**.cabal
2+
3+
package distributed-process-tests
4+
flags: +tcp

distributed-process-tests/CONTRIBUTING.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

distributed-process-tests/README.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

distributed-process-tests/Setup.hs

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2024-03-25 David Simmons-Duffin <dsd@caltech.edu> 0.2.7
2+
3+
* Bump dependencies to build with ghc-9.8.
4+
5+
2018-06-14 Alexander Vershilov <alexander.vershilov@tweag.io> 0.2.6
6+
7+
* Update dependency bounds
8+
* Export all documented functions (Issue #9)
9+
10+
2016-02-16 Facundo Domínguez <facundo.dominguezy@tweag.io> 0.2.3
11+
12+
* Update dependency bounds.
13+
14+
# HEAD
15+
16+
* Added initial GenServer module
17+
* Added Timer Module
18+
* Moved time functions into Time.hs
19+
* Added Async API
20+
* Added GenProcess API (subsumes lower level GenServer API)
21+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Copyright Tim Watson, 2012-2013.
2+
3+
All rights reserved.
4+
5+
Redistribution and use in source and binary forms, with or without
6+
modification, are permitted provided that the following conditions are met:
7+
8+
* Redistributions of source code must retain the above copyright
9+
notice, this list of conditions and the following disclaimer.
10+
11+
* Redistributions in binary form must reproduce the above
12+
copyright notice, this list of conditions and the following
13+
disclaimer in the documentation and/or other materials provided
14+
with the distribution.
15+
16+
* Neither the name of the author nor the names of other
17+
contributors may be used to endorse or promote products derived
18+
from this software without specific prior written permission.
19+
20+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

0 commit comments

Comments
 (0)