Skip to content

Commit e62ad50

Browse files
FransMeerhoffFransMeerhoff
authored andcommitted
Merge branch 'development'
2 parents 3242143 + 90fa201 commit e62ad50

File tree

640 files changed

+16532
-7403
lines changed

Some content is hidden

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

640 files changed

+16532
-7403
lines changed

CHANGES.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
1-
21
JASP Release Notes
32
==================
43

4+
Version 0.8.5
5+
-------------
6+
7+
Improvements:
8+
- Network module: new clustering table/plot
9+
- ANOVA : simple effects
10+
- ANOVA : fix for repeated contrast
11+
- Logistic regression: changes to stepwise regression.
12+
- Logistic regression : AIC fior variable selection & removal p-values
13+
14+
Bugfixes:
15+
- Independent sample Bayesian t-test #2196
16+
- Wrong valid percent in frequency table #2202
17+
- Improve ODS Importer #2167
18+
19+
520
Version 0.8.4
621
-------------
722

Docs/development/jasp-building-guide.md

Lines changed: 77 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ JASP requires several dependencies which are documented below.
1919

2020
JASP depends on:
2121

22-
- [Qt (5+)](http://qt-project.org)
22+
- [Qt (5.10 + QtWebEngine)](http://qt-project.org)
2323
- [R](http://cran.r-project.org)
2424
- [boost](http://boost.org)
2525
- [libarchive](http://libarchive.org/)
@@ -32,29 +32,35 @@ Windows
3232

3333
Building JASP under windows is the most temperamental, and the versions listed here are known to work; slight variations on these numbers probably won't work.
3434

35-
- [Qt 5.2.1 win64 GCC 4.8.2](https://static.jasp-stats.org/development/x64-Qt-5.2.1+QtCreator-3.0.1-(gcc-4.8.2-seh).7z)
36-
- [R 3.3.3 win64](https://static.jasp-stats.org/development/R3.3%20Win%20JASP%200.8.5.zip)
35+
- [R 3.3.3 win64](https://static.jasp-stats.org/development/R3.3%20Win%20JASP%200.8.6.zip)
3736
- [boost 1.64.0](https://static.jasp-stats.org/development/boost_1_64_0.zip)
38-
- [boost 1.64.0 binaries, libarchive binaries](https://static.jasp-stats.org/development/Additional%20Binary%20Deps%20Win64%20for%20JASP%20(2017-06-06).zip)
37+
- [boost 1.64.0 binaries, libarchive binaries](https://static.jasp-stats.org/development/Build-Binaries-Windows-64-qt510.zip)
38+
- [Visual Studio 2017] (https://www.visualstudio.com/downloads/) Download community version
3939

40-
Qt: JASP for windows is built as 64-bit and is built with Mingw-W64. The Qt project does not ship a 64-bit version of Qt based on Mingw-W64, and so we rely on a version from [here](http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/Qt-Builds/). Once downloaded and unzipped to the desired location, it is necessary to run the `QtSDK-x86_64/qtbinpatcher.exe`, so it knows about it's current location.
41-
42-
dlls: It is necessary to copy the four files libgcc_s_seh-1.dll, libstdc++-6.dll, libwinpthread-1.dll and libgomp-1.dll from QtSDK-x86_64/bin into the build directory as well.
40+
Qt: JASP for windows is built as 64-bit and is built with Visual Studio 2017.
4341

4442
The directory structure should be as follows:
4543

4644
[+] jasp-desktop < from github >
4745
[+] boost_1_64_0
4846
[-] build-JASP- ... < build directory, created by QtCreator >
4947
[+] R
50-
- libgcc_s_seh-1.dll
51-
- libstdc++-6.dll
52-
- libwinpthread-1.dll
53-
- libgomp-1.dll
54-
- libboost_system-mgw48-mt-1_64.a
55-
- libboost_filesystem-mgw48-mt-1_64.a
56-
- libarchive.dll.a
57-
- libarchive.dll
48+
- JASP-R-Interface.dll
49+
- JASP-R-Interface.lib
50+
- archive.dll.lib
51+
- libarchive.dll
52+
- libboost_date_time-vc141-mt-1_64.lib
53+
- libboost_date_time-vc141-mt-gd-1_64.lib
54+
- libboost_filesystem-vc141-mt-1_64.lib
55+
- libboost_filesystem-vc141-mt-gd-1_64.lib
56+
- libboost_system-vc141-mt-1_64.lib
57+
- libboost_system-vc141-mt-gd-1_64.lib
58+
- libeay32.dll
59+
- libgcc_s_seh-1.dll
60+
- libgomp-1.dll
61+
- libstdc++-6.dll
62+
- libwinpthread-1.dll
63+
- ssleay32.dll
5864

5965

6066
Mac OS X
@@ -63,73 +69,79 @@ To build JASP on mac you need to clone the JASP repository and download the foll
6369

6470
0. Clone the JASP repository
6571
1. [XCode](https://developer.apple.com/xcode/) Easiest would be via the App Store.
66-
2. [Qt 5.4.0](https://download.qt.io/archive/qt/) Newer version not supported yet.
67-
3. [R 3.3.3](https://static.jasp-stats.org/development/R3.3%20OSX%20JASP%200.8.5.zip) This contains R and the packages
68-
4. [boost 1.64.0](https://static.jasp-stats.org/development/boost_1_64_0.zip)
69-
5. [boost 1.64.0 binaries, libarchive binaries](https://static.jasp-stats.org/development/Additional%20Binary%20Deps%20OSX%20for%20JASP%20(2017-06-06).zip)
72+
2. [Qt 5.10.1 + QtWebEngine](https://download.qt.io/archive/qt/). Tick: MacOS and Qt WebEngine
73+
3. [R 3.3.3](https://static.jasp-stats.org/development/R3.3%20OSX%20JASP%200.8.6.zip) This contains R and the packages. Unzip this file and set it as a framework in the build folder as shown below.
74+
4. [boost 1.64.0](https://static.jasp-stats.org/development/boost_1_64_0.zip). Unzip this file in the JASP folder.
75+
5. [boost 1.64.0 binaries, libarchive binaries](https://static.jasp-stats.org/development/Build-Binaries-OSX-64-qt510.zip). Unzip this file in both release and debug build folders.
7076

7177
The directory structure should be as follows:
7278

7379
[+] JASP
74-
[-] code
75-
[+] jasp-desktop < from github >
76-
[-] build
77-
[-] debug < Build debug directory for QtCreator >
78-
- libboost_system-clang-mt-1_64.a
79-
- libboost_filesystem-clang-mt-1_64.a
80-
- libarchive.a
81-
- libz.a
82-
[-] release < Build release directory for QtCreator >
83-
- libboost_system-clang-mt-1_64.a
84-
- libboost_filesystem-clang-mt-1_64.a
85-
- libarchive.a
86-
- libz.a
87-
[+] boost_1_64_0
88-
[-] Frameworks
89-
[-] R.framework
90-
[-] Versions
91-
[+] 3.3
92-
80+
[-] jasp-desktop < from github >
81+
[-] buildDebug510 < Build debug directory for QtCreator >
82+
- libboost_system-clang-mt-1_64.a
83+
- libboost_filesystem-clang-mt-1_64.a
84+
- libarchive.a
85+
- libz.a
86+
- libJASP-R-Interface.1.0.0.dylib
87+
- libJASP-R-Interface.dylib
88+
[-] buildRelease510 < Build release directory for QtCreator >
89+
- libboost_system-clang-mt-1_64.a
90+
- libboost_filesystem-clang-mt-1_64.a
91+
- libarchive.a
92+
- libz.a
93+
- libJASP-R-Interface.1.0.0.dylib
94+
- libJASP-R-Interface.dylib
95+
[-] boost_1_64_0
96+
[-] Frameworks
97+
[-] R.framework
98+
[-] Versions
99+
[+] 3.3
93100

94101
0. **Clone** the JASP repository into a folder of your choice. Our default choice is *~/desktop/JASP/* and cloning results in the creating of *~/desktop/JASP/jasp-desktop*.
95102
1. **XCode**: Qt on OS X relies on XCode to function, you can install this through the App Store. It's easiest if you install this, run it, accept the license agreement, and then close it down before installing Qt.
96-
2. **Qt**: building JASP on OS X is pretty robust, but for the moment we're restricted to QT 5.4. We will upgrade to a newer version soon. **Note**: *For xcode 8 and above, to accept the license, Qt (v5.4) tries to find xcrun instead of xcodebuild, and the following has to be done,*
97-
- Open the file: *Qt_install_folder/5.4/clang_64/mkspecs/features/mac/default_pre.prf*
98-
- Replace the line *isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null")))* by *isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")))*
99-
3. **R 3.3.3**: Create the folder */Frameworks* in the directory of your choice in step 0. For our default choice this results in *~/desktop/JASP/Frameworks/* first and subsequently *~/desktop/JASP/Frameworks/R.frameworks*.
100-
4. **boost 1.64.0**: Unzip these files in the JASP folder. In our case, this results in *~/desktop/JASP/boost_1_64_0/*
101-
5. **boost 1.64.0 binaries, libarchive binaries**: We're almost there! Fire up QT and try to build JASP. QT will automatically create a */build-JASP-....* directory. In our case this leads to *~/desktop/JASP/build-JASP-Desktop_Qt_5_5_1_clang_64bit-Debug*. QT will stop building JASP as it requires additional files. Thus, unzip the **boost 1.64.0 binaries, libarchive binaries** files and put them into the */build-JASP-....* directory that Qt created.
102-
6. Build JASP again from Qt. The first build might take a while, but after the first time it'll go very smoothly.
103+
2. **Qt**: Install Qt5.10.1 with MacOS and Qt WebEngine.
104+
105+
![Image of Qt Installer](https://static.jasp-stats.org/images/jasp2.InstallQt.png)
106+
107+
2.a. **Configure Qt5.10.1**: Left top menu: Qt Creator - Preference. Left menu: "Build & Run", tab: "Kits". Auto-detect should give "Desktop Qt 5.10.1 clang 64bit". Click on this. Choose the compiler **Clang (x86 64bit in /usr/bin)** for both C and C++.
108+
109+
![Image of Qt Configuration](https://static.jasp-stats.org/images/jasp2a.ConfigureQt.png)
110+
111+
2.b. **Configure project**: Click "Projects" in the left ribbon and provide the "debug build" and "release build" folders with the correct compilers. This should look like:
112+
113+
![Image of Project debug](https://static.jasp-stats.org/images/jasp2b.1.ConfigureProjectDebug.png)
114+
115+
and like:
116+
117+
![Image of Project release](https://static.jasp-stats.org/images/jasp2b.2.ConfigureProjectRelease.png)
118+
119+
In both case, I've added the flag "-j4" to make use of all my four cores on my mac.
103120

121+
5. In the end, your folder should be structured as follows:
122+
123+
![Image of folder structure](https://static.jasp-stats.org/images/jasp5.FolderStructure.png)
124+
125+
where the blue files are the binaries that are added manually.
104126

105127
Linux
106128
-----
107129

108130
### Build
109131

110132
#### Ubuntu (and alike)
133+
To build JASP under Ubuntu (17.10+), debian, and derivatives, you will need:
134+
```
135+
sudo apt-get install libboost-dev r-base-core r-cran-rcpp r-cran-rinside libqt5widgets5 qtwebengine5-dev libqt5webchannel5-dev libqt5svg5-dev qt5-qmake libarchive-dev libboost-filesystem-dev libboost-system-dev libjsoncpp-dev qt5-default qtcreator
136+
```
111137

112-
Jonathon maintains a number of packages for JASP and it's development under linux in his PPA [here](https://launchpad.net/~jonathon-love/+archive/ubuntu/jasp)
113-
114-
To build JASP under Ubuntu, debian, and derivatives, you will need:
115-
116-
- qt5-default
117-
- qt5-qmake
118-
- libqt5widgets5
119-
- libqt5webkit5-dev
120-
- libqt5svg5-dev
121-
- libboost-dev
122-
- libboost-filesystem-dev
123-
- libboost-system-dev
124-
- r-base-core
125-
- r-cran-rcpp
126-
- r-cran-rinside *
127-
- libarchive-dev
138+
Then you start qtcreator and open JASP.pro, run qmake and build all. After that you should be able to run JASP.
128139

129140
#### Fedora
130141
Under Fedora, you need these packages:
131142
- qt-devel
132-
- qt5-qtwebkit-devel
143+
- qt5-qtwebengine-devel (probably)
144+
- qt5-qtwebchannel-devel (probably)
133145
- boost-devel
134146
- libarchive-devel
135147

@@ -148,17 +160,9 @@ sudo ln -s /usr/lib64/R/ /usr/lib/R
148160
### Runtime
149161
#### Ubuntu (and alike)
150162
In order to run, you will need (Ubuntu and alike):
151-
152-
- r-cran-bayesfactor *
153-
- r-cran-lme4
154-
- r-cran-afex *
155-
- r-cran-car *
156-
- r-cran-effects *
157-
- r-cran-logspline *
158-
- r-cran-hypergeo *
159-
- r-cran-rjson
160-
161-
Those marked with asterisks are available from Jonathon's PPA.
163+
```
164+
sudo apt-get install libjsoncpp1 r-base-core r-cran-rcpp r-cran-rinside r-cran-bayesfactor r-cran-lme4 r-cran-afex r-cran-car r-cran-effects r-cran-logspline r-cran-lsmeans r-cran-plotrix r-cran-rjson r-cran-vcd r-cran-vcdextra r-cran-ggplot2 r-cran-hypergeo libqt5webenginewidgets5 libqt5webengine5 libqt5webenginecore5 libqt5svg5 openssl
165+
```
162166

163167
### Fedora
164168
It works under Fedora, if you install these R packages manually in R:

JASP-Common/JASP-Common.pro

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,30 @@
11

22
QT -= gui
3-
QT += webkitwidgets
3+
QT -= core
44

55
DESTDIR = ..
66
TARGET = JASP-Common
77
TEMPLATE = lib
88
CONFIG += staticlib
9-
10-
windows:CONFIG += c++11
11-
linux:CONFIG += c++11
12-
macx:CONFIG += c++11
9+
CONFIG += c++11
1310

1411
macx:INCLUDEPATH += ../../boost_1_64_0
1512
windows:INCLUDEPATH += ../../boost_1_64_0
1613

1714

1815
windows:LIBS += -lole32 -loleaut32 -larchive.dll
1916

20-
21-
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter -Wno-unused-local-typedef
17+
macx:QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter -Wno-unused-local-typedef
2218
macx:QMAKE_CXXFLAGS += -Wno-c++11-extensions
23-
QMAKE_CXXFLAGS += -Wno-deprecated-declarations
19+
macx:QMAKE_CXXFLAGS += -Wno-deprecated-declarations
2420
macx:QMAKE_CXXFLAGS += -Wno-c++11-long-long
2521
macx:QMAKE_CXXFLAGS += -Wno-c++11-extra-semi
2622
macx:QMAKE_CXXFLAGS += -stdlib=libc++
2723
macx:QMAKE_CXXFLAGS += -DBOOST_INTERPROCESS_SHARED_DIR_FUNC
2824

29-
windows:QMAKE_CXXFLAGS += -DBOOST_USE_WINDOWS_H
25+
windows:QMAKE_CXXFLAGS += -DBOOST_USE_WINDOWS_H -DNOMINMAX -D__WIN32__ -DBOOST_INTERPROCESS_BOOTSTAMP_IS_SESSION_MANAGER_BASED
26+
27+
INCLUDEPATH += $$PWD/
3028

3129
SOURCES += \
3230
analysis.cpp \
@@ -45,14 +43,9 @@ SOURCES += \
4543
ipcchannel.cpp \
4644
label.cpp \
4745
labels.cpp \
48-
lib_json/json_internalarray.inl \
49-
lib_json/json_internalmap.inl \
50-
lib_json/json_reader.cpp \
51-
lib_json/json_value.cpp \
52-
lib_json/json_valueiterator.inl \
53-
lib_json/json_writer.cpp \
5446
options/option.cpp \
5547
options/optionboolean.cpp \
48+
options/optiondoublearray.cpp \
5649
options/optioninteger.cpp \
5750
options/optionintegerarray.cpp \
5851
options/optionlist.cpp \
@@ -101,19 +94,11 @@ HEADERS += \
10194
ipcchannel.h \
10295
label.h \
10396
labels.h \
104-
lib_json/autolink.h \
105-
lib_json/config.h \
106-
lib_json/features.h \
107-
lib_json/forwards.h \
108-
lib_json/json_batchallocator.h \
109-
lib_json/json.h \
110-
lib_json/reader.h \
111-
lib_json/value.h \
112-
lib_json/writer.h \
11397
libzip/archive.h \
11498
libzip/archive_entry.h \
11599
options/option.h \
116100
options/optionboolean.h \
101+
options/optiondoublearray.h \
117102
options/optioni.h \
118103
options/optioninteger.h \
119104
options/optionintegerarray.h \
@@ -132,5 +117,34 @@ HEADERS += \
132117
tempfiles.h \
133118
utils.h \
134119
version.h \
135-
options/optionvariablei.h
120+
options/optionvariablei.h \
121+
jsonredirect.h
122+
123+
#exists(/app/lib/*) should only be true when building flatpak
124+
macx | windows | exists(/app/lib/*) {
125+
DEFINES += JASP_LIBJSON_STATIC
126+
127+
SOURCES += \
128+
lib_json/json_internalarray.inl \
129+
lib_json/json_internalmap.inl \
130+
lib_json/json_reader.cpp \
131+
lib_json/json_value.cpp \
132+
lib_json/json_valueiterator.inl \
133+
lib_json/json_writer.cpp
134+
135+
HEADERS += \
136+
lib_json/autolink.h \
137+
lib_json/config.h \
138+
lib_json/features.h \
139+
lib_json/forwards.h \
140+
lib_json/json_batchallocator.h \
141+
lib_json/json.h \
142+
lib_json/reader.h \
143+
lib_json/value.h \
144+
lib_json/writer.h
145+
} else {
146+
linux: LIBS += -ljsoncpp
147+
CONFIG(debug, debug|release) { DEFINES+=JASP_DEBUG }
148+
}
149+
136150

JASP-Common/analysis.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// Copyright (C) 2013-2017 University of Amsterdam
2+
// Copyright (C) 2013-2018 University of Amsterdam
33
//
44
// This program is free software: you can redistribute it and/or modify
55
// it under the terms of the GNU General Public License as published by
@@ -87,11 +87,15 @@ void Analysis::setImageResults(Json::Value results)
8787
imageSaved(this);
8888
}
8989

90-
void Analysis::setUserData(Json::Value userData, bool silient)
90+
void Analysis::setImageEdited(Json::Value results)
91+
{
92+
_imgResults = results;
93+
imageEdited(this);
94+
}
95+
96+
void Analysis::setUserData(Json::Value userData)
9197
{
9298
_userData = userData;
93-
if ( ! silient)
94-
userDataLoaded(this);
9599
}
96100

97101
const Json::Value &Analysis::results() const
@@ -125,6 +129,8 @@ Analysis::Status Analysis::parseStatus(string name)
125129
return Analysis::Aborted;
126130
else if (name == "SaveImg")
127131
return Analysis::SaveImg;
132+
else if (name == "EditImg")
133+
return Analysis::SaveImg;
128134
else if (name == "exception")
129135
return Analysis::Exception;
130136
else
@@ -168,6 +174,8 @@ Json::Value Analysis::asJSON() const
168174
break;
169175
case Analysis::SaveImg:
170176
status = "SaveImg";
177+
case Analysis::EditImg:
178+
status = "EditImg";
171179
case Analysis::Exception:
172180
status = "exception";
173181
break;

0 commit comments

Comments
 (0)