Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Upgrade checklist, May 2016
  1. Create 'DAMA Software' logbook in beamline Olog.
  2. Run conda list -n collection > /tmp/conda-list-before-upgrade.txt and include it in an Olog entry as an attachment.
  3. Commit any uncomitted code in the IPython profile, which should be located (or linked to) at ~/.ipython/profile_colllection.
  4. Create a new directory inside the IPython profile, ~/.ipython/profile_collection/acceptance_tests.
  5. Write acceptance tests as short, standalone scripts that can be executed like ipython --profile=collection -i See examples from XPD or CSX.
  6. Run acceptance tests successfully, and commit repo.
  7. Install packages. Use --no-deps to keep conda from installing things you don't want.
    • event_model>=1.0.2
    • bluesky==0.5.1
    • databroker==0.4.1
    • metadatastore==0.5.2
    • ophyd (latest on nsls2-dev)
    • pyepics (latest on nsls2-dev)
    • doct==1.0.2
    • historydict==1.1.0
    • filestore==0.3.0
  8. As above, create a text file and attach it to the same log entry.
  9. Commit IPython profile and sync with github.
  10. Standardize around the documented standard. Put olog code (farther down the page in that same link) in a separate file,, where it can be easily removed when the Olog is acting up.
  11. Adjust for API Changes in beamline config:
    • Remove imports of bluesky.broker_callbacks, bluesky.hardware_checklist, bluesky.standard_config.
    • If gs was being imported from standard_config, import it from bluesky.global_state instead.
    • gs.RE.subscribe_lossless('all', metadatastore.commands.insert) (This line is in the linked example config already.)
    • To avoid an annoying warning, import install_qt_kicker from bluesky.utils instead of (deprecated) bluesky.qt_kicker.
    • Cleanup unneeded code that turns asyncio debugging off. (It's off my default now.)
    • Do not bulk import from bluesky.plans import *. (There is a lot of stuff in there now, and some names like sleep shadow common imports.)
  12. Check the order of Components in Device class definitions. To be safe: in PVPositioner definitions, readback (not setpoint) should be first because that is the value that will be used to restore motors to their original positions if .position does not exist.
  13. Customize names, read_attrs, and configuration_attrs in accordance with beamline scientists' preferences.
  14. Run user acceptance tests.
  15. Commit IPython profile and upload to github.
  16. Ask what new hardware beamline will use this cycle.

This comment has been minimized.

Copy link

@ericdill ericdill commented May 17, 2016

Wish I could give thumbs ups on gists. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment