Skip to content

Commit 3c7f767

Browse files
committed
Switch to .NET Core only and use Boogie NuGet package
1 parent 958fbb6 commit 3c7f767

Some content is hidden

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

50 files changed

+138
-3375
lines changed

.gitmodules

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

.travis.yml

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ git:
66
depth: false
77
env:
88
global:
9-
- SOLUTION=cba-NetCore.sln
9+
- SOLUTION=source/Corral.sln
1010
- Z3URL=https://github.com/Z3Prover/z3/releases/download/z3-4.8.8/z3-4.8.8-x64-ubuntu-16.04.zip
1111
# Workaround for GitVersionTask bug in combination with .NET Core SDK 3.1.200
1212
# (see, e.g., https://github.com/dotnet/sdk/issues/10878 and https://github.com/GitTools/GitVersion/issues/2063)
@@ -22,11 +22,6 @@ install:
2222
- export PATH="$(find $PWD/z3* -name bin -type d):$PATH"
2323

2424
script:
25-
- git submodule update --init
26-
27-
# Attach HEADs in submodules to appease GitVersion
28-
- git submodule foreach 'git branch -d master && git checkout -b master'
29-
3025
# Build one configuration
3126
- dotnet build -c ${CONFIGURATION} ${SOLUTION}
3227

@@ -37,7 +32,7 @@ deploy:
3732

3833
# Publish dotnet global tool on nuget.org
3934
- provider: script
40-
script: dotnet nuget push bin/${CONFIGURATION}/Corral*.nupkg -k ${NUGET_API_KEY} -s https://api.nuget.org/v3/index.json
35+
script: dotnet nuget push source/Corral/bin/${CONFIGURATION}/Corral*.nupkg -k ${NUGET_API_KEY} -s https://api.nuget.org/v3/index.json
4136
skip_cleanup: true
4237
on:
4338
all_branches: true
@@ -49,7 +44,7 @@ deploy:
4944
token:
5045
secure: QDinEx1hu7AkjXNnut767Q6g9us91dVQAzxBoI5o+VGfvsLDV/G0VcVXTSWw1oLskxfEdnDuALFORwAvZxAVvRpQVTF1p/fVwsz1WgdjdfV0sm+0KlhTWekIBBMoZ7l7u3bjCFUYw6/7qqD732bUG24iSz7YG2WB6qB1AgS1RhyK9PaHLSfi5jtAAB179Pt00TcXhdT3Vr2v3f6CcSa3z2qOdtwUMLLz6ZSkobnWXE7DIDNXnntCQDCVFTF2JiCGfZpscKw70ufa4Vqr5pd4XJ+LDQGmB+y7ZAG9EIMcG0/c8/c8xac6K6URWmrDUSmTSFEhryM7wqzCpWDtzN9oJic86Lwv5TTHypfIdcM3LpoUoV02mmomyCJ4gL429Ts0FSC9rvIxxYqbIpDihE3yCJwtp5URZ0ZqRdMvc+GtWUqEPuJIkAvw2zP36+BAM3WS4z1ZytuB9RE01g27hg3yyjEBzJc/jkb4V1JW1UZyllCDp/IKv2tcKKv3nx/nuf72MJsixTTS1BgJitVgcO0dT37kP6xQFg2uTvzWUZUssb6PslDAyjaaQr9Fgyh+f87O5p73iMCUe9hivFsYI+ppgmRkx7Bp0aUKK8lBNsvRxPXNodAK1G6PDflmFXRonoRPueG2QHY5xX2zefdXmy2KXp/f2Xsi/Muwy3/h3iDaBHk=
5146
file_glob: true
52-
file: bin/${CONFIGURATION}/Corral*.nupkg
47+
file: source/Corral/bin/${CONFIGURATION}/Corral*.nupkg
5348
skip_cleanup: true
5449
on:
5550
all_branches: true

Properties/AssemblyInfo.cs

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

README.md

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,78 +5,76 @@
55
[![Travis build status][travis-badge]][travis]
66

77

8-
Corral is a solver for the reachability modulo theories problem. Learn more here: http://research.microsoft.com/en-us/projects/verifierq
8+
Corral is a solver for the reachability modulo theories problem. Learn more
9+
here: http://research.microsoft.com/en-us/projects/verifierq
910

10-
## Dependency on Boogie
11+
## Building and Running Corral
1112

12-
Corral has a dependency on [Boogie](https://github.com/boogie-org/boogie), which is provided as a git submodule. To download the specific revision of Boogie that Corral depends on:
13-
14-
```
15-
cd ${CORRAL_DIR}
16-
git submodule init
17-
git submodule update
18-
```
19-
20-
## Building and running Corral on Windows
21-
22-
Here is how you set up Corral.
23-
24-
1. Build `cba.sln`. This solution includes the necessary Boogie projects; there is no longer a separate step to build Boogie.
25-
2. Running Corral requires z3. We have tested Corral against z3 version 4.1; download and copy z3.exe in `bin\debug` folder, alongside the `corral.exe` executable.
26-
3. Corral takes a Boogie program as input. There are regressions provided in `test\regressions` folder. Go to this folder and run `perl check.pl` to run all the regressions. You can run an individual test, for instance, as follows: go to `test\regressions` and do: `..\..\bin\debug\corral.exe 001\001.bpl /flags:001\config`. The flag `/flags:filename` instructs corral to read its flags from the file `filename`.
27-
28-
## Building and Running Corral on Linux using Mono
29-
30-
The following worked for Matt McCutchen on Fedora 23. You may need to change the `TargetFrameworkVersion` to match what your Mono version provides.
31-
```
32-
cd ${CORRAL_DIR}
33-
xbuild /p:TargetFrameworkVersion=v4.5 /p:Configuration=Debug cba.sln
34-
ln -s ${Z3_DIR}/install/bin/z3 ${CORRAL_DIR}/bin/Debug/z3.exe
35-
mono bin/Debug/corral.exe ...
36-
```
37-
38-
## Building and Running Corral using .NET Core
39-
40-
Currently there are separate project and solution files (`*-NetCore.*`) to build Corral with .NET Core, which use GitVersion to attach version numbers to the assemblies and package(s) generated by builds.
13+
Corral is built using [.NET Core](https://dotnet.microsoft.com) and use
14+
GitVersion to attach version numbers to the assemblies and package(s) generated
15+
by builds.
4116

4217
```console
43-
# Attach HEADs in submodules to appease GitVersion
44-
$ git submodule foreach 'git branch -D master && git checkout -b master'
45-
4618
# Build the solution
47-
$ dotnet build cba-NetCore.sln
19+
$ dotnet build source/Corral.sln
4820

4921
# Run the generated executable
50-
$ bin/Debug/netcoreapp3.1/corral ...
22+
$ source/Corral/bin/Debug/netcoreapp3.1/corral ...
5123
```
5224

5325
> :warning: There is currently a know build problem with .NET Core and
5426
> GitVersionTask. The workaround is to set the environment variable
5527
> `MSBUILDSINGLELOADCONTEXT=1` and run `dotnet build-server shutdown`.
5628
5729
Alternatively, Corral can be installed as a [.NET Core Global Tool](https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools):
30+
5831
```console
5932
$ dotnet tool install --global Corral
6033
```
6134

35+
### SMT Solver
36+
37+
Running Corral requires [Z3](https://github.com/Z3Prover/z3). We have tested
38+
Corral against Z3 version 4.8.8.
39+
40+
### Regressions
41+
42+
Corral takes a Boogie program as input. There are regressions provided in
43+
`test\regressions` folder. Go to this folder and run `perl check.pl` to run all
44+
the regressions. You can run an individual test, for instance, as follows: go to
45+
`test\regressions` and do: `${CORRAL_EXE} 001\001.bpl
46+
/flags:001\config`. The flag `/flags:filename` instructs corral to read its
47+
flags from the file `filename`.
48+
6249
## Versioning and Release Automation
6350

64-
The [main.yml](https://github.com/boogie-org/corral/blob/master/.github/workflows/main.yml) workflow will create and push a new tag each time commits are pushed to the master branch (including PR merges). By default, the created tag increments the patch version number from the previous tag. For example, if the last tagged commit were `v2.4.3`, then pushing to master would tag the latest commit with `v2.4.4`. If incrementing minor or major number is desired instead of patch, simply add `#minor` or `#major` to the first line of the commit message. For instance:
51+
The [Bump workflow](.github/workflows/main.yml) will create and push a new tag
52+
each time commits are pushed to the master branch (including PR merges). By
53+
default, the created tag increments the patch version number from the previous
54+
tag. For example, if the last tagged commit were `v2.4.3`, then pushing to
55+
master would tag the latest commit with `v2.4.4`. If incrementing minor or major
56+
number is desired instead of patch, simply add `#minor` or `#major` anywhere in
57+
the commit message. For instance:
58+
6559
> Adding the next greatest feature. #minor
6660
67-
If the last tagged commit were `v2.4.3`, then pushing this commit would generate the tag `v2.5.0`.
61+
If the last tagged commit were `v2.4.3`, then pushing this commit would generate
62+
the tag `v2.5.0`.
6863

69-
For pull-request merges, if minor or major version increments are desired, the first line of the merge commit message can be changed to include `#minor` or `#major`.
64+
For pull-request merges, if minor or major version increments are desired, the
65+
first line of the merge commit message can be changed to include `#minor` or
66+
`#major`.
7067

7168
Note that on each push to `master`, the following will happen:
7269
* A travis build for `master` is triggered.
7370
* The GitHub workflow is also triggered.
74-
* Once the workflow pushes a new tag `vX.Y.Z`, another travis build for `vX.Y.Z` is triggered.
75-
* The travis build for `vX.Y.Z` in Release configuration publishes releases to GitHub and [NuGet.org](https://www.nuget.org/packages/Corral/).
71+
* Once the workflow pushes a new tag `vX.Y.Z`, another travis build for `vX.Y.Z`
72+
is triggered.
73+
* The travis build for `vX.Y.Z` in Release configuration publishes releases to
74+
GitHub and [NuGet.org][nuget].
7675

7776
[license-badge]: https://img.shields.io/github/license/boogie-org/corral?color=blue
7877
[nuget]: https://www.nuget.org/packages/Corral
7978
[nuget-badge]: https://img.shields.io/nuget/v/Corral
8079
[travis]: https://travis-ci.com/boogie-org/corral
8180
[travis-badge]: https://travis-ci.com/boogie-org/corral.svg?branch=master
82-

app.config

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

bin/corral

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

boogie

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

cba-NetCore.csproj

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

0 commit comments

Comments
 (0)