Skip to content

Commit e4d90db

Browse files
andped10rozyczkoarm61
authored
Pre release for v0.0.9 (#180)
* some fixes related to model add/remove * xmltodict -> XMLSerializer + other assorted fixes * experiment-less analysis now allows for calculator change * Allow experiment-less projects to be loaded * Fixed project info layout * make sure model view is updated on project reset. Normally, this would be another slot in the main proxy, but we are introducing race condition for the projectInfoChanged signal and it's better to explicitly call the updater. * Update INSTALLATION.md * Fixed proper display of layers * Update ROADMAP.md added example project files task * updates after meeting with Jos * more effort at the start of 2024 * easyreflectometrylib v0.0.3 * use version 0.0.7-beta for development * remove version pinning * revert change * require python 3.9 * pinning scipy and pyinstaller to minor version * alphabetic sorting and fix syntax error * version pinning syntax * updating version to new dev cycle * moved layer specifc gui part to dir * code cleaning * Revert "code cleaning" This reverts commit 475d5ef. * Revert "moved layer specifc gui part to dir" This reverts commit 905c42b. * update pyinstaller * dont autoexclude _multiprocessing * no auto exclude * comment out auto_exclude * syntax * Revert "no auto exclude" This reverts commit 936e706. * no autoexclude * auto_exclude * only multiprocess is excluded * syntax * also test for windows * code cleaning * timer * timer * make it more cleat when running is testmode * from v0.0.8 to v0.0.9 --------- Co-authored-by: Piotr Rozyczko <piotr.rozyczko@gmail.com> Co-authored-by: Andrew McCluskey <andrew.mccluskey@ess.eu>
1 parent 883dfad commit e4d90db

6 files changed

Lines changed: 46 additions & 16 deletions

File tree

.github/workflows/macos-windows-build.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
# This pipeline
2-
# - build executeable for MacOS
3-
# - build executeable for Windows
4-
# - for main executeables are deployed
1+
# This pipeline
2+
# EITHER
3+
# - create installer for MacOS
4+
# OR
5+
# - create installer for Windows
6+
# - test installer
7+
# - for main executeables are deployed
58
# -- offline installers to GitHub releases
69
# -- online installers FTP server
710

@@ -82,7 +85,6 @@ jobs:
8285
run: python ${{ env.SCRIPTS_PATH }}/InstallApp.py
8386

8487
- name: Run app in testmode and quit
85-
if: runner.os == 'macOS'
8688
run: python ${{ env.SCRIPTS_PATH }}/RunApp.py --testmode
8789

8890
- name: Create zip archive of offline app installer

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# CHANGELOG
22

3+
### Changes 0.0.9
4+
5+
- Changes to make the MacOS version runable
6+
37
### Changes 0.0.8
48

59
- Just a retry of the release protocol

EasyReflectometryApp/Gui/Components/UserTutorialsController.qml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,26 @@ EaElements.RemoteController {
1515
visible: false
1616
audioEnabled: false
1717

18+
// Timer for Creating delay
19+
Timer {
20+
id: timer
21+
}
22+
function delay(delayTime, cb) {
23+
timer.interval = delayTime;
24+
timer.repeat = false;
25+
timer.triggered.connect(cb);
26+
timer.start();
27+
}
28+
1829
Component.onCompleted: {
1930
if (EaGlobals.Variables.isTestMode) {
20-
print('*** TEST MODE ***')
21-
Qt.quit()
31+
// To ensure that Qt starts up there is a delay before the it is shut down again.
32+
// When testing the application it should stay alive longer than the delay.
33+
print('*** TEST MODE START ***')
34+
delay(30000, function() {
35+
print('*** TEST MODE 30 s DELAYED END ***')
36+
Qt.quit()
37+
})
2238
// runTestTutorialTimer.start()
2339
}
2440
}

INSTALLATION.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
To make the installation of EasyReflectometry as easy as possible, we prepare packaged releases for three major operating systems:
44

5-
- [Windows](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.8-beta/EasyReflectometry_Windows_x86-32_v0.0.8-beta.exe)
6-
- [macOS](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.8-beta/EasyReflectometry_macOS_x86-64_v0.0.8-beta.zip) (built on 10.15)
7-
- [Linux](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.8-beta/EasyReflectometry_Linux_x86-64_v0.0.8-beta.zip) (built on Ubuntu-20.04)
5+
- [Windows](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.9-beta/EasyReflectometry_Windows_x86-32_v0.0.9-beta.exe)
6+
- [macOS](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.9-beta/EasyReflectometry_macOS_x86-64_v0.0.9-beta.zip) (built on 10.15)
7+
- [Linux](https://github.com/easyScience/EasyReflectometryApp/releases/download/v0.0.9-beta/EasyReflectometry_Linux_x86-64_v0.0.9-beta.zip) (built on Ubuntu-20.04)
88

99
If the relevant EasyReflectometry installation does not work on your system, then please try installation from source.
1010

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ build-backend = "hatchling.build"
88
# Note that while the project is called EasyReflectometryApp
99
# the application itself is EasyReflectometry.
1010
name = "EasyReflectometry"
11-
version = "0.0.8-beta"
11+
version = "0.0.9"
1212
description = "Making reflectometry data analysis and modelling easy."
1313
authors = [
1414
{name = "Andrew R. McCluskey", email = "andrew.mccluskey@ess.eu"},
@@ -43,7 +43,7 @@ dependencies = [
4343
# These optional dependencies are for building the
4444
# application as a part of a Github Action.
4545
ci = [
46-
'pyinstaller==6.4.*',
46+
'pyinstaller==6.5.*',
4747
'scipy==1.12.*',
4848
'dephell_licenses>=0.1.7',
4949
'pywin32-ctypes>=0.2.0; platform_system == "win32"',
@@ -156,7 +156,7 @@ missing_pyside2_plugins = { macos = [], ubuntu = ['Qt/plugins/xcbglintegrations'
156156
missing_other_libraries = {macos = [], ubuntu = [], windows = ['libs/libiomp5md.dll', 'libs/opengl32.dll'] }
157157
auto_exclude = { macos = ['_tkinter'], ubuntu = ['_tkinter'], windows = [''], all = [ 'lib2to3', '_bisect',
158158
'_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw',
159-
'_curses', '_elementtree', '_hashlib', '_heapq', '_multibytecodec', '_multiprocessing',
159+
'_curses', '_elementtree', '_hashlib', '_heapq', '_multibytecodec',
160160
'_opcode', '_queue', '_opcode', '_uuid', '_win32sysloader', 'grp', 'readline', 'termios' ] }
161161
manual_exclude = [ 'mfc*', 'msvcp*', 'VCRUNTIME*',
162162
'*Qt*3D*', '*Qt*Bluetooth*', '*Qt*Bodymovin*', '*Qt*Gamepad*', '*Qt*Location*',

tools/Scripts/RunApp.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
import os, sys
55
import Functions, Config
6-
6+
import time
77

88
CONFIG = Config.Config()
9+
DELAYED_QUIT = 30
910

1011
def appExePath() -> str:
1112
"""
@@ -27,15 +28,22 @@ def runApp():
2728
message = f'run {CONFIG.app_name}'
2829
if len(sys.argv) == 1:
2930
Functions.run(appExePath())
31+
elif sys.argv[1] == '--testmode':
32+
time_start = time.time()
33+
Functions.run(appExePath(), '--testmode')
34+
time_end = time.time()
35+
if time_end - time_start < DELAYED_QUIT:
36+
# Delay is set in UserTutorialsController.qml
37+
Functions.printFailMessage(f"Application ran for less the {DELAYED_QUIT} sec. Probably import error.")
38+
sys.exit(1)
3039
else:
3140
#if 'test' in sys.argv[1:]:
3241
# Functions.createDir(CONFIG.screenshots_dir)
3342
Functions.run(appExePath(), *sys.argv[1:])
3443
except Exception as exception:
3544
Functions.printFailMessage(message, exception)
3645
sys.exit(1)
37-
else:
38-
Functions.printSuccessMessage(message)
46+
3947

4048
if __name__ == "__main__":
4149
runApp()

0 commit comments

Comments
 (0)