@galaxyproject/galaxy-client 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +174 -0
  2. package/dist/00950d3d0eabc9b79c13.png +0 -0
  3. package/dist/00b14a051b8ec5846ca4.png +0 -0
  4. package/dist/015bb398cc86c8e2c532.png +0 -0
  5. package/dist/0a09dd8bcca1e540a97f.png +0 -0
  6. package/dist/0c708255f16de429468f.png +0 -0
  7. package/dist/120.bundled.js +2 -0
  8. package/dist/120.bundled.js.LICENSE.txt +20 -0
  9. package/dist/1444303e4f0c0f62fa36.png +0 -0
  10. package/dist/1551f4f60c37af51121f.woff2 +0 -0
  11. package/dist/175327482730212e7000.png +0 -0
  12. package/dist/17aaaa49460f37c9589a.png +0 -0
  13. package/dist/203d1199e7aef04c0a34.gif +0 -0
  14. package/dist/2285773e6b4b172f07d9.woff +0 -0
  15. package/dist/23f19bb08961f37aaf69.eot +0 -0
  16. package/dist/27c5873e9e627196c882.png +0 -0
  17. package/dist/295.bundled.js +1 -0
  18. package/dist/2f2c06d22919cab5a524.png +0 -0
  19. package/dist/2f517e09eb2ca6650ff5.svg +3717 -0
  20. package/dist/31bc77d4f6f4dbe60b99.png +0 -0
  21. package/dist/3458c7b831d6a8909f76.png +0 -0
  22. package/dist/36d93ca016d18f6fc3e6.png +0 -0
  23. package/dist/37478264c4ed6b0da2cb.png +0 -0
  24. package/dist/3fa7cde9c3400ad8112a.png +0 -0
  25. package/dist/40e48ce346be3ec51671.png +0 -0
  26. package/dist/4689f52cc96215721344.svg +801 -0
  27. package/dist/47683caf7120e987ca85.png +0 -0
  28. package/dist/47b9475d2b6a19bc0921.png +0 -0
  29. package/dist/491974d108fe4002b2aa.ttf +0 -0
  30. package/dist/492.bundled.js +1 -0
  31. package/dist/4a7b4107b62ef059ba65.png +0 -0
  32. package/dist/4b01ca501fadf65135bf.gif +0 -0
  33. package/dist/4dce7f71b08755f19759.png +0 -0
  34. package/dist/5000254d328af6822042.gif +0 -0
  35. package/dist/50a457cf9caf3ff7d302.png +0 -0
  36. package/dist/523592c8f36ba8d3d7b1.png +0 -0
  37. package/dist/527940b104eb2ea366c8.ttf +0 -0
  38. package/dist/564668c1dbc7c9509d9d.png +0 -0
  39. package/dist/56d4c7ce2d3591a02107.gif +0 -0
  40. package/dist/5c2e7e18ad426822d1f3.png +0 -0
  41. package/dist/5dc77fa7c8c5443ffdad.woff +0 -0
  42. package/dist/5f8db17a927f4c77d0a7.png +0 -0
  43. package/dist/668.bundled.js +1 -0
  44. package/dist/688bccf95583ddf2ba42.png +0 -0
  45. package/dist/6fa2fdf6fafd758dd414.png +0 -0
  46. package/dist/730.bundled.js +2 -0
  47. package/dist/730.bundled.js.LICENSE.txt +8 -0
  48. package/dist/77206a6bb316fa0aded5.eot +0 -0
  49. package/dist/79f89968996dfdb58aa6.png +0 -0
  50. package/dist/7a3337626410ca2f4071.woff2 +0 -0
  51. package/dist/7a8b4f130182d19a2d7c.svg +5034 -0
  52. package/dist/7c05f33b4fe5f8132439.woff2 +0 -0
  53. package/dist/8020d5b09a27dc698555.png +0 -0
  54. package/dist/819.bundled.js +2 -0
  55. package/dist/819.bundled.js.LICENSE.txt +261 -0
  56. package/dist/83e9fab1abb3d2242f81.png +0 -0
  57. package/dist/8ee9649d8f72724d5130.png +0 -0
  58. package/dist/92a18a81b9c504803c86.svg +1 -0
  59. package/dist/97bf67372ae8305f61b9.png +0 -0
  60. package/dist/9bbb245e67a133f6e486.eot +0 -0
  61. package/dist/CitationJS.bundled.js +1 -0
  62. package/dist/ListCollectionCreator.bundled.js +1 -0
  63. package/dist/PairCollectionCreator.bundled.js +1 -0
  64. package/dist/Screenshot.bundled.js +1 -0
  65. package/dist/ToolSourceDisplay.bundled.js +1 -0
  66. package/dist/a037125c3d4eda524f25.png +0 -0
  67. package/dist/a09a638a8f87fc89302e.gif +0 -0
  68. package/dist/a278964027d51119ea29.woff2 +0 -0
  69. package/dist/a287ab24df7971b68177.svg +1 -0
  70. package/dist/a5d32bbfbaaf71a7ecc3.png +0 -0
  71. package/dist/a957669c91ed26779fd9.png +0 -0
  72. package/dist/ab3c84fb519c93c0ad84.png +0 -0
  73. package/dist/ae74776b8fef546e5723.png +0 -0
  74. package/dist/analysis.bundled.js +2 -0
  75. package/dist/analysis.bundled.js.LICENSE.txt +157 -0
  76. package/dist/b242d750b24c13ee4fea.png +0 -0
  77. package/dist/b7327582a95704df7902.png +0 -0
  78. package/dist/ba4f6662a6c78b65053a.png +0 -0
  79. package/dist/base.css +116 -0
  80. package/dist/bb58e57c48a3e911f15f.woff +0 -0
  81. package/dist/bd8529d1e3cf8c91e4e5.png +0 -0
  82. package/dist/be9ee23c0c6390141475.ttf +0 -0
  83. package/dist/c07457739c183c845cac.png +0 -0
  84. package/dist/c17754d370a86615cb76.png +0 -0
  85. package/dist/c230a1a6a7a48e51acd4.png +0 -0
  86. package/dist/cafb1233e2036c6ea6f4.gif +0 -0
  87. package/dist/cead2217a30d76378f64.png +0 -0
  88. package/dist/d6f18fe0676eef581855.png +0 -0
  89. package/dist/d878b0a6a1144760244f.woff2 +0 -0
  90. package/dist/d9c92f3d8392a388dd06.png +0 -0
  91. package/dist/e1b81c1c01254dc1af32.png +0 -0
  92. package/dist/e986e970b493125f349f.svg +1 -0
  93. package/dist/e9cdf785efd3f252cfc4.png +0 -0
  94. package/dist/ed06734fa163bda8bd39.png +0 -0
  95. package/dist/ee9fe4949bdb3e27c99f.png +0 -0
  96. package/dist/eeccf4f66002c6f2ba24.woff +0 -0
  97. package/dist/ef78e677b9e8abbc3412.png +0 -0
  98. package/dist/f49a6a2402ca42baecbb.png +0 -0
  99. package/dist/f80d5ce4e2dd8f120516.png +0 -0
  100. package/dist/fb4b31fb106e65747455.png +0 -0
  101. package/dist/fc8034c66691dfad7ec7.gif +0 -0
  102. package/dist/fd200072a3be000e8fd7.png +0 -0
  103. package/dist/fda9e3846b8dcf579a1d.png +0 -0
  104. package/dist/generic.bundled.js +2 -0
  105. package/dist/generic.bundled.js.LICENSE.txt +103 -0
  106. package/dist/libs.bundled.js +2 -0
  107. package/dist/libs.bundled.js.LICENSE.txt +168 -0
  108. package/dist/toolshed.bundled.js +2 -0
  109. package/dist/toolshed.bundled.js.LICENSE.txt +38 -0
  110. package/dist/workflowLayout.bundled.js +1 -0
  111. package/package.json +199 -0
package/README.md ADDED
@@ -0,0 +1,174 @@
1
+ # Client Build System
2
+
3
+ Installs, stages, and builds the client-side scripts necessary for running the
4
+ Galaxy webapp. When started through `run.sh` or any other method that utilizes
5
+ `scripts/common_startup.sh`, Galaxy will (since 18.09) _automatically_ build
6
+ the client as a part of server startup, when it detects changes, unless that
7
+ functionality is explicitly disabled.
8
+
9
+ The base dependencies used are Node.js and Yarn. Galaxy now includes these in
10
+ the virtual environment, and they can be accessed by activating that with `.
11
+ .venv/bin/activate` from the Galaxy root directory.
12
+
13
+ If you'd like to install your own dependencies, on OSX the easiest way to get
14
+ set up is using `homebrew` and the command `brew install nodejs yarn`. More
15
+ information, including instructions for other platforms, is available at
16
+ [https://nodejs.org](https://nodejs.org) and
17
+ [https://yarnpkg.com/](https://yarnpkg.com).
18
+
19
+ The Galaxy client build has necessarily grown more complex in the past several
20
+ years, but we are still trying to keep things as simple as possible for
21
+ everyone. If you're having any trouble with building the client after following
22
+ the instructions below, please create an issue on GitHub or reach out for help
23
+ directly on Gitter at
24
+ [https://gitter.im/galaxyproject/Lobby](https://gitter.im/galaxyproject/Lobby).
25
+
26
+ ## Complete Client Build
27
+
28
+ There are many moving parts to the client build system, but the entry point for
29
+ most people is the 'client' rule in the Makefile at the root of the Galaxy
30
+ repository. Execute the following to perform a complete build suitable for
31
+ local development, including dependency staging, style building, script
32
+ processing, and bundling. This is a development-specific build which includes
33
+ extra debugging features, and excludes several production optimizations made
34
+ during the build process.
35
+
36
+ make client
37
+
38
+ For a production build, suitable for deploying to a live server, use the
39
+ following:
40
+
41
+ make client-production
42
+
43
+ And, lastly, if you want a production build that includes sourcemaps to allow
44
+ for inspection of live javascript to facilitate debugging, use:
45
+
46
+ make client-production-maps
47
+
48
+ Important Note: The Galaxy repository does not include client script artifacts,
49
+ and these should not be committed.
50
+
51
+ ## Automatic Rebuilding
52
+
53
+ When you're actively developing, it is convenient to have the client
54
+ automatically rebuild every time you save a file. You can do this using:
55
+
56
+ make client-watch
57
+
58
+ This will first stage client dependencies, initiate a build, and then will
59
+ watch for changes in any of the galaxy client source files. When a file is
60
+ changed, the client will automatically rebuild, after which you can refresh
61
+ your browser to see changes.
62
+
63
+ For even more rapid development you can use the webpack development server,
64
+ which takes advantage of hot module replacement (HMR). This technique allows
65
+ swapping out of javascript modules while the application is running without
66
+ requiring a full page reload most of the time, at least in the more modern
67
+ parts of the application.
68
+
69
+ The command below starts a special webpack dev server after a client
70
+ build.
71
+
72
+ make client-dev-server
73
+
74
+ This will start up an extra client development server running on port 8081.
75
+ Open your browser to http://localhost:8081 (instead of the default 8080 that
76
+ Galaxy would run on), and you should see Galaxy like normal. Except now, when
77
+ you change client code it'll automatically rebuild *and* reload the relevant
78
+ portion of the application for you. Lastly, if you
79
+ are running Galaxy at a location other than the default, you can specify a
80
+ different proxy target (in this example, port 8000) using the GALAXY_URL
81
+ environment variable:
82
+
83
+ GALAXY_URL="http://localhost:8000" make client-dev-server
84
+
85
+ Sometimes you want to run your local UI against a remote Galaxy server. This is also possible, if you enable `CHANGE_ORIGIN` flag
86
+
87
+ CHANGE_ORIGIN=true GALAXY_URL="https://usegalaxy.org/" make client-dev-server
88
+
89
+ ## Running a Separate Server
90
+
91
+ When developing the client it can be helpful to run a local server for the
92
+ client to connect to, and run the client separately with one of the above
93
+ commands. This command will run galaxy without building the client:
94
+
95
+ make skip-client
96
+
97
+ ## Changing Styles/CSS
98
+
99
+ Galaxy uses Sass for its styling, which is a superset of CSS that compiles down
100
+ to regular CSS. Most Galaxy styling source (.scss) files are kept in
101
+ `client/src/style/scss`. There are additionally style blocks alongside some Vue
102
+ components -- styles that are particular to that individual component and do
103
+ not apply site-wide.
104
+
105
+ On build, the compiled css bundle is served at `/static/style/base.css`.
106
+
107
+ As mentioned above, `make client` will rebuild styles, as a part of the webpack
108
+ build. For iterative development, "Watch Mode" rebuilds as described above do
109
+ include style changes.
110
+
111
+ ## Client-Side Unit Testing
112
+
113
+ Galaxy's client is undergoing an extensive refactoring and modernizing process.
114
+ As part of this initiative, we would like to request that all new client-side
115
+ code submissions come with accompanying javascript unit-tests for the
116
+ developer-facing API of your new code.
117
+
118
+ ### Testing Technologies
119
+
120
+ [Galaxy uses Jest](https://jestjs.io/) for its client-side unit testing
121
+ framework.
122
+
123
+ For testing Vue components, we use the [Vue testing
124
+ utils](https://vue-test-utils.vuejs.org/) to mount individual components in a
125
+ test bed and check them for rendered features. Please use jest-based mocking
126
+ for isolating test functionality.
127
+
128
+ A set of older qUnit tests also exist which will be phased-out as the code they
129
+ support is replaced with modern component-based implementations. In the
130
+ meantime, we still run the qunit tests in sequence.
131
+
132
+ ### Running the tests
133
+
134
+ #### At Build-Time
135
+
136
+ To simply run all the javascript unit tests, you can use make from the root
137
+ directory. This is what happens during a complete client build.
138
+
139
+ make client-test
140
+
141
+ #### During Development
142
+
143
+ During client-side development, it is more convenient to have granular testing
144
+ options. The various testing scripts are defined inside package.json within the
145
+ client folder, and are called with `yarn` as demonstrated in the
146
+ following commands.
147
+
148
+ This is what CI is going to run, and also what 'make client-test' invokes,
149
+ executing all the client tests:
150
+
151
+ yarn run test
152
+
153
+ You can also bypass qunit and single-run all of the jest tests like so:
154
+
155
+ yarn run jest
156
+
157
+ Or, if you really want to run just the qunit tests:
158
+
159
+ yarn run qunit
160
+
161
+ ##### Watch and rerun jest unit tests every time a source file changes
162
+
163
+ This is incredibly handy, and there are a host of options in the interactive
164
+ terminal this starts for executing Jest tests.
165
+
166
+ yarn run jest-watch
167
+
168
+ ##### Run only specified test files when a source file changes
169
+
170
+ yarn run jest-watch MyModule
171
+
172
+ yarn run jest-watch Dialog
173
+
174
+ yarn run jest-watch workflow/run
Binary file
Binary file
Binary file
Binary file
Binary file