Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #1394 from sardana-org/release-Jul20
Browse files Browse the repository at this point in the history
Release jul20
  • Loading branch information
aureocarneiro authored Sep 18, 2020
2 parents cb75152 + 441030e commit 32badc0
Show file tree
Hide file tree
Showing 340 changed files with 10,245 additions and 9,221 deletions.
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ commit = True
message = Bump version {current_version} to {new_version}
tag = False
tag_name = {new_version}
current_version = 2.8.6
current_version = 3.0.3
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(\-(?P<release>[a-z]+))?
serialize =
{major}.{minor}.{patch}-{release}
Expand Down
29 changes: 29 additions & 0 deletions .github/workflows/publish_pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Publish to PyPI

on:
release:
types: [created]
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+*'

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
- name: Build and publish
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
8 changes: 8 additions & 0 deletions .gitlab-ci-alba.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This file is for configuring the CI/CD for creating (unofficial)
# debian packages for sardana at ALBA
# It has no efect unless you configure your gitlab instance to use it.
# TODO: generalise this so that it does not depend on ALBA's infrastructure

include:
- https://git.cells.es/ctpkg/ci/ctpipeline/raw/master/ctjobdefs-ci.yml
- https://git.cells.es/ctpkg/ci/ctpipeline/raw/master/ctpipeline.yml
45 changes: 7 additions & 38 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ services:
- docker

python:
- "3.6"
- "3.5"

env:
global:
Expand All @@ -18,16 +18,15 @@ env:
matrix:
- TEST="flake8"
- TEST="testsuite" DOCKER_IMG=reszelaz/sardana-test
- TEST="testsuite" DOCKER_IMG=reszelaz/sardana-test:taurus-support-3.x
- TEST="doc" DOCKER_IMG=reszelaz/sardana-test


before_install:
# install flake8 to perform python code style check in the script part
# install it using pip in order to get the newest version
- if [ $TEST == "flake8" ]; then sudo apt-get update -qq ; fi
- if [ $TEST == "flake8" ]; then sudo apt-get install -qq python-pip; fi
- if [ $TEST == "flake8" ]; then sudo pip install flake8; fi
- if [ $TEST == "flake8" ]; then sudo apt-get install -qq python3-pip; fi
- if [ $TEST == "flake8" ]; then sudo pip3 install flake8; fi

install:
# run reszelaz/sardana-test docker container (Debian8 with sardana-deps)
Expand All @@ -38,7 +37,7 @@ install:
- if [ $TEST == "testsuite" ]; then sleep 10; fi

# install sardana in order to create the launcher scripts for servers
- if [ $TEST == "testsuite" ]; then docker exec sardana-test bash -c "cd /sardana && python setup.py install"; fi
- if [ $TEST == "testsuite" ]; then docker exec sardana-test bash -c "cd /sardana && python3 setup.py install"; fi

# start Pool and MacroServer necessary for macro tests
- if [ $TEST == "testsuite" ]; then docker exec sardana-test supervisorctl start Pool; fi
Expand All @@ -50,37 +49,7 @@ script:
# run flake8 check on all python files in the project
- if [ $TEST == "flake8" ]; then ci/flake8_diff.sh; fi
# run the full testsuite
- if [ $TEST == "testsuite" ]; then docker exec sardana-test sardanatestsuite; fi
- if [ $TEST == "testsuite" ]; then docker exec sardana-test xvfb-run -s '-screen 0 1920x1080x24' /bin/bash -c "pytest /usr/local/lib/python3.5/dist-packages/sardana-*.egg/sardana"; fi
# build docs
- if [ $TEST == "doc" ]; then
docker exec -t sardana-test /bin/bash -c "cd /sardana ; sphinx-build -W doc/source/ build/sphinx/html" ;
fi

# deploy sphinx docs to sardana-doc repo if we are on upstream
- if [[ $TEST == "doc" && $TRAVIS_REPO_SLUG == "sardana-org/sardana" ]]; then
pip install doctr ;
docker exec sardana-test /bin/bash -c "touch /sardana/build/sphinx/html/.nojekyll" ;
if [[ $TRAVIS_BRANCH == "develop" ]]; then
doctr deploy . ;
else
doctr deploy "v-$TRAVIS_BRANCH" ;
fi;
fi

doctr:
key-path : ci/github_deploy_key.enc
deploy-repo : sardana-org/sardana-doc
require-master: false
sync: true
built-docs: build/sphinx/html/

deploy:
# deploy to pypi when a version tag is pushed to the official repo
- provider: pypi
user: sardana_bot
password:
secure: "HvZGtw8qFlacssi7FE92+gFgQPRRPvurpPxi/Gq74TeKWU0X4EbWVT3XMdi7sb7yA7JQlOGIGtY3ofzEdrKgKcEsrxxKbeSW7foDf3+AlmMF7c31ePxkqBCGMSAxsaCjKJR2sVtBNiycp0I7LWYeKlzFNY2W8aZW9dnpkC9aD/oGdNRJlCVGq912xaTnXRxmUrh+2IeUqsXKqfih7E0Qw99VXOLFdHIHtoPGN5ka+tvLp+zNFMi1q2HUyix4P/aQ10BwE5t1onfdSBBh7bzZTINoUVuN1bstNXYcoqfVMAbOoeArIIr7z41eYd8G8WMTXJp2MFrO61AW6xK8htB07RX2eaEWq7KT4zazG5vP/Skayr7ofnB/d3Rs1BOre9ttScJIxwyQLhL60WeM9NyCoHVjNdKYK5gNHX4se/6FOzmHm1VgQgI9bzyfIIAoSSyUL/5KOGdOwhMPSij5AT1YIy8RSe7efm+xw3md+wcmEsbaMX9VEy2YgTL0/nmFHrEA+9HV0I5xkFBQ8BHuK0YFubQ9rG99B1GwF0Vl85M+Ylp5D1/p70sXCHEUk3SbOcg9Kz0TTisDMuDT2ajJYGylg7/OskI5OwOBbEndP8OUPesm62V1ciQcKjH2L81yWajRPSfd/OPjoMwG+XdaG5rR7m2FACXvyhEOIeK1Mt41MvM="
on:
repo: sardana-org/sardana
tags: true
condition: "$TEST == testsuite && $DOCKER_IMG == reszelaz/sardana-test && $TRAVIS_TAG =~ ^[0-9]+.[0-9]+.[0-9]+$"
- if [ $TEST == "doc" ]; then docker exec -t sardana-test /bin/bash -c "cd /sardana ; sphinx-build -W doc/source/ build/sphinx/html" ; fi
- if [ $TEST == "doc" ]; then docker exec -t sardana-test /bin/bash -c "touch /sardana/build/sphinx/html/.nojekyll" ; fi
203 changes: 203 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,207 @@ All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
This file follows the formats and conventions from [keepachangelog.com]

## [3.0.3] 2020-09-18

### Added

* Support to Python >= 3.5 (#1089, #1173, #1201, #1313, #1336)
* Showscan online based on pyqtgraph (#1285)
* multiple plots in the same MultiPlot widget (as opposed to different panels before)
* option to group curves by x-axis or individual plot per curve
* new showscan console script
* support fast scans: update curves at a fix rate (5Hz)
* better curve colors and symbols
* Measurement group (Taurus extension) configuration API with methods to
set/get: enabled, output, plot type, plot axes, timer, monitor, synchronizer,
value ref enabled, value ref pattern parameters(#867, #1415, #1416)
* Experiment configuration (expconf) macros
* Measurement group configuration macros: `set_meas_conf` and `get_meas_conf` (#690)
* Active measurement group selection macros: `set_meas` and `get_meas` (#690)
* Pre-scan snapshot macros: `lssnap`, `defsnap` and `udefsnap` (#1199)
* Automatic scan statistics calculation with the `scanstats` macro as the `post-scan`
hook stored in the `ScanStats` environment variable (#880, #1402)
* `pic`, `cen` to move the scanned motor to the peak and center of FWHM values
respectively (#890)
* `where` macro to print the scanned motor position (#890)
* `plotselect` macro for configuring channels for online scan plotting (#824)
* `genv` macro for printing environment variable values (#888)
* QtSpock widget (`QtSpock` and `QtSpockWidget`) - *experimental* (#1109)
* Dump info on channels if MG acq fails in step scan, ct and uct (#1308)
* Add timestamp to element's dumped information (#1308)
* Quality to `SardanaAttribute` (#1353)
* Instruments creation and configuration in sar_demo (#1198)
* Allow _experimental channel acquisition_ with PoolChannelTaurusValue (PCTV) widget (#1203)
* Documentation to Taurus Extensions of Sardana Devices: MacroServer part
and the whole Sardana part of the Qt Taurus Extensions (#1228, #1233)
* Advertise newfile macro in case no ScanDir or ScanFile is set (#1254, #1258)
* Improve scans to detect if a ScanFile od ScanDir are set but empty (#1262)
* Possibility to view debug messages in `DoorOutput` widget - enable/disable
using context menu option (#1242)
* Improve user experience with PMTV:
* Store PMTV (motor widget) configurations: *expert view* and *write mode*
(relative or absolute) permanently as TaurusGUI settings (#1286)
* Do not create encoder widget in PMTV if the motod does not have encoder
in order to avoid errors comming from the polling (#209, #1288)
* Change limit switches indicators from buttons to labels (#210, #1290)
* Improve documentation (#1241)
* Better macro exception message and hint to use `www` (#1191)
* Stress tests (on the Taurus level) for measurements (#1353)
* Add basic information to "how to write custom recorder" to
the documentation (#1275)
* Register a TaurusValue factory for pool widgets (#1333)
* Direct links to Sardana-Taurus model API (#1335)
* Use GitHub workflows to upload to PyPI (#1253, #1166, #1408, #1189)

### Fixed

* Improve macro aborting in Spock (2nd, 3rd and eventual 4th Ctrl+C now act
on the macro). Also print additional information on what is happening while
stopping and aborting (#1256, #978, #34)
* Use `tango.EnsureOmnitThread` to protect Sardana threads
(Tango is not thread safe) (#1298)
* Avoid using Tango `AttributeProxy` in limits protection to not be affected
by bug tango-controls/pytango#315 (#1302)
* Avoid deadlock in Sardana-Taurus models e.g. `MeasurementGroup.count()` or
`Motor.move()` (#1348)
* Remove redundant protection in PoolElement.start() and waitFinish()
* Fast repetitions of single acquisition measurements (counts) on MeasurementGroup (#1353)
* Pre-mature returning to ON state of MeasurementGroup at the end of measurement (#1353)
* Default macro parameter values in macroexecutor (#1153)
* Executing RunMacro Door's command with string parameters containing spaces (#1240)
* `macroxecutor` and `sequencer` now react on added/removed macros #295
* Avoid printing `None` in `wm` and `wa` macros for `DialPosition` attribute and print
the `Position` attribute twice for pseudo motors (#929, #953, #1411, #1412)
* Setting of environment variables in Python 3.7 (#1195)
* Use `taurus.external.qt.compat.PY_OBJECT` in singal signatures instead of `object`
to avoid problems when using `builtins` from `future` (#1082)
* Remove Taurus deprecated code what reduces deprecation warnings (#1206, #1252)
* Macro functions which define results now really report the result (#1238)
* Use of env and hints in `macro` function decorator (#1239)
* Fix several issues with PMTV:
* Reset pending operations of absolute movement on switching to relative movement (#1293)
* PMTV widget not updating the following attributes: limit switches, state
and status (#1244)
* Avoid Taurus GUI slowness on startup and changing of perspectives due to too
large macroexecutor history by limitting it to 100 -
configurable with `MACROEXECUTOR_MAX_HISTORY` (#1307)
* OutputBlock view option when macros produce outputs at high rate (#1245)
* `showscan online` shows only the online trend and not erroneously online and offline
(#1260, #1400)
* Fix fast operations (motion & acq) by propertly clearing operation context and
resetting of acq ctrls dicts (#1300)
* Premature end of acquisition on Windows (#1397)
* `timescan` with referable channels (#1399, #1401)
* Use proper python3 executable regardeless of installation (#1398)
* Environment variables validation before macro execution when these are defined
on door's or macro's level (#1390)
* Use more efficient way to get terminal size for better printing spock output (#1245, #1268)
* Measurement groups renaming with `renameelem` macro(#951)
* `macroexecutor` correctly loads macro combo box if it was started with server down and
server started afterwards (#599, #1278)
* `TaurusMacroExecutorWidget` does not use _parent model_ feature (#599, #1278)
* `TaurusSequencerWidget` does not use _parent model_ feature (#1284)
* Macro plotting in new versions of ipython and matplotlib require extra call to
`pyplot.draw()` to make sure that the plot is refreshed (#1280)
* Controller's `StateOne()` that returns only state (#621, #1342)
* Fix problems with non-timerable channels in expconf (#1409)
* Allow MacroButton widget to be smaller - minimum size to show the macro name (#1265)
* Remove TangoAttribute controllers from Sardana (#181, #1279)
* Remove deprecation warning revealed when running test suite (#1267)
* Remove event filtering in `DynamicPlotManager` (showscan online) (#1299)
* Avoid unnecessary creations of DeviceProxies in `ascanct` (#1281)
* Macro modules with annotated functions are properly interpreted by the MacroServer
(#1366, #1367)
* Adapt to new taurus behavior of `cmd_line_parser` kwarg of `TaurusApplication` (#1306)
* Fix dummy C/T and 2D controller classes in the case the start sequence was interrupted
(#1188, #1309)
* Fix dummy motor velocity so it respects steps_per_unit (#1310)
* Make handling of `Macro.sendRecordData()` with arbitrary data more robust in Spock
(#1320, #1319)
* Use `utf8_json` as default codec (in Tango) if `Macro.sendRecordData()` does not specify one
(#1320, #1319)
* Avoid repeating of positions when `regscan`, `reg2scan` and `reg3scan` pass through start
position(s) (#1326)
* `test_stop_meas_cont_acquisition_3` spurious failures (#1188, #1353)
* Build docs with Sphinx 3 (#1330)

### Deprecated

* `DoorDebug` widget - use `DoorOutput` with enabled debugging (#1242)
* Global measurement group timer/monitor on all levels (#867)
* `value_ref_enabled` and `value_ref_pattern` measurement group parameters
for non-referable channels (#867)

### Changed

* Avoid extra state readout at the end of acquisition (#1354)
* Renamed _synchronization_ to _synch description_
* Tango MeasurementGroup `Synchronization` attribute to `SynchDescription`
* Core MeasurementGroup `synchronization` property to `synch_description`
* Sardana-Taurus Device MeasurementGroup `getSynchronizationObj()`,
`getSynchronization()` and `setSynchronization()` methods to
`getSynchDescriptionObj()`,`getSynchDescription()`
and `setSynchDescription()` (#1337)
* `SynchronizationDescription` helper class to `SynchDescription`
* Requirements are no longer checked when importing sardana (#1185)
* Measurement group (Taurus extension) configuration API methods, known in
the old sense for setting a global measurement group timer/monitor:
`getTimer()`, `setTimer()`, `getMonitor()` were moved to `MGConfiguration`
class and are deprecated (#867)
* `macroexecutor` and `sequencer` discard settings if the models passed
as command line arguments had changed with respect to the previous execution
(#1278, #1284)

### Removed

* Support to Python < 3.5 (#1089, #1173, #1201, #1263)
* `sardana.macroserver.macro.ParamRepeat` class (#1315, #1358)
* Backwards compatibility for measurement group start without preparation
(#1315, #1373)
* Controller API (#1315, #1361):
* `class_prop`
* `ctrl_extra_attributes`
* `inst_name`
* `SetPar()` and `GerPar()`
* `SetExtraAttributePar()` and `GetExtraAttributePar()`
* `ctrl_properties` with "Description" as `str`
* `CounterTimerController` controller API (#1315, #1362, #1403):
* `_trigger_type`
* `PreStartAllCT()`, `PreStartOneCT()`, `StartAllCT()` and `StartOneCT()`
* `PseudoMotorController` controller API (#1315, #1363)
* `calc_all_pseudo()`, `calc_all_physical()`, `calc_pseudo()` and `calc_physical()`
* `PseudoCounterController` controller API (#1315, #1364)
* `calc()`
* `IORegisterController` controller API (#1315, #1365):
* `predefined_values`
* `Loadable` backawards compatibility (without `repetitions` and `latency` arguments)
(#1315, #1370)
* `PoolMotorSlim` widget (#1315, #1380)
* Door's Tango device `Abort` command (#1315, #1376)
* Backwards compatibility in measurement group configuration (#1315, #1372)
* not complete names (without the scheme and PQDN)
* `trigger_type`
* `Label` and `Calibration` attributes of `DiscretePseudMotor` controller
(#1315, #1374)
* MacroButton's methods (#1315, #1379, #1405)
* `toggleProgress()`
* `updateMacroArgumentFromSignal()`
* `connectArgEditors()`
* `Controller`'s (Taurus extension) `getUsedAxis` method (#1315, #1377)
* `sardana.taurus.qt.qtgui.extra_macroexecutor.dooroutput.DoorAttrListener` class
(#1315, #1378)
* "Show/hide plots" button in `expconf` (#960, #1255, #1257)
* `plotsButton` argument in `ExpDescriptionEditor` constructor (#960, #1255, #1257)
* `showscan online_raw` magic command in spock (#1260)
* `online` kwarg in `SpockBaseDoor` constructor (#1260)
* `sardana.requirements` (#1185)
* `sardanatestsuite` and `sardana.test.testsuite.*` utility functions (#1347)
* Hook places: `hooks` and `pre-start` (#1315, #1359)
* `FileRecorder` macro hint (#1315, #1360)
* `sardana.release` attributes: `version_info` and `revision` (#1315, #1357)
* `sardana.spock.release` module (#1315, #1357)
* Support to IPython < 1 (#1315, #1375)

## [2.8.6] 2020-08-10

### Fixed
Expand Down Expand Up @@ -746,6 +947,8 @@ Main improvements since sardana 1.5.0 (aka Jan15):


[keepachangelog.com]: http://keepachangelog.com
[Unreleased]: https://github.com/sardana-org/sardana/compare/3.0.3...HEAD
[3.0.3]: https://github.com/sardana-org/sardana/compare/3.0.3...2.8.6
[2.8.6]: https://github.com/sardana-org/sardana/compare/2.8.6...2.8.5
[2.8.5]: https://github.com/sardana-org/sardana/compare/2.8.5...2.8.4
[2.8.4]: https://github.com/sardana-org/sardana/compare/2.8.4...2.8.3
Expand Down
3 changes: 1 addition & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ In general, the contributions to Sardana should consider following:
- The code must comply with the sardana coding conventions:
- We try to follow the standard Python style conventions as
described in [Style Guide for Python Code](http://www.python.org/peps/pep-0008.html)
- Code **must** be python 2.6 compatible
- Code **must** be python 3.5 compatible (python 2 is not supported)
- Use 4 spaces for indentation
- use ``lowercase`` for module names. If possible prefix module names with the
word ``sardana`` (like :file:`sardanautil.py`) to avoid import mistakes.
Expand Down Expand Up @@ -79,7 +79,6 @@ The following code can be used as a template for writing new python modules to
Sardana:
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##############################################################################
Expand Down
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[![PyPI pyversions](https://img.shields.io/pypi/pyversions/sardana.svg)](https://pypi.python.org/pypi/sardana/)
[![PyPI license](https://img.shields.io/pypi/l/sardana.svg)](https://pypi.python.org/pypi/sardana/)
[![PyPI version](https://img.shields.io/pypi/v/sardana.svg)](https://pypi.python.org/pypi/sardana/)
[![GitHub tag](https://img.shields.io/github/tag/sardana-org/sardana.svg)](https://GitHub.com/sardana-org/sardana/tags/)
[![Travis status](https://travis-ci.org/sardana-org/sardana.svg?branch=develop)](https://travis-ci.org/sardana-org/sardana)
[![Appveyor status](https://ci.appveyor.com/api/projects/status/rxeo3hsycilnyn9k/branch/develop?svg=true)](https://ci.appveyor.com/project/taurusorg/sardana/branch/develop)


Sardana is a software suite for Supervision, Control and Data Acquisition in scientific installations.

Projects related to Sardana
===========================

* Sardana uses Taurus for control system access and user interfaces
* Sardana is based on Tango
* The command line interface for Sardana (Spock) is based on IPython

Main web site: http://sardana-controls.org
Loading

0 comments on commit 32badc0

Please sign in to comment.