Skip to content

Commit

Permalink
Version 7.1.0
Browse files Browse the repository at this point in the history
Version 7.1.0
  • Loading branch information
msevestre authored May 30, 2017
2 parents 05e2af4 + 3656786 commit 78bb3fd
Show file tree
Hide file tree
Showing 55 changed files with 202 additions and 23 deletions.
1 change: 1 addition & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Here are some ways ***you*** can contribute:
* by submitting new models
* by reporting bugs
* by fixing bugs
* by implementing new features (e.g. new algorithms)
* by commenting on ongoing discussions
* by writing or editing documentation
* by writing tests
Expand Down
47 changes: 47 additions & 0 deletions GETTING_STARTED.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Developer Getting Started

## Installing the prerequisites
1. Install Visual Studio 2015 Community Edition or better. [Visual Studio Install](https://www.visualstudio.com/downloads/)

1. Install Ruby and Rake. [Ruby Install](https://rubyinstaller.org/downloads/)

1. Install MikTeX. [MikTeX Install](https://github.com/Open-Systems-Pharmacology/MiKTeX/releases/download/v2.9.3/MikTex.2.9.3.msi).

1. Obtain Devexpress License and Install

* DevExpress WinForms Controls and Libraries is used in the graphical user interface of the suite. You will need to obtain a license in order to work with the user interface.

* DevExpress only provides trials on their current product offering, so you may have to acquire the license prior to downloading an older version if that's required to build the suite.

* Obtain your license from DevExpress [DevExpress Order](https://www.devexpress.com/Support/Order/). Then get the installer for the version mentioned above that's required [DevExpress Install](https://www.devexpress.com/ClientCenter/DownloadManager/)

1. Install MSXML 4 [MSXML4 Installer](https://www.microsoft.com/en-ca/download/details.aspx?id=15697)

1. Install nuget.exe and ensure that it is in your `PATH` variable [NuGet Install](https://dist.nuget.org/index.html)

1. Add `OSPSuite.Core` as a nuget source using the following command
```
nuget sources add -name ospsuite-core -source https://ci.appveyor.com/nuget/ospsuite-core
```

## Building and Running

1. Clone the repository locally (either from the open-systems-pharmacology organization or from your own fork)

1. For PK-Sim and MoBi, run the `postclean.bat` command

There are several requirements to running the software that are not automatically performed when building with Visual Studio. An automated `postclean` batch file is used to take care of these tasks.

1. Compile Source

1. Run Tests

1. Run the Application

## Useful Tips

1. The suite is using appveyor as a CI server which also provides a nuget feed that should be registered on your system. This will prevent you from having to enter AppVeyor password with each new instance of Visual Studio. This option is only available for developers with access to the appveyor feed. If you wish to be granted access to the feed, please let us know by posting a request in the forum.

```
nuget sources add -Name AppVeyor -source https://ci.appveyor.com/nuget/open-systems-pharmacology-ci -User <USER_NAME> -Password <MY_PASSWORD>
```
120 changes: 120 additions & 0 deletions GIT_WORKFLOW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
The proposed workflow will use `git merge` and `git rebase` for different tasks. Our goal is to establish a workflow that will ensure a clean and useful public history graph. The public history should be concise yet clear and reflect the work of the team in a cohesive way.

We will use `git merge` to incorporate the entire set of commit of one branch (typically the `develop` branch) into another one (typically `master`).

We will use `git rebase` for all other type of code integration (sub tasks of a given swim lane etc..).

# Definition
* The `master` branch is the ultimate source of truth. It should always be possible to use the code on `master` and create a production setup.

* The `develop` branch is the branch where the development is taking place. Ultimately, when a new release is created, the commits in `develop` will be merged back into `master`.

* A `feature` branch is a short lived branch that is used during the implementation of a given task. It will be deleted once the feature is implemented and merged into `develop`.

* The git version to use is `1.8.5` or newer. This will allow the setting of the configuration option `git pull -rebase = preserve`. This option specify that _on pull, rebase should be used instead of merge_. But incoming merge commit should be preserved.

* Unless required otherwise, all work should be performed on a fork of the repository. A _Pull Request (PR)_, will be used to incorpate changes into the `develop` branch.

# Use Case: Implementing Task "426 it should be possible to delete observed data"
_Note:_ A task is a cohesive unit of work. This can be part of a bigger feature or a bug fix. We assume that a fork of the repository has already been created.

1. Create a `feature` branch with a **meaningful name** containing the id of the task. We will need to acquire the latest changes from the remote `develop` branch first and then create the feature branch
* With option git pull -rebase = preserve
```
git checkout develop
git pull upstream #<= git fetch upstream develop && git rebase -p upstream/develop
git checkout -b 426-delete-observed-data
```
* Without option git pull -rebase = preserve
```
git checkout develop
git fetch upstream develop
git rebase -p upstream/develop
git checkout -b 426-delete-observed-data
```
2. Do work in your `feature` branch, committing early and often.
3. Rebase frequently to incorporate any upstream changes in the `develop` branch (to resolve conflicts as early as possible)
```
git fetch upstream develop
git rebase -p upstream/develop
```
4. Once work on the feature is complete, you are ready to create a PR. The first step is to push the code to your own repo and then create a PR onto the original repo for review:
```
git fetch upstream develop
git rebase -p upstream/develop
git push -u origin 426-delete-observed-data
```

At that stage, your local branch `426-delete-observed-data` is set to track the remote branch `426-delete-observed-data` so you will be able to use the simple `git push` command from now on to udate your repo.

5. Create pull request on github so that your change may be reviewed. The pull request should be between the `develop` branch on the `upstream` repo and the `feature` branch on your `fork`. The PR message **should** use the task id and the whole description of the task. For example `Fixes #426 it should be possible to delete observed data`.

6. Upon code review, you may have to change the code slightly to take reviewer comments and concerns into account. If so just continue committing your work on your local `426-delete-observed-data` branch and repeat the steps above.

7. Once the latest push has been accepted and all tests are passing, the reviewer can accept the pull request by using the `Squash and Merge` option. This will effectively squash all your commit into one and rebase the one commit from `426-delete-observed-data` onto `develop`.

8. Delete your remote branch `426-delete-observed-data` as it is not required anymore

9. Locally you can now repeat the synchronization of your develop branch
```
git checkout develop
git pull upstream
```
10. Your local `426-delete-observed-data` can also be deleted.
```
git branch -d 426-delete-observed-data
```
11. Optionally you may wish to remove any pointers locally to remote branch that do not exist anymore
```
git remote prune origin
```
12. A useful alias can be created in git to avoid repeating the same commands again and again for synchronizing remote `develop` branch with local `feature` branch.

```
[alias]
sync = !git fetch upstream $1 && git rebase upstream/$1
syncd = !git sync develop
```
Simply call `git syncd` to synchronize changes with the `develop` branch. To synchronize with an hypothetical other branch called `experience`, use `git sync experience`

# Use Case: Creating a new release 6.5.1
The work on the `develop` branch is finished and we are ready to tag the version officially. A tagged version will be a version that has been approved for work in production.

This is extremely simple with github using the concept of release.

1. Click on the `releases` section from the `Code` tab
1. Click on `Draft new release`
1. Pick the `develop` branch or the latest commit on `develop` corresponding to the commit to tag
1. Name the tag `v6.5.1`.
1. Give a meaningful name to the release `Release 6.5.1`
1. Optionally enter a description in the description field. This is typically where release notes should be written using the power of markdown. Files can also be attached to the description (manual, notes etc)
1. Publish release! _Great job_


# Use Case: Creating a hot fix
Release 6.5.1 has been out for a few weeks and a nasty bug (issue 756 on the bug tracking system) was reported that can corrupt a project file. We need to create a hot fix asap to address the issue. The hot fix should be applied to 6.5.1 obviously, but the actual fix should also be pushed to other branches such as `develop`

1. Create a branch based on the tag and create a new branch to collect all fixes for the hotfix
```
git fetch upstream
git checkout tags/v6.5.1 -b hotfix/6.5.2
git push -u upstream hotfix/6.5.2
```

2. Create a branch for the one issue to solve
```
git checkout -b 756-project-corrupted
```

3. Implement hot fix in this local branch
4. Push commit to start the code review process

```
git sync hotfix/6.5.2
git push origin 756-project-corrupted
```
5. After completed review, rebase PR into `hotfix/6.5.2`
6. Repeat for all issues that will be part of the hotfix (one or more)
7. Create release off of `hotfix/6.5.2` called Release `6.5.2` with tag `v6.5.2`
8. Merge branch `hotfix/6.5.2` into `develop` (fixing potential conflicts if any)
9. Delete branch `hotfix/6.5.2`
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ the focus of its counterpart, MoBi®, is at the molecular level.
However, both tools extend to additional physiological scales as illustrated.

## Code Status
[![Setup status](https://ci.appveyor.com/api/projects/status/1p3m417amhra2gic/branch/master?svg=true&passingText=Suite-Setup)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/suite/branch/master)
[![PK-Sim status](https://ci.appveyor.com/api/projects/status/65aa66s8aj2tcp45/branch/master?svg=true&passingText=PK-Sim)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/pk-sim/branch/develop)
[![MoBi status](https://ci.appveyor.com/api/projects/status/qgv5bpwys5snl7mk/branch/master?svg=true&passingText=MoBi)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/mobi/branch/develop)
[![Matlab status](https://ci.appveyor.com/api/projects/status/2pxt8se6bgjvrrh0/branch/master?svg=true&passingText=Matlab-Toolbox)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/matlab-toolbox/branch/develop)
[![R status](https://ci.appveyor.com/api/projects/status/6wssc33akfebg3yk/branch/master?svg=true&passingText=R-Toolbox)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/r-toolbox/branch/develop)
[![Setup status](https://ci.appveyor.com/api/projects/status/1p3m417amhra2gic/branch/develop?svg=true&passingText=Suite-Setup)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/suite/branch/develop)
[![PK-Sim status](https://ci.appveyor.com/api/projects/status/65aa66s8aj2tcp45/branch/develop?svg=true&passingText=PK-Sim)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/pk-sim/branch/develop)
[![MoBi status](https://ci.appveyor.com/api/projects/status/qgv5bpwys5snl7mk/branch/develop?svg=true&passingText=MoBi)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/mobi/branch/develop)
[![Matlab status](https://ci.appveyor.com/api/projects/status/2pxt8se6bgjvrrh0/branch/develop?svg=true&passingText=Matlab-Toolbox)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/matlab-toolbox/branch/develop)
[![R status](https://ci.appveyor.com/api/projects/status/6wssc33akfebg3yk/branch/develop?svg=true&passingText=R-Toolbox)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/r-toolbox/branch/develop)
[![Installation Validator status](https://ci.appveyor.com/api/projects/status/hffh219angc4svdh/branch/develop?svg=true&passingText=InstallationValidator)](https://ci.appveyor.com/project/open-systems-pharmacology-ci/installationvalidator/branch/develop)


## Software installation
Expand Down Expand Up @@ -54,6 +55,6 @@ Minimum: 2 GB
Everyone interacting in the Open Systems Pharmacology community (codebases, issue trackers, chat rooms, mailing lists etc...) is expected to follow the Open Systems Pharmacology [code of conduct](https://github.com/Open-Systems-Pharmacology/Suite/blob/master/CODE_OF_CONDUCT.md).

## Contribution
We encourage contribution to the Open Systems Pharmacology community. Before getting started please read the [contribution guidelines](https://github.com/Open-Systems-Pharmacology/Suite/blob/master/CONTRIBUTING.md). If you are contributing code, please be familiar with the [coding standard](https://github.com/Open-Systems-Pharmacology/Suite/blob/master/CODING_STANDARD.md).
We encourage contribution to the Open Systems Pharmacology community. Before getting started please read the [contribution guidelines](https://github.com/Open-Systems-Pharmacology/Suite/blob/master/CONTRIBUTING.md). If you are contributing code, please be familiar with the [coding standards](https://github.com/Open-Systems-Pharmacology/Suite/blob/master/CODING_STANDARDS.md).

All trademarks within this document belong to their legitimate owners.
6 changes: 3 additions & 3 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ install:
Copy-Item c:\netfx452.exe .
- ps: >-
(new-object net.webclient).DownloadFile('https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe', 'C:\\vc_redist.x86.exe')
(new-object net.webclient).DownloadFile('http://go.microsoft.com/fwlink/?LinkID=615459&clcid=0x409', 'C:\\vc_redist.x86.exe')
Copy-Item C:\vc_redist.x86.exe .
Expand All @@ -25,7 +25,7 @@ build_script:
rake "create_setup[%APPVEYOR_BUILD_VERSION%]"

artifacts:
- path: '**/output/*.exe'
- path: '**/output/OSPSuite*.exe'
- path: '**/output/versions.txt'
name: 'versions'

Expand All @@ -36,4 +36,4 @@ notifications:

skip_commits:
files:
- '*.md'
- '*.md'
20 changes: 10 additions & 10 deletions rakefile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@
VARIABLES[:ProductVersion] = @product_version
VARIABLES[:ProductFullVersion] = @product_full_version

MSI[:pksim] = create_package('pk-sim')
MSI[:mobi] = create_package('mobi')
MSI[:matlab] = create_package('matlab-toolbox')
MSI[:r] = create_package('r-toolbox')
MSI[:pksim] = create_package('pk-sim', 'PK-Sim')
MSI[:mobi] = create_package('mobi', 'MoBi')
MSI[:matlab] = create_package('matlab-toolbox', 'Matlab-Toolbox')
MSI[:r] = create_package('r-toolbox', 'R-Toolbox')
MSI[:validator] = create_package('installationvalidator', 'InstallationValidator')

Rake::Task['downlad_all_packages'].invoke

create_versions_file
# create_setup 'no', 'SBSuite-WebInstall'

create_setup 'yes', 'Setup-Full'
create_setup compressed:'no', output_name:'OSPSuite-WebInstall'
create_setup compressed:'yes', output_name:'OSPSuite-Full'
end

def create_versions_file
Expand Down Expand Up @@ -79,8 +79,8 @@ def run_light(exe)
Utils.run_cmd(Wix.light, command_line)
end

def create_setup(compressed, name)
exe = "#{output_dir}/#{name}.#{@product_full_version}.exe"
def create_setup(compressed:'yes', output_name:'OSPSuite')
exe = File.join(output_dir,"#{output_name}.#{@product_full_version}.exe")
run_candle compressed
run_light exe
end
Expand Down Expand Up @@ -119,7 +119,7 @@ def prepare_msi(msi)

def download(package)
file_name = package[:artifact_name]
uri = "https://ci.appveyor.com/api/projects/#{APPVEYOR_ACCOUNT_NAME}/#{package[:appveyor_project_name]}/artifacts/#{package[:artifact_path]}#{file_name}?branch=#{package[:branch]}"
uri = "https://ci.appveyor.com/api/projects/#{APPVEYOR_ACCOUNT_NAME}/#{package[:appveyor_project_name]}/artifacts/#{file_name}?branch=#{package[:branch]}"
download_file package[:appveyor_project_name], file_name, uri
end

Expand Down
14 changes: 12 additions & 2 deletions setup/bundle.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@
Compressed="$(var.Compressed)"
PerMachine="yes"
Permanent="yes"
DownloadUrl="https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe"
DownloadUrl="http://go.microsoft.com/fwlink/?LinkID=615459&amp;clcid=0x409"
/>

<MsiPackage
Id="miktex"
Vital ="yes"
SourceFile="MikTex.msi"
Compressed="$(var.Compressed)"
DownloadUrl="https://github.com/Open-Systems-Pharmacology/MiKTeX/releases/download/v2.9.3/MikTex.2.9.3.msi"
DownloadUrl="https://github-cloud.s3.amazonaws.com/releases/84485378/05b6377e-04dd-11e7-8b42-d741e6480b85.msi?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=AKIAISTNZFOVBIJMK3TQ%2F20170525%2Fus-east-1%2Fs3%2Faws4_request&amp;X-Amz-Date=20170525T013711Z&amp;X-Amz-Expires=300&amp;X-Amz-Signature=143e7b92881523242e51c3d3c6157a40f588a226b3e6149fb3ff1c5efaaa962e&amp;X-Amz-SignedHeaders=host&amp;actor_id=0&amp;response-content-disposition=attachment%3B%20filename%3DMikTex.2.9.3.msi&amp;response-content-type=application%2Foctet-stream"
>
<MsiProperty Name='TARGETDIR' Value='[InstallFolder]'/>
</MsiPackage>
Expand Down Expand Up @@ -85,6 +85,16 @@
>
<MsiProperty Name='TARGETDIR' Value='[InstallFolder]'/>
</MsiPackage>

<MsiPackage
Id="validator"
Vital="yes"
SourceFile="$(var.validator)"
Compressed="$(var.Compressed)"
DownloadUrl="$(var.validatorDownloadPath)"
>
<MsiProperty Name='TARGETDIR' Value='[InstallFolder]'/>
</MsiPackage>
</Chain>

</Bundle>
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4 changes: 2 additions & 2 deletions versions.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<applications>
<application name="PK-Sim">
<version>7.0.0</version>
<version>7.1.0</version>
</application>
<application name="MoBi">
<version>7.0.0</version>
<version>7.1.0</version>
</application>
</applications>

0 comments on commit 78bb3fd

Please sign in to comment.