Compare commits

...

5 Commits

Author SHA1 Message Date
Andrew Senetar e822a67b38
Force correct python environment for tox on windows 2020-12-28 21:18:16 -06:00
Andrew Senetar c30c3400d4
Fix typo in .travis.yml 2020-12-28 21:07:49 -06:00
Andrew Senetar d539517525
Update Windows Requirements & CI
- Merge windows requirements into requirements.txt and requirements-extra.txt
- Update tox.ini to always use build.py
- Update build.py to have module only option
- Update tox.ini to text python 3.9
- Update .travis.yml to test 3.8 and 3.9 on newer Ubuntu LTS
-Update .travis.yml to work with changes to windows tox
(also update windows to 3.8)
2020-12-28 20:59:01 -06:00
Andrew Senetar bf7d720126
Merge pull request #746 from glubsy/PR_iconpath
Make icon path relative
2020-12-28 14:47:34 -06:00
glubsy 452d1604bd Make icon path relative
* Removes the hardcoded path to the icon in the .desktop file
* Allows themes to override the default application icon (icons are searched for in theme paths first)
* Debian: create symbolic link in /usr/share/pixmaps that points to the icon file
* Arch: the same thing is done by PKGBUILD maintainers downstream
2020-12-06 18:36:52 +01:00
9 changed files with 29 additions and 42 deletions

View File

@ -5,11 +5,6 @@ install:
script: tox script: tox
matrix: matrix:
include: include:
- os: "linux"
dist: "xenial"
python: "3.8"
script:
- tox -e style
- os: "linux" - os: "linux"
dist: "xenial" dist: "xenial"
python: "3.6" python: "3.6"
@ -17,18 +12,16 @@ matrix:
dist: "xenial" dist: "xenial"
python: "3.7" python: "3.7"
- os: "linux" - os: "linux"
dist: "xenial" dist: "focal"
python: "3.8" python: "3.8"
- os: "linux"
dist: "focal"
python: "3.9"
- os: "windows" - os: "windows"
language: shell language: shell
python: "3.7" python: "3.8"
env: "PATH=/c/python37:/c/python37/Scripts:$PATH" env: "PATH=/c/python38:/c/python38/Scripts:$PATH"
before_install: before_install:
- choco install python --version=3.7.6 - choco install python --version=3.8.6
- choco install make - cp /c/python38/python.exe /c/python38/python3.exe
- cp /c/python37/python.exe /c/python37/python3.exe script: tox -e py38
before_script:
- pip3 install -r requirements-windows.txt
- python3 build.py
script:
- tox -e WINDOWS

View File

@ -21,7 +21,7 @@ To build with a different python version 3.5 vs 3.7 or 32 bit vs 64 bit specify
$ cd <dupeGuru directory> $ cd <dupeGuru directory>
$ py -3.7 -m venv .\env $ py -3.7 -m venv .\env
$ .\env\Scripts\activate $ .\env\Scripts\activate
$ pip install -r requirements.txt -r requirements-windows.txt $ pip install -r requirements.txt
$ python build.py $ python build.py
$ python run.py $ python run.py
@ -37,8 +37,6 @@ Then the following execution of the makefile should work. Pass the correct valu
$ make PYTHON='py -3.7' $ make PYTHON='py -3.7'
$ make run $ make run
NOTE: Install PyQt5 & cx-Freeze with requirements-windows.txt into the venv before running the packaging scripts in the section below.
### Generate Windows Installer Packages ### Generate Windows Installer Packages
You need to use the respective x86 or x64 version of python to build the 32 bit and 64 bit versions. The build scripts will automatically detect the python architecture for you. When using build.py make sure the resulting python works before continuing to package.py. NOTE: package.py looks for the 'makensis' executable in the default location for a 64 bit windows system. Run the following in the respective virtual environment. You need to use the respective x86 or x64 version of python to build the 32 bit and 64 bit versions. The build scripts will automatically detect the python architecture for you. When using build.py make sure the resulting python works before continuing to package.py. NOTE: package.py looks for the 'makensis' executable in the default location for a 64 bit windows system. Run the following in the respective virtual environment.

View File

@ -54,6 +54,12 @@ def parse_args():
dest="normpo", dest="normpo",
help="Normalize all PO files (do this before commit).", help="Normalize all PO files (do this before commit).",
) )
parser.add_option(
"--modules",
action="store_true",
dest="modules",
help="Build the python modules.",
)
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
return options return options
@ -182,6 +188,8 @@ def main():
build_mergepot() build_mergepot()
elif options.normpo: elif options.normpo:
build_normpo() build_normpo()
elif options.modules:
build_pe_modules()
else: else:
build_normal() build_normal()

View File

@ -3,5 +3,5 @@
"longname": "dupeGuru", "longname": "dupeGuru",
"execname": "dupeguru", "execname": "dupeguru",
"arch": "any", "arch": "any",
"iconpath": "/usr/share/dupeguru/dgse_logo_128.png" "iconpath": "dupeguru"
} }

View File

@ -8,4 +8,5 @@ all:
chmod +x src/run.py chmod +x src/run.py
cp -R src/ "$(CURDIR)/debian/{pkgname}/usr/share/{execname}" cp -R src/ "$(CURDIR)/debian/{pkgname}/usr/share/{execname}"
cp "$(CURDIR)/debian/{execname}.desktop" "$(CURDIR)/debian/{pkgname}/usr/share/applications" cp "$(CURDIR)/debian/{execname}.desktop" "$(CURDIR)/debian/{pkgname}/usr/share/applications"
ln -s "/usr/share/{execname}/dgse_logo_128.png" "$(CURDIR)/debian/{pkgname}/usr/pixmaps/{execname}.png"
ln -s "/usr/share/{execname}/run.py" "$(CURDIR)/debian/{pkgname}/usr/bin/{execname}" ln -s "/usr/share/{execname}/run.py" "$(CURDIR)/debian/{pkgname}/usr/bin/{execname}"

View File

@ -3,5 +3,5 @@
"longname": "dupeGuru", "longname": "dupeGuru",
"execname": "dupeguru", "execname": "dupeguru",
"arch": "any", "arch": "any",
"iconpath": "/usr/share/dupeguru/dgse_logo_128.png" "iconpath": "dupeguru"
} }

View File

@ -2,3 +2,4 @@ pytest>=5,<6
flake8 flake8
tox-travis tox-travis
black black
pyinstaller>=3.4,<4.0; sys_platform == 'win32'

View File

@ -2,4 +2,6 @@ Send2Trash>=1.3.0
sphinx>=1.2.2 sphinx>=1.2.2
polib>=1.0.4 polib>=1.0.4
hsaudiotag3k>=1.1.3 hsaudiotag3k>=1.1.3
distro>=1.5.0 distro>=1.5.0
PyQt5 >=5.4,<6.0; sys_platform == 'win32'
pywin32>=200; sys_platform == 'win32'

24
tox.ini
View File

@ -1,35 +1,19 @@
[tox] [tox]
envlist = style,py36,py37,py38 envlist = py36,py37,py38,py39
skipsdist = True skipsdist = True
skip_missing_interpreters = True skip_missing_interpreters = True
[testenv] [testenv]
whitelist_externals =
make
setenv = setenv =
PYTHON="{envpython}" PYTHON="{envpython}"
commands = commands =
make modules python build.py --modules
py.test core hscommon flake8
{posargs:py.test core hscommon}
deps = deps =
-r{toxinidir}/requirements.txt -r{toxinidir}/requirements.txt
-r{toxinidir}/requirements-extra.txt -r{toxinidir}/requirements-extra.txt
[testenv:style]
deps =
{[testenv]deps}
flake8
commands =
flake8
[testenv:WINDOWS]
deps =
{[testenv]deps}
-r{toxinidir}/requirements-windows.txt
commands =
python build.py
python package.py
[flake8] [flake8]
exclude = .tox,env,build,cocoalib,cocoa,help,./qt/dg_rc.py,cocoa/run_template.py,./pkg exclude = .tox,env,build,cocoalib,cocoa,help,./qt/dg_rc.py,cocoa/run_template.py,./pkg
max-line-length = 120 max-line-length = 120