Commit Graph
912 Commits
Author SHA1 Message Date
Nicola Soranzo cbd527b9a4 Merge branch 'release_16.10' into dev
Conflicts:
	static/scripts/bundled/analysis.bundled.js
	static/scripts/bundled/analysis.bundled.js.map
	static/scripts/bundled/libs.bundled.js.map
2016-12-07 20:35:40 +00:00
Martin Cech 45afe7aa61 fix typo 2016-12-05 19:50:17 -05:00
John Chilton d7c6f39a9e Increase release delta to 4 months ahead of 17.05. 2016-12-05 19:46:00 -05:00
John Chilton a84601ba80 Add 16.10 release notes. 2016-12-05 19:38:19 -05:00
John Chilton 80e64b8cc0 PEP-8 fix as pointed out by @nsoranzo. 2016-12-01 15:58:12 -05:00
John Chilton 82728df155 Replace CasperJS browser tests with Selenium tests.
See documentation added to run_tests.sh. This can be configured to target local web browsers or Selenium remote services as detailed in that script.

Individual tests can be executed with nosetests directly or groups of tests can share a common test Galaxy spin up when using ./run_tests.sh. If GALAXY_TEST_EXTERNAL=<url> is set - it will be respected and Galaxy will not be spun up (remember the URL needs to be reachable from the Selenium server inside the Docker container).

Every test failure writes a current screenshot of Galaxy to database/test_errors.

I will be honest that the desire to move toward selenium is based solely on failing to get the Casper tests to pass consistently due to bugs causing segfaults in the underlying tools (probably casperjs or phantomjs?). Over the past year I have tried multiple versions of dependencies, etc... and it never works out for me. Likewise Martin has never been able to get the tests to run consistently under Jenkins. I don't think Python or JavaScript is inherently better, this wasn't based on a personal preference about what kind of test I want to write.

Despite this being the primary reason, there are clear benefits to Selenium. It tests the actual web browsers we support, generates screenshots, has better documented and more robust tooling, can scale across clusters. Less clear, but certainly still a benefit of being Python based is that it fits with the rest of the test framework more cleanly than CasperJS.

Finally Carl's last words on CasperJS were "Ditch it".

The following specific tests were added or replaced:

- Implemented tour testing via Selenium (walk the two working stock tours and verify elements avaiable and clicks are valid). This is how I discovered #3206.
- Added completely new workflow GUI test (basic creation from URL and in editor).
- Replaced broken CasperJS registeration tests (text and expectations now wrong) with a Selenium variant that works against dev.
- Replaced broken anonymous history CasperJS tests with working Selenium tests.
- Replaced broken upload CasperJS tests with working Selenium tests.
- Replaced history options CasperJS tests with Selenium tests.
- Replaced login CasperJS tests with Selenium tests.
- Replaced history-share-tests.js with test_history_options.py
- Replaced history-panel-tests.js with test_history_panel.py
- Replaced a big part of hda-state-tests.js with test_history_dataset_state.py

I'm confident these utilities represent a sharable and higher-level abstraction around functional testing of Galaxy that can be used outside of Galaxy's testing framework. So a subset of the functional test stuff is in a separate module with minimal dependencies that I intend to make stand alone and pip installable like galaxy-lib.

This module consists of:

- Sizzle stuff in its own package. This code allows Selenium to reason with jQuery selectors instead of vanilla CSS selectors.
- Functionality for creating a Selenium driver and virtual display.
- The ``HasDriver`` mixin - this provides higher level navigation utilities not specifically tied to Galaxy.
- A package with abstractions for navigating Galaxy. This provides a higher-level interfactor for things such as logging in and out, registering a user, navigating menus, fetching Galaxy style tooltips and error messages, and walking Galaxy tours.

In order to demonstrate this new module is useful outside of Galaxy tests - I've included a CLI package to ease building argparse utilities around these abstractions and implemented a simple demonstration script that walks a Galaxy tour and dumps screenshots of Galaxy at each step to a folder. This is more of a demonstration of the utilities than an actual polished end user tool - though it might be helpful in linting and debugging tours.

In the future I hope to extend this scripting to implement

- Periodic deployment testing to ensure things like Jupyter work in production.
- A best practice recipe for Galaxy QA testing by deployers.
- An utility to generate dozens of screenshots of various aspects of Galaxy so we can quickly visually inspect ever part of the GUI before big releases.

xref https://github.com/galaxyproject/starforge/pull/115 xref #1419
2016-11-30 17:44:11 -05:00
Nicola Soranzo 70bd8c9c45 Small fixes to bootstrap_history.py 2016-11-28 12:42:07 +00:00
Nicola Soranzo 3d57c22b63 Fix I201 errors from flake8-import-order
Also fix Python3 compatibility.
Remove unused method
galaxy.tools.parameters.sanitize.ToolParameterSanitizer.restore_param() .
2016-11-23 18:31:04 +00:00
Dannon Baker 0b395a7fb3 Slight clarification of run.sh messaging when using conda. 2016-11-16 16:16:33 -05:00
Dannon Baker 7f5d9d2fbd More startup logic tweaks, .venv > conda > new_venv 2016-11-16 11:04:42 -05:00
Dannon Baker 72d360e942 Change startup logic for .venv sourcing. If a .venv exists, use it. If not, if conda is there, use it. If no conda, create a .venv. 2016-11-16 10:44:48 -05:00
Nicola Soranzo 1d17a29c79 Fixes for pycodestyle 2.2.0 2016-11-15 16:56:50 +00:00
Nicola Soranzo 9c37c6df89 Fixes for flake8-import-order 0.11
Also fix Python3 compatibility.
2016-11-11 15:09:34 +00:00
Nicola Soranzo 527e332aa3 Fix a bunch of errors reported by Sphinx 2016-10-24 19:42:19 +01:00
Nicola Soranzo 8a17143bc7 Remove unused files 2016-10-24 19:40:42 +01:00
Nicola Soranzo e4b3766c1b Change remaining __all__ from list to tuple
Also fix import order and Python3 compatibility.
2016-10-18 19:24:31 +01:00
Remi Marenco 3e737c99ea Add Galaxy Architecture slides in .md
+ the plumbing for slides creation

Init of #2244, second part: Python converter md to html + wip on GCC 2015 talk conversion
Add the 2. Galaxy app architecture. Need images
Add the 3. Galaxy components and object model
Add more content in md
Fix linting error by adding newline at the end of build_slideshow.py
Moved the galaxyArchitecture.md into a folder dedicated to it
Add 7th and 17th image + add style.css to have a better management of layout + added first slide as the first in GCC2015 slide
Set properly the CSS used in the whole presentation + add special to p and first slide
Add special orange for regular text and green emphasis (emphasis_2_galaxy)
Changed the font to PT Sans
Add 3. with images + few modifications
Removed the images integrated using background-image by now Markdown imaging (still need work, image's size seems not good by default
Add Makefile target to build architecture slides...
2016 Updates to 2015 architecture talk.
More intro slides for Galaxy architecture.
Update author line.
Progress on architecture slides...
 - Improved styling (use Oxygen - closer to Galaxy font)
 - Add ability to generate SVG diagrams to slide infrastructure
 - Add newer client-server sequence diagram based on that.
Improved logging when there are problems with SQL migrations.
More misc work on architecture talk.
More images, slides, slide formatting, and initial work on an IPython notebook.
Improved styling for architecture slides...
Updates to architecture talk...
- Infrastructure for building class diagrams with plantuml
- Bring in move SVGs from last year's google docs.
- Fill out section on client architecture.
More work on slides for architecture talk.
Add startup_output.
Replace mermaid diagrams with plantuml diagrams.
Fill out these diagrams more and style them for a black background in Galaxy oranges.
2016-10-17 14:02:06 -04:00
John Chilton 3345dd4a92 Merge pull request #2865 from martenson/forced-wittiness
encourage wittiness in release notes
2016-10-07 10:01:46 -04:00
Nicola Soranzo 2eadece71e Add flake8 pinning to Branch procedures 2016-09-30 20:19:08 +01:00
Nicola Soranzo 7a604c67d9 Merge branch 'release_16.07' into dev 2016-09-23 17:59:52 +01:00
Dave Bouvier 2c8a5d9d58 Correct import order. 2016-09-23 12:13:10 -04:00
Martin Cech 55582a7903 add TS deployments to freeze/release procedures 2016-09-22 11:16:05 -04:00
Dave Bouvier b83f0a1024 Fix whoosh indexing. 2016-09-21 14:40:12 -04:00
John Chilton 05ae995907 Refactor most of tool validation for CI into a standalone script. 2016-09-16 15:07:42 -04:00
Martin Cech d6639bee40 encourage wittiness in release notes 2016-08-26 13:09:40 -04:00
Martin Cech 4e5de56b63 alter release notes template
remove bitbucket distribution
make github commands checkout the actual release instead of master
2016-08-25 14:09:21 -04:00
John Chilton 2c866e38d6 Automate more of the release process...
... this has worked for a couple releases now - time for the computer to push these tags instead of error-prone humans.
2016-08-25 13:44:30 -04:00
Nicola Soranzo 87d6239c36 Improve startup scripts
Fix errors reported by shellcheck
2016-08-11 15:28:28 +01:00
Dannon Baker 8c1be91231 Merge branch 'release_16.07' into dev 2016-08-09 07:44:58 -04:00
Ben 6516f20602 Update common_startup.sh to require python2.7 in .venv
by changing the .venv creation to 'virtualenv -p python2.7' we force the python version we need.

The current suggestion on getgalaxy is: https://wiki.galaxyproject.org/Admin/Python
% mkdir ~/galaxy-python
% ln -s /path/to/python2.7 ~/galaxy-python/python
% export PATH=~/galaxy-python:$PATH

Which break lots of things, since we are working in a virtual environment anyway we can build it from the start with the version we want.

This will require that python 2.7 used in the virtual environment, and prevent breakage from multi-python deployed hosts. This simple change makes the software more accessible.

This edit built fine on OS X  10.10.5
python installed: 2.6, 2.7, 3.2, 3.5

galaxy.queue_worker INFO 2016-08-08 22:14:15,624 Binding and starting galaxy control worker for main
Starting server in PID 69210.
serving on http://127.0.0.1:8080
/Users/benc/Code/github/galaxy/.venv/lib/python2.7/site-packages/sqlalchemy/sql/sqltypes.py:565: SAWarning: Dialect sqlite+pysqlite does *not* support Decimal objects natively, and SQLAlchemy must convert from floating point - rounding errors and other issues may occur. Please consider storing Decimal numbers as strings or integers on this platform for lossless storage.
  'storage.' % (dialect.name, dialect.driver))
127.0.0.1 - - [08/Aug/2016:22:39:18 -0400] "GET / HTTP/1.1" 200 - "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"
2016-08-08 22:40:06 -04:00
Nicola Soranzo de3c50a5ef Python3 support and import order fixes for lib/tool_shed/ 2016-08-04 13:41:36 +01:00
Dannon Baker e291012afd Merge branch 'release_16.07' into dev 2016-07-29 15:35:29 -04:00
Nicola Soranzo 5e7f0c4b18 Fix unit tests exit status
Broken in https://github.com/galaxyproject/galaxy/pull/2564
Also update scripts/nosetests.py
2016-07-29 19:47:08 +01:00
Martin Cech 09aef7eda5 mention need to update P4's conf when freezing 2016-07-29 14:16:58 -04:00
Bjoern Gruening 6b8b0cde5b make client 2016-07-22 22:47:13 +02:00
John Chilton 8dbf987e10 Merge pull request #2455 from erasche/grt
Galactic Radio Telescope
2016-07-21 20:06:12 -04:00
John Chilton 76628c7203 Refactor grt.py method names to be clear public interface is only main(). 2016-07-21 14:59:29 -04:00
John Chilton bbe1d7bed0 Remove custom Galaxy config parsing in grt.py.
Use existing abstractions - so things like environment variable based configuration will work.
2016-07-21 14:59:29 -04:00
John Chilton 1f292824a1 Fix some obvious Python 2isms in grt client...
... and one instance of bare exception.
2016-07-21 14:59:27 -04:00
John Chilton a93874fe7b Define a main() function for grt client.
This is purely stylistic - but I prefer to structure code to allow testing even if there are no actual test cases yet.

For more information see discussion here - http://stackoverflow.com/questions/4041238/why-use-def-main.
2016-07-21 14:59:05 -04:00
John Chilton 6432eae251 Give grt a top-level docstring. 2016-07-21 14:33:58 -04:00
John Chilton 0280daebef grt.ini.sample is a YAML file, git it a YAML extension. 2016-07-21 14:31:25 -04:00
anuprulez 0d915ce131 Adding maximize/minimize feature to the communication channel 2016-07-14 14:11:44 +02:00
Dannon Baker 61a11341f9 When CONDA_ALREADY_INSTALLED is undefined there's an error due to the number of arguments in the boolean expression (we actually *do* always want a 1 or 0 there, never empty) 2016-07-08 10:52:08 -04:00
Remi Marenco de702db55d s/creation/activation. Thx @nsoranzo 2016-07-07 15:45:40 -04:00
remimarenco b53a9275d5 Add Warning when Conda is installed because we skip the virtualenv creation
Fix the case where we could have conda not installed but not setting VirtualEnv still (and have this non relevant warning
2016-07-07 14:34:40 -04:00
Dannon Baker a946b04316 Merge pull request #2574 from bxlab/python3
Python3: port 215 files
2016-07-05 09:57:54 -04:00
Eric Enns 417d43fb3e Added upload1 to tool blacklist 2016-06-26 09:19:57 -05:00
Nicola Soranzo cd13423953 Python3: small fixes to previous commits 2016-06-26 02:43:57 -04:00
Junzhou Wang f68a8198da Python3: scripts/cleanup_datasets scripts/data_libraries 2016-06-25 21:49:25 -04:00