Demo sandbox: Difference between revisions

From Genecats
Jump to navigationJump to search
(→‎Claimed sandbox table: Releasing demo3 and demo5)
 
(67 intermediate revisions by 12 users not shown)
Line 1: Line 1:
== Why use a demo browser? ==
== Why use a demo browser? ==
Frequently it is desirable to demonstrate browser features that are not yet ready to be pushed into the git master branch and/or not ready to be introduced into the genome-test (hgwdev) browser.  This is especially so for large or experimental features that QA may need to test drive before they are approved to be put into the three week CGI release cycle.  Alternatively, you may wish to demonstrate a track organization as represented in trackDb, but you can't build this trackDb into alpha yet.  Keeping these features static in your own sandbox is the simplest solution.  However, that is not always practical as we all have many things to work on.  To help you there are 9 demo sandboxes cleverly named as demo1 through demo9.
Frequently it is desirable to demonstrate browser features that are not yet ready to be pushed into the git master branch and/or not ready to be introduced into the genome-test (hgwdev) browser.  This is especially so for large or experimental features that QA may need to test drive before they are approved to be put into the three week CGI release cycle.  Alternatively, you may wish to demonstrate a track organization as represented in trackDb, but you can't build this trackDb into alpha yet.  Keeping these features static in your own sandbox is the simplest solution.  However, that is not always practical as we all have many things to work on.  To help you there are 9 demo sandboxes cleverly named: demo1 through demo9.
 
Additionally, as of Summer 2020, each Browser engineer has a per-developer virtual host named: 
hgwdev-demo-$USER. These can be used by the $USER for branch or development work and are not bound by the claiming system described below.


== Claiming a demo browser ==
== Claiming a demo browser ==
Line 20: Line 23:
! style="background:#D6F6D6" | why
! style="background:#D6F6D6" | why
|-
|-
| demo1 || braney || 2017-01-11 || >32 chrom names
| demo1 || Jim || 2022-01-06 || duplicate tracks
|-
|-
| demo2 || available  ||   ||   
| demo2 || Hiram  || 2022-10-16 ||  mouse over wiggle archaeology
|-
|-
| demo3 (no htdocs) || - || - || Available
| demo3 || galt || 2020-12-04 || v405 CGIs
|-
|-
| demo4 || Galt ||  2016-12-21 || CSP2 XSS-prevention (inline-js separated out)
| demo4 || ||  ||
|-
|-
| demo5 (no htdocs) || - || - || Available
| demo5 || max ||2021-06-25|| libcurl instead of net.c (originally code from markd https://raw.githubusercontent.com/ComparativeGenomicsToolkit/hal/master/api/impl/udc2.c and possibly joel)
|-
|-
| demo6 || Angie, Donna || 2016-06-09 || new home page
| demo6 || max || 2021-08-12 || UI interface changes: composites and hgTracks boxes (backup copy, still useful in 2021 possibly)
|-
|-
| demo7 || - || - || Available
| demo7 || max || 2021-07-08 || -O3 performance improvements: no redmine, markd email, -fno-strict-overflow
|-
|-
| demo8 || - || - || -available-
| demo8 || chris || 2023-07-07 || mouseover improvements
|-
|-
| demo9 || Donna || 2014-08-13 || static page UI mockup
| demo9 || Jonathan || 2019-03-04 || Hi-C display
|}
|}


== What about htdocs? ==
== What about htdocs? ==
Much of the time you will not need a separate htdocs sandbox for your demo.  When you will need this is if you have changes to Javascript, static HTML docs, images or CSS style sheets that cannot be put into the genome-test browser yet.  If you need this functionality, you must claim a demo machine that has a htdocs sandbox directory (e.g. <code>/usr/local/apache/htdocs-demo2</code>).  As of 3/6/2014, all demo machines except demo3 and demo5 have their own htdocs-demo''N''.  You can check for yourself using this command:
As of 8/27/2018, each hgwdev-demo* host has its own htdocs sandbox (/usr/local/apache/htdocs-demo*/).  To keep this up to date, and to see your changes to Javascript, CSS style sheets, static HTML docs, or images, remember to do a <tt>make USER=demo''N''</tt> in the following directories:
<pre>
* hg/js
ls -1d /usr/local/apache/htdocs-demo*
* hg/htdocs/style
</pre>
* hg/htdocs


== Building your demo CGIs ==
== Building your demo CGIs ==
Line 71: Line 74:


=== htdocs ===
=== htdocs ===
All sandboxes except demo3 and demo5 have their own htdocs:
All sandboxes have their own htdocs:
<pre>
<pre>
cd ~/kent/src/hg/htdocs
cd ~/kent/src/hg/htdocs
make USER=demo2
cd ~/kent/src/hg/htdocs/style
make USER=demo2
cd ~/kent/src/hg/js
make USER=demo2
make USER=demo2
</pre>
</pre>
Line 95: Line 102:
== Viewing your demo ==
== Viewing your demo ==
This is just another sandbox, so view it like you view your own:
This is just another sandbox, so view it like you view your own:
   [http://hgwdev-demo1.cse.ucsc.edu http://hgwdev-demo1.cse.ucsc.edu]
   [https://hgwdev-demo1.gi.ucsc.edu https://hgwdev-demo1.gi.ucsc.edu]
   [http://hgwdev-demo2.cse.ucsc.edu http://hgwdev-demo2.cse.ucsc.edu]
   [https://hgwdev-demo2.gi.ucsc.edu https://hgwdev-demo2.gi.ucsc.edu]
   [http://hgwdev-demo3.cse.ucsc.edu http://hgwdev-demo3.cse.ucsc.edu]
   [https://hgwdev-demo3.gi.ucsc.edu https://hgwdev-demo3.gi.ucsc.edu]
   [http://hgwdev-demo4.cse.ucsc.edu http://hgwdev-demo4.cse.ucsc.edu]
   [https://hgwdev-demo4.gi.ucsc.edu https://hgwdev-demo4.gi.ucsc.edu]
   [http://hgwdev-demo5.cse.ucsc.edu http://hgwdev-demo5.cse.ucsc.edu]
   [https://hgwdev-demo5.gi.ucsc.edu https://hgwdev-demo5.gi.ucsc.edu]
   [http://hgwdev-demo6.cse.ucsc.edu http://hgwdev-demo6.cse.ucsc.edu]
   [https://hgwdev-demo6.gi.ucsc.edu https://hgwdev-demo6.gi.ucsc.edu]
   [http://hgwdev-demo7.cse.ucsc.edu http://hgwdev-demo7.cse.ucsc.edu]
   [https://hgwdev-demo7.gi.ucsc.edu https://hgwdev-demo7.gi.ucsc.edu]
   [http://hgwdev-demo8.cse.ucsc.edu http://hgwdev-demo8.cse.ucsc.edu]
   [https://hgwdev-demo8.gi.ucsc.edu https://hgwdev-demo8.gi.ucsc.edu]
   [http://hgwdev-demo9.cse.ucsc.edu http://hgwdev-demo9.cse.ucsc.edu]
   [https://hgwdev-demo9.gi.ucsc.edu https://hgwdev-demo9.gi.ucsc.edu]


'''''Remember:'''''  Make sure to have your own copy of hg.conf (edited to replace <yourname> with <yourdemo>) in the /usr/local/apache/cgi-bin-demoN directory.
'''''Remember:'''''  Make sure to have your own copy of hg.conf (edited to replace <yourname> with <yourdemo>) in the /usr/local/apache/cgi-bin-demoN directory.
Line 116: Line 123:
== Problems?  Additions? ==
== Problems?  Additions? ==
If these instructions are lacking or if you find and resolve problems with this documentation, '''''please extend or correct it'''''.
If these instructions are lacking or if you find and resolve problems with this documentation, '''''please extend or correct it'''''.
[[Category:Browser QA]] [[Category:Browser QA Sandbox]]

Latest revision as of 18:48, 7 July 2023

Why use a demo browser?

Frequently it is desirable to demonstrate browser features that are not yet ready to be pushed into the git master branch and/or not ready to be introduced into the genome-test (hgwdev) browser. This is especially so for large or experimental features that QA may need to test drive before they are approved to be put into the three week CGI release cycle. Alternatively, you may wish to demonstrate a track organization as represented in trackDb, but you can't build this trackDb into alpha yet. Keeping these features static in your own sandbox is the simplest solution. However, that is not always practical as we all have many things to work on. To help you there are 9 demo sandboxes cleverly named: demo1 through demo9.

Additionally, as of Summer 2020, each Browser engineer has a per-developer virtual host named: hgwdev-demo-$USER. These can be used by the $USER for branch or development work and are not bound by the claiming system described below.

Claiming a demo browser

The demo browsers are sandboxes like your own and the cgis live on hgwdev in the appropriate cgi-bin directory: /usr/local/apache/cgi-bin-demoN/
To claim one, you should first see that no one else has that demo directory by seeing who owns the CGIs in that directory and how old they are:

ll /usr/local/apache/cgi-bin-demo2/
-rwxrwxr-x   1 tdreszer protein 11954236 Sep 15  2010 hgTracks
... 

If the CGIs in a demo cgi-bin are more than a couple months old, then that demo browser can be considered fair game. If there is any doubt, ask the owner.

Here is a list of current claims, but it is no doubt out of date as you read this:

Claimed sandbox table

what who when why
demo1 Jim 2022-01-06 duplicate tracks
demo2 Hiram 2022-10-16 mouse over wiggle archaeology
demo3 galt 2020-12-04 v405 CGIs
demo4
demo5 max 2021-06-25 libcurl instead of net.c (originally code from markd https://raw.githubusercontent.com/ComparativeGenomicsToolkit/hal/master/api/impl/udc2.c and possibly joel)
demo6 max 2021-08-12 UI interface changes: composites and hgTracks boxes (backup copy, still useful in 2021 possibly)
demo7 max 2021-07-08 -O3 performance improvements: no redmine, markd email, -fno-strict-overflow
demo8 chris 2023-07-07 mouseover improvements
demo9 Jonathan 2019-03-04 Hi-C display

What about htdocs?

As of 8/27/2018, each hgwdev-demo* host has its own htdocs sandbox (/usr/local/apache/htdocs-demo*/). To keep this up to date, and to see your changes to Javascript, CSS style sheets, static HTML docs, or images, remember to do a make USER=demoN in the following directories:

  • hg/js
  • hg/htdocs/style
  • hg/htdocs

Building your demo CGIs

Just like the default make targets in any other sandbox, the demo dirs are built based upon the value of USER in the make environment.

Method 1: add USER=demoN to make commands

You can set the value of any variable in the make environment on the command line like this:

cd ~/kent/src/hg
make cgi USER=demo2

Method 2: modify your shell variable $USER

If you find yourself forgetting to add USER=demoN too often, you can set your shell environment's USER to "demo2" (or whatever demo you have claimed) and then make your CGIs with the same make command as usual. It's a good idea to do this in a shell/window that you will use only for demo building.

export USER=demo2;echo $USER  # bash syntax
setenv USER demo2             # tcsh syntax
cd ~/kent/src/hg/
make cgi

rsync errors for cgi-bin-demoN/hg*Data

When you rebuild all CGIs on demoN, you might be halted by rsync errors if cgi-bin-demoN/hgNearData and hgGeneData files are owned by the previous demo developer (rsync attempts to chgrp and fails). If you do, just rm them and re-run your make.

rm -r /usr/local/apache/cgi-bin-demo2/hgGeneData /usr/local/apache/cgi-bin-demo2/hgNearData

htdocs

All sandboxes have their own htdocs:

cd ~/kent/src/hg/htdocs
make USER=demo2
cd ~/kent/src/hg/htdocs/style
make USER=demo2
cd ~/kent/src/hg/js
make USER=demo2

Do you need to do a full make (make clean;make...)? It is a good idea, but you are running in the context of your current git branch. If your src/lib and src/hg/lib have already been made, then you only need to assure the CGIs and possibly htdocs get rebuilt. Especially when you are first claiming the demo sandbox, I recommend a full make.

Building trackDb_demoN

Just like with your own sandbox, there is a trackDb_demo# for each assembly which will probably be well out of date when you claim a demo sandbox. Chances are that you only need to demo a new feature on one assembly however, so you can just rebuild that assembly as the demo user:

cd ~/kent/src/hg/makeDb/trackDb
make DBS=hg19 USER=demo2

Nothing is preventing you from making all assembles as the demo user. It is your time!

Remember: If you modified your USER environment variable (Method 2 above), when you are done building demoN, set USER back to yourself!

export USER=$(whoami); echo $USER  # bash syntax
setenv USER `whoami`               # tcsh syntax

Viewing your demo

This is just another sandbox, so view it like you view your own:

  https://hgwdev-demo1.gi.ucsc.edu
  https://hgwdev-demo2.gi.ucsc.edu
  https://hgwdev-demo3.gi.ucsc.edu
  https://hgwdev-demo4.gi.ucsc.edu
  https://hgwdev-demo5.gi.ucsc.edu
  https://hgwdev-demo6.gi.ucsc.edu
  https://hgwdev-demo7.gi.ucsc.edu
  https://hgwdev-demo8.gi.ucsc.edu
  https://hgwdev-demo9.gi.ucsc.edu

Remember: Make sure to have your own copy of hg.conf (edited to replace <yourname> with <yourdemo>) in the /usr/local/apache/cgi-bin-demoN directory.

Your demo responsibility

  • Since you are reading this document, go ahead and update the table above, when you claim a demo sandbox.
  • You are responsible for advertising the features you have made available in a demo browser.
  • It is your responsibility to make sure all the CGIs necessary are working. If the feature you added is in the "hgc" CGI but you didn't bring "hgTracks" up to date, then don't be surprised if someone in your target audience thinks your new feature has created a mess and broken the browser in ways entirely unrelated to what you actually coded.
  • Likewise, it is your responsibility to see that all the assemblies necessary are working. If QA wants to test your feature on a mouse assembly then don't cause them irritation by leaving the mouse trackDb_demoN in some year old state.
  • Finally, you can get out of the way when you are done with a demo browser. Perhaps you should just delete out the CGIs which will make it obvious that you are done with it. And if you are really responsible, you will update the claimed sandbox table above.

Problems? Additions?

If these instructions are lacking or if you find and resolve problems with this documentation, please extend or correct it.