diff --git a/.appveyor.yml b/.appveyor.yml index 40d02455..719dedc5 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,7 +1,6 @@ # Build glabels windows installer. # -# Currently, only builds snapshots and is truggered by the travis CI AppImage build, which -# moves the "continuous" release/tag to head. This script deploys into this moved release. +# Currently, only builds snapshots and is triggered by the travis CI build. version: 3.99.0.{build} @@ -23,25 +22,32 @@ init: - git config --global core.autocrlf true install: + # Locate Qt installation - set QTDIR=c:\Qt\5.11\msvc2017_64 - - set PATH=%PATH%;%QTDIR%/bin + - set PATH=%PATH%;%QTDIR%\bin + # Zlib and QREncode + - vcpkg install zlib:x64-windows + - vcpkg install libqrencode:x64-windows + - vcpkg integrate install build_script: - git checkout master # re-attach to master to satisfy auto version tooling - mkdir build - cd build - - cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_PREFIX_PATH=%QTDIR% .. + - cmake -G "Visual Studio 15 2017 Win64" .. -DCMAKE_PREFIX_PATH=%QTDIR% -DCMAKE_TOOLCHAIN_FILE=C:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake - cmake --build . --config Release - ctest -C Release - cpack -C Release -G NSIS64 + - set /P VERSION= /usr" | cut -d " " -f 2-3 | sort | uniq - - ls -lh ./gLabels*.AppImage - - mv ./gLabels*.AppImage glabels-continuous-x86_64.AppImage - - wget -c https://github.com/jimevins/uploadtool/raw/master/upload.sh - - bash ./upload.sh glabels-continuous-x86_64.AppImage +# blocklist branches: except: - - /.*/ - - # Do not build tags that we create when we upload to GitHub Releases - - /^(?i:continuous)$/ + - /.*/ # Everything +# safelist branches: only: - master + +matrix: + include: + + ##################### + # + # Linux build + # + ##################### + - name: "Linux" + os: linux + dist: bionic + sudo: require + env: + - QMAKE_PATH=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake + install: + - sudo apt-get -y install qtbase5-dev libqt5svg5-dev qttools5-dev + - sudo apt-get -y install xvfb + - sudo apt-get -y install pkgconf libqrencode-dev + - sudo apt-get -y install barcode + # Install zint from source + - wget https://downloads.sourceforge.net/project/zint/zint/2.6.5/zint-2.6.5.tar.gz && tar xzf zint-2.6.5.tar.gz && ( cd zint-2.6.5 && mkdir build && cd build && cmake .. && make && sudo make install ) + - export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH + + before_script: + - git fetch --unshallow # restore repository depth to properly count commits in auto versioning + - git checkout master # re-attach to master to satisfy auto versioning + + script: + - mkdir build + - cd build + - cmake .. -DCMAKE_INSTALL_PREFIX=/usr + - make -j4 + - xvfb-run ctest + - VERSION=$(cat VERSION) + + after_success: + # Download AppImage QT deployment tool (local snapshot -- original at github/probono) + - wget -c "https://github.com/jimevins/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" + - chmod a+x linuxdeployqt*.AppImage + # + # Create AppImage + # + - make DESTDIR=appdir install + - unset QTDIR; unset QT_PLUGIN_PATH + - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmake=${QMAKE_PATH} -bundle-non-qt-libs + - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmake=${QMAKE_PATH} -appimage + - mv ./gLabels*.AppImage glabels-${VERSION}-x86_64.AppImage + + before_deploy: + - git config --local user.name "Jim Evins (Travis CI)" + - git config --local user.email evins@snaught.com + - git tag -f -a glabels-${VERSION} -m "glabels-${VERSION} CI" + + deploy: + provider: releases + api_key: ${GITHUB_TOKEN} + file: + - glabels-${VERSION}-x86_64.AppImage + draft: false + prerelease: true + skip_cleanup: true + + + ##################### + # + # MacOS build + # + ##################### + - name: "MacOS" + os: osx + + install: + - brew install qt + + before_script: + - git fetch --unshallow # restore repository depth to properly count commits in auto versioning + - git checkout master # re-attach to master to satisfy auto versioning + + script: + - mkdir build + - cd build + - cmake .. -DCMAKE_PREFIX_PATH=/usr/local/opt/qt + - make -j4 + #- ctest --verbose + - VERSION=$(cat VERSION) + + +# ##################### +# # +# # Windows build +# # +# ##################### +# - name: "Windows" +# os: windows +# +# before_script: +# - git fetch --unshallow # restore repository depth to properly count commits in auto versioning +# - git checkout master # re-attach to master to satisfy auto versioning +# +# script: +# - mkdir build +# - cd build +# #- cmake .. -G "Visual Studio 15 2017 Win64" +# #- cmake --build . --config Release +# #- ctest -C Release +# #- VERSION=$(cat VERSION) +# +# after_success: +# # +# # Create Windows Installer +# # +# #- cpack -C Release -G NSIS64 diff --git a/README.md b/README.md index 301632f4..efc01574 100644 --- a/README.md +++ b/README.md @@ -9,24 +9,17 @@ ## What is gLabels-qt? -gLabels-qt is the development version of the next major version of gLabels (4.0). +gLabels-qt is the development version of the next major version of gLabels (a.k.a. glabels-4). ## What's new in gLabels 4? -- Based on the Qt5 framework. -- Updated UI based on typical workflows. -- Intended to be a cross-platform application. - * So far, it has been built and tested under Linux, Windows 7, and Windows 10. (Windows testing is still very intermittent.) - - -## Status - -gLabels-qt has been under off-and-on development for several years. -It is still missing several features to bring it in parity with glabels-3.4. These include - -- Optional Evolution and VCard backends. -- An online manual +- A complete rewrite, based on the Qt5 framework. +- A new UI layout based on common activities. +- Cross-platform support +- User-defined variables +- Support for continuous-roll labels +- Many new product templates ## Download @@ -41,41 +34,29 @@ Continuous integration snapshots are not official releases. These snapshots rep bleeding-edge development (unstable) code. Please, DO NOT use it in a production environment. Do not expect compatibility or consistency of features between snapshots. -| Platform | Files | Notes | -|:---------|:------|:------| -| Linux x86_64 [AppImage](http:appimage.org) | [glabels-continuous-x86_64.AppImage](https://github.com/jimevins/glabels-qt/releases/download/continuous/glabels-continuous-x86_64.AppImage) | Download, make it executable, and run! | -| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Mario Blättermann](https://github.com/mariobl) | -| Ubuntu | [PPA Page](https://code.launchpad.net/~krisives/+archive/ubuntu/glabels-qt) | Maintained by [Kristopher Ives](https://github.com/krisives).
https://github.com/krisives/glabels-qt-packaging | -| Windows x86_64 | [glabels-3.99.0-win64.exe](https://github.com/jimevins/glabels-qt/releases/download/continuous/glabels-3.99.0-win64.exe) | Windows installer | -| Source Code TAR.GZ | [continuous.tar.gz](https://github.com/jimevins/glabels-qt/archive/continuous.tar.gz) | | -| Source Code ZIP | [continuous.zip](https://github.com/jimevins/glabels-qt/archive/continuous.tar.gz) | | +Pre-release Linux [AppImage](http:appimage.org) and Windows installer binaries are available in +**[Releases](https://github.com/jimevins/glabels-qt/releases)**. +Some third-party packages are also available: -## Build Instructions -- [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md) -- [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md) -- Mac Build Instructions (TBD) +| Platform | Files | Notes | +|:----------|:-------------------------------------------------------------------------------------|:--------------------------------------------------------------| +| Archlinux | [Archlinux User Repository Page](https://aur.archlinux.org/packages/glabels-qt-git/) | Maintained by [Mario Blättermann](https://github.com/mariobl) | +| Ubuntu | [PPA Page](https://code.launchpad.net/~krisives/+archive/ubuntu/glabels-qt) | Maintained by [Kristopher Ives](https://github.com/krisives) | -## Help Needed - -* Help is needed to add support to build and package glabels for various platforms and packaging systems. -These include - - Windows (VisualStudio) - - Windows (MINGW) - - Mac - - Linux (flatpak) - - Linux (snap) +## Build Instructions -* Help is needed writing online documentation. +- [Linux Build Instructions](docs/BUILD-INSTRUCTIONS-LINUX.md) +- [Windows Build Instructions](docs/BUILD-INSTRUCTIONS-WINDOWS.md) +- [Mac Build Instructions](docs/BUILD-INSTRUCTIONS-MACOS.md) -* Help is needed writing translations. -* Suggestions. +## Help Needed -* For code contributions, see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). +Please see [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md). ## License @@ -100,12 +81,11 @@ restrictive licensing: gLabels-qt currently includes a version of the glbarcode++ library, located in the "glbarcode/" subdirectory. It is licensed under the GNU LESSER GENERAL PUBLIC LICENSE (LGPL); either version 3 of the License, or (at your option) - any later version -- see the [glbarcode/LICENSE](glbarcode/LICENSE). + any later version. See [glbarcode/LICENSE](glbarcode/LICENSE). ### Template Database The XML files in the "templates/" subdirectory constitute the glabels label database. No copyright is claimed on the facts contained within - the database and can be used for any purpose. However, to clear up any - ambiguity, the DTD file that defines the format of these files is - licensed using the MIT/X license, see [templates/LICENSE](templates/LICENSE). + the database and can be used for any purpose. The files themselves are + licensed using the MIT/X license. See [templates/LICENSE](templates/LICENSE). diff --git a/docs/TODO.md b/docs/TODO.md index 039f6828..45562d99 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,6 +1,41 @@ -To Do List for gLabels 4.0 -- 2018-04-15 +To Do List for gLabels 4.0 -- 2018-10-06 ======================================== +Add programmable margin to text objects +--------------------------------------- +The current built-in fixed margin seems to confuse people when dealing with +different horizontal and vertical alignments. + +Improve print copies UI +----------------------- +As with previous versions of glabels, there should be a way of selecting +the number of sheets to print. Merge printing should be able to be collated +or not, and if printing multiple copies, start on the same first label. + +Printer calibration tool +------------------------ +There desperately needs to be a printer calibration tool. At a minimum +the tool should allow adjusting horizontal and vertical offsets. The +adjustments should be unique to each printer. + +I am thinking of a test page with a cross in the center. It would have a +grid around this cross, indicating how much to adjust x & y. The user +would fold the paper in quaters and use this grid to guestimate the offsets. + +There should be warnings about how printers may drift from calibration or +even not have repeatable results. + +* A more sophisticated tool, could adjust for scaling and skew, but it would +be very difficult to interact with the user on these. + + +Write help documentation +------------------------ + + +Completed List for gLabels 4.0 -- 2018-04-15 +============================================ + Add "User Variables" feature ---------------------------- @@ -27,9 +62,6 @@ Add support for "Continuous Roll" labels * Add option to Properties page to adjust this value -Write help documentation ------------------------- - To Do List for gLabels 4.1 -- 2019-03-17 ========================================